comparison src/core/ngx_inet.h @ 448: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
comparison
equal deleted inserted replaced
447:40964c811e59 448:76a79816b771
10 10
11 #include <ngx_config.h> 11 #include <ngx_config.h>
12 #include <ngx_core.h> 12 #include <ngx_core.h>
13 13
14 14
15 #define NGX_INET_ADDRSTRLEN (sizeof("255.255.255.255") - 1) 15 #define NGX_INET_ADDRSTRLEN (sizeof("255.255.255.255") - 1)
16 #define NGX_INET6_ADDRSTRLEN \
17 (sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255") - 1)
18
19 #define NGX_SOCKADDR_STRLEN (NGX_INET6_ADDRSTRLEN + sizeof(":65535") - 1)
20
21
22 /*
23 * TODO: autoconfigure NGX_SOCKADDRLEN as
24 * sizeof(struct sockaddr_storage)
25 * sizeof(struct sockaddr_in6)
26 * sizeof(struct sockaddr_in)
27 */
28
29 #if (NGX_HAVE_INET6)
30 #define NGX_SOCKADDRLEN sizeof(struct sockaddr_in6)
31 #else
32 #define NGX_SOCKADDRLEN sizeof(struct sockaddr_in)
33 #endif
16 34
17 35
18 typedef struct { 36 typedef struct {
19 in_addr_t addr; 37 in_addr_t addr;
20 in_addr_t mask; 38 in_addr_t mask;
47 unsigned uri_part:1; 65 unsigned uri_part:1;
48 unsigned no_resolve:1; 66 unsigned no_resolve:1;
49 unsigned one_addr:1; 67 unsigned one_addr:1;
50 68
51 unsigned no_port:1; 69 unsigned no_port:1;
70 unsigned wildcard:1;
52 71
53 ngx_url_addr_t addr; 72 ngx_url_addr_t addr;
73
74 socklen_t socklen;
75 u_char sockaddr[NGX_SOCKADDRLEN];
54 76
55 ngx_peer_addr_t *addrs; 77 ngx_peer_addr_t *addrs;
56 ngx_uint_t naddrs; 78 ngx_uint_t naddrs;
57 79
58 char *err; 80 char *err;
59 } ngx_url_t; 81 } ngx_url_t;
60 82
61 83
62 in_addr_t ngx_inet_addr(u_char *text, size_t len); 84 in_addr_t ngx_inet_addr(u_char *text, size_t len);
63 size_t ngx_sock_ntop(struct sockaddr *sa, u_char *text, size_t len); 85 size_t ngx_sock_ntop(struct sockaddr *sa, u_char *text, size_t len,
86 ngx_uint_t port);
64 size_t ngx_inet_ntop(int family, void *addr, u_char *text, size_t len); 87 size_t ngx_inet_ntop(int family, void *addr, u_char *text, size_t len);
65 ngx_int_t ngx_ptocidr(ngx_str_t *text, void *cidr); 88 ngx_int_t ngx_ptocidr(ngx_str_t *text, void *cidr);
66 ngx_int_t ngx_parse_url(ngx_pool_t *pool, ngx_url_t *u); 89 ngx_int_t ngx_parse_url(ngx_pool_t *pool, ngx_url_t *u);
67 ngx_int_t ngx_inet_resolve_host(ngx_pool_t *pool, ngx_url_t *u); 90 ngx_int_t ngx_inet_resolve_host(ngx_pool_t *pool, ngx_url_t *u);
68 91