OSDN Git Service

Merge branch 'branch_0.13.0' into branch_0.13.0-svn
authorkonn <konn@1a406e8e-add9-4483-a2c8-d8cac5b7c224>
Wed, 10 Dec 2008 19:36:33 +0000 (19:36 +0000)
committerkonn <konn@1a406e8e-add9-4483-a2c8-d8cac5b7c224>
Wed, 10 Dec 2008 19:36:33 +0000 (19:36 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/modchxj/mod_chxj/branches/RELEASE_0_13_0@4594 1a406e8e-add9-4483-a2c8-d8cac5b7c224

include/chxj_cookie.h
src/chxj_chtml10.c
src/chxj_chtml20.c
src/chxj_chtml30.c
src/chxj_chtml40.c
src/chxj_chtml50.c
src/chxj_cookie.c
src/chxj_ixhtml10.c
src/chxj_jhtml.c
src/chxj_jxhtml.c
src/chxj_xhtml_mobile_1_0.c

index 212dd62..c9643d3 100644 (file)
@@ -127,6 +127,8 @@ extern apr_time_t chxj_parse_cookie_expires(const char *s);
 extern cookie_lock_t *__chxj_cookie_lock(request_rec *r, const char *filename, int line);
 extern int __chxj_cookie_unlock(request_rec *r, cookie_lock_t *lock, const char *filename, int line);
 
+extern char *chxj_add_cookie_no_update_parameter(request_rec *r, char *value);
+
 #define chxj_cookie_lock(X) __chxj_cookie_lock((X),__FILE__,__LINE__)
 #define chxj_cookie_unlock(X,L) __chxj_cookie_unlock((X),(L),__FILE__,__LINE__)
 
index d00cc97..8b7cb7e 100644 (file)
@@ -2607,25 +2607,13 @@ s_chtml10_start_img_tag(void *pdoc, Node *node)
 #ifdef IMG_NOT_CONVERT_FILENAME
         value = chxj_encoding_parameter(r, value, 0);
         value = chxj_add_cookie_parameter(r, value, chtml10->cookie);
-        if (value) {
-          value = apr_psprintf(doc->buf.pool, 
-                               "%s%c%s=true", 
-                               value, 
-                               (strchr(value, '?')) ? '&' : '?',
-                               CHXJ_COOKIE_NOUPDATE_PARAM);
-        }
+        value = chxj_add_cookie_no_update_parameter(r, value);
         attr_src = value;
 #else
         value = chxj_img_conv(r, spec, value);
         value = chxj_encoding_parameter(r, value, 0);
         value = chxj_add_cookie_parameter(r, value, chtml10->cookie);
-        if (value) {
-          value = apr_psprintf(doc->buf.pool,
-                               "%s%c%s=true",
-                               value,
-                               (strchr(value, '?')) ? '&' : '?',
-                               CHXJ_COOKIE_NOUPDATE_PARAM);
-        }
+        value = chxj_add_cookie_no_update_parameter(r, value);
         attr_src = value;
 #endif
       }
index ab25fd6..330e3d7 100644 (file)
@@ -2561,25 +2561,13 @@ s_chtml20_start_img_tag(void *pdoc, Node *node)
 #ifdef IMG_NOT_CONVERT_FILENAME
         value = chxj_encoding_parameter(r, value, 0);
         value = chxj_add_cookie_parameter(r, value, chtml20->cookie);
-        if (value) {
-          value = apr_psprintf(doc->buf.pool, 
-                               "%s%c%s=true", 
-                               value, 
-                               (strchr(value, '?')) ? '&' : '?',
-                               CHXJ_COOKIE_NOUPDATE_PARAM);
-        }
+        value = chxj_add_cookie_no_update_parameter(r, value);
         attr_src = value;
 #else
         value = chxj_img_conv(r, spec, value);
         value = chxj_encoding_parameter(r, value, 0);
         value = chxj_add_cookie_parameter(r, value, chtml20->cookie);
