else {
char *client_ip = (char *)apr_table_get(r->headers_in, CHXJ_HEADER_ORIG_CLIENT_IP);
if (client_ip) {
+ if (dconf->post_log) {
+ apr_table_setn(r->subprocess_env, dconf->post_log, dconf->post_log);
+ }
+ else {
+ apr_table_setn(r->subprocess_env, "chxj-post-log", "chxj-post-log");
+ }
apr_sockaddr_t *address = NULL;
apr_status_t rv = apr_sockaddr_info_get(&address, ap_get_server_name(r), APR_UNSPEC, ap_get_server_port(r), 0, r->pool);
if (rv != APR_SUCCESS) {
static void
s_convert_guid_parameter_to_header(request_rec *r, const char *param, device_table *spec)
{
+ DBG(r, "REQ[%X] start s_convert_guid_parameter() param:[%s]", (apr_size_t)(unsigned int)r, param);
if (strcasecmp(param, "guid") == 0) {
switch(spec->html_spec_type) {
case CHXJ_SPEC_XHtml_Mobile_1_0:
break;
}
}
+ DBG(r, "REQ[%X] end s_convert_guid_parameter()", (apr_size_t)(unsigned int)r);
}
/**
value = apr_strtok(NULL, "=", &vstate);
if (! name) continue;
name = chxj_safe_to_jreserved_tag(r, name);
-
if (strncasecmp(name, "_chxj", 5) != 0 && strncasecmp(name, "%5Fchxj", sizeof("%5Fchxj")-1) != 0) {
if (strlen(result) != 0)
result = apr_pstrcat(r->pool, result, "&", NULL);
result = apr_pstrcat(r->pool, result, dname, "=", dvalue, NULL);
}
else {
- if (strcmp(name, pair_sv) != 0)
+ s_convert_guid_parameter_to_header(r, name, spec);
+ if (strcmp(name, pair_sv) != 0) {
result = apr_pstrcat(r->pool, result, name, "=", value, NULL);
- else
+ }
+ else {
result = apr_pstrcat(r->pool, result, name, NULL);
+ }
}
}
else
if (! ap_is_HTTP_REDIRECT(r->status)) {
r->status = HTTP_MOVED_TEMPORARILY;
}
+ }
+ if (ctx->len && ap_is_HTTP_REDIRECT(r->status)) {
ctx->buffer = apr_pstrdup(pool, "");
ctx->len = 0;
ap_set_content_length(r, (apr_off_t)ctx->len);
DBG(r, "REQ[%X] START REQUEST (uri:[%s] args:[%s])", (unsigned int)(apr_size_t)r, r->unparsed_uri, r->args ? r->args : "");
DBG(r, "REQ[%X] ", (unsigned int)(apr_size_t)r);
DBG(r, "REQ[%X] =======================================================================", (unsigned int)(apr_size_t)r);
+#if 0
return chxj_trans_name(r);
+#else
+ return DECLINED;
+#endif
}
conf->forward_url_base = NULL;
conf->forward_server_ip = NULL;
conf->allowed_cookie_domain = NULL;
+ conf->post_log = NULL;
if (arg == NULL) {
conf->dir = NULL;
mrg->forward_url_base = NULL;
mrg->forward_server_ip = NULL;
mrg->allowed_cookie_domain = NULL;
+ mrg->post_log = NULL;
mrg->dir = apr_pstrdup(p, add->dir);
else {
mrg->allowed_cookie_domain = base->allowed_cookie_domain;
}
+ if (add->post_log) {
+ mrg->post_log = add->post_log;
+ }
+ else {
+ mrg->post_log = base->post_log;
+ }
return mrg;
}
return NULL;
}
+static const char *
+cmd_post_log_env(
+ cmd_parms *cmd,
+ void *mconfig,
+ const char *arg)
+{
+ mod_chxj_config *dconf;
+ if (strlen(arg) > 255)
+ return "mod_chxj: ChxjPostLogEnv is too long.";
+
+ dconf = (mod_chxj_config *)mconfig;
+
+ dconf->post_log = apr_pstrdup(cmd->pool, arg);
+
+ return NULL;
+}
+
static const command_rec cmds[] = {
AP_INIT_TAKE1(
NULL,
OR_ALL,
"Domain that permits parameter addition for cookie besides hostname.(Default:hostname Only)"),
+ AP_INIT_TAKE1(
+ "ChxjPostLogEnv",
+ cmd_post_log_env,
+ NULL,
+ OR_ALL,
+ "for CustomLog directive. mod_chxj's internal POST log environment name.(Default:chxj-post-log)"),
{NULL}
};