Mercurial > hg > nginx-quic
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 |