diff options
author | Igor Sysoev <igor@sysoev.ru> | 2009-02-24 14:01:40 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2009-02-24 14:01:40 +0000 |
commit | 36860101ec7a3de1d337ecb6f8f3e2bfd0fb63cb (patch) | |
tree | 51e1a9c70379dc2ba60ad3638d4cecfdde21a7e5 /src/core/ngx_inet.h | |
parent | 1f4220ee869152938d9140c471c37be628532344 (diff) | |
download | nginx-36860101ec7a3de1d337ecb6f8f3e2bfd0fb63cb.tar.gz nginx-36860101ec7a3de1d337ecb6f8f3e2bfd0fb63cb.zip |
prepare ngx_ptocidr() for IPv6
Diffstat (limited to 'src/core/ngx_inet.h')
-rw-r--r-- | src/core/ngx_inet.h | 75 |
1 files changed, 48 insertions, 27 deletions
diff --git a/src/core/ngx_inet.h b/src/core/ngx_inet.h index 20d9844dc..482b0e475 100644 --- a/src/core/ngx_inet.h +++ b/src/core/ngx_inet.h @@ -35,50 +35,71 @@ typedef struct { - in_addr_t addr; - in_addr_t mask; -} ngx_inet_cidr_t; + struct in6_addr addr; + struct in6_addr mask; +} ngx_in6_cidr_t; + + +#if (NGX_HAVE_INET6) + +typedef struct { + in_addr_t addr; + in_addr_t mask; +} ngx_in_cidr_t; + +#endif + + +typedef struct { + ngx_uint_t family; + union { + ngx_in_cidr_t in; +#if (NGX_HAVE_INET6) + ngx_in6_cidr_t in6; +#endif + } u; +} ngx_cidr_t; typedef union { - in_addr_t in_addr; + in_addr_t in_addr; } ngx_url_addr_t; typedef struct { - struct sockaddr *sockaddr; - socklen_t socklen; - ngx_str_t name; + struct sockaddr *sockaddr; + socklen_t socklen; + ngx_str_t name; } ngx_peer_addr_t; typedef struct { - ngx_str_t url; - ngx_str_t host; - ngx_str_t port_text; - ngx_str_t uri; + ngx_str_t url; + ngx_str_t host; + ngx_str_t port_text; + ngx_str_t uri; - in_port_t port; - in_port_t default_port; - int family; + in_port_t port; + in_port_t default_port; + int family; - unsigned listen:1; - unsigned uri_part:1; - unsigned no_resolve:1; - unsigned one_addr:1; + unsigned listen:1; + unsigned uri_part:1; + unsigned no_resolve:1; + unsigned one_addr:1; - unsigned no_port:1; - unsigned wildcard:1; + unsigned no_port:1; + unsigned wildcard:1; - ngx_url_addr_t addr; + ngx_url_addr_t addr; - socklen_t socklen; - u_char sockaddr[NGX_SOCKADDRLEN]; + socklen_t socklen; + u_char sockaddr[NGX_SOCKADDRLEN]; - ngx_peer_addr_t *addrs; - ngx_uint_t naddrs; + ngx_peer_addr_t *addrs; + ngx_uint_t naddrs; - char *err; + char *err; } ngx_url_t; @@ -86,7 +107,7 @@ in_addr_t ngx_inet_addr(u_char *text, size_t len); size_t ngx_sock_ntop(struct sockaddr *sa, u_char *text, size_t len, ngx_uint_t port); size_t ngx_inet_ntop(int family, void *addr, u_char *text, size_t len); -ngx_int_t ngx_ptocidr(ngx_str_t *text, void *cidr); +ngx_int_t ngx_ptocidr(ngx_str_t *text, ngx_cidr_t *cidr); ngx_int_t ngx_parse_url(ngx_pool_t *pool, ngx_url_t *u); ngx_int_t ngx_inet_resolve_host(ngx_pool_t *pool, ngx_url_t *u); |