annotate src/mail/ngx_mail.h @ 434:375518f786db

Mail: don't drop connection when RCPT TO fails. Always pass reply for RCPT TO back to client and establish proxied connection. There is no real reason to close connection here.
author Maxim Dounin <mdounin@mdounin.ru>
date Wed, 10 Sep 2008 21:27:57 +0400
parents 9205084bd1f3
children d67e93e97b4a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
1
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
2 /*
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
3 * Copyright (C) Igor Sysoev
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
4 */
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
5
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
6
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
7 #ifndef _NGX_MAIL_H_INCLUDED_
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
8 #define _NGX_MAIL_H_INCLUDED_
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
9
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
10
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
11 #include <ngx_config.h>
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
12 #include <ngx_core.h>
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
13 #include <ngx_event.h>
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
14 #include <ngx_event_connect.h>
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
15
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
16 #if (NGX_MAIL_SSL)
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
17 #include <ngx_mail_ssl_module.h>
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
18 #endif
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
19
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
20
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
21
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
22 typedef struct {
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
23 void **main_conf;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
24 void **srv_conf;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
25 } ngx_mail_conf_ctx_t;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
26
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
27
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
28 typedef struct {
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
29 in_addr_t addr;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
30 in_port_t port;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
31 int family;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
32
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
33 /* server ctx */
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
34 ngx_mail_conf_ctx_t *ctx;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
35
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
36 unsigned bind:1;
426
a094317ba307 nginx 0.7.14
Igor Sysoev <http://sysoev.ru>
parents: 366
diff changeset
37 #if (NGX_MAIL_SSL)
a094317ba307 nginx 0.7.14
Igor Sysoev <http://sysoev.ru>
parents: 366
diff changeset
38 unsigned ssl:1;
a094317ba307 nginx 0.7.14
Igor Sysoev <http://sysoev.ru>
parents: 366
diff changeset
39 #endif
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
40 } ngx_mail_listen_t;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
41
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
42
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
43 typedef struct {
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
44 in_addr_t addr;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
45 ngx_mail_conf_ctx_t *ctx;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
46 ngx_str_t addr_text;
426
a094317ba307 nginx 0.7.14
Igor Sysoev <http://sysoev.ru>
parents: 366
diff changeset
47 #if (NGX_MAIL_SSL)
a094317ba307 nginx 0.7.14
Igor Sysoev <http://sysoev.ru>
parents: 366
diff changeset
48 ngx_uint_t ssl; /* unsigned ssl:1; */
a094317ba307 nginx 0.7.14
Igor Sysoev <http://sysoev.ru>
parents: 366
diff changeset
49 #endif
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
50 } ngx_mail_in_addr_t;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
51
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
52
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
53 typedef struct {
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
54 ngx_mail_in_addr_t *addrs; /* array of ngx_mail_in_addr_t */
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
55 ngx_uint_t naddrs;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
56 } ngx_mail_in_port_t;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
57
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
58
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
59 typedef struct {
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
60 in_port_t port;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
61 ngx_array_t addrs; /* array of ngx_mail_conf_in_addr_t */
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
62 } ngx_mail_conf_in_port_t;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
63
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
64
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
65 typedef struct {
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
66 in_addr_t addr;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
67 ngx_mail_conf_ctx_t *ctx;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
68 unsigned bind:1;
426
a094317ba307 nginx 0.7.14
Igor Sysoev <http://sysoev.ru>
parents: 366
diff changeset
69 #if (NGX_MAIL_SSL)
a094317ba307 nginx 0.7.14
Igor Sysoev <http://sysoev.ru>
parents: 366
diff changeset
70 unsigned ssl:1;
a094317ba307 nginx 0.7.14
Igor Sysoev <http://sysoev.ru>
parents: 366
diff changeset
71 #endif
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
72 } ngx_mail_conf_in_addr_t;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
73
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
74
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
75 typedef struct {
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
76 ngx_array_t servers; /* ngx_mail_core_srv_conf_t */
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
77 ngx_array_t listen; /* ngx_mail_listen_t */
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
78 } ngx_mail_core_main_conf_t;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
79
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
80
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
81 #define NGX_MAIL_POP3_PROTOCOL 0
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
82 #define NGX_MAIL_IMAP_PROTOCOL 1
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
83 #define NGX_MAIL_SMTP_PROTOCOL 2
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
84
336
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
85
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
86 typedef struct ngx_mail_protocol_s ngx_mail_protocol_t;
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
87
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
88
336
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
89 typedef struct {
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
90 ngx_mail_protocol_t *protocol;
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
91
336
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
92 ngx_msec_t timeout;
366
babd3d9efb62 nginx 0.6.27
Igor Sysoev <http://sysoev.ru>
parents: 354
diff changeset
93 ngx_msec_t resolver_timeout;
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
94
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
95 ngx_flag_t so_keepalive;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
96
336
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
97 ngx_str_t server_name;
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
98
336
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
99 u_char *file_name;
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
100 ngx_int_t line;
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
101
366
babd3d9efb62 nginx 0.6.27
Igor Sysoev <http://sysoev.ru>
parents: 354
diff changeset
102 ngx_resolver_t *resolver;
babd3d9efb62 nginx 0.6.27
Igor Sysoev <http://sysoev.ru>
parents: 354
diff changeset
103
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
104 /* server ctx */
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
105 ngx_mail_conf_ctx_t *ctx;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
106 } ngx_mail_core_srv_conf_t;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
107
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
108
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
109 typedef enum {
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
110 ngx_pop3_start = 0,
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
111 ngx_pop3_user,
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
112 ngx_pop3_passwd,
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
113 ngx_pop3_auth_login_username,
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
114 ngx_pop3_auth_login_password,
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
115 ngx_pop3_auth_plain,
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
116 ngx_pop3_auth_cram_md5
354
583decdb82a4 nginx 0.6.21
Igor Sysoev <http://sysoev.ru>
parents: 336
diff changeset
117 } ngx_pop3_state_e;
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
118
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
119
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
120 typedef enum {
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
121 ngx_imap_start = 0,
322
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
122 ngx_imap_auth_login_username,
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
123 ngx_imap_auth_login_password,
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
124 ngx_imap_auth_plain,
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
125 ngx_imap_auth_cram_md5,
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
126 ngx_imap_login,
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
127 ngx_imap_user,
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
128 ngx_imap_passwd
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
129 } ngx_imap_state_e;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
130
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
131
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
132 typedef enum {
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
133 ngx_smtp_start = 0,
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
134 ngx_smtp_auth_login_username,
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
135 ngx_smtp_auth_login_password,
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
136 ngx_smtp_auth_plain,
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
137 ngx_smtp_auth_cram_md5,
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
138 ngx_smtp_helo,
404
481e8f936572 Mail: rename "unauth" to "none".
Maxim Dounin <mdounin@mdounin.ru>
parents: 403
diff changeset
139 ngx_smtp_helo_xclient,
481e8f936572 Mail: rename "unauth" to "none".
Maxim Dounin <mdounin@mdounin.ru>
parents: 403
diff changeset
140 ngx_smtp_helo_from,
481e8f936572 Mail: rename "unauth" to "none".
Maxim Dounin <mdounin@mdounin.ru>
parents: 403
diff changeset
141 ngx_smtp_xclient,
481e8f936572 Mail: rename "unauth" to "none".
Maxim Dounin <mdounin@mdounin.ru>
parents: 403
diff changeset
142 ngx_smtp_xclient_from,
481e8f936572 Mail: rename "unauth" to "none".
Maxim Dounin <mdounin@mdounin.ru>
parents: 403
diff changeset
143 ngx_smtp_from,
481e8f936572 Mail: rename "unauth" to "none".
Maxim Dounin <mdounin@mdounin.ru>
parents: 403
diff changeset
144 ngx_smtp_to
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
145 } ngx_smtp_state_e;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
146
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
147
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
148 typedef struct {
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
149 ngx_peer_connection_t upstream;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
150 ngx_buf_t *buffer;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
151 } ngx_mail_proxy_ctx_t;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
152
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
153
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
154 typedef struct {
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
155 uint32_t signature; /* "MAIL" */
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
156
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
157 ngx_connection_t *connection;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
158
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
159 ngx_str_t out;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
160 ngx_buf_t *buffer;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
161
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
162 void **ctx;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
163 void **main_conf;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
164 void **srv_conf;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
165
366
babd3d9efb62 nginx 0.6.27
Igor Sysoev <http://sysoev.ru>
parents: 354
diff changeset
166 ngx_resolver_ctx_t *resolver_ctx;
babd3d9efb62 nginx 0.6.27
Igor Sysoev <http://sysoev.ru>
parents: 354
diff changeset
167
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
168 ngx_mail_proxy_ctx_t *proxy;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
169
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
170 ngx_uint_t mail_state;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
171
336
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
172 unsigned protocol:3;
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
173 unsigned blocked:1;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
174 unsigned quit:1;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
175 unsigned quoted:1;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
176 unsigned backslash:1;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
177 unsigned no_sync_literal:1;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
178 unsigned starttls:1;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
179 unsigned esmtp:1;
404
481e8f936572 Mail: rename "unauth" to "none".
Maxim Dounin <mdounin@mdounin.ru>
parents: 403
diff changeset
180 unsigned auth_method:3;
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
181 unsigned auth_wait:1;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
182
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
183 ngx_str_t login;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
184 ngx_str_t passwd;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
185
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
186 ngx_str_t salt;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
187 ngx_str_t tag;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
188 ngx_str_t tagged_line;
336
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
189 ngx_str_t text;
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
190
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
191 ngx_str_t *addr_text;
366
babd3d9efb62 nginx 0.6.27
Igor Sysoev <http://sysoev.ru>
parents: 354
diff changeset
192 ngx_str_t host;
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
193 ngx_str_t smtp_helo;
404
481e8f936572 Mail: rename "unauth" to "none".
Maxim Dounin <mdounin@mdounin.ru>
parents: 403
diff changeset
194 ngx_str_t smtp_from;
481e8f936572 Mail: rename "unauth" to "none".
Maxim Dounin <mdounin@mdounin.ru>
parents: 403
diff changeset
195 ngx_str_t smtp_to;
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
196
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
197 ngx_uint_t command;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
198 ngx_array_t args;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
199
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
200 ngx_uint_t login_attempt;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
201
336
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
202 /* used to parse POP3/IMAP/SMTP command */
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
203
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
204 ngx_uint_t state;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
205 u_char *cmd_start;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
206 u_char *arg_start;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
207 u_char *arg_end;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
208 ngx_uint_t literal_len;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
209 } ngx_mail_session_t;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
210
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
211
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
212 typedef struct {
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
213 ngx_str_t *client;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
214 ngx_mail_session_t *session;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
215 } ngx_mail_log_ctx_t;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
216
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
217
322
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
218 #define NGX_POP3_USER 1
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
219 #define NGX_POP3_PASS 2
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
220 #define NGX_POP3_CAPA 3
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
221 #define NGX_POP3_QUIT 4
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
222 #define NGX_POP3_NOOP 5
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
223 #define NGX_POP3_STLS 6
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
224 #define NGX_POP3_APOP 7
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
225 #define NGX_POP3_AUTH 8
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
226 #define NGX_POP3_STAT 9
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
227 #define NGX_POP3_LIST 10
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
228 #define NGX_POP3_RETR 11
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
229 #define NGX_POP3_DELE 12
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
230 #define NGX_POP3_RSET 13
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
231 #define NGX_POP3_TOP 14
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
232 #define NGX_POP3_UIDL 15
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
233
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
234
322
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
235 #define NGX_IMAP_LOGIN 1
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
236 #define NGX_IMAP_LOGOUT 2
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
237 #define NGX_IMAP_CAPABILITY 3
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
238 #define NGX_IMAP_NOOP 4
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
239 #define NGX_IMAP_STARTTLS 5
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
240
322
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
241 #define NGX_IMAP_NEXT 6
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
242
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
243 #define NGX_IMAP_AUTHENTICATE 7
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
244
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
245
322
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
246 #define NGX_SMTP_HELO 1
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
247 #define NGX_SMTP_EHLO 2
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
248 #define NGX_SMTP_AUTH 3
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
249 #define NGX_SMTP_QUIT 4
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
250 #define NGX_SMTP_NOOP 5
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
251 #define NGX_SMTP_MAIL 6
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
252 #define NGX_SMTP_RSET 7
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
253 #define NGX_SMTP_RCPT 8
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
254 #define NGX_SMTP_DATA 9
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
255 #define NGX_SMTP_VRFY 10
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
256 #define NGX_SMTP_EXPN 11
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
257 #define NGX_SMTP_HELP 12
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
258 #define NGX_SMTP_STARTTLS 13
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
259
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
260
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
261 #define NGX_MAIL_AUTH_PLAIN 0
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
262 #define NGX_MAIL_AUTH_LOGIN 1
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
263 #define NGX_MAIL_AUTH_APOP 2
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
264 #define NGX_MAIL_AUTH_CRAM_MD5 3
404
481e8f936572 Mail: rename "unauth" to "none".
Maxim Dounin <mdounin@mdounin.ru>
parents: 403
diff changeset
265 #define NGX_MAIL_AUTH_NONE 4
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
266
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
267
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
268 #define NGX_MAIL_AUTH_PLAIN_ENABLED 0x0002
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
269 #define NGX_MAIL_AUTH_LOGIN_ENABLED 0x0004
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
270 #define NGX_MAIL_AUTH_APOP_ENABLED 0x0008
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
271 #define NGX_MAIL_AUTH_CRAM_MD5_ENABLED 0x0010
404
481e8f936572 Mail: rename "unauth" to "none".
Maxim Dounin <mdounin@mdounin.ru>
parents: 403
diff changeset
272 #define NGX_MAIL_AUTH_NONE_ENABLED 0x0020
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
273
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
274
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
275 #define NGX_MAIL_PARSE_INVALID_COMMAND 20
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
276
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
277
336
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
278 typedef void (*ngx_mail_init_session_pt)(ngx_mail_session_t *s,
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
279 ngx_connection_t *c);
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
280 typedef void (*ngx_mail_init_protocol_pt)(ngx_event_t *rev);
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
281 typedef void (*ngx_mail_auth_state_pt)(ngx_event_t *rev);
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
282 typedef ngx_int_t (*ngx_mail_parse_command_pt)(ngx_mail_session_t *s);
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
283
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
284
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
285 struct ngx_mail_protocol_s {
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
286 ngx_str_t name;
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
287 in_port_t port[4];
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
288 ngx_uint_t type;
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
289
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
290 ngx_mail_init_session_pt init_session;
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
291 ngx_mail_init_protocol_pt init_protocol;
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
292 ngx_mail_parse_command_pt parse_command;
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
293 ngx_mail_auth_state_pt auth_state;
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
294
336
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
295 ngx_str_t internal_server_error;
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
296 };
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
297
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
298
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
299 typedef struct {
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
300 ngx_mail_protocol_t *protocol;
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
301
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
302 void *(*create_main_conf)(ngx_conf_t *cf);
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
303 char *(*init_main_conf)(ngx_conf_t *cf, void *conf);
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
304
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
305 void *(*create_srv_conf)(ngx_conf_t *cf);
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
306 char *(*merge_srv_conf)(ngx_conf_t *cf, void *prev,
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
307 void *conf);
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
308 } ngx_mail_module_t;
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
309
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
310
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
311 #define NGX_MAIL_MODULE 0x4C49414D /* "MAIL" */
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
312
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
313 #define NGX_MAIL_MAIN_CONF 0x02000000
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
314 #define NGX_MAIL_SRV_CONF 0x04000000
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
315
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
316
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
317 #define NGX_MAIL_MAIN_CONF_OFFSET offsetof(ngx_mail_conf_ctx_t, main_conf)
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
318 #define NGX_MAIL_SRV_CONF_OFFSET offsetof(ngx_mail_conf_ctx_t, srv_conf)
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
319
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
320
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
321 #define ngx_mail_get_module_ctx(s, module) (s)->ctx[module.ctx_index]
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
322 #define ngx_mail_set_ctx(s, c, module) s->ctx[module.ctx_index] = c;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
323 #define ngx_mail_delete_ctx(s, module) s->ctx[module.ctx_index] = NULL;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
324
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
325
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
326 #define ngx_mail_get_module_main_conf(s, module) \
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
327 (s)->main_conf[module.ctx_index]
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
328 #define ngx_mail_get_module_srv_conf(s, module) (s)->srv_conf[module.ctx_index]
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
329
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
330 #define ngx_mail_conf_get_module_main_conf(cf, module) \
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
331 ((ngx_mail_conf_ctx_t *) cf->ctx)->main_conf[module.ctx_index]
322
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
332 #define ngx_mail_conf_get_module_srv_conf(cf, module) \
d16d691432c9 nginx 0.6.5
Igor Sysoev <http://sysoev.ru>
parents: 290
diff changeset
333 ((ngx_mail_conf_ctx_t *) cf->ctx)->srv_conf[module.ctx_index]
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
334
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
335
336
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
336 #if (NGX_MAIL_SSL)
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
337 void ngx_mail_starttls_handler(ngx_event_t *rev);
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
338 ngx_int_t ngx_mail_starttls_only(ngx_mail_session_t *s, ngx_connection_t *c);
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
339 #endif
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
340
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
341
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
342 void ngx_mail_init_connection(ngx_connection_t *c);
336
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
343
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
344 ngx_int_t ngx_mail_salt(ngx_mail_session_t *s, ngx_connection_t *c,
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
345 ngx_mail_core_srv_conf_t *cscf);
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
346 ngx_int_t ngx_mail_auth_plain(ngx_mail_session_t *s, ngx_connection_t *c,
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
347 ngx_uint_t n);
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
348 ngx_int_t ngx_mail_auth_login_username(ngx_mail_session_t *s,
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
349 ngx_connection_t *c);
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
350 ngx_int_t ngx_mail_auth_login_password(ngx_mail_session_t *s,
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
351 ngx_connection_t *c);
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
352 ngx_int_t ngx_mail_auth_cram_md5_salt(ngx_mail_session_t *s,
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
353 ngx_connection_t *c, char *prefix, size_t len);
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
354 ngx_int_t ngx_mail_auth_cram_md5(ngx_mail_session_t *s, ngx_connection_t *c);
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
355 ngx_int_t ngx_mail_auth_parse(ngx_mail_session_t *s, ngx_connection_t *c);
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
356
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
357 void ngx_mail_send(ngx_event_t *wev);
336
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
358 ngx_int_t ngx_mail_read_command(ngx_mail_session_t *s, ngx_connection_t *c);
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
359 void ngx_mail_auth(ngx_mail_session_t *s, ngx_connection_t *c);
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
360 void ngx_mail_close_connection(ngx_connection_t *c);
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
361 void ngx_mail_session_internal_server_error(ngx_mail_session_t *s);
336
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
362 u_char *ngx_mail_log_error(ngx_log_t *log, u_char *buf, size_t len);
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
363
336
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
364
1c519aff5c0c nginx 0.6.12
Igor Sysoev <http://sysoev.ru>
parents: 322
diff changeset
365 char *ngx_mail_capabilities(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
366
404
481e8f936572 Mail: rename "unauth" to "none".
Maxim Dounin <mdounin@mdounin.ru>
parents: 403
diff changeset
367 #if (NGX_MAIL_SSL)
481e8f936572 Mail: rename "unauth" to "none".
Maxim Dounin <mdounin@mdounin.ru>
parents: 403
diff changeset
368 void ngx_mail_starttls_handler(ngx_event_t *rev);
481e8f936572 Mail: rename "unauth" to "none".
Maxim Dounin <mdounin@mdounin.ru>
parents: 403
diff changeset
369 #endif
290
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
370
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
371 /* STUB */
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
372 void ngx_mail_proxy_init(ngx_mail_session_t *s, ngx_peer_addr_t *peer);
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
373 void ngx_mail_auth_http_init(ngx_mail_session_t *s);
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
374 /**/
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
375
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
376
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
377 extern ngx_uint_t ngx_mail_max_module;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
378 extern ngx_module_t ngx_mail_core_module;
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
379
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
380
f745bf973510 nginx 0.5.15
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
381 #endif /* _NGX_MAIL_H_INCLUDED_ */