From 8334a2be6f92ce7fc2451d2b726735d14d00cd42 Mon Sep 17 00:00:00 2001 From: konn Date: Wed, 19 Mar 2008 03:09:56 +0000 Subject: [PATCH] * git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/modchxj/mod_chxj/trunk@1892 1a406e8e-add9-4483-a2c8-d8cac5b7c224 --- include/mod_chxj.h | 1 + src/chxj_emoji.c | 4 ++++ src/chxj_jhtml.c | 1 + src/mod_chxj.c | 10 +++++----- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/include/mod_chxj.h b/include/mod_chxj.h index a90a3d2c..27cda26b 100644 --- a/include/mod_chxj.h +++ b/include/mod_chxj.h @@ -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; diff --git a/src/chxj_emoji.c b/src/chxj_emoji.c index 2b19845d..2fa33e13 100644 --- a/src/chxj_emoji.c +++ b/src/chxj_emoji.c @@ -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; } diff --git a/src/chxj_jhtml.c b/src/chxj_jhtml.c index 9b5bce0a..3452708a 100644 --- a/src/chxj_jhtml.c +++ b/src/chxj_jhtml.c @@ -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)) diff --git a/src/mod_chxj.c b/src/mod_chxj.c index d71133f1..ffd85da1 100644 --- a/src/mod_chxj.c +++ b/src/mod_chxj.c @@ -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); -- 2.11.0