comparison src/core/ngx_inet.h @ 2512:2e91aecb9e57

a prelimiary IPv6 support, HTTP listen
author Igor Sysoev <igor@sysoev.ru>
date Sat, 21 Feb 2009 07:02:02 +0000
parents 8e5bf1bc87e2
children 119ab57ffaa1
comparison
equal deleted inserted replaced
2511:f91c5c964e61 2512:2e91aecb9e57
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