static char * ngx_http_authnz_pam_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_authnz_pam_loc_conf_t *prev = parent; ngx_http_authnz_pam_loc_conf_t *conf = child; ngx_conf_merge_off_value(conf->basic_auth, prev->basic_auth, 0); ngx_conf_merge_off_value(conf->active, prev->active, 0); ngx_conf_merge_str_value(conf->name, prev->name, _DEFAULT_PAM_REALM); ngx_conf_merge_str_value(conf->pam_service_name, prev->pam_service_name, ""); ngx_conf_merge_str_value(conf->expired_redirect_url, prev->expired_redirect_url, ""); 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_proc_send_merge_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_proc_send_conf_t *prev = parent; ngx_proc_send_conf_t *conf = child; ngx_conf_merge_uint_value(conf->port, prev->port, 0); ngx_conf_merge_off_value(conf->enable, prev->enable, 0); return NGX_CONF_OK; }
static char * ngx_http_statsd_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) { ngx_http_statsd_conf_t *prev = parent; ngx_http_statsd_conf_t *conf = child; ngx_statsd_stat_t *stat; ngx_statsd_stat_t prev_stat; ngx_statsd_stat_t *prev_stats; ngx_uint_t i; ngx_uint_t sz; ngx_conf_merge_ptr_value(conf->endpoint, prev->endpoint, NULL); ngx_conf_merge_off_value(conf->off, prev->off, 1); ngx_conf_merge_uint_value(conf->sample_rate, prev->sample_rate, 100); if (conf->stats == NULL) { sz = (prev->stats != NULL ? prev->stats->nelts : 2); conf->stats = ngx_array_create(cf->pool, sz, sizeof(ngx_statsd_stat_t)); if (conf->stats == NULL) { return NGX_CONF_ERROR; } } if (prev->stats != NULL) { prev_stats = prev->stats->elts; for (i = 0; i < prev->stats->nelts; i++) { stat = ngx_array_push(conf->stats); ngx_memzero(stat, sizeof(ngx_statsd_stat_t)); prev_stat = prev_stats[i]; stat->type = prev_stat.type; stat->key = prev_stat.key; stat->metric = prev_stat.metric; stat->ckey = prev_stat.ckey; stat->cmetric = prev_stat.cmetric; stat->valid = prev_stat.valid; stat->cvalid = prev_stat.cvalid; }; }; return NGX_CONF_OK; }
static char *ngx_http_hls_merge_conf(ngx_conf_t *cf, void *parent, void *child) { hls_conf_t *prev = parent; hls_conf_t *conf = child; ngx_conf_merge_uint_value(conf->length, prev->length, 8); ngx_conf_merge_value(conf->relative, prev->relative, 1); ngx_conf_merge_size_value(conf->buffer_size, prev->buffer_size, 512 * 1024); ngx_conf_merge_size_value(conf->max_buffer_size, prev->max_buffer_size, 10 * 1024 * 1024); ngx_conf_merge_str_value(conf->hls_proxy, prev->hls_proxy, NULL); // merge mp4 module ngx_conf_merge_size_value(conf->mp4_buffer_size, prev->mp4_buffer_size, 512 * 1024); ngx_conf_merge_size_value(conf->mp4_max_buffer_size, prev->mp4_max_buffer_size, 10 * 1024 * 1024); ngx_conf_merge_off_value(conf->mp4_enhance, prev->mp4_enhance, 0); if (conf->length < 1) { ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, "video length must be equal or more than 1"); return NGX_CONF_ERROR; } return NGX_CONF_OK; }