diff src/core/ngx_inet.h @ 651:39b7d7b33c91 release-0.3.47

nginx-0.3.47-RELEASE import *) Feature: the "upstream" directive. *) Change: now the "\" escape symbol in the "\"" and "\'" pairs in the SSI command is always removed.
author Igor Sysoev <igor@sysoev.ru>
date Tue, 23 May 2006 14:54:58 +0000
parents c52408583801
children 400711951595
line wrap: on
line diff
--- a/src/core/ngx_inet.h
+++ b/src/core/ngx_inet.h
@@ -12,6 +12,10 @@
 #include <ngx_core.h>
 
 
+#define NGX_PARSE_URL_INET   1
+#define NGX_PARSE_URL_UNIX   2
+
+
 typedef struct {
     in_addr_t  addr;
     in_addr_t  mask;
@@ -19,6 +23,66 @@ typedef struct {
 
 
 typedef struct {
+    struct sockaddr    *sockaddr;
+    socklen_t           socklen;
+
+    ngx_str_t           name;
+    char               *uri_separator;
+
+    ngx_uint_t          weight;
+
+    ngx_uint_t          fails;
+    time_t              accessed;
+
+    ngx_uint_t          max_fails;
+    time_t              fail_timeout;
+
+#if (NGX_SSL)
+    ngx_ssl_session_t  *ssl_session;
+#endif
+} ngx_peer_t;
+
+
+struct ngx_peers_s {
+    ngx_uint_t          current;
+    ngx_uint_t          weight;
+
+    ngx_uint_t          number;
+    ngx_uint_t          last_cached;
+
+ /* ngx_mutex_t        *mutex; */
+    ngx_connection_t  **cached;
+
+    ngx_peer_t          peer[1];
+};
+
+
+typedef struct {
+    ngx_int_t     type;
+
+    ngx_peers_t  *peers;
+
+    ngx_str_t     url;
+    ngx_str_t     host;
+    ngx_str_t     host_header;
+    ngx_str_t     port;
+    ngx_str_t     uri;
+
+    in_port_t     portn;
+    in_port_t     default_portn;
+
+    unsigned      listen:1;
+    unsigned      uri_part:1;
+    unsigned      upstream:1;
+
+    unsigned      default_port:1;
+    unsigned      wildcard:1;
+
+    char         *err;
+} ngx_url_t;
+
+
+typedef struct {
     ngx_str_t     name;           /* "schema:host:port/uri" */
     ngx_str_t     url;            /* "host:port/uri" */
     ngx_str_t     host;
@@ -35,6 +99,7 @@ typedef struct {
 
     unsigned      uri_part:1;
     unsigned      port_only:1;
+    unsigned      virtual:1;
 } ngx_inet_upstream_t;
 
 
@@ -45,7 +110,10 @@ size_t ngx_inet_ntop(int family, void *a
 ngx_int_t ngx_ptocidr(ngx_str_t *text, void *cidr);
 
 ngx_peers_t *ngx_inet_upstream_parse(ngx_conf_t *cf, ngx_inet_upstream_t *u);
+ngx_peers_t *ngx_inet_resolve_peer(ngx_conf_t *cf, ngx_str_t *name,
+    in_port_t port);
 char *ngx_inet_parse_host_port(ngx_inet_upstream_t *u);
+ngx_int_t ngx_parse_url(ngx_conf_t *cf, ngx_url_t *u);
 
 
 #endif /* _NGX_INET_H_INCLUDED_ */