andya 2004/01/29 07:43:24 Modified: jk/native2/server/dsapi config.h jk_dsapi_plugin.c Log: Fixed a bug in path decoding which caused problems with parameters that contained encoded forward slashes. Made error reporting slightly more diagnostic. Revision Changes Path 1.3 +2 -5 jakarta-tomcat-connectors/jk/native2/server/dsapi/config.h Index: config.h =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/server/dsapi/config.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- config.h 14 Nov 2003 13:08:05 -0000 1.2 +++ config.h 29 Jan 2004 15:43:24 -0000 1.3 @@ -64,9 +64,6 @@ #ifndef __config_h #define __config_h -#define MAKEVERSION(a, b, c, d) \ - (((a) << 24) + ((b) << 16) + ((c) << 8) + (d)) - #define NONBLANK(s) \ (NULL != (s) && '\0' != *(s)) @@ -118,7 +115,7 @@ #define TOMCAT_START_TAG "tomcatStart" #define TOMCAT_STOP_TAG "tomcatStop" #define TOMCAT_TIMEOUT_TAG "tomcatTimeout" -#define VERSION "2.0.0" +#define VERSION "2.0.1" #define VERSION_STRING "Jakarta/DSAPI/" VERSION #define FILTERDESC "Apache Tomcat Interceptor (" VERSION_STRING ")" #define SERVERDFLT "Lotus Domino" 1.3 +25 -10 jakarta-tomcat-connectors/jk/native2/server/dsapi/jk_dsapi_plugin.c Index: jk_dsapi_plugin.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/server/dsapi/jk_dsapi_plugin.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- jk_dsapi_plugin.c 14 Nov 2003 13:08:05 -0000 1.2 +++ jk_dsapi_plugin.c 29 Jan 2004 15:43:24 -0000 1.3 @@ -682,10 +682,24 @@ /* Called to generate a generic error response. */ -static unsigned int rejectWithError(FilterContext *context) { - static char *msg = "<html><body><h1>Error in Filter</h1></body></html>"; +static unsigned int rejectWithError(FilterContext *context, const char *diagnostic) { + static char *msg = "<html><body><h1>Error in Filter</h1><p>%s</p></body></html>"; + char *mbuf; + int errID; + size_t bufSz; - simpleResponse(context, 500, "Error in Filter", msg); + if (!NONBLANK(diagnostic)) { + diagnostic = "Unspecified error"; + } + + // This assumes that we're just going to expand the diagnostic into + // the page body. + bufSz = strlen(msg) + strlen(diagnostic) + 1; + + mbuf = context->AllocMem(context, bufSz, 0, &errID); + sprintf(mbuf, msg, diagnostic); + + simpleResponse(context, 500, "Error in Filter", mbuf); return kFilterHandledRequest; } @@ -901,13 +915,13 @@ /* env->l->jkLog(env, env->l, JK_LOG_DEBUG, "parsedRequest() - %s\n", uri); */ if (!context->GetServerVariable(context, "SERVER_PORT", buf, sizeof(buf), &errID)) { - return rejectWithError(context); + return rejectWithError(context, "Failed to retrieve SERVER_PORT"); } serverPort = atoi(buf); if (!context->GetServerVariable(context, "SERVER_NAME", buf, sizeof(buf), &errID)) { - return rejectWithError(context); + return rejectWithError(context, "Failed to retrieve SERVER_NAME"); } serverName = buf; /* note serverName just aliases buf @@ -927,16 +941,17 @@ turi = context->AllocMem(context, uriSz, 0, &errID); } memcpy(turi, uri, uriSz); + + if (qp = strchr(turi, '?'), qp != NULL) { + *qp++ = '\0'; + } rc = jk_requtil_unescapeUrl(turi); if (rc < 0) { - return rejectWithError(context); + return rejectWithError(context, "Failed to unescape URI"); } jk_requtil_getParents(turi); - if (qp = strchr(turi, '?'), qp != NULL) { - *qp++ = '\0'; - } if (badURI(turi)) { return rejectBadURI(context);
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]