Mercurial > hg > nginx
comparison src/mail/ngx_mail.h @ 2855:a96a8c916b0c
mail proxy listen IPv6 support
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 18 May 2009 12:20:22 +0000 |
parents | 1ab9cef4ff6c |
children | f0d596e84634 |
comparison
equal
deleted
inserted
replaced
2854:d788477f5a67 | 2855:a96a8c916b0c |
---|---|
24 void **srv_conf; | 24 void **srv_conf; |
25 } ngx_mail_conf_ctx_t; | 25 } ngx_mail_conf_ctx_t; |
26 | 26 |
27 | 27 |
28 typedef struct { | 28 typedef struct { |
29 in_addr_t addr; | 29 u_char sockaddr[NGX_SOCKADDRLEN]; |
30 in_port_t port; | 30 socklen_t socklen; |
31 int family; | |
32 | 31 |
33 /* server ctx */ | 32 /* server ctx */ |
34 ngx_mail_conf_ctx_t *ctx; | 33 ngx_mail_conf_ctx_t *ctx; |
35 | 34 |
36 unsigned bind:1; | 35 unsigned bind:1; |
36 unsigned wildcard:1; | |
37 #if (NGX_MAIL_SSL) | 37 #if (NGX_MAIL_SSL) |
38 unsigned ssl:1; | 38 unsigned ssl:1; |
39 #endif | 39 #endif |
40 #if (NGX_HAVE_INET6 && defined IPV6_V6ONLY) | |
41 unsigned ipv6only:2; | |
42 #endif | |
40 } ngx_mail_listen_t; | 43 } ngx_mail_listen_t; |
41 | 44 |
42 | 45 |
43 typedef struct { | 46 typedef struct { |
44 in_addr_t addr; | |
45 ngx_mail_conf_ctx_t *ctx; | 47 ngx_mail_conf_ctx_t *ctx; |
46 ngx_str_t addr_text; | 48 ngx_str_t addr_text; |
47 #if (NGX_MAIL_SSL) | 49 #if (NGX_MAIL_SSL) |
48 ngx_uint_t ssl; /* unsigned ssl:1; */ | 50 ngx_uint_t ssl; /* unsigned ssl:1; */ |
49 #endif | 51 #endif |
52 } ngx_mail_addr_conf_t; | |
53 | |
54 typedef struct { | |
55 in_addr_t addr; | |
56 ngx_mail_addr_conf_t conf; | |
50 } ngx_mail_in_addr_t; | 57 } ngx_mail_in_addr_t; |
51 | 58 |
52 | 59 |
53 typedef struct { | 60 #if (NGX_HAVE_INET6) |
54 ngx_mail_in_addr_t *addrs; /* array of ngx_mail_in_addr_t */ | 61 |
62 typedef struct { | |
63 struct in6_addr addr6; | |
64 ngx_mail_addr_conf_t conf; | |
65 } ngx_mail_in6_addr_t; | |
66 | |
67 #endif | |
68 | |
69 | |
70 typedef struct { | |
71 /* ngx_mail_in_addr_t or ngx_mail_in6_addr_t */ | |
72 void *addrs; | |
55 ngx_uint_t naddrs; | 73 ngx_uint_t naddrs; |
56 } ngx_mail_in_port_t; | 74 } ngx_mail_port_t; |
57 | 75 |
58 | 76 |
59 typedef struct { | 77 typedef struct { |
78 int family; | |
60 in_port_t port; | 79 in_port_t port; |
61 ngx_array_t addrs; /* array of ngx_mail_conf_in_addr_t */ | 80 ngx_array_t addrs; /* array of ngx_mail_conf_addr_t */ |
62 } ngx_mail_conf_in_port_t; | 81 } ngx_mail_conf_port_t; |
63 | 82 |
64 | 83 |
65 typedef struct { | 84 typedef struct { |
66 in_addr_t addr; | 85 struct sockaddr *sockaddr; |
86 socklen_t socklen; | |
87 | |
67 ngx_mail_conf_ctx_t *ctx; | 88 ngx_mail_conf_ctx_t *ctx; |
89 | |
68 unsigned bind:1; | 90 unsigned bind:1; |
91 unsigned wildcard:1; | |
69 #if (NGX_MAIL_SSL) | 92 #if (NGX_MAIL_SSL) |
70 unsigned ssl:1; | 93 unsigned ssl:1; |
71 #endif | 94 #endif |
72 } ngx_mail_conf_in_addr_t; | 95 #if (NGX_HAVE_INET6 && defined IPV6_V6ONLY) |
96 unsigned ipv6only:2; | |
97 #endif | |
98 } ngx_mail_conf_addr_t; | |
73 | 99 |
74 | 100 |
75 typedef struct { | 101 typedef struct { |
76 ngx_array_t servers; /* ngx_mail_core_srv_conf_t */ | 102 ngx_array_t servers; /* ngx_mail_core_srv_conf_t */ |
77 ngx_array_t listen; /* ngx_mail_listen_t */ | 103 ngx_array_t listen; /* ngx_mail_listen_t */ |