OSDN Git Service

*
authorkonn <konn@1a406e8e-add9-4483-a2c8-d8cac5b7c224>
Wed, 19 Mar 2008 03:09:56 +0000 (03:09 +0000)
committerkonn <konn@1a406e8e-add9-4483-a2c8-d8cac5b7c224>
Wed, 19 Mar 2008 03:09:56 +0000 (03:09 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/modchxj/mod_chxj/trunk@1892 1a406e8e-add9-4483-a2c8-d8cac5b7c224

include/mod_chxj.h
src/chxj_emoji.c
src/chxj_jhtml.c
src/mod_chxj.c

index a90a3d2..27cda26 100644 (file)
@@ -373,6 +373,7 @@ typedef struct {
 #define HTTP_CONTENT_LENGTH   "Content-Length"
 #define CHXJ_HTTP_USER_AGENT  "CHXJ_HTTP_USER_AGENT"
 #define CHXJ_HTTP_ORIG_CONTENT_LENGTH "CHXJ_HTTP_ORIG_CONTENT_LENGTH"
+#define FORM_CONTENT_TYPE     "application/x-www-form-urlencoded"
 
 module AP_MODULE_DECLARE_DATA chxj_module;
 
index 2b19845..2fa33e1 100644 (file)
@@ -480,6 +480,7 @@ dbg_r = r;
         DBG(r, "DETECT UTF8 BIN");
         if ((0xe0 & src[i]) == 0xc0) { 
           /* 2byte charactor */
+          DBG(r, "UTF-8 2byte charactor");
           mb[0] = src[i+0];
           mb[1] = src[i+1];
           mb[2] = 0;
@@ -487,6 +488,7 @@ dbg_r = r;
         }
         else if ((0xf0 & src[i]) == 0xe0) {
           /* 3byte charactor */
+          DBG(r, "UTF-8 3byte charactor");
           tmp = is_emoji_as_utf8_bin(r, &src[i]);
           if (tmp) {
             char *meta_emoji = apr_psprintf(r->pool, 
@@ -512,6 +514,7 @@ dbg_r = r;
         }
         else if ((0xf8 & src[i]) == 0xf0) {
           /* 4byte charactor */
+          DBG(r, "UTF-8 4byte charactor");
           mb[0] = src[i+0];
           mb[1] = src[i+1];
           mb[2] = src[i+2];
@@ -521,6 +524,7 @@ dbg_r = r;
         }
         else if ((0xc0 & src[i]) == 0x80) { 
           /* unknown charactor */
+          DBG(r, "UTF-8 unknown charactor");
           mb[0] = src[i+0];
           mb[1] = 0;
         }
index 9b5bce0..3452708 100644 (file)
@@ -20,6 +20,7 @@
 #include "chxj_img_conv.h"
 #include "chxj_qr_code.h"
 #include "chxj_encoding.h"
+#include "chxj_jreserved_tag.h"
 
 #define GET_JHTML(X) ((jhtml_t*)(X))
 
index d71133f..ffd85da 100644 (file)
@@ -182,15 +182,15 @@ chxj_headers_fixup(request_rec *r)
     content_type = (char *)apr_table_get(r->headers_in, "Content-Type");
     if (r->method_number != M_POST
         || content_type == NULL
-        || ! STRCASEEQ('a','A', "application/x-www-form-urlencoded", content_type)) {
-      DBG(r, "NOT POST METHOD:[%d]", r->method_number);
+        || ! STRNCASEEQ('a','A', FORM_CONTENT_TYPE, content_type, strlen(FORM_CONTENT_TYPE))) {
+      DBG(r, "NOT POST METHOD:[%d] content_type:[%s]", r->method_number, content_type);
       break;
     }
     content_length = (char*)apr_table_get(r->headers_in, HTTP_CONTENT_LENGTH);
     DBG(r, "content-Type:[%s]", content_type);
     DBG(r, "content-Length:[%s]", content_length);
     if (content_length && strlen(content_length) != 0) {
-      if (STRCASEEQ('A','a', "application/x-www-form-urlencoded", content_type)) {
+      if (STRNCASEEQ('A','a', FORM_CONTENT_TYPE, content_type, strlen(FORM_CONTENT_TYPE))) {
         long cl = (long)((double)chxj_atoi(content_length) * 3. / 2.);
         if (cl <= CHXJ_CONTENT_LENGTH_MAX) {
           if (cl > 0) {
@@ -1078,7 +1078,7 @@ chxj_input_filter(ap_filter_t         *f,
   if (mode != AP_MODE_READBYTES 
       || r->method_number != M_POST
       || content_type == NULL
-      || ! STRCASEEQ('a','A', "application/x-www-form-urlencoded", content_type)
+      || ! STRNCASEEQ('a','A', FORM_CONTENT_TYPE, content_type, strlen(FORM_CONTENT_TYPE))
       || content_length == NULL
       || strlen(content_length) == 0
       || strcmp("0", content_length) == 0) {
@@ -1194,7 +1194,7 @@ chxj_input_filter(ap_filter_t         *f,
     DBG(r, "(in:convert)POSTDATA:[%.*s]:LEN:[%d]", len, data_brigade, len);
     if (STRCASEEQ('P','p', "post", r->method)) {
       char *new_area;
-      if (STRCASEEQ('a','A', "application/x-www-form-urlencoded", content_type)) {
+      if (STRNCASEEQ('a','A', FORM_CONTENT_TYPE, content_type, strlen(FORM_CONTENT_TYPE))) {
         if (content_length && strlen(content_length) != 0) {
           apr_size_t cl = (apr_size_t)chxj_atoi(content_length);
           new_area = apr_palloc(r->pool, cl + 1);