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;