comparison src/imap/ngx_imap.h @ 641:5e8fb59c18c1 release-0.3.42

nginx-0.3.42-RELEASE import *) Feature: the "bind" option of the "listen" directive in IMAP/POP3 proxy. *) Bugfix: if the same capture in the "rewrite" directive was used more then once. *) Bugfix: the $sent_http_content_type, $sent_http_content_length, $sent_http_last_modified, $sent_http_connection, $sent_http_keep_alive, and $sent_http_transfer_encoding variables were not written to access log. *) Bugfix: the $sent_http_cache_control returned value of the single "Cache-Control" response header line.
author Igor Sysoev <igor@sysoev.ru>
date Wed, 26 Apr 2006 09:52:47 +0000
parents 284cc140593b
children 6d5c1535bb9d
comparison
equal deleted inserted replaced
640:5fd31c2fe4a8 641:5e8fb59c18c1
24 void **srv_conf; 24 void **srv_conf;
25 } ngx_imap_conf_ctx_t; 25 } ngx_imap_conf_ctx_t;
26 26
27 27
28 typedef struct { 28 typedef struct {
29 ngx_array_t servers; /* ngx_imap_core_srv_conf_t */ 29 in_addr_t addr;
30 in_port_t port;
31 int family;
32
33 /* server ctx */
34 ngx_imap_conf_ctx_t *ctx;
35
36 unsigned bind:1;
37 } ngx_imap_listen_t;
38
39
40 typedef struct {
41 in_addr_t addr;
42 ngx_imap_conf_ctx_t *ctx;
43 ngx_str_t addr_text;
44 } ngx_imap_in_addr_t;
45
46
47 typedef struct {
48 ngx_imap_in_addr_t *addrs; /* array of ngx_imap_in_addr_t */
49 ngx_uint_t naddrs;
50 } ngx_imap_in_port_t;
51
52
53 typedef struct {
54 in_port_t port;
55 ngx_array_t addrs; /* array of ngx_imap_conf_in_addr_t */
56 } ngx_imap_conf_in_port_t;
57
58
59 typedef struct {
60 in_addr_t addr;
61 ngx_imap_conf_ctx_t *ctx;
62 unsigned bind:1;
63 } ngx_imap_conf_in_addr_t;
64
65
66 typedef struct {
67 ngx_array_t servers; /* ngx_imap_core_srv_conf_t */
68 ngx_array_t listen; /* ngx_imap_listen_t */
30 } ngx_imap_core_main_conf_t; 69 } ngx_imap_core_main_conf_t;
31 70
32 71
33 #define NGX_IMAP_POP3_PROTOCOL 0 72 #define NGX_IMAP_POP3_PROTOCOL 0
34 #define NGX_IMAP_IMAP_PROTOCOL 1 73 #define NGX_IMAP_IMAP_PROTOCOL 1
50 89
51 ngx_array_t pop3_capabilities; 90 ngx_array_t pop3_capabilities;
52 ngx_array_t imap_capabilities; 91 ngx_array_t imap_capabilities;
53 92
54 /* server ctx */ 93 /* server ctx */
55 ngx_imap_conf_ctx_t *ctx; 94 ngx_imap_conf_ctx_t *ctx;
56 } ngx_imap_core_srv_conf_t; 95 } ngx_imap_core_srv_conf_t;
57 96
58 97
59 typedef struct { 98 typedef struct {
60 void *(*create_main_conf)(ngx_conf_t *cf); 99 void *(*create_main_conf)(ngx_conf_t *cf);
107 unsigned quit:1; 146 unsigned quit:1;
108 unsigned protocol:1; 147 unsigned protocol:1;
109 unsigned quoted:1; 148 unsigned quoted:1;
110 unsigned backslash:1; 149 unsigned backslash:1;
111 unsigned no_sync_literal:1; 150 unsigned no_sync_literal:1;
151 unsigned starttls:1;
112 152
113 ngx_str_t login; 153 ngx_str_t login;
114 ngx_str_t passwd; 154 ngx_str_t passwd;
115 155
116 ngx_str_t tag; 156 ngx_str_t tag;
117 ngx_str_t tagged_line; 157 ngx_str_t tagged_line;
158
159 ngx_str_t *addr_text;
118 160
119 ngx_uint_t command; 161 ngx_uint_t command;
120 ngx_array_t args; 162 ngx_array_t args;
121 163
122 ngx_uint_t login_attempt; 164 ngx_uint_t login_attempt;
182 224
183 #define ngx_imap_get_module_main_conf(s, module) \ 225 #define ngx_imap_get_module_main_conf(s, module) \
184 (s)->main_conf[module.ctx_index] 226 (s)->main_conf[module.ctx_index]
185 #define ngx_imap_get_module_srv_conf(s, module) (s)->srv_conf[module.ctx_index] 227 #define ngx_imap_get_module_srv_conf(s, module) (s)->srv_conf[module.ctx_index]
186 228
229 #define ngx_imap_conf_get_module_main_conf(cf, module) \
230 ((ngx_imap_conf_ctx_t *) cf->ctx)->main_conf[module.ctx_index]
231
187 232
188 void ngx_imap_init_connection(ngx_connection_t *c); 233 void ngx_imap_init_connection(ngx_connection_t *c);
189 void ngx_imap_send(ngx_event_t *wev); 234 void ngx_imap_send(ngx_event_t *wev);
190 void ngx_imap_auth_state(ngx_event_t *rev); 235 void ngx_imap_auth_state(ngx_event_t *rev);
191 void ngx_pop3_auth_state(ngx_event_t *rev); 236 void ngx_pop3_auth_state(ngx_event_t *rev);