apr_array_header_t *device_keys; /* TSV header array */
apr_hash_t *device_hash; /* TSV device data hash table */
+
+ int image_rewrite;
+ char *image_rewrite_url;
+ int image_rewrite_mode;
};
#define IS_COOKIE_STORE_DBM(X) ((X) == COOKIE_STORE_TYPE_DBM)
#define CHXJ_PROVIDER_AU (2)
#define CHXJ_PROVIDER_SOFTBANK (3)
+#define CHXJ_IMG_REWRITE_ON (2)
+#define CHXJ_IMG_REWRITE_OFF (1)
+#define CHXJ_IMG_REWRITE_NONE (0)
+
+#define CHXJ_IMG_REWRITE_MODE_ALL (3)
+#define CHXJ_IMG_REWRITE_MODE_USER (2)
+#define CHXJ_IMG_REWRITE_MODE_TAG (1)
+#define CHXJ_IMG_REWRITE_MODE_NONE (0)
#define DBG(X,args...) chxj_log_rerror(APLOG_MARK,APLOG_DEBUG,0,(request_rec*)(X),##args)
#define SDBG(X,Y) chxj_log_error(APLOG_MARK,APLOG_DEBUG,0,(X),(Y))
/* Default is copyleft */
conf->image_copyright = NULL;
+ conf->image_rewrite = CHXJ_IMG_REWRITE_NONE;
+ conf->image_rewrite_mode = CHXJ_IMG_REWRITE_MODE_NONE;
+ conf->image_rewrite_url = NULL;
+
return conf;
}
mrg->device_hash = base->device_hash;
}
+ if (add->image_rewrite == CHXJ_IMG_REWRITE_NONE){
+ mrg->image_rewrite = base->image_rewrite;
+ }
+ else{
+ mrg->image_rewrite = add->image_rewrite;
+ }
+
+ if (add->image_rewrite_url) {
+ mrg->image_rewrite_url = add->image_rewrite_url;
+ }
+ else{
+ mrg->image_rewrite_url = base->image_rewrite_url;
+ }
+
+ if (add->image_rewrite_mode == CHXJ_IMG_REWRITE_MODE_NONE){
+ mrg->image_rewrite_mode = base->image_rewrite_mode;
+ }
+ else{
+ mrg->image_rewrite_mode = add->image_rewrite_mode;
+ }
+
return mrg;
}
return NULL;
}
+static const char *
+cmd_image_rewrite(cmd_parms *parms, void *mconfig, const char *arg)
+{
+ mod_chxj_config *conf;
+ if (strlen(arg) > 256){
+ return "mod_chxj: set rewrite too long.";
+ }
+ conf = (mod_chxj_config *)mconfig;
+ if (strcasecmp("ON", arg) == 0) {
+ conf->image_rewrite = CHXJ_IMG_REWRITE_ON;
+ }
+ else if(strcasecmp("OFF",arg) == 0) {
+ conf->image_rewrite = CHXJ_IMG_REWRITE_OFF;
+ }
+ else {
+ conf->image_rewrite = CHXJ_IMG_REWRITE_NONE;
+ }
+ return NULL;
+}
+
+static const char *
+cmd_image_rewrite_url(cmd_parms *parms, void *mconfig, const char *arg)
+{
+ mod_chxj_config *conf;
+ if (strlen(arg) > 256){
+ return "mod_chxj: set rewrite url too long.";
+ }
+ conf = (mod_chxj_config *)mconfig;
+ conf->image_rewrite_url = apr_pstrdup(parms->pool, arg);;
+ return NULL;
+}
+
+static const char *
+cmd_image_rewrite_mode(cmd_parms *parms, void *mconfig, const char *arg)
+{
+ mod_chxj_config *conf;
+ if (strlen(arg) > 256){
+ return "mod_chxj: set rewrite mode is too long.";
+ }
+
+ conf = (mod_chxj_config *)mconfig;
+ if (strcasecmp("all",arg) == 0) {
+ conf->image_rewrite_mode = CHXJ_IMG_REWRITE_MODE_ALL;
+ }
+ else if (strcasecmp("user",arg) == 0) {
+ conf->image_rewrite_mode = CHXJ_IMG_REWRITE_MODE_USER;
+ }
+ else if (strcasecmp("tag",arg) == 0) {
+ conf->image_rewrite_mode = CHXJ_IMG_REWRITE_MODE_USER;
+ }
+ else{
+ conf->image_rewrite_mode = CHXJ_IMG_REWRITE_MODE_NONE;
+ }
+ return NULL;
+}
+
static const command_rec cmds[] = {
AP_INIT_TAKE1(
"ChxjLoadDeviceData",
NULL,
OR_ALL,
"Additional devices TSV data"),
+ AP_INIT_TAKE1(
+ "ChxjImageRewrite",
+ cmd_image_rewrite,
+ NULL,
+ OR_ALL,
+ "Rewrite Image"
+ ),
+ AP_INIT_TAKE1(
+ "ChxjImageRewriteUrl",
+ cmd_image_rewrite_url,
+ NULL,
+ OR_ALL,
+ "Set rewrite Image url"
+ ),
+ AP_INIT_TAKE1(
+ "ChxjImageRewriteMode",
+ cmd_image_rewrite_mode,
+ NULL,
+ OR_ALL,
+ "Set rewrite Image rewrite url mode"
+ ),
{NULL,{NULL},NULL,0,0,NULL},
};