OSDN Git Service

* change writting.
authorkonn <konn@1a406e8e-add9-4483-a2c8-d8cac5b7c224>
Mon, 3 Jul 2006 12:08:35 +0000 (12:08 +0000)
committerkonn <konn@1a406e8e-add9-4483-a2c8-d8cac5b7c224>
Mon, 3 Jul 2006 12:08:35 +0000 (12:08 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/modchxj/mod_chxj/trunk@1564 1a406e8e-add9-4483-a2c8-d8cac5b7c224

src/mod_chxj.c

index 9768352..51301db 100644 (file)
@@ -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;
           }
         }