void *conf);
-static ngx_conf_deprecated_t ngx_conf_deprecated_so_keepalive = {
- ngx_conf_deprecated, "so_keepalive",
- "so_keepalive\" parameter of the \"listen"
-};
-
-
static ngx_command_t ngx_mail_core_commands[] = {
{ ngx_string("server"),
0,
NULL },
- { ngx_string("so_keepalive"),
- NGX_MAIL_MAIN_CONF|NGX_MAIL_SRV_CONF|NGX_CONF_FLAG,
- ngx_conf_set_flag_slot,
- NGX_MAIL_SRV_CONF_OFFSET,
- offsetof(ngx_mail_core_srv_conf_t, so_keepalive),
- &ngx_conf_deprecated_so_keepalive },
-
{ ngx_string("timeout"),
NGX_MAIL_MAIN_CONF|NGX_MAIL_SRV_CONF|NGX_CONF_TAKE1,
ngx_conf_set_msec_slot,
cscf->timeout = NGX_CONF_UNSET_MSEC;
cscf->resolver_timeout = NGX_CONF_UNSET_MSEC;
- cscf->so_keepalive = NGX_CONF_UNSET;
cscf->resolver = NGX_CONF_UNSET_PTR;
ngx_conf_merge_msec_value(conf->resolver_timeout, prev->resolver_timeout,
30000);
- ngx_conf_merge_value(conf->so_keepalive, prev->so_keepalive, 0);
-
ngx_conf_merge_str_value(conf->server_name, prev->server_name, "");
void
ngx_mail_proxy_init(ngx_mail_session_t *s, ngx_addr_t *peer)
{
- int keepalive;
ngx_int_t rc;
ngx_mail_proxy_ctx_t *p;
ngx_mail_proxy_conf_t *pcf;
cscf = ngx_mail_get_module_srv_conf(s, ngx_mail_core_module);
- if (cscf->so_keepalive) {
- keepalive = 1;
-
- if (setsockopt(s->connection->fd, SOL_SOCKET, SO_KEEPALIVE,
- (const void *) &keepalive, sizeof(int))
- == -1)
- {
- ngx_log_error(NGX_LOG_ALERT, s->connection->log, ngx_socket_errno,
- "setsockopt(SO_KEEPALIVE) failed");
- }
- }
-
p = ngx_pcalloc(s->connection->pool, sizeof(ngx_mail_proxy_ctx_t));
if (p == NULL) {
ngx_mail_session_internal_server_error(s);