Mercurial > hg > nginx-mail
comparison src/core/ngx_inet.h @ 665:0b460e61bdcd default tip
Merge with nginx 1.0.0.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 25 Apr 2011 04:22:17 +0400 |
parents | c04fa65fe604 |
children |
comparison
equal
deleted
inserted
replaced
572:06419a2298a9 | 665:0b460e61bdcd |
---|---|
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) | |
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 /* | 15 /* |
23 * TODO: autoconfigure NGX_SOCKADDRLEN as | 16 * TODO: autoconfigure NGX_SOCKADDRLEN and NGX_SOCKADDR_STRLEN as |
24 * sizeof(struct sockaddr_storage) | 17 * sizeof(struct sockaddr_storage) |
25 * sizeof(struct sockaddr_un) | 18 * sizeof(struct sockaddr_un) |
26 * sizeof(struct sockaddr_in6) | 19 * sizeof(struct sockaddr_in6) |
27 * sizeof(struct sockaddr_in) | 20 * sizeof(struct sockaddr_in) |
28 */ | 21 */ |
22 | |
23 #define NGX_INET_ADDRSTRLEN (sizeof("255.255.255.255") - 1) | |
24 #define NGX_INET6_ADDRSTRLEN \ | |
25 (sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255") - 1) | |
26 #define NGX_UNIX_ADDRSTRLEN \ | |
27 (sizeof(struct sockaddr_un) - offsetof(struct sockaddr_un, sun_path)) | |
28 | |
29 #if (NGX_HAVE_UNIX_DOMAIN) | |
30 #define NGX_SOCKADDR_STRLEN (sizeof("unix:") - 1 + NGX_UNIX_ADDRSTRLEN) | |
31 #else | |
32 #define NGX_SOCKADDR_STRLEN (NGX_INET6_ADDRSTRLEN + sizeof(":65535") - 1) | |
33 #endif | |
29 | 34 |
30 #if (NGX_HAVE_UNIX_DOMAIN) | 35 #if (NGX_HAVE_UNIX_DOMAIN) |
31 #define NGX_SOCKADDRLEN sizeof(struct sockaddr_un) | 36 #define NGX_SOCKADDRLEN sizeof(struct sockaddr_un) |
32 #else | 37 #else |
33 #define NGX_SOCKADDRLEN 512 | 38 #define NGX_SOCKADDRLEN 512 |
63 | 68 |
64 typedef struct { | 69 typedef struct { |
65 struct sockaddr *sockaddr; | 70 struct sockaddr *sockaddr; |
66 socklen_t socklen; | 71 socklen_t socklen; |
67 ngx_str_t name; | 72 ngx_str_t name; |
68 } ngx_peer_addr_t; | 73 } ngx_addr_t; |
69 | 74 |
70 | 75 |
71 typedef struct { | 76 typedef struct { |
72 ngx_str_t url; | 77 ngx_str_t url; |
73 ngx_str_t host; | 78 ngx_str_t host; |
87 unsigned wildcard:1; | 92 unsigned wildcard:1; |
88 | 93 |
89 socklen_t socklen; | 94 socklen_t socklen; |
90 u_char sockaddr[NGX_SOCKADDRLEN]; | 95 u_char sockaddr[NGX_SOCKADDRLEN]; |
91 | 96 |
92 ngx_peer_addr_t *addrs; | 97 ngx_addr_t *addrs; |
93 ngx_uint_t naddrs; | 98 ngx_uint_t naddrs; |
94 | 99 |
95 char *err; | 100 char *err; |
96 } ngx_url_t; | 101 } ngx_url_t; |
97 | 102 |
98 | 103 |
99 in_addr_t ngx_inet_addr(u_char *text, size_t len); | 104 in_addr_t ngx_inet_addr(u_char *text, size_t len); |
105 #if (NGX_HAVE_INET6) | |
106 ngx_int_t ngx_inet6_addr(u_char *p, size_t len, u_char *addr); | |
107 size_t ngx_inet6_ntop(u_char *p, u_char *text, size_t len); | |
108 #endif | |
100 size_t ngx_sock_ntop(struct sockaddr *sa, u_char *text, size_t len, | 109 size_t ngx_sock_ntop(struct sockaddr *sa, u_char *text, size_t len, |
101 ngx_uint_t port); | 110 ngx_uint_t port); |
102 size_t ngx_inet_ntop(int family, void *addr, u_char *text, size_t len); | 111 size_t ngx_inet_ntop(int family, void *addr, u_char *text, size_t len); |
103 ngx_int_t ngx_ptocidr(ngx_str_t *text, ngx_cidr_t *cidr); | 112 ngx_int_t ngx_ptocidr(ngx_str_t *text, ngx_cidr_t *cidr); |
113 ngx_int_t ngx_parse_addr(ngx_pool_t *pool, ngx_addr_t *addr, u_char *text, | |
114 size_t len); | |
104 ngx_int_t ngx_parse_url(ngx_pool_t *pool, ngx_url_t *u); | 115 ngx_int_t ngx_parse_url(ngx_pool_t *pool, ngx_url_t *u); |
105 ngx_int_t ngx_inet_resolve_host(ngx_pool_t *pool, ngx_url_t *u); | 116 ngx_int_t ngx_inet_resolve_host(ngx_pool_t *pool, ngx_url_t *u); |
106 | 117 |
107 | 118 |
108 | |
109 #endif /* _NGX_INET_H_INCLUDED_ */ | 119 #endif /* _NGX_INET_H_INCLUDED_ */ |