コード例 #1
0
void *apache_http_modsecurity_create_main_conf(apr_pool_t* pool, server_rec* svr) {
    // This doesn't really do anything right now...
    apache_http_modsecurity_main_conf_t *config = apr_pcalloc(pool, sizeof(apache_http_modsecurity_main_conf_t));
    config->modsec = msc_init();
    if(config->modsec == NULL){
    	fprintf(stderr,"ModSecurity: We were unable to initalize the ModSecurity library, skipping hooks\n");
    	return NULL;
    }else{
    	fprintf(stderr,"ModSecurity: Started Life\n");
    }
    msc_set_connector_info(config->modsec, "ModSecurity-apache v0.0.1-alpha");
    //msc_set_log_cb(config.modsec, ngx_http_modsecurity_log);
    return config;
    
}
コード例 #2
0
static void *
ngx_http_modsecurity_create_main_conf(ngx_conf_t *cf)
{
    ngx_http_modsecurity_main_conf_t *conf;

    dd("creating the ModSecurity main configuration");

    /* ngx_pcalloc already sets all of this scructure to zeros. */
    conf = ngx_pcalloc(cf->pool, sizeof(ngx_http_modsecurity_main_conf_t));

    if (conf == NULL) {
        dd("failed to allocate space for the ModSecurity configuration");
        return NGX_CONF_ERROR;
    }

    /* Create our ModSecurity instace */
    conf->modsec = msc_init();
    if (conf->modsec == NULL)
    {
        dd("failed to create the ModSecurity instance");
        return NGX_CONF_ERROR;
    }

    ngx_pool_cleanup_t *cln = NULL;

    /* Provide our connector information to LibModSecurity */
    msc_set_connector_info(conf->modsec, "ModSecurity-nginx v0.0.2-alpha");
    msc_set_log_cb(conf->modsec, ngx_http_modsecurity_log);

    cln = ngx_pool_cleanup_add(cf->pool, 0);
    if (cln == NULL)
    {
        dd("failed to create the ModSecurity main configuration cleanup");
        return NGX_CONF_ERROR;
    }
    cln->handler = ngx_http_modsecurity_main_config_cleanup;
    cln->data = conf;


    return conf;
}