From: konn Date: Mon, 3 Jul 2006 12:08:35 +0000 (+0000) Subject: * change writting. X-Git-Tag: v0.14.1~555 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=2e233a449503ca3c76ebee92e720cc4f0e0b7bd0;p=modchxj%2Fmod_chxj.git * change writting. git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/modchxj/mod_chxj/trunk@1564 1a406e8e-add9-4483-a2c8-d8cac5b7c224 --- diff --git a/src/mod_chxj.c b/src/mod_chxj.c index 97683521..51301dbf 100644 --- a/src/mod_chxj.c +++ b/src/mod_chxj.c @@ -658,20 +658,37 @@ chxj_output_filter(ap_filter_t *f, apr_bucket_brigade *bb) */ if (entryp->action & CONVRULE_COOKIE_ON_BIT) { DBG(r, "entryp->action == COOKIE_ON_BIT"); - - cookie = chxj_save_cookie(r); - - /* - * Location Header Check to add cookie parameter. - */ - location_header = (char*)apr_table_get(r->headers_out, "Location"); - if (location_header) { - DBG1(r, "Location Header=[%s]", location_header); - location_header = chxj_add_cookie_parameter(r, - location_header, - cookie); - apr_table_setn(r->headers_out, "Location", location_header); - DBG1(r, "Location Header=[%s]", location_header); + char* user_agent = (char*)apr_table_get(r->headers_in, HTTP_USER_AGENT); + device_table* spec = chxj_specified_device(r, user_agent); + + switch(spec->html_spec_type) { + case CHXJ_SPEC_Chtml_1_0: + case CHXJ_SPEC_Chtml_2_0: + case CHXJ_SPEC_Chtml_3_0: + case CHXJ_SPEC_Chtml_4_0: + case CHXJ_SPEC_Chtml_5_0: + case CHXJ_SPEC_XHtml_Mobile_1_0: + case CHXJ_SPEC_Hdml: + case CHXJ_SPEC_Jhtml: + + cookie = chxj_save_cookie(r); + + /* + * Location Header Check to add cookie parameter. + */ + location_header = (char*)apr_table_get(r->headers_out, "Location"); + if (location_header) { + DBG1(r, "Location Header=[%s]", location_header); + location_header = chxj_add_cookie_parameter(r, + location_header, + cookie); + apr_table_setn(r->headers_out, "Location", location_header); + DBG1(r, "Location Header=[%s]", location_header); + } + break; + + default: + break; } }