-        if (value) {
-          value = apr_psprintf(doc->buf.pool,
-                               "%s%c%s=true",
-                               value,
-                               (strchr(value, '?')) ? '&' : '?',
-                               CHXJ_COOKIE_NOUPDATE_PARAM);
-        }
+        value = chxj_add_cookie_no_update_parameter(r, value);
         attr_src = value;
 #endif
       }
index ece1c00..c510777 100644 (file)
@@ -2178,28 +2178,16 @@ s_chtml30_start_img_tag(void *pdoc, Node *node)
         /* CHTML 1.0                                                          */
         /*--------------------------------------------------------------------*/
 #ifdef IMG_NOT_CONVERT_FILENAME
-        value = chxj_encoding_parameter(r, value, 0);
-        value = chxj_add_cookie_parameter(r, value, chtml30->cookie);
-        if (value) {
-          value = apr_psprintf(doc->buf.pool, 
-                               "%s%c%s=true", 
-                               value, 
-                               (strchr(value, '?')) ? '&' : '?',
-                               CHXJ_COOKIE_NOUPDATE_PARAM);
-        }
-        attr_src = value;
+      value = chxj_encoding_parameter(r, value, 0);
+      value = chxj_add_cookie_parameter(r, value, chtml30->cookie);
+      value = chxj_add_cookie_no_update_parameter(r, value);
+      attr_src = value;
 #else
-        value = chxj_img_conv(r, spec, value);
-        value = chxj_encoding_parameter(r, value, 0);
-        value = chxj_add_cookie_parameter(r, value, chtml30->cookie);
-        if (value) {
-          value = apr_psprintf(doc->buf.pool,
-                               "%s%c%s=true",
-                               value,
-                               (strchr(value, '?')) ? '&' : '?',
-                               CHXJ_COOKIE_NOUPDATE_PARAM);
-        }
-        attr_src = value;
+      value = chxj_img_conv(r,spec,value);
+      value = chxj_encoding_parameter(r, value, 0);
+      value = chxj_add_cookie_parameter(r, value, chtml30->cookie);
+      value = chxj_add_cookie_no_update_parameter(r, value);
+      attr_src = value;
 #endif
       }
       else if (strcasecmp(name,"style") == 0 && value && *value) {
index 070f55c..d8be857 100644 (file)
@@ -2128,28 +2128,16 @@ s_chtml40_start_img_tag(void *pdoc, Node *node)
         /* CHTML 1.0                                                          */
         /*--------------------------------------------------------------------*/
 #ifdef IMG_NOT_CONVERT_FILENAME
-        value = chxj_encoding_parameter(r, value, 0);
-        value = chxj_add_cookie_parameter(r, value, chtml40->cookie);
-        if (value) {
-          value = apr_psprintf(doc->buf.pool, 
-                               "%s%c%s=true", 
-                               value, 
-                               (strchr(value, '?')) ? '&' : '?',
-                               CHXJ_COOKIE_NOUPDATE_PARAM);
-        }
-        attr_src = value;
+      value = chxj_encoding_parameter(r, value, 0);
+      value = chxj_add_cookie_parameter(r, value, chtml40->cookie);
+      value = chxj_add_cookie_no_update_parameter(r, value);
+      attr_src = value;
 #else
-        value = chxj_img_conv(r, spec, value);
-        value = chxj_encoding_parameter(r, value, 0);
-        value = chxj_add_cookie_parameter(r, value, chtml40->cookie);
-        if (value) {
-          value = apr_psprintf(doc->buf.pool,
-                               "%s%c%s=true",
-                               value,
-                               (strchr(value, '?')) ? '&' : '?',
-                               CHXJ_COOKIE_NOUPDATE_PARAM);
-        }
-        attr_src = value;
+      value = chxj_img_conv(r,spec,value);
+      value = chxj_encoding_parameter(r, value, 0);
+      value = chxj_add_cookie_parameter(r, value, chtml40->cookie);
+      value = chxj_add_cookie_no_update_parameter(r, value);
+      attr_src = value;
 #endif
       }
       else if (strcasecmp(name,"style") == 0 && value && *value) {
index e463772..a1163f5 100644 (file)
@@ -2244,28 +2244,16 @@ s_chtml50_start_img_tag(void *pdoc, Node *node)
         /* CHTML 1.0                                                          */
         /*--------------------------------------------------------------------*/
 #ifdef IMG_NOT_CONVERT_FILENAME
-        value = chxj_encoding_parameter(r, value, 0);
-        value = chxj_add_cookie_parameter(r, value, chtml50->cookie);
-        if (value) {
-          value = apr_psprintf(doc->buf.pool, 
-                               "%s%c%s=true", 
-                               value, 
-                               (strchr(value, '?')) ? '&' : '?',
-                               CHXJ_COOKIE_NOUPDATE_PARAM);
-        }
-        attr_src = value;
+      value = chxj_encoding_parameter(r, value, 0);
+      value = chxj_add_cookie_parameter(r, value, chtml50->cookie);
+      value = chxj_add_cookie_no_update_parameter(r, value);
+      attr_src = value;
 #else
-        value = chxj_img_conv(r, spec, value);
-        value = chxj_encoding_parameter(r, value, 0);
-        value = chxj_add_cookie_parameter(r, value, chtml50->cookie);
-        if (value) {
-          value = apr_psprintf(doc->buf.pool,
-                               "%s%c%s=true",
-                               value,
-                               (strchr(value, '?')) ? '&' : '?',
-                               CHXJ_COOKIE_NOUPDATE_PARAM);
-        }
-        attr_src = value;
+      value = chxj_img_conv(r,spec,value);
+      value = chxj_encoding_parameter(r, value, 0);
+      value = chxj_add_cookie_parameter(r, value, chtml50->cookie);
+      value = chxj_add_cookie_no_update_parameter(r, value);
+      attr_src = value;
 #endif
       }
       else if (strcasecmp(name,"style") == 0 && value && *value) {
index afaac49..e80710c 100644 (file)
@@ -848,6 +848,42 @@ on_error:
 }
 
 
