static char * ngx_mail_core_resolver(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) { ngx_mail_core_srv_conf_t *cscf = conf; ngx_str_t *value; value = cf->args->elts; if (cscf->resolver != NGX_CONF_UNSET_PTR) { return "is duplicate"; } if (ngx_strcmp(value[1].data, "off") == 0) { cscf->resolver = NULL; return NGX_CONF_OK; } cscf->resolver = ngx_resolver_create(cf, &value[1], cf->args->nelts - 1); if (cscf->resolver == NULL) { return NGX_CONF_ERROR; } return NGX_CONF_OK; }
static char * ngx_tcp_core_resolver(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) { ngx_tcp_core_srv_conf_t *cscf = conf; #if defined(nginx_version) && nginx_version < 1001007 ngx_url_t u; #endif ngx_str_t *value; value = cf->args->elts; if (cscf->resolver != NGX_CONF_UNSET_PTR) { return "is duplicate"; } if (ngx_strcmp(value[1].data, "off") == 0) { cscf->resolver = NULL; return NGX_CONF_OK; } #if defined(nginx_version) && nginx_version < 1001007 ngx_memzero(&u, sizeof(ngx_url_t)); u.host = value[1]; u.port = 53; if (ngx_inet_resolve_host(cf->pool, &u) != NGX_OK) { ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, "%V: %s", &u.host, u.err); return NGX_CONF_ERROR; } cscf->resolver = ngx_resolver_create(cf, &u.addrs[0]); if (cscf->resolver == NULL) { return NGX_CONF_OK; } #else cscf->resolver = ngx_resolver_create(cf, &value[1], cf->args->nelts - 1); if (cscf->resolver == NULL) { return NGX_CONF_ERROR; } #endif return NGX_CONF_OK; }
static char * ngx_stream_core_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_stream_core_srv_conf_t *prev = parent; ngx_stream_core_srv_conf_t *conf = child; ngx_conf_merge_msec_value(conf->resolver_timeout, prev->resolver_timeout, 30000); if (conf->resolver == NULL) { if (prev->resolver == NULL) { /* * create dummy resolver in stream {} context * to inherit it in all servers */ prev->resolver = ngx_resolver_create(cf, NULL, 0); if (prev->resolver == NULL) { return NGX_CONF_ERROR; } } conf->resolver = prev->resolver; } if (conf->handler == NULL) { ngx_log_error(NGX_LOG_EMERG, cf->log, 0, "no handler for server in %s:%ui", conf->file_name, conf->line); return NGX_CONF_ERROR; } if (conf->error_log == NULL) { if (prev->error_log) { conf->error_log = prev->error_log; } else { conf->error_log = &cf->cycle->new_log; } } ngx_conf_merge_msec_value(conf->proxy_protocol_timeout, prev->proxy_protocol_timeout, 30000); ngx_conf_merge_value(conf->tcp_nodelay, prev->tcp_nodelay, 1); ngx_conf_merge_size_value(conf->preread_buffer_size, prev->preread_buffer_size, 16384); ngx_conf_merge_msec_value(conf->preread_timeout, prev->preread_timeout, 30000); return NGX_CONF_OK; }
static char * ngx_stream_core_resolver(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) { ngx_stream_core_srv_conf_t *cscf = conf; ngx_str_t *value; if (cscf->resolver) { return "is duplicate"; } value = cf->args->elts; cscf->resolver = ngx_resolver_create(cf, &value[1], cf->args->nelts - 1); if (cscf->resolver == NULL) { return NGX_CONF_ERROR; } return NGX_CONF_OK; }
return NGX_CONF_OK; } #if defined(nginx_version) && nginx_version < 1001007 ngx_memzero(&u, sizeof(ngx_url_t)); u.host = value[1]; u.port = 53; if (ngx_inet_resolve_host(cf->pool, &u) != NGX_OK) { ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, "%V: %s"), &u.host, u.err); return NGX_CONF_ERROR; } cscf->resolver = ngx_resolver_create(cf, &u.addr[0]); if (cscf->resolver == NULL) { return NGX_CONF_ERROR; } #else cscf->resolver = (cf, &value[1], cf->args->nelts - 1); if (cscf->resolver == NULL) { return NGX_CONF_ERROR; } #endif return NGX_CONF_ERROR; } static char *
static char * ngx_tcp_core_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_tcp_core_srv_conf_t *prev = parent; ngx_tcp_core_srv_conf_t *conf = child; ngx_conf_merge_msec_value(conf->read_timeout, prev->read_timeout, 60000); ngx_conf_merge_msec_value(conf->send_timeout, prev->send_timeout, 60000); ngx_conf_merge_msec_value(conf->keepalive_timeout, prev->keepalive_timeout, NGX_CONF_UNSET_MSEC); 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_size_value(conf->session_pool_size, prev->session_pool_size, 1024);//default 1k ngx_conf_merge_size_value(conf->connection_pool_size, prev->connection_pool_size, 512);//default 0.5k ngx_conf_merge_size_value(conf->client_max_body_size, prev->client_max_body_size, 1024);//default 1k if (conf->protocol == NULL) { //ngx_log_error(NGX_LOG_EMERG, cf->log, 0, // "unknown tcp protocol for server in %s:%ui", // conf->file_name, conf->line); ngx_log_error(NGX_LOG_EMERG, cf->log, 0,"no tcp protocol for server"); return NGX_CONF_ERROR; } if (conf->error_log == NULL) { if (prev->error_log) { conf->error_log = prev->error_log; } else { conf->error_log = &cf->cycle->new_log; } } if (conf->rules == NULL) { conf->rules = prev->rules; } if (conf->resolver == NGX_CONF_UNSET_PTR) { if (prev->resolver == NGX_CONF_UNSET_PTR) { /* * create dummy resolver in tcp {} context * to inherit it in all servers */ prev->resolver = ngx_resolver_create(cf, NULL, 0); if (prev->resolver == NULL) { return NGX_CONF_ERROR; } } conf->resolver = prev->resolver; } return NGX_CONF_OK; }
static char * ngx_stream_lua_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_stream_lua_srv_conf_t *prev = parent; ngx_stream_lua_srv_conf_t *conf = child; ngx_conf_merge_msec_value(conf->resolver_timeout, prev->resolver_timeout, 30000); if (conf->resolver == NULL) { if (prev->resolver == NULL) { /* * create dummy resolver in stream {} context * to inherit it in all servers */ prev->resolver = ngx_resolver_create(cf, NULL, 0); if (prev->resolver == NULL) { return NGX_CONF_ERROR; } } conf->resolver = prev->resolver; } ngx_conf_merge_value(conf->enable_code_cache, prev->enable_code_cache, 1); ngx_conf_merge_value(conf->check_client_abort, prev->check_client_abort, 0); ngx_conf_merge_msec_value(conf->keepalive_timeout, prev->keepalive_timeout, 60000); ngx_conf_merge_msec_value(conf->connect_timeout, prev->connect_timeout, 60000); ngx_conf_merge_msec_value(conf->send_timeout, prev->send_timeout, 60000); ngx_conf_merge_msec_value(conf->read_timeout, prev->read_timeout, 60000); ngx_conf_merge_size_value(conf->send_lowat, prev->send_lowat, 0); ngx_conf_merge_size_value(conf->buffer_size, prev->buffer_size, (size_t) ngx_pagesize); ngx_conf_merge_uint_value(conf->pool_size, prev->pool_size, 30); ngx_conf_merge_value(conf->log_socket_errors, prev->log_socket_errors, 1); ngx_conf_merge_uint_value(conf->lingering_close, prev->lingering_close, NGX_STREAM_LUA_LINGERING_ON); ngx_conf_merge_msec_value(conf->lingering_time, prev->lingering_time, 30000); ngx_conf_merge_msec_value(conf->lingering_timeout, prev->lingering_timeout, 5000); #if (NGX_STREAM_SSL) ngx_conf_merge_bitmask_value(conf->ssl_protocols, prev->ssl_protocols, (NGX_CONF_BITMASK_SET|NGX_SSL_SSLv3 |NGX_SSL_TLSv1|NGX_SSL_TLSv1_1 |NGX_SSL_TLSv1_2)); ngx_conf_merge_str_value(conf->ssl_ciphers, prev->ssl_ciphers, "DEFAULT"); ngx_conf_merge_uint_value(conf->ssl_verify_depth, prev->ssl_verify_depth, 1); ngx_conf_merge_str_value(conf->ssl_trusted_certificate, prev->ssl_trusted_certificate, ""); ngx_conf_merge_str_value(conf->ssl_crl, prev->ssl_crl, ""); if (ngx_stream_lua_set_ssl(cf, conf) != NGX_OK) { return NGX_CONF_ERROR; } #endif return NGX_CONF_OK; }