- // Fix for bug 574, secadv 20061002\r
- // Unescape URI up to query string delimiter by looking for %XX escapes.\r
- // Adapted from Apache's util.c, ap_unescape_url function.\r
- if (uri) {\r
- while (*uri) {\r
- if (*uri == '?') {\r
- m_uri += uri;\r
- break;\r
- }\r
- else if (*uri == ';') {\r
- // If this is Java being stupid, skip everything up to the query string, if any.\r
- if (!strncmp(uri, ";jsessionid=", 12)) {\r
- if (uri = strchr(uri, '?'))\r
- m_uri += uri;\r
- break;\r
- }\r
- else {\r
- m_uri += *uri;\r
- }\r
- }\r
- else if (*uri != '%') {\r
- m_uri += *uri;\r
- }\r
- else {\r
- ++uri;\r
- if (!isxdigit(*uri) || !isxdigit(*(uri+1)))\r
- throw ConfigurationException("Bad request, contained unsupported encoded characters.");\r
- m_uri += _x2c(uri);\r
- ++uri;\r
- }\r
- ++uri;\r
- }\r
- }\r
+ // Fix for bug 574, secadv 20061002
+ // Unescape URI up to query string delimiter by looking for %XX escapes.
+ // Adapted from Apache's util.c, ap_unescape_url function.
+ if (uri) {
+ while (*uri) {
+ if (*uri == '?') {
+ m_uri += uri;
+ break;
+ }
+ else if (*uri == ';') {
+ // If this is Java being stupid, skip everything up to the query string, if any.
+ if (!strncmp(uri, ";jsessionid=", 12)) {
+ if (uri = strchr(uri, '?'))
+ m_uri += uri;
+ break;
+ }
+ else {
+ m_uri += *uri;
+ }
+ }
+ else if (*uri != '%') {
+ m_uri += *uri;
+ }
+ else {
+ ++uri;
+ if (!isxdigit(*uri) || !isxdigit(*(uri+1)))
+ throw ConfigurationException("Bad request, contained unsupported encoded characters.");
+ m_uri += _x2c(uri);
+ ++uri;
+ }
+ ++uri;
+ }
+ }