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;
}
コード例 #2
0
    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;
}
コード例 #3
0
	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;
}
コード例 #4
0
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;
}