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]

Reply via email to