#include "httpd.h"
#include "http_config.h"
#include "http_protocol.h"
#include "ap_config.h"

#include "mod_log_config.h"


static const char *log_cookie(request_rec *r, char *a)
{
    return apr_table_get(r->headers_in, "Cookie");
}

static int newlog_pre_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp)
{
    static APR_OPTIONAL_FN_TYPE(ap_register_log_handler) *log_register;

    log_register = APR_RETRIEVE_OPTIONAL_FN(ap_register_log_handler);
    if (!log_register)
        return DECLINED;

    log_register(p, "C", log_cookie, 0);
    return OK;
}

static void log_newrule_register_hooks(apr_pool_t *p)
{
    ap_hook_pre_config(newlog_pre_config, NULL, NULL, APR_HOOK_LAST);
}

/* Dispatch list for API hooks */
module AP_MODULE_DECLARE_DATA log_newrule_module = {
    STANDARD20_MODULE_STUFF, 
    NULL,                  /* create per-dir    config structures */
    NULL,                  /* merge  per-dir    config structures */
    NULL,                  /* create per-server config structures */
    NULL,                  /* merge  per-server config structures */
    NULL,                  /* table of config file commands       */
    log_newrule_register_hooks  /* register hooks                      */
};


