* 20070823.0 (2.3.0-dev) Removed ap_all_available_mutexes_string,
* ap_available_mutexes_string for macros
* 20070823.1 (2.3.0-dev) add ap_send_interim_response()
- * 20070823.2 (2.3.0-dev) add ap_proxy_isvalidenc()
*
*/
PROXY_DECLARE(request_rec *)ap_proxy_make_fake_req(conn_rec *c, request_rec *r);
PROXY_DECLARE(int) ap_proxy_hex2c(const char *x);
PROXY_DECLARE(void) ap_proxy_c2hex(int ch, char *x);
-PROXY_DECLARE(apr_status_t)ap_proxy_isvalidenc(const char *url, const char *allowed);
PROXY_DECLARE(char *)ap_proxy_canonenc(apr_pool_t *p, const char *x, int len, enum enctype t,
int forcedec, int proxyreq);
PROXY_DECLARE(char *)ap_proxy_canon_netloc(apr_pool_t *p, char **const urlp, char **userp,
#endif /*APR_CHARSET_EBCDIC*/
}
-/*
- * Confirm that a URL-encoded string only contains
- * valid encoding, valid chars are passed in allowed.
- * If allowed is NULL, we use useful default.
- */
-PROXY_DECLARE(apr_status_t)ap_proxy_isvalidenc(const char *url,
- const char *allowed)
-
-{
- if (!allowed) {
- allowed = "~$-_.+!*'(),;:@&=/"; /* allowed+reserved from
- ap_proxy_canonenc */
- }
-
- for ( ; *url; ++url) {
- if (!apr_isalnum(*url) && !ap_strchr_c(allowed, *url)) {
- if (*url == '%' && apr_isxdigit(url[1]) && apr_isxdigit(url[2])) {
- url += 2; /* an encoded char */
- }
- else {
- return APR_EGENERAL; /* reject bad char in URL */
- }
- }
- }
- return APR_SUCCESS;
-}
-
/*
* canonicalise a URL-encoded string
*/