Reviewed By: covener, wrowe, trawick
http://mail-archives.apache.org/mod_mbox/httpd-dev/201105.mbox/%
3C4DD4032F.
1070400@p6m7g8.com%3E
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@
1124515 13f79535-47bb-0310-9956-
ffa450edef68
* 20051115.24 (2.2.15) Add forward member to proxy_conn_rec
* 20051115.25 (2.2.17) Add errstatuses member to proxy_balancer
* 20051115.26 (2.2.18) Add ap_cache_check_allowed()
- * 20051115.27 (2.2.18) Add core_dir_config.decode_encoded_slashes.
+ * 20051115.27 (2.2.18) BROKEN ABI fixed in 2.2.19:
+ ap_unescape_url_keep2f() signature change
+ Add core_dir_config.decode_encoded_slashes.
+ * 20051115.28 (2.2.19) Restore ap_unescape_url_keep2f(char *url) signature
+ altered in 2.2.18.
*/
#define MODULE_MAGIC_COOKIE 0x41503232UL /* "AP22" */
#ifndef MODULE_MAGIC_NUMBER_MAJOR
#define MODULE_MAGIC_NUMBER_MAJOR 20051115
#endif
-#define MODULE_MAGIC_NUMBER_MINOR 27 /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 28 /* 0...n */
/**
* Determine if the server's current MODULE_MAGIC_NUMBER is at least a
AP_DECLARE(int) ap_unescape_url(char *url);
/**
- * Unescape a URL, but leaving %2f (slashes) escaped
+ * Unescape a URL, including encoded slashes.
* @param url The url to unescape
* @return 0 on success, non-zero otherwise
*/
-AP_DECLARE(int) ap_unescape_url_keep2f(char *url, int decode_slashes);
+AP_DECLARE(int) ap_unescape_url_keep2f(char *url);
+
+/**
+ * Unescape a URL, including encoded slashes.
+ * @param url The url to unescape
+ * @param decode_slashes Whether or not slashes should be decoded or not
+ * @return 0 on success, non-zero otherwise
+ */
+AP_DECLARE(int) ap_unescape_url_keep2f_ex(char *url, int decode_slashes);
/**
* Convert all double slashes to single slashes
core_dir_config *d;
d = ap_get_module_config(r->per_dir_config, &core_module);
if (d->allow_encoded_slashes) {
- access_status = ap_unescape_url_keep2f(r->parsed_uri.path, d->decode_encoded_slashes);
+ access_status = ap_unescape_url_keep2f_ex(r->parsed_uri.path, d->decode_encoded_slashes);
}
else {
access_status = ap_unescape_url(r->parsed_uri.path);
return OK;
}
-AP_DECLARE(int) ap_unescape_url_keep2f(char *url, int decode_2f)
+AP_DECLARE(int) ap_unescape_url_keep2f_ex(char *url, int decode_2f)
{
register int badesc, badpath;
char *x, *y;
}
}
+AP_DECLARE(int) ap_unescape_url_keep2f(char *url)
+{
+ return ap_unescape_url_keep2f_ex(url, 1);
+}
+
AP_DECLARE(char *) ap_construct_server(apr_pool_t *p, const char *hostname,
apr_port_t port, const request_rec *r)
{