Mercurial > hg > nginx-mail
diff src/core/ngx_inet.h @ 487:76a79816b771 NGINX_0_7_36
nginx 0.7.36
*) Feature: a preliminary IPv6 support; the "listen" directive of the
HTTP module supports IPv6.
*) Bugfix: the $ancient_browser variable did not work for browsers
preset by a "modern_browser" directives.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Sat, 21 Feb 2009 00:00:00 +0300 |
parents | 6ebbca3d5ed7 |
children | fc5ebf0e5f98 |
line wrap: on
line diff
--- a/src/core/ngx_inet.h +++ b/src/core/ngx_inet.h @@ -12,7 +12,25 @@ #include <ngx_core.h> -#define NGX_INET_ADDRSTRLEN (sizeof("255.255.255.255") - 1) +#define NGX_INET_ADDRSTRLEN (sizeof("255.255.255.255") - 1) +#define NGX_INET6_ADDRSTRLEN \ + (sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255") - 1) + +#define NGX_SOCKADDR_STRLEN (NGX_INET6_ADDRSTRLEN + sizeof(":65535") - 1) + + +/* + * TODO: autoconfigure NGX_SOCKADDRLEN as + * sizeof(struct sockaddr_storage) + * sizeof(struct sockaddr_in6) + * sizeof(struct sockaddr_in) + */ + +#if (NGX_HAVE_INET6) +#define NGX_SOCKADDRLEN sizeof(struct sockaddr_in6) +#else +#define NGX_SOCKADDRLEN sizeof(struct sockaddr_in) +#endif typedef struct { @@ -49,9 +67,13 @@ typedef struct { unsigned one_addr:1; unsigned no_port:1; + unsigned wildcard:1; ngx_url_addr_t addr; + socklen_t socklen; + u_char sockaddr[NGX_SOCKADDRLEN]; + ngx_peer_addr_t *addrs; ngx_uint_t naddrs; @@ -60,7 +82,8 @@ typedef struct { 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); +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_parse_url(ngx_pool_t *pool, ngx_url_t *u);