+char *
+chxj_add_cookie_no_update_parameter(request_rec *r, char *value)
+{
+  char *qs;
+  char *dst;
+  char *name = "";
+
+  DBG(r, "REQ[%X] start chxj_add_cookie_no_update_parameter()", (unsigned int)(apr_size_t)r);
+
+  if (! value || ! *value) {
+    DBG(r, "REQ[%X] end chxj_add_cookie_parameter()(void value)", (unsigned int)(apr_size_t)r);
+    return apr_pstrdup(r->pool, "");
+  }
+
+  dst = apr_pstrdup(r->pool, value);
+
+  if (chxj_cookie_check_host(r, value) != 0) {
+    DBG(r, "REQ[%X] end chxj_add_cookie_parameter()(check host)", (unsigned int)(apr_size_t)r);
+    goto on_error;
+  }
+
+  qs = strchr(dst, '#');
+  if (qs) {
+    name = apr_pstrdup(r->pool, qs);
+    *qs = 0;
+  }
+  dst = apr_psprintf(r->pool, "%s%c%s=true%s", dst, (strchr(dst,'?')) ? '&' : '?',CHXJ_COOKIE_NOUPDATE_PARAM, name);
+  DBG(r, "REQ[%X] end   chxj_add_cookie_no_update_parameter() dst=[%s]", (unsigned int)(apr_size_t)r, dst);
+  return dst;
+
+on_error:
+  DBG(r, "REQ[%X] end   chxj_add_cookie_no_update_parameter() (on_error)", (unsigned int)(apr_size_t)r);
+  return dst;
+}
+
+
 int
 chxj_cookie_check_host(request_rec *r, char *value) 
 {
index 88c9728..deb864e 100644 (file)
@@ -2914,20 +2914,14 @@ s_ixhtml10_start_img_tag(void *pdoc, Node *node)
       /*----------------------------------------------------------------------*/
 #ifdef IMG_NOT_CONVERT_FILENAME
       value = chxj_encoding_parameter(r, value, 1);
-      if (value) {
-        value = apr_psprintf(r->pool,
-                             "%s",
-                             value);
-      }
+      value = chxj_add_cookie_parameter(r, value, ixhtml10->cookie);
+      value = chxj_add_cookie_no_update_parameter(r, value);
       attr_src = value;
 #else
       value = chxj_img_conv(r, spec, value);
       value = chxj_encoding_parameter(r, value, 1);
-      if (value) {
-        value = apr_psprintf(r->pool,
-                             "%s",
-                             value);
-      }
+      value = chxj_add_cookie_parameter(r, value, ixhtml10->cookie);
+      value = chxj_add_cookie_no_update_parameter(r, value);
       attr_src = value;
 #endif
     }
