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__)
#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
}
#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
}
/* 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) {
/* 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) {
/* 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) {
}
+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)
{
/*----------------------------------------------------------------------*/
#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
}
/* 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) {
/* 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
}
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;