#include "apr_uuid.h"
#include "apr_md5.h"
+#include "apr_tables.h"
char *
#define DL_COOKIE_PATH "/"
#define DL_COOKIE_USER_PERSISTENCE (63072000)
#define DL_UTM_GIF_LOCATION "http://www.google-analytics.com/__utm.gif"
+#define DL_GOOGLE_HOST "www.google-analytics.com"
// 1x1 transparent GIF
apr_pool_t *ppool;
apr_size_t response_len;
char *data;
+ int ii;
+ request_rec *get_r;
+ mod_chxj_config *conf;
DBG(r, "REQ[%X] start %s()", TO_ADDR(r),__func__);
apr_pool_create(&ppool, r->pool);
+ get_r = apr_palloc(ppool, sizeof(request_rec));
+ memset(get_r, 0, sizeof(request_rec));
+ get_r->pool = ppool;
+ get_r->headers_in = apr_table_make(ppool, 4);
+ get_r->headers_out = apr_table_make(ppool, 4);
+ apr_table_setn(get_r->headers_in, "User-Agent",apr_table_get(r->headers_in, "User-Agent"));
+ apr_table_setn(get_r->headers_in, "Host", DL_GOOGLE_HOST);
+
// ichiou data ni totte oku. tsukawanai kedo.
- data = chxj_serf_get(r, ppool, utm_url, 0, &response_len);
+ data = chxj_serf_get(get_r, ppool, utm_url, 0, &response_len);
+ DBG(r, "REQ[%X] response from google:[%s]", TO_ADDR(r), data);
+ conf = chxj_get_module_config(r->per_dir_config, &chxj_module);
+ if (conf->google_analytics_debug && *conf->google_analytics_debug) {
+ FILE *fp;
+ if ((fp = fopen(conf->google_analytics_debug, "w")) != NULL) {
+ fwrite(data, response_len, 1, fp);
+ fclose(fp);
+ }
+ }
+
DBG(r, "REQ[%X] end %s()", TO_ADDR(r),__func__);
}
conf->use_google_analytics = 0;
conf->google_analytics_account = NULL;
conf->google_analytics_target = NULL;
+ conf->google_analytics_debug = NULL;
return conf;
}
else{
mrg->google_analytics_target = base->google_analytics_target;
}
+ if (add->google_analytics_debug){
+ mrg->google_analytics_debug = add->google_analytics_debug;
+ }
+ else{
+ mrg->google_analytics_debug = base->google_analytics_debug;
+ }
return mrg;
}
conf->google_analytics_target = apr_pstrdup(parms->pool, arg);
return NULL;
}
+static const char *
+cmd_google_analytics_debug(cmd_parms *parms, void *mconfig, const char *arg)
+{
+ mod_chxj_config *conf;
+ if (strlen(arg) > 256){
+ return "mod_chxj: set ChxjGoogleAnalyticsDebug is too long.";
+ }
+ conf = (mod_chxj_config *)mconfig;
+ conf->google_analytics_debug = apr_pstrdup(parms->pool, arg);
+ return NULL;
+}
static const command_rec cmds[] = {
OR_ALL,
"Set img target for Google Analytics. i.e. `/ga.pl'"
),
+ AP_INIT_TAKE1(
+ "ChxjGoogleAnalyticsDebug",
+ cmd_google_analytics_debug,
+ NULL,
+ OR_ALL,
+ "Set filename which is outputed response from google analytics."
+ ),
{NULL,{NULL},NULL,0,0,NULL},
};