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->default_query == NULL) && (conf->queries == NULL)) { conf->default_query = prev->default_query; conf->methods_set = prev->methods_set; conf->queries = prev->queries; } ngx_conf_merge_size_value(conf->buf_size, prev->buf_size, (size_t) ngx_pagesize); return NGX_CONF_OK; }
static char * ngx_mail_throttle_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_mail_throttle_srv_conf_t *prev = parent; ngx_mail_throttle_srv_conf_t *conf = child; ngx_conf_merge_uint_value (conf->mail_login_ip_max, prev->mail_login_ip_max, 1000); ngx_conf_merge_uint_value (conf->mail_login_user_max, prev->mail_login_user_max, 100); ngx_conf_merge_msec_value (conf->mail_login_ip_ttl, prev->mail_login_ip_ttl, 60000); ngx_conf_merge_msec_value (conf->mail_login_user_ttl, prev->mail_login_user_ttl, 60000); ngx_conf_merge_str_value (conf->mail_login_ip_rejectmsg, prev->mail_login_ip_rejectmsg, ""); ngx_conf_merge_str_value (conf->mail_login_user_rejectmsg, prev->mail_login_user_rejectmsg, ""); ngx_conf_merge_str_value (conf->mail_login_ip_ttl_text, prev->mail_login_ip_ttl_text, "60"); ngx_conf_merge_str_value (conf->mail_login_user_ttl_text, prev->mail_login_user_ttl_text, "60"); return NGX_CONF_OK; }
static char * ngx_http_v2_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_v2_srv_conf_t *prev = parent; ngx_http_v2_srv_conf_t *conf = child; ngx_conf_merge_size_value(conf->pool_size, prev->pool_size, 4096); ngx_conf_merge_uint_value(conf->concurrent_streams, prev->concurrent_streams, 128); ngx_conf_merge_size_value(conf->max_field_size, prev->max_field_size, 4096); ngx_conf_merge_size_value(conf->max_header_size, prev->max_header_size, 16384); ngx_conf_merge_uint_value(conf->streams_index_mask, prev->streams_index_mask, 32 - 1); ngx_conf_merge_msec_value(conf->recv_timeout, prev->recv_timeout, 30000); ngx_conf_merge_msec_value(conf->idle_timeout, prev->idle_timeout, 180000); return NGX_CONF_OK; }
static char * ngx_rtmp_live_merge_app_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_rtmp_live_app_conf_t *prev = parent; ngx_rtmp_live_app_conf_t *conf = child; ngx_conf_merge_value(conf->live, prev->live, 0); ngx_conf_merge_value(conf->nbuckets, prev->nbuckets, 1024); ngx_conf_merge_msec_value(conf->buflen, prev->buflen, 0); ngx_conf_merge_msec_value(conf->sync, prev->sync, 300); ngx_conf_merge_msec_value(conf->idle_timeout, prev->idle_timeout, 0); ngx_conf_merge_value(conf->interleave, prev->interleave, 0); ngx_conf_merge_value(conf->wait_key, prev->wait_key, 1); ngx_conf_merge_value(conf->wait_video, prev->wait_video, 0); ngx_conf_merge_value(conf->publish_notify, prev->publish_notify, 0); ngx_conf_merge_value(conf->play_restart, prev->play_restart, 0); ngx_conf_merge_value(conf->idle_streams, prev->idle_streams, 1); conf->pool = ngx_create_pool(4096, &cf->cycle->new_log); if (conf->pool == NULL) { return NGX_CONF_ERROR; } conf->streams = ngx_pcalloc(cf->pool, sizeof(ngx_rtmp_live_stream_t *) * conf->nbuckets); return NGX_CONF_OK; }
static char * ngx_rtmp_core_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_rtmp_core_srv_conf_t *prev = parent; ngx_rtmp_core_srv_conf_t *conf = child; ngx_conf_merge_msec_value(conf->timeout, prev->timeout, 60000); ngx_conf_merge_msec_value(conf->ping, prev->ping, 60000); ngx_conf_merge_msec_value(conf->ping_timeout, prev->ping_timeout, 30000); ngx_conf_merge_value(conf->so_keepalive, prev->so_keepalive, 0); ngx_conf_merge_value(conf->max_streams, prev->max_streams, 32); ngx_conf_merge_value(conf->chunk_size, prev->chunk_size, 4096); ngx_conf_merge_uint_value(conf->ack_window, prev->ack_window, 5000000); ngx_conf_merge_size_value(conf->max_message, prev->max_message, 1 * 1024 * 1024); ngx_conf_merge_size_value(conf->out_queue, prev->out_queue, 256); ngx_conf_merge_size_value(conf->out_cork, prev->out_cork, conf->out_queue / 8); ngx_conf_merge_value(conf->play_time_fix, prev->play_time_fix, 1); ngx_conf_merge_value(conf->publish_time_fix, prev->publish_time_fix, 1); ngx_conf_merge_msec_value(conf->buflen, prev->buflen, 1000); ngx_conf_merge_value(conf->busy, prev->busy, 0); if (prev->pool == NULL) { prev->pool = ngx_create_pool(4096, &cf->cycle->new_log); if (prev->pool == NULL) { return NGX_CONF_ERROR; } } conf->pool = prev->pool; 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_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_http_token_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_token_loc_conf_t *prev = parent; ngx_http_token_loc_conf_t *conf = child; ngx_conf_merge_value(conf->enable, prev->enable, 0); ngx_conf_merge_str_value(conf->key, prev->key, "key"); ngx_conf_merge_size_value(conf->token_len, prev->token_len, 4); 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; conf->upstream.schema = prev->upstream.schema; } 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; }
char * ngx_http_lua_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_lua_loc_conf_t *prev = parent; ngx_http_lua_loc_conf_t *conf = child; if (conf->rewrite_src.value.len == 0) { conf->rewrite_src = prev->rewrite_src; conf->rewrite_handler = prev->rewrite_handler; conf->rewrite_src_key = prev->rewrite_src_key; } if (conf->access_src.value.len == 0) { conf->access_src = prev->access_src; conf->access_handler = prev->access_handler; conf->access_src_key = prev->access_src_key; } if (conf->content_src.value.len == 0) { conf->content_src = prev->content_src; conf->content_handler = prev->content_handler; conf->content_src_key = prev->content_src_key; } if (conf->header_filter_src.value.len == 0) { conf->header_filter_src = prev->header_filter_src; conf->header_filter_handler = prev->header_filter_handler; conf->header_filter_src_key = prev->header_filter_src_key; } ngx_conf_merge_value(conf->force_read_body, prev->force_read_body, 0); ngx_conf_merge_value(conf->enable_code_cache, prev->enable_code_cache, 1); ngx_conf_merge_value(conf->http10_buffering, prev->http10_buffering, 1); 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); 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_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_redis2_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_redis2_loc_conf_t *prev = parent; ngx_http_redis2_loc_conf_t *conf = child; 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->complex_query == NULL) { conf->complex_query = prev->complex_query; } if (conf->complex_query_count == NULL) { conf->complex_query_count = prev->complex_query_count; } if (conf->queries == NULL) { conf->queries = prev->queries; } if (conf->literal_query.data == NULL) { conf->literal_query.data = prev->literal_query.data; conf->literal_query.len = prev->literal_query.len; } return NGX_CONF_OK; }
static char * ngx_rtmp_dash_merge_app_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_rtmp_dash_app_conf_t *prev = parent; ngx_rtmp_dash_app_conf_t *conf = child; ngx_rtmp_dash_cleanup_t *cleanup; ngx_conf_merge_value(conf->dash, prev->dash, 0); ngx_conf_merge_msec_value(conf->fraglen, prev->fraglen, 5000); ngx_conf_merge_msec_value(conf->playlen, prev->playlen, 30000); ngx_conf_merge_str_value(conf->path, prev->path, ""); ngx_conf_merge_value(conf->cleanup, prev->cleanup, 1); ngx_conf_merge_value(conf->nested, prev->nested, 0); if (conf->fraglen) { conf->winfrags = conf->playlen / conf->fraglen; } /* schedule cleanup */ if (conf->path.len == 0 || !conf->cleanup) { return NGX_CONF_OK; } if (conf->path.data[conf->path.len - 1] == '/') { conf->path.len--; } cleanup = ngx_pcalloc(cf->pool, sizeof(*cleanup)); if (cleanup == NULL) { return NGX_CONF_ERROR; } cleanup->path = conf->path; cleanup->playlen = conf->playlen; conf->slot = ngx_pcalloc(cf->pool, sizeof(*conf->slot)); if (conf->slot == NULL) { return NGX_CONF_ERROR; } conf->slot->manager = ngx_rtmp_dash_cleanup; conf->slot->name = conf->path; conf->slot->data = cleanup; conf->slot->conf_file = cf->conf_file->file.name.data; conf->slot->line = cf->conf_file->line; if (ngx_add_path(cf, &conf->slot) != NGX_OK) { return NGX_CONF_ERROR; } 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_cwinux_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_cwinux_loc_conf_t *prev = parent; ngx_http_cwinux_loc_conf_t *conf = child; ngx_hash_init_t hash; ngx_str_t *h; ngx_conf_merge_msec_value(conf->upstream.connect_timeout, prev->upstream.connect_timeout, 100); ngx_conf_merge_msec_value(conf->upstream.send_timeout, prev->upstream.send_timeout, 100); ngx_conf_merge_msec_value(conf->upstream.read_timeout, prev->upstream.read_timeout, 1000); 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; } hash.max_size = 512; hash.bucket_size = ngx_align(64, ngx_cacheline_size); hash.name = "cwinux_hide_headers_hash"; h = ngx_http_cwinux_hide_headers; if (ngx_http_upstream_hide_headers_hash(cf, &conf->upstream, &prev->upstream, h, &hash) != NGX_OK) { return NGX_CONF_ERROR; } if (conf->upstream.upstream == NULL) { conf->upstream.upstream = prev->upstream.upstream; } return NGX_CONF_OK; }
static char * ngx_rtmp_relay_merge_app_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_rtmp_relay_app_conf_t *prev = parent; ngx_rtmp_relay_app_conf_t *conf = child; conf->ctx = ngx_pcalloc(cf->pool, sizeof(ngx_rtmp_relay_ctx_t *) * conf->nbuckets); ngx_conf_merge_msec_value(conf->buflen, prev->buflen, 5000); ngx_conf_merge_msec_value(conf->push_reconnect, prev->push_reconnect, 3000); 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_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_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_rtmp_exec_merge_app_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_rtmp_exec_app_conf_t *prev = parent; ngx_rtmp_exec_app_conf_t *conf = child; size_t n; ngx_rtmp_exec_conf_t *ec, *pec; ngx_conf_merge_value(conf->respawn, prev->respawn, 1); ngx_conf_merge_msec_value(conf->respawn_timeout, prev->respawn_timeout, 5000); if (prev->execs.nelts) { ec = ngx_array_push_n(&conf->execs, prev->execs.nelts); if (ec == NULL) { return NGX_CONF_ERROR; } pec = prev->execs.elts; for (n = 0; n < prev->execs.nelts; ++n, ++ec, ++pec) { *ec = *pec; } } return NGX_CONF_OK; }
static char *ngx_stream_app_merge_srv_conf(ngx_conf_t *cf, void *parent,void *child) { ngx_stream_app_srv_conf_t *prev = parent; ngx_stream_app_srv_conf_t *conf = child; ngx_conf_merge_msec_value(conf->send_timeout, prev->send_timeout, 60000); ngx_conf_merge_msec_value(conf->client_timeout, prev->client_timeout, 60000); ngx_conf_merge_size_value(conf->header_len, prev->header_len, 6); return NGX_CONF_OK; }
static char * ngx_mail_auth_http_merge_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_mail_auth_http_conf_t *prev = parent; ngx_mail_auth_http_conf_t *conf = child; u_char *p; size_t len; ngx_uint_t i; ngx_table_elt_t *header; if (conf->peer == NULL) { conf->peer = prev->peer; conf->host_header = prev->host_header; conf->uri = prev->uri; if (conf->peer == NULL) { ngx_log_error(NGX_LOG_EMERG, cf->log, 0, "no \"auth_http\" is defined for server in %s:%ui", conf->file, conf->line); return NGX_CONF_ERROR; } } ngx_conf_merge_msec_value(conf->timeout, prev->timeout, 60000); ngx_conf_merge_value(conf->pass_client_cert, prev->pass_client_cert, 0); if (conf->headers == NULL) { conf->headers = prev->headers; conf->header = prev->header; } if (conf->headers && conf->header.len == 0) { len = 0; header = conf->headers->elts; for (i = 0; i < conf->headers->nelts; i++) { len += header[i].key.len + 2 + header[i].value.len + 2; } p = ngx_pnalloc(cf->pool, len); if (p == NULL) { return NGX_CONF_ERROR; } conf->header.len = len; conf->header.data = p; for (i = 0; i < conf->headers->nelts; i++) { p = ngx_cpymem(p, header[i].key.data, header[i].key.len); *p++ = ':'; *p++ = ' '; p = ngx_cpymem(p, header[i].value.data, header[i].value.len); *p++ = CR; *p++ = LF; } } 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_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) conf->upstream.upstream = prev->upstream.upstream; /* customer variable */ if (conf->key == NGX_CONF_UNSET) conf->key = prev->key; if (conf->flags == NGX_CONF_UNSET) conf->flags = prev->flags; if (conf->exptime == NGX_CONF_UNSET) conf->exptime = prev->exptime; if (conf->unique == NGX_CONF_UNSET) conf->unique = prev->unique; ngx_conf_merge_uint_value(conf->gzip_flag, prev->gzip_flag, 0); ngx_conf_merge_uint_value(conf->value_flag, prev->value_flag, 0); 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_http_redis_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_redis_loc_conf_t *prev = parent; ngx_http_redis_loc_conf_t *conf = child; 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; } if (conf->db == NGX_CONF_UNSET) { conf->db = prev->db; } return NGX_CONF_OK; }
/* merge conf for loc */ static char* ngx_http_echo_merge_loc_conf(ngx_conf_t* cf, void* parent, void* child) { ngx_http_echov4_loc_conf_t* prev = parent; ngx_http_echov4_loc_conf_t* conf = child; ngx_log_debug0(NGX_LOG_DEBUG_HTTP, cf->log, 0, "ngx_http_echo_merge_loc_conf called - [rainx]"); if (conf->echo_times == NGX_CONF_UNSET) { conf->echo_times = prev->echo_times; } /* from memcached */ 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; } return NGX_CONF_OK; }
static char * ngx_http_memc_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_memc_loc_conf_t *prev = parent; ngx_http_memc_loc_conf_t *conf = child; ngx_conf_merge_value(conf->flags_to_last_modified, prev->flags_to_last_modified, 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_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->cmds_allowed == NULL) { conf->cmds_allowed = prev->cmds_allowed; } return NGX_CONF_OK; }
static char * ngx_rtmp_netcall_merge_app_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_rtmp_netcall_app_conf_t *prev = parent; ngx_rtmp_netcall_app_conf_t *conf = child; ngx_conf_merge_msec_value(conf->timeout, prev->timeout, 10000); 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_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; } 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_ptr_value(conf->resolver, prev->resolver, NULL); #if (NGX_HAVE_FSTACK) /* By default, we set up a server on fstack */ ngx_conf_merge_value(conf->kernel_network_stack, prev->kernel_network_stack, 0); #endif return NGX_CONF_OK; }