Changes with Apache 2.3.0
[ When backported to 2.2.x, remove entry from this file ]
+ *) mod_session_cookie: Make sure that cookie attributes are correctly
+ included in the blank cookie when cookies are removed. This fixes an
+ inability to log out when using mod_auth_form. [Graham Leggett]
+
*) mod_autoindex: add configuration option to insert string
in HTML HEAD. [Nick Kew]
*
* @param r The request
* @param name The name of the cookie.
+ * @param attrs The string containing additional cookie attributes. If NULL, the
+ * CLEAR_ATTRS will be used.
*/
-AP_DECLARE(apr_status_t) ap_cookie_remove(request_rec * r, const char *name);
+AP_DECLARE(apr_status_t) ap_cookie_remove(request_rec * r, const char *name, const char *attrs);
/**
* Remove an RFC2965 compliant cookie.
*
* @param r The request
* @param name2 The name of the cookie.
+ * @param attrs2 The string containing additional cookie attributes. If NULL, the
+ * CLEAR_ATTRS will be used.
*/
-AP_DECLARE(apr_status_t) ap_cookie_remove2(request_rec * r, const char *name2);
+AP_DECLARE(apr_status_t) ap_cookie_remove2(request_rec * r, const char *name2, const char *attrs2);
/**
* Read a cookie called name, placing its value in val.
ap_cookie_write(r, conf->name, z->encoded, conf->name_attrs, z->maxage);
}
else {
- ap_cookie_remove(r, conf->name);
+ ap_cookie_remove(r, conf->name, conf->name_attrs);
}
}
ap_cookie_write2(r, conf->name2, z->encoded, conf->name2_attrs, z->maxage);
}
else {
- ap_cookie_remove2(r, conf->name2);
+ ap_cookie_remove2(r, conf->name2, conf->name2_attrs);
}
}
* @param r The request
* @param name The name of the cookie.
*/
-AP_DECLARE(apr_status_t) ap_cookie_remove(request_rec * r, const char *name)
+AP_DECLARE(apr_status_t) ap_cookie_remove(request_rec * r, const char *name, const char *attrs)
{
/* create RFC2109 compliant cookie */
char *rfc2109 = apr_pstrcat(r->pool, name, "=;",
- CLEAR_ATTRS, NULL);
+ attrs ? attrs : CLEAR_ATTRS, NULL);
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, LOG_PREFIX
"user '%s' removed cookie: '%s'", r->user, rfc2109);
apr_table_addn(r->headers_out, SET_COOKIE, rfc2109);
* @param r The request
* @param name2 The name of the cookie.
*/
-AP_DECLARE(apr_status_t) ap_cookie_remove2(request_rec * r, const char *name2)
+AP_DECLARE(apr_status_t) ap_cookie_remove2(request_rec * r, const char *name2, const char *attrs2)
{
/* create RFC2965 compliant cookie */
char *rfc2965 = apr_pstrcat(r->pool, name2, "=;",
- CLEAR_ATTRS, NULL);
+ attrs2 ? attrs2 : CLEAR_ATTRS, NULL);
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, LOG_PREFIX
"user '%s' removed cookie2: '%s'", r->user, rfc2965);
apr_table_addn(r->headers_out, SET_COOKIE2, rfc2965);