index dac679f..bf4d743 100644 (file)
@@ -2631,28 +2631,16 @@ s_jhtml_start_img_tag(void *pdoc, Node *node)
         /* CHTML 1.0                                                          */
         /*--------------------------------------------------------------------*/
 #ifdef IMG_NOT_CONVERT_FILENAME
-        value = chxj_encoding_parameter(r, value, 0);
-        value = chxj_add_cookie_parameter(r, value, jhtml->cookie);
-        if (value) {
-          value = apr_psprintf(doc->buf.pool, 
-                               "%s%c%s=true", 
-                               value, 
-                               (strchr(value, '?')) ? '&' : '?',
-                               CHXJ_COOKIE_NOUPDATE_PARAM);
-        }
-        attr_src = value;
+      value = chxj_encoding_parameter(r, value, 0);
+      value = chxj_add_cookie_parameter(r, value, jhtml->cookie);
+      value = chxj_add_cookie_no_update_parameter(r, value);
+      attr_src = value;
 #else
-        value = chxj_img_conv(r, spec, value);
-        value = chxj_encoding_parameter(r, value, 0);
-        value = chxj_add_cookie_parameter(r, value, jhtml->cookie);
-        if (value) {
-          value = apr_psprintf(doc->buf.pool,
-                               "%s%c%s=true",
-                               value,
-                               (strchr(value, '?')) ? '&' : '?',
-                               CHXJ_COOKIE_NOUPDATE_PARAM);
-        }
-        attr_src = value;
+      value = chxj_img_conv(r, spec, value);
+      value = chxj_encoding_parameter(r, value, 0);
+      value = chxj_add_cookie_parameter(r, value, jhtml->cookie);
+      value = chxj_add_cookie_no_update_parameter(r, value);
+      attr_src = value;
 #endif
       }
       else if (strcasecmp(name,"style") == 0 && value && *value) {
index 3e993a1..a03b51f 100644 (file)
@@ -2858,21 +2858,13 @@ s_jxhtml_start_img_tag(void *pdoc, Node *node)
       /* CHTML 1.0                                                            */
       /*----------------------------------------------------------------------*/
 #ifdef IMG_NOT_CONVERT_FILENAME
-      value = chxj_encoding_parameter(r, value, 1);
-      if (value) {
-        value = apr_psprintf(r->pool,
-                             "%s",
-                             value);
-      }
+      value = chxj_encoding_parameter(r, value, 0);
+      value = chxj_add_cookie_no_update_parameter(r, value);
       attr_src = value;
 #else
       value = chxj_img_conv(r, spec, value);
-      value = chxj_encoding_parameter(r, value, 1);
-      if (value) {
-        value = apr_psprintf(r->pool,
-                             "%s",
-                             value);
-      }
+      value = chxj_encoding_parameter(r, value, 0);
+      value = chxj_add_cookie_no_update_parameter(r, value);
       attr_src = value;
 #endif
     }
index a5caaae..6ef10c6 100644 (file)
@@ -3245,13 +3245,7 @@ s_xhtml_1_0_start_img_tag(void *pdoc, Node *node)
     if (STRCASEEQ('s','S',"src",name)) {
       value = chxj_encoding_parameter(r, value, 1);
       value = chxj_add_cookie_parameter(r, value, xhtml->cookie);
-      if (value) {
-        value = apr_psprintf(r->pool,
-                             "%s%c%s=true",
-                             value,
-                             (strchr(value, '?')) ? '&' : '?',
-                             CHXJ_COOKIE_NOUPDATE_PARAM);
-      }
+      value = chxj_add_cookie_no_update_parameter(r, value);
 #ifdef IMG_NOT_CONVERT_FILENAME
       attr_src = value;