char * ngx_http_flex_cache_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_flex_cache_loc_conf_t *prev = parent; ngx_http_flex_cache_loc_conf_t *fc = child; ngx_conf_merge_value(fc->enabled, prev->enabled, 0); if (fc->cache_key.value.data == NULL) { fc->cache_key = prev->cache_key; } ngx_conf_merge_ptr_value(fc->cache, prev->cache, NULL); if (fc->cache && fc->cache->data == NULL) { ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, "\"flex cache\" zone \"%V\" is unknown", &fc->cache->shm.name); return NGX_CONF_ERROR; } ngx_conf_merge_size_value(fc->chunk_size, prev->chunk_size, 512 * 1024); ngx_conf_merge_uint_value(fc->cache_min_uses, prev->cache_min_uses, 1); ngx_conf_merge_ptr_value(fc->cache_valid, prev->cache_valid, NULL); return NGX_CONF_OK; }
static char * ngx_http_advertise_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_advertise_conf_t *prev = parent; ngx_http_advertise_conf_t *conf = child; ngx_http_variable_t *var; ngx_conf_merge_value(conf->inject, prev->inject, 0); ngx_conf_merge_size_value(conf->buffer_size, prev->buffer_size, 1 * 1024 * 1024); ngx_conf_merge_ptr_value(conf->advertise_array, prev->advertise_array, NGX_CONF_UNSET_PTR); ngx_conf_merge_size_value(conf->min_content_len, prev->min_content_len, 48); ngx_conf_merge_uint_value(conf->max_advertise_len, prev->max_advertise_len, 0); #if (NGX_PCRE) ngx_conf_merge_ptr_value(conf->black_hosts, prev->black_hosts, NGX_CONF_UNSET_PTR) #endif var = ngx_http_add_variable(cf, &g_advertise_inject_ctx_s, NGX_HTTP_VAR_CHANGEABLE); if (var == NULL) { return NGX_CONF_ERROR; } conf->index = ngx_http_get_variable_index(cf, &g_advertise_inject_ctx_s); if (conf->index == NGX_ERROR) { return NGX_CONF_ERROR; } var->get_handler = ngx_http_g_ctx_gethandler; var->data = conf->index; var = ngx_http_add_variable(cf, &g_advertise_status_s, NGX_HTTP_VAR_CHANGEABLE); var->get_handler = ngx_http_status_gethandler; return NGX_CONF_OK; }
static char * ngx_http_iconv_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_iconv_loc_conf_t *conf, *prev; conf = child; prev = parent; dd("before merge:conf->size=%d,prev->size=%d", (int) conf->buf_size, (int) prev->buf_size); if (conf->buf_size <= 1 || prev->buf_size <= 1) { ngx_log_error(NGX_LOG_ERR, cf->log, 0, "iconv_buffer_size must not less than 2 bytes"); return NGX_CONF_ERROR; } ngx_conf_merge_size_value(conf->buf_size, prev->buf_size, (size_t) ngx_pagesize); dd("after merge:conf->size=%d,prev->size=%d", (int) conf->buf_size, (int) prev->buf_size); ngx_conf_merge_value(conf->enabled, prev->enabled, 0); ngx_conf_merge_ptr_value(conf->from, (void *)prev->from, (char *) "utf-8"); ngx_conf_merge_ptr_value(conf->to, (void *)prev->to, (char *) "gbk"); return NGX_CONF_OK; }
static char * ngx_rtmp_notify_merge_app_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_rtmp_notify_app_conf_t *prev = parent; ngx_rtmp_notify_app_conf_t *conf = child; ngx_conf_merge_ptr_value(conf->publish_url, prev->publish_url, 0); ngx_conf_merge_ptr_value(conf->play_url, prev->play_url, 0); return NGX_CONF_OK; }
static char * ngx_http_reqstat_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_reqstat_conf_t *conf = child; ngx_http_reqstat_conf_t *prev = parent; ngx_conf_merge_ptr_value(conf->bypass, prev->bypass, NULL); ngx_conf_merge_ptr_value(conf->monitor, prev->monitor, NULL); ngx_conf_merge_ptr_value(conf->display, prev->display, NULL); return NGX_CONF_OK; }
static char * ngx_http_session_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_session_conf_t *prev = parent; ngx_http_session_conf_t *conf = child; ngx_conf_merge_value(conf->enabled, prev->enabled, 0); ngx_conf_merge_value(conf->timeout, prev->timeout, NGX_HTTP_SESSION_DEFAULT_TMOUT); ngx_conf_merge_value(conf->bl_timeout, prev->bl_timeout, conf->timeout); ngx_conf_merge_value(conf->redirect_timeout, prev->redirect_timeout, NGX_HTTP_SESSION_DEFAULT_REDIRECT_TMOUT); ngx_conf_merge_ptr_value(conf->keyword.data, prev->keyword.data, (u_char *)NGX_HTTP_SESSION_DEFAULT_COOKIE); ngx_conf_merge_size_value(conf->keyword.len, prev->keyword.len, strlen(NGX_HTTP_SESSION_DEFAULT_COOKIE)); if (conf->bl_timeout > conf->timeout) { return "blacklist timeout must not large then session timeout"; } if (conf->redirect_timeout > conf->timeout) { return "redirect timeout must not large then session timeout"; } return NGX_CONF_OK; }
static char * ngx_rtmp_record_merge_app_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_rtmp_record_app_conf_t *prev = parent; ngx_rtmp_record_app_conf_t *conf = child; ngx_rtmp_record_node_t **node; ngx_conf_merge_str_value(conf->def.path, prev->def.path, ""); ngx_conf_merge_str_value(conf->def.suffix, prev->def.suffix, ".flv"); ngx_conf_merge_size_value(conf->def.max_size, prev->def.max_size, 0); ngx_conf_merge_size_value(conf->def.max_frames, prev->def.max_frames, 0); ngx_conf_merge_value(conf->def.unique, prev->def.unique, 0); ngx_conf_merge_msec_value(conf->def.interval, prev->def.interval, (ngx_msec_t) NGX_CONF_UNSET); ngx_conf_merge_bitmask_value(conf->def.flags, prev->def.flags, 0); ngx_conf_merge_ptr_value(conf->def.url, prev->def.url, NULL); if (conf->def.flags) { node = ngx_array_push(&conf->nodes); if (node == NULL) { return NGX_CONF_ERROR; } *node = &conf->def; } return NGX_CONF_OK; }
static char * ngx_http_vhost_traffic_status_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_vhost_traffic_status_loc_conf_t *prev = parent; ngx_http_vhost_traffic_status_loc_conf_t *conf = child; ngx_str_t name; ngx_shm_zone_t *shm_zone; ngx_http_vhost_traffic_status_ctx_t *ctx; ctx = ngx_http_conf_get_module_main_conf(cf, ngx_http_vhost_traffic_status_module); if (!ctx->enable) { return NGX_CONF_OK; } ngx_conf_merge_value(conf->enable, prev->enable, 1); ngx_conf_merge_ptr_value(conf->shm_zone, prev->shm_zone, NULL); ngx_conf_merge_value(conf->format, prev->format, NGX_HTTP_VHOST_TRAFFIC_STATUS_FORMAT_JSON); name = ctx->shm_name; shm_zone = ngx_shared_memory_add(cf, &name, 0, &ngx_http_vhost_traffic_status_module); if (shm_zone == NULL) { return NGX_CONF_ERROR; } conf->shm_zone = shm_zone; conf->shm_name = name; return NGX_CONF_OK; }
static char * ngx_rtmp_record_merge_app_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_rtmp_record_app_conf_t *prev = parent; ngx_rtmp_record_app_conf_t *conf = child; ngx_rtmp_record_app_conf_t **rracf; ngx_conf_merge_str_value(conf->path, prev->path, ""); ngx_conf_merge_str_value(conf->suffix, prev->suffix, ".flv"); ngx_conf_merge_size_value(conf->max_size, prev->max_size, 0); ngx_conf_merge_size_value(conf->max_frames, prev->max_frames, 0); ngx_conf_merge_value(conf->unique, prev->unique, 0); ngx_conf_merge_value(conf->append, prev->append, 0); ngx_conf_merge_value(conf->lock_file, prev->lock_file, 0); ngx_conf_merge_value(conf->notify, prev->notify, 0); ngx_conf_merge_msec_value(conf->interval, prev->interval, (ngx_msec_t) NGX_CONF_UNSET); ngx_conf_merge_bitmask_value(conf->flags, prev->flags, 0); ngx_conf_merge_ptr_value(conf->url, prev->url, NULL); if (conf->flags) { rracf = ngx_array_push(&conf->rec); if (rracf == NULL) { return NGX_CONF_ERROR; } *rracf = conf; } return NGX_CONF_OK; }
static char * ngx_http_drizzle_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_drizzle_loc_conf_t *prev = parent; ngx_http_drizzle_loc_conf_t *conf = child; ngx_conf_merge_value(conf->enable_module_header, prev->enable_module_header, 1); ngx_conf_merge_msec_value(conf->upstream.connect_timeout, prev->upstream.connect_timeout, 60000); ngx_conf_merge_msec_value(conf->upstream.send_timeout, prev->upstream.send_timeout, 60000); ngx_conf_merge_msec_value(conf->recv_cols_timeout, prev->recv_cols_timeout, 60000); ngx_conf_merge_msec_value(conf->recv_rows_timeout, prev->recv_rows_timeout, 60000); if (conf->dbname == NULL) { conf->dbname = prev->dbname; } if (conf->query == NULL) { conf->query = prev->query; } ngx_conf_merge_ptr_value(conf, prev, NULL); return NGX_CONF_OK; }
static char * ngx_rtmp_notify_merge_app_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_rtmp_notify_app_conf_t *prev = parent; ngx_rtmp_notify_app_conf_t *conf = child; ngx_uint_t n; for (n = 0; n < NGX_RTMP_NOTIFY_APP_MAX; ++n) { ngx_conf_merge_ptr_value(conf->url[n], prev->url[n], NULL); if (conf->url[n]) { conf->active = 1; } } if (conf->active) { prev->active = 1; } ngx_conf_merge_uint_value(conf->method, prev->method, NGX_RTMP_NETCALL_HTTP_POST); ngx_conf_merge_msec_value(conf->update_timeout, prev->update_timeout, 30000); ngx_conf_merge_value(conf->update_strict, prev->update_strict, 0); ngx_conf_merge_value(conf->relay_redirect, prev->relay_redirect, 0); return NGX_CONF_OK; }
static char * ngx_mail_core_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_mail_core_srv_conf_t *prev = parent; ngx_mail_core_srv_conf_t *conf = child; ngx_conf_merge_msec_value(conf->timeout, prev->timeout, 60000); 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, ""); if (conf->server_name.len == 0) { conf->server_name = cf->cycle->hostname; } if (conf->protocol == NULL) { ngx_log_error(NGX_LOG_EMERG, cf->log, 0, "unknown mail protocol for server in %s:%ui", conf->file_name, conf->line); return NGX_CONF_ERROR; } ngx_conf_merge_ptr_value(conf->resolver, prev->resolver, NULL); return NGX_CONF_OK; }
static char* ngx_http_gridfs_merge_loc_conf(ngx_conf_t* directive, void* void_parent, void* void_child) { ngx_http_gridfs_loc_conf_t* parent = void_parent; ngx_http_gridfs_loc_conf_t* child = void_child; ngx_conf_merge_str_value(child->gridfs_db, parent->gridfs_db, "gridfs"); ngx_conf_merge_str_value(child->gridfs_root_collection, parent->gridfs_root_collection, "fs"); ngx_conf_merge_str_value(child->gridfs_field, parent->gridfs_field, "_id"); ngx_conf_merge_uint_value(child->gridfs_type, parent->gridfs_type, bson_oid); ngx_conf_merge_ptr_value(child->gridfs_conn, parent->gridfs_conn, NGX_CONF_UNSET_PTR); /* Currently only support for "_id" and "filename" */ if (child->gridfs_field.data != NULL && ngx_strcmp(child->gridfs_field.data, "filename") != 0 && ngx_strcmp(child->gridfs_field.data, "_id") != 0) { ngx_conf_log_error(NGX_LOG_EMERG, directive, 0, "Unsupported Field: %s", child->gridfs_field.data); return NGX_CONF_ERROR; } if (child->gridfs_field.data != NULL && ngx_strcmp(child->gridfs_field.data, "filename") == 0 && child->gridfs_type != bson_string) { ngx_conf_log_error(NGX_LOG_EMERG, directive, 0, "Field: filename, must be of Type: string"); return NGX_CONF_ERROR; } return NGX_CONF_OK; }
static char * ngx_http_encrypted_session_merge_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_encrypted_session_conf_t *prev = parent; ngx_http_encrypted_session_conf_t *conf = child; ngx_conf_merge_ptr_value(conf->key, prev->key, NULL); ngx_conf_merge_ptr_value(conf->iv, prev->iv, ngx_http_encrypted_session_default_iv); ngx_conf_merge_value(conf->expires, prev->expires, ngx_http_encrypted_session_default_expires); return NGX_CONF_OK; }
static char * ngx_http_data_dome_auth_merge_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_data_dome_auth_conf_t *prev = parent; ngx_http_data_dome_auth_conf_t *conf = child; #if (NGX_PCRE) ngx_regex_compile_t rc; u_char errstr[NGX_MAX_CONF_ERRSTR]; #endif if (conf->uri_lengths == NULL) { conf->uri_lengths = prev->uri_lengths; conf->uri_values = prev->uri_values; } ngx_conf_merge_uint_value(conf->learning, prev->learning, 0); ngx_conf_merge_value(conf->pass_internal_redirect, prev->pass_internal_redirect, 1); #if (NGX_PCRE) if (conf->uri_regex == NULL) { conf->uri_regex = prev->uri_regex; conf->uri_regex_raw = prev->uri_regex_raw; if (conf->uri_regex == NULL) { ngx_str_set(&conf->uri_regex_raw, ""); } } if (conf->uri_regex_exclusion == NULL) { conf->uri_regex_exclusion = prev->uri_regex_exclusion; conf->uri_regex_exclusion_raw = prev->uri_regex_exclusion_raw; if (conf->uri_regex_exclusion == NULL) { ngx_memzero(&rc, sizeof(ngx_regex_compile_t)); ngx_str_set(&rc.pattern, "\\.(js|css|jpg|jpeg|png|ico|gif|tiff|svg|woff|woff2|ttf|eot|mp4|otf)$"); rc.pool = cf->pool; rc.options = NGX_REGEX_CASELESS; rc.err.len = NGX_MAX_CONF_ERRSTR; rc.err.data = errstr; if (ngx_regex_compile(&rc) != NGX_OK) { ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, "%V", &rc.err); return NGX_CONF_ERROR; } conf->uri_regex_exclusion = rc.regex; conf->uri_regex_exclusion_raw = rc.pattern; } } #endif ngx_conf_merge_ptr_value(conf->vars, prev->vars, NULL); return NGX_CONF_OK; }
static char * ngx_http_tnt_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_tnt_loc_conf_t *prev = parent; ngx_http_tnt_loc_conf_t *conf = child; ngx_conf_merge_ptr_value(conf->upstream.local, prev->upstream.local, NULL); ngx_conf_merge_msec_value(conf->upstream.connect_timeout, prev->upstream.connect_timeout, 60000); ngx_conf_merge_msec_value(conf->upstream.send_timeout, prev->upstream.send_timeout, 60000); ngx_conf_merge_msec_value(conf->upstream.read_timeout, prev->upstream.read_timeout, 60000); ngx_conf_merge_size_value(conf->upstream.buffer_size, prev->upstream.buffer_size, (size_t) ngx_pagesize); ngx_conf_merge_bitmask_value(conf->upstream.next_upstream, prev->upstream.next_upstream, (NGX_CONF_BITMASK_SET |NGX_HTTP_UPSTREAM_FT_ERROR |NGX_HTTP_UPSTREAM_FT_TIMEOUT)); if (conf->upstream.next_upstream & NGX_HTTP_UPSTREAM_FT_OFF) { conf->upstream.next_upstream = NGX_CONF_BITMASK_SET |NGX_HTTP_UPSTREAM_FT_OFF; } if (conf->upstream.upstream == NULL) { conf->upstream.upstream = prev->upstream.upstream; } ngx_conf_merge_size_value(conf->in_multiplier, prev->in_multiplier, 2); ngx_conf_merge_size_value(conf->out_multiplier, prev->out_multiplier, 2); ngx_conf_merge_str_value(conf->method, prev->method, ""); ngx_conf_merge_size_value(conf->pass_http_request_buffer_size, prev->pass_http_request_buffer_size, 4096*2); ngx_conf_merge_uint_value(conf->pass_http_request, prev->pass_http_request, NGX_TNT_CONF_OFF); ngx_conf_merge_bitmask_value(conf->http_rest_methods, prev->http_rest_methods, (NGX_CONF_BITMASK_SET |NGX_HTTP_GET |NGX_HTTP_PUT |NGX_HTTP_DELETE)); return NGX_CONF_OK; }
static char * ngx_http_auth_request_merge_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_auth_request_conf_t *prev = parent; ngx_http_auth_request_conf_t *conf = child; ngx_conf_merge_str_value(conf->uri, prev->uri, ""); ngx_conf_merge_ptr_value(conf->vars, prev->vars, NULL); return NGX_CONF_OK; }
char * ngx_postgres_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_postgres_loc_conf_t *prev = parent; ngx_postgres_loc_conf_t *conf = child; dd("entering"); ngx_conf_merge_msec_value(conf->upstream.connect_timeout, prev->upstream.connect_timeout, 10000); ngx_conf_merge_msec_value(conf->upstream.read_timeout, prev->upstream.read_timeout, 30000); if ((conf->upstream.upstream == NULL) && (conf->upstream_cv == NULL)) { conf->upstream.upstream = prev->upstream.upstream; conf->upstream_cv = prev->upstream_cv; } if ((conf->query.def == NULL) && (conf->query.methods == NULL)) { conf->query.methods_set = prev->query.methods_set; conf->query.methods = prev->query.methods; conf->query.def = prev->query.def; } ngx_conf_merge_ptr_value(conf->rewrites, prev->rewrites, NULL); if (conf->output_handler == NGX_CONF_UNSET_PTR) { if (prev->output_handler == NGX_CONF_UNSET_PTR) { /* default */ conf->output_handler = ngx_postgres_output_rds; conf->output_binary = 0; } else { /* merge */ conf->output_handler = prev->output_handler; conf->output_binary = prev->output_binary; } } ngx_conf_merge_ptr_value(conf->variables, prev->variables, NULL); dd("returning NGX_CONF_OK"); return NGX_CONF_OK; }
static char * ngx_rtmp_authen_merge_app_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_rtmp_authen_app_conf_t *prev = parent; ngx_rtmp_authen_app_conf_t *conf = child; ngx_conf_merge_ptr_value(conf->connect_url, prev->connect_url, 0); return NGX_CONF_OK; }
static char * ngx_http_session_sticky_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_ss_loc_conf_t *prev = parent; ngx_http_ss_loc_conf_t *conf = child; ngx_conf_merge_ptr_value(conf->uscf, prev->uscf, NGX_CONF_UNSET_PTR); return NGX_CONF_OK; }
static char * ngx_http_memcached_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_memcached_loc_conf_t *prev = parent; ngx_http_memcached_loc_conf_t *conf = child; ngx_conf_merge_ptr_value(conf->upstream.local, prev->upstream.local, NULL); ngx_conf_merge_value(conf->upstream.socket_keepalive, prev->upstream.socket_keepalive, 0); ngx_conf_merge_uint_value(conf->upstream.next_upstream_tries, prev->upstream.next_upstream_tries, 0); ngx_conf_merge_msec_value(conf->upstream.connect_timeout, prev->upstream.connect_timeout, 60000); ngx_conf_merge_msec_value(conf->upstream.send_timeout, prev->upstream.send_timeout, 60000); ngx_conf_merge_msec_value(conf->upstream.read_timeout, prev->upstream.read_timeout, 60000); ngx_conf_merge_msec_value(conf->upstream.next_upstream_timeout, prev->upstream.next_upstream_timeout, 0); ngx_conf_merge_size_value(conf->upstream.buffer_size, prev->upstream.buffer_size, (size_t) ngx_pagesize); ngx_conf_merge_bitmask_value(conf->upstream.next_upstream, prev->upstream.next_upstream, (NGX_CONF_BITMASK_SET |NGX_HTTP_UPSTREAM_FT_ERROR |NGX_HTTP_UPSTREAM_FT_TIMEOUT)); if (conf->upstream.next_upstream & NGX_HTTP_UPSTREAM_FT_OFF) { conf->upstream.next_upstream = NGX_CONF_BITMASK_SET |NGX_HTTP_UPSTREAM_FT_OFF; } if (conf->upstream.upstream == NULL) { conf->upstream.upstream = prev->upstream.upstream; } if (conf->index == NGX_CONF_UNSET) { conf->index = prev->index; } ngx_conf_merge_uint_value(conf->gzip_flag, prev->gzip_flag, 0); return NGX_CONF_OK; }
static char * ngx_http_themis_merge_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_themis_loc_conf_t *prev = parent; ngx_http_themis_loc_conf_t *conf = child; ngx_conf_merge_value(conf->enable, prev->enable, 0); ngx_conf_merge_str_value(conf->name, prev->name, ""); ngx_conf_merge_ptr_value(conf->module_configs, prev->module_configs, NULL); return NGX_CONF_OK; }
static char *ngx_proc_luashm_backup_merge_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_proc_luashm_backup_conf_t *prev = parent; ngx_proc_luashm_backup_conf_t *conf = child; //ngx_conf_merge_uint_value(conf->port, prev->port, 0); ngx_conf_merge_str_value(conf->path, prev->path, NULL); ngx_conf_merge_str_value(conf->settimestamp, prev->settimestamp, NULL); ngx_conf_merge_ptr_value(conf->shdict_names, prev->shdict_names, NGX_CONF_UNSET_PTR); return NGX_CONF_OK; }
static char * ngx_tcl_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_tcl_loc_conf_t *prev = parent; ngx_tcl_loc_conf_t *conf = child; printf("%s\n", __FUNCTION__); fflush(stdout); ngx_conf_merge_ptr_value(conf->interp_conf, prev->interp_conf, NULL); return NGX_CONF_OK; }
static char * ngx_http_proxy_connect_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_proxy_connect_loc_conf_t *prev = parent; ngx_http_proxy_connect_loc_conf_t *conf = child; if (ngx_http_merge_types(cf, &conf->block_ports, &conf->ports, &prev->block_ports, &prev->ports, ngx_http_proxy_connect_block_ports) != NGX_OK) { return NGX_CONF_ERROR; } #if (NGX_PCRE) ngx_conf_merge_ptr_value(conf->black_hosts, prev->black_hosts, NGX_CONF_UNSET_PTR) #endif ngx_conf_merge_msec_value(conf->upstream.connect_timeout, prev->upstream.connect_timeout, 60000); ngx_conf_merge_msec_value(conf->upstream.send_timeout, prev->upstream.send_timeout, 60000); ngx_conf_merge_msec_value(conf->upstream.read_timeout, prev->upstream.read_timeout, 60000); ngx_conf_merge_size_value(conf->upstream.buffer_size, prev->upstream.buffer_size, (size_t) ngx_pagesize); ngx_conf_merge_bitmask_value(conf->upstream.next_upstream, prev->upstream.next_upstream, (NGX_CONF_BITMASK_SET |NGX_HTTP_UPSTREAM_FT_ERROR |NGX_HTTP_UPSTREAM_FT_TIMEOUT)); if (conf->upstream.next_upstream & NGX_HTTP_UPSTREAM_FT_OFF) { conf->upstream.next_upstream = NGX_CONF_BITMASK_SET |NGX_HTTP_UPSTREAM_FT_OFF; } if (conf->upstream.upstream == NULL) { conf->upstream.upstream = prev->upstream.upstream; } if (conf->index == NGX_CONF_UNSET) { conf->index = prev->index; } return NGX_CONF_OK; }
static char * ngx_http_ip_behavior_merge_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_ip_behavior_conf_t *prev = parent; ngx_http_ip_behavior_conf_t *conf = child; ngx_conf_merge_value(conf->enabled, prev->enabled, 0); ngx_conf_merge_value(conf->sensitive, prev->sensitive, 0); ngx_conf_merge_value(conf->type, prev->type, TYPE_SENSITIVE_URL); ngx_conf_merge_ptr_value(conf->shm_zone, prev->shm_zone, NULL); return NGX_CONF_OK; }
static char* ngx_http_gettoken_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_gettoken_loc_conf_t *prev = parent; ngx_http_gettoken_loc_conf_t *conf = child; ngx_conf_merge_value(conf->enable, prev->enable, 0); ngx_conf_merge_str_value(conf->auth_host, prev->auth_host, ""); ngx_conf_merge_str_value(conf->auth_url, prev->auth_url, ""); ngx_conf_merge_str_value(conf->token_host, prev->token_host, ""); ngx_conf_merge_str_value(conf->token_url, prev->token_url, ""); ngx_conf_merge_ptr_value(conf->servers, prev->servers, NULL); return NGX_CONF_OK; }
static char * ngx_rtmp_notify_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_rtmp_notify_srv_conf_t *prev = parent; ngx_rtmp_notify_srv_conf_t *conf = child; ngx_uint_t n; for (n = 0; n < NGX_RTMP_NOTIFY_SRV_MAX; ++n) { ngx_conf_merge_ptr_value(conf->url[n], prev->url[n], NULL); } ngx_conf_merge_uint_value(conf->method, prev->method, NGX_RTMP_NETCALL_HTTP_POST); return NGX_CONF_OK; }
static char * ngx_http_auth_spnego_merge_loc_conf( ngx_conf_t * cf, void *parent, void *child) { ngx_http_auth_spnego_loc_conf_t *prev = parent; ngx_http_auth_spnego_loc_conf_t *conf = child; /* "off" by default */ ngx_conf_merge_off_value(conf->protect, prev->protect, 0); ngx_conf_merge_str_value(conf->realm, prev->realm, ""); ngx_conf_merge_str_value(conf->keytab, prev->keytab, "/etc/krb5.keytab"); ngx_conf_merge_str_value(conf->srvcname, prev->srvcname, ""); ngx_conf_merge_off_value(conf->fqun, prev->fqun, 0); ngx_conf_merge_off_value(conf->force_realm, prev->force_realm, 0); ngx_conf_merge_off_value(conf->allow_basic, prev->allow_basic, 1); ngx_conf_merge_ptr_value(conf->auth_princs, prev->auth_princs, NGX_CONF_UNSET_PTR); #if (NGX_DEBUG) ngx_conf_log_error(NGX_LOG_INFO, cf, 0, "auth_spnego: protect = %i", conf->protect); ngx_conf_log_error(NGX_LOG_INFO, cf, 0, "auth_spnego: realm@0x%p = %s", conf->realm.data, conf->realm.data); ngx_conf_log_error(NGX_LOG_INFO, cf, 0, "auth_spnego: keytab@0x%p = %s", conf->keytab.data, conf->keytab.data); ngx_conf_log_error(NGX_LOG_INFO, cf, 0, "auth_spnego: srvcname@0x%p = %s", conf->srvcname.data, conf->srvcname.data); ngx_conf_log_error(NGX_LOG_INFO, cf, 0, "auth_spnego: fqun = %i", conf->fqun); if (NGX_CONF_UNSET_PTR != conf->auth_princs) { size_t ii = 0; ngx_str_t *auth_princs = conf->auth_princs->elts; for (; ii < conf->auth_princs->nelts; ++ii) { ngx_conf_log_error(NGX_LOG_DEBUG, cf, 0, "auth_spnego: auth_princs = %.*s", auth_princs[ii].len, auth_princs[ii].data); } } #endif return NGX_CONF_OK; }
static char * ngx_http_fancyindex_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_fancyindex_loc_conf_t *prev = parent; ngx_http_fancyindex_loc_conf_t *conf = child; ngx_conf_merge_value(conf->enable, prev->enable, 0); ngx_conf_merge_value(conf->localtime, prev->localtime, 0); ngx_conf_merge_value(conf->exact_size, prev->exact_size, 1); ngx_conf_merge_str_value(conf->header, prev->header, ""); ngx_conf_merge_str_value(conf->footer, prev->footer, ""); ngx_conf_merge_ptr_value(conf->ignore, prev->ignore, NULL); return NGX_CONF_OK; }