Example #1
0
/**
 * Merge dir config
 *
 * update config and merge
 */
void *merge_dir_conf(apr_pool_t *pool, void *base, void *add) {
	/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
	apachelog_cfg *config = (apachelog_cfg *) base;
	apachelog_cfg *add_config = (apachelog_cfg *) add;
	/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
	if (!config) {
		config = (apachelog_cfg *) create_dir_conf(pool, "Init Configuration");
	}

	if (add_config) {
		if (add_config->service_name) {
			memset(config->service_name, 0, SERVICE_LEN);
			strncpy(config->service_name, add_config->service_name, SERVICE_LEN);
		}
		if (add_config->service_url) {
			memset(config->service_url, 0, SERVICE_URL_LEN);
			strncpy(config->service_url, add_config->service_url, SERVICE_URL_LEN);
		}
		if (add_config->target_method) {
			memset(config->target_method, 0, TARGET_METHOD_LEN);
			strncpy(config->target_method, add_config->target_method, TARGET_METHOD_LEN);
		}
	}

	return config;
}
Example #2
0
void *merge_dir_conf(apr_pool_t *pool, void *BASE, void *ADD)
{
    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
    secuip_dir_config    *base = (secuip_dir_config *) BASE;
    secuip_dir_config    *add = (secuip_dir_config *) ADD;
    secuip_dir_config    *dir_conf = (secuip_dir_config *) create_dir_conf(pool, "Merged configuration");
    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

    if (add->enabled != 1) {
        //dir_conf->enabled = base->enabled;
        dir_conf->enabled = 1;
        dir_conf->duration = base->duration;
        dir_conf->max_call_count = base->max_call_count;
        dir_conf->block_time = base->block_time;
        dir_conf->block_response_code = base->block_response_code;
        return dir_conf;
    }

    //dir_conf->enabled = add->enabled;
    dir_conf->enabled = 1;
    dir_conf->duration = add->duration;
    dir_conf->max_call_count = add->max_call_count;
    dir_conf->block_time = add->block_time;
    dir_conf->block_response_code = add->block_response_code;

    return dir_conf;
}