2 * Copyright (C) 2005 QSDN,Inc. All rights reserved.
3 * Copyright (C) 2005 Atsushi Konno All rights reserved.
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 #ifndef __MOD_CHXJ_H__
18 #define __MOD_CHXJ_H__
24 #include "http_config.h"
25 #include "http_protocol.h"
26 #include "http_request.h"
28 #include "ap_config.h"
29 #include "apr_strings.h"
30 #include "apr_buckets.h"
32 #include "apr_tables.h"
34 #include "apr_general.h"
35 #include "apr_pools.h"
36 #include "util_filter.h"
38 #include "qs_ignore_sp.h"
40 #include "qs_malloc.h"
41 #include "qs_parse_attr.h"
42 #include "qs_parse_file.h"
43 #include "qs_parse_string.h"
44 #include "qs_parse_tag.h"
51 #undef PACKAGE_TARNAME
52 #undef PACKAGE_VERSION
56 #ifdef HAVE_AP_REGEX_H
57 # include "ap_regex.h"
59 # include "pcreposix.h"
61 # if !defined(AP_REG_ASSERT)
62 # define AP_REG_ASSERT REG_ASSERT
64 # if !defined(AP_REG_BADBR)
65 # define AP_REG_BADBR REG_BADBR
67 # if !defined(AP_REG_BADPAT)
68 # define AP_REG_BADPAT REG_BADPAT
70 # if !defined(AP_REG_BADRPT)
71 # define AP_REG_BADRPT REG_BADRPT
73 # if !defined(AP_REG_EBRACE)
74 # define AP_REG_EBRACE REG_EBRACE
76 # if !defined(AP_REG_EBRACK)
77 # define AP_REG_EBRACK REG_EBRACK
79 # if !defined(AP_REG_ECOLLATE)
80 # define AP_REG_ECOLLATE REG_ECOLLATE
82 # if !defined(AP_REG_ECTYPE)
83 # define AP_REG_ECTYPE REG_ECTYPE
85 # if !defined(AP_REG_EESCAPE)
86 # define AP_REG_EESCAPE REG_EESCAPE
88 # if !defined(AP_REG_EMPTY)
89 # define AP_REG_EMPTY REG_EMPTY
91 # if !defined(AP_REG_EPAREN)
92 # define AP_REG_EPAREN REG_EPAREN
94 # if !defined(AP_REG_ERANGE)
95 # define AP_REG_ERANGE REG_ERANGE
97 # if !defined(AP_REG_ESIZE)
98 # define AP_REG_ESIZE REG_ESIZE
100 # if !defined(AP_REG_ESPACE)
101 # define AP_REG_ESPACE REG_ESPACE
103 # if !defined(AP_REG_ESUBREG)
104 # define AP_REG_ESUBREG REG_ESUBREG
106 # if !defined(AP_REG_INVARG)
107 # define AP_REG_INVARG REG_INVARG
109 # if !defined(AP_REG_NOMATCH)
110 # define AP_REG_NOMATCH REG_NOMATCH
113 # if !defined(AP_REG_ICASE)
114 # define AP_REG_ICASE REG_ICASE
116 # if !defined(AP_REG_NEWLINE)
117 # define AP_REG_NEWLINE REG_NEWLINE
119 # if !defined(AP_REG_NOTBOL)
120 # define AP_REG_NOTBOL REG_NOTBOL
122 # if !defined(AP_REG_NOTEOL)
123 # define AP_REG_NOTEOL REG_NOTEOL
126 # if !defined(AP_REG_EXTENDED)
127 # define AP_REG_EXTENDED REG_EXTENDED
129 # if !defined(AP_REG_NOSUB)
130 # define AP_REG_NOSUB REG_NOSUB
133 # define ap_regex_t regex_t
134 # define ap_regmatch_t regmatch_t
140 #ifdef HAVE_APR_GLOBAL_MUTEX_H
141 # include "apr_global_mutex.h"
144 #ifdef HAVE_APR_SHM_H
145 # include "apr_shm.h"
149 typedef struct _imode_emoji_t {
156 typedef struct _ezweb_emoji_t {
163 typedef struct _jphone_emoji_t {
167 typedef struct _emoji_t {
168 struct _emoji_t* next;
170 imode_emoji_t* imode;
171 ezweb_emoji_t* ezweb;
172 jphone_emoji_t* jphone;
175 typedef struct _chxjconvrule_entry {
182 } chxjconvrule_entry;
184 #include "chxj_specified_device.h"
189 char* device_data_file;
190 char* emoji_data_file;
192 char* image_cache_dir;
193 char* image_copyright;
194 device_table_list* devices;
197 char* server_side_encoding;
199 char* dir; /* for LOG */
201 apr_array_header_t *convrules;
206 #define CONVRULE_ENGINE_ON_BIT (0x00000001)
207 #define CONVRULE_ENGINE_OFF_BIT (0x00000002)
209 #define CONVRULE_ENGINE_ON_CMD "EngineOn"
210 #define CONVRULE_ENGINE_OFF_CMD "EngineOff"
212 #define CONVRULE_FLAG_NOTMATCH (0x00000001)
214 #define CONVRULE_PC_FLAG_ON_CMD "PC"
216 #define CONVRULE_PC_FLAG_ON_BIT (0x00000001)
217 #define CONVRULE_PC_FLAG_OFF_BIT (0x00000002)
220 apr_shm_t* client_shm;
221 apr_global_mutex_t* client_lock;
222 char client_lock_file_name[256];
223 } mod_chxj_global_config;
228 apr_bucket_brigade *bb;
233 #include "chxj_tag_util.h"
235 #define CHXJ_MOD_CONFIG_KEY "chxj_module"
237 #define HTTP_USER_AGENT "User-Agent"
239 module AP_MODULE_DECLARE_DATA chxj_module;
241 #define CHXJ_IMG_ON (1)
242 #define CHXJ_IMG_OFF (0)
244 #define DBG(X,Y) ap_log_rerror(APLOG_MARK,APLOG_DEBUG,0,(request_rec*)(X),(Y))
245 #define DBG1(X,Y,Za) ap_log_rerror(APLOG_MARK,APLOG_DEBUG,0,(X),(Y),(Za))
246 #define DBG2(X,Y,Za,Zb) ap_log_rerror(APLOG_MARK,APLOG_DEBUG,0,(X),(Y),(Za),(Zb))
247 #define DBG3(X,Y,Za,Zb,Zc) ap_log_rerror(APLOG_MARK,APLOG_DEBUG,0,(X),(Y),(Za),(Zb),(Zc))
248 #define DBG4(X,Y,Za,Zb,Zc,Zd) ap_log_rerror(APLOG_MARK,APLOG_DEBUG,0,(X),(Y),(Za),(Zb),(Zc),(Zd))
249 #define DBG5(X,Y,Za,Zb,Zc,Zd,Ze) ap_log_rerror(APLOG_MARK,APLOG_DEBUG,0,(X),(Y),(Za),(Zb),(Zc),(Zd),(Ze))
250 #define ERR(X,Y) ap_log_rerror(APLOG_MARK,APLOG_ERR,0,(X),(Y))
251 #define ERR1(X,Y,Za) ap_log_rerror(APLOG_MARK,APLOG_ERR,0,(X),(Y),(Za))