comparison src/mail/ngx_mail.h @ 492:98143f74eb3d NGINX_0_7_58

nginx 0.7.58 *) Feature: a "listen" directive of the mail proxy module supports IPv6. *) Feature: the "image_filter_jpeg_quality" directive. *) Feature: the "client_body_in_single_buffer" directive. *) Feature: the $request_body variable. *) Bugfix: in ngx_http_autoindex_module in file name links having a ":" symbol in the name. *) Bugfix: "make upgrade" procedure did not work; the bug had appeared in 0.7.53. Thanks to Denis F. Latypoff.
author Igor Sysoev <http://sysoev.ru>
date Mon, 18 May 2009 00:00:00 +0400
parents 33394d1255b0
children c04fa65fe604
comparison
equal deleted inserted replaced
491:bb2281a3edb6 492:98143f74eb3d
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 */