Mercurial > hg > nginx
comparison src/mail/ngx_mail_core_module.c @ 7844:ec1071830799
Mail: max_errors directive.
Similarly to smtpd_hard_error_limit in Postfix and smtp_max_unknown_commands
in Exim, specifies the number of errors after which the connection is closed.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Wed, 19 May 2021 03:13:31 +0300 |
parents | 12ea1de7d87c |
children | 4cc2bfeff46c |
comparison
equal
deleted
inserted
replaced
7843:b38728495e1a | 7844:ec1071830799 |
---|---|
83 ngx_conf_set_msec_slot, | 83 ngx_conf_set_msec_slot, |
84 NGX_MAIL_SRV_CONF_OFFSET, | 84 NGX_MAIL_SRV_CONF_OFFSET, |
85 offsetof(ngx_mail_core_srv_conf_t, resolver_timeout), | 85 offsetof(ngx_mail_core_srv_conf_t, resolver_timeout), |
86 NULL }, | 86 NULL }, |
87 | 87 |
88 { ngx_string("max_errors"), | |
89 NGX_MAIL_MAIN_CONF|NGX_MAIL_SRV_CONF|NGX_CONF_TAKE1, | |
90 ngx_conf_set_num_slot, | |
91 NGX_MAIL_SRV_CONF_OFFSET, | |
92 offsetof(ngx_mail_core_srv_conf_t, max_errors), | |
93 NULL }, | |
94 | |
88 ngx_null_command | 95 ngx_null_command |
89 }; | 96 }; |
90 | 97 |
91 | 98 |
92 static ngx_mail_module_t ngx_mail_core_module_ctx = { | 99 static ngx_mail_module_t ngx_mail_core_module_ctx = { |
161 */ | 168 */ |
162 | 169 |
163 cscf->timeout = NGX_CONF_UNSET_MSEC; | 170 cscf->timeout = NGX_CONF_UNSET_MSEC; |
164 cscf->resolver_timeout = NGX_CONF_UNSET_MSEC; | 171 cscf->resolver_timeout = NGX_CONF_UNSET_MSEC; |
165 | 172 |
173 cscf->max_errors = NGX_CONF_UNSET_UINT; | |
174 | |
166 cscf->resolver = NGX_CONF_UNSET_PTR; | 175 cscf->resolver = NGX_CONF_UNSET_PTR; |
167 | 176 |
168 cscf->file_name = cf->conf_file->file.name.data; | 177 cscf->file_name = cf->conf_file->file.name.data; |
169 cscf->line = cf->conf_file->line; | 178 cscf->line = cf->conf_file->line; |
170 | 179 |
180 | 189 |
181 ngx_conf_merge_msec_value(conf->timeout, prev->timeout, 60000); | 190 ngx_conf_merge_msec_value(conf->timeout, prev->timeout, 60000); |
182 ngx_conf_merge_msec_value(conf->resolver_timeout, prev->resolver_timeout, | 191 ngx_conf_merge_msec_value(conf->resolver_timeout, prev->resolver_timeout, |
183 30000); | 192 30000); |
184 | 193 |
194 ngx_conf_merge_uint_value(conf->max_errors, prev->max_errors, 5); | |
185 | 195 |
186 ngx_conf_merge_str_value(conf->server_name, prev->server_name, ""); | 196 ngx_conf_merge_str_value(conf->server_name, prev->server_name, ""); |
187 | 197 |
188 if (conf->server_name.len == 0) { | 198 if (conf->server_name.len == 0) { |
189 conf->server_name = cf->cycle->hostname; | 199 conf->server_name = cf->cycle->hostname; |