mturk       2005/02/25 02:54:26

  Modified:    jk/native/iis jk_isapi_plugin.c
  Log:
  Calculate reason string if not provided to be HTTP rfc compliant.
  
  Revision  Changes    Path
  1.44      +57 -2     jakarta-tomcat-connectors/jk/native/iis/jk_isapi_plugin.c
  
  Index: jk_isapi_plugin.c
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/native/iis/jk_isapi_plugin.c,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- jk_isapi_plugin.c 25 Feb 2005 10:20:06 -0000      1.43
  +++ jk_isapi_plugin.c 25 Feb 2005 10:54:26 -0000      1.44
  @@ -331,6 +331,61 @@
       return where;
   }
   
  +static char *status_reason(int status)
  +{
  +    static struct reasons {
  +        int status;
  +        char *reason;
  +    } *r, reasons[] = {
  +        { 100, "Continue" }, 
  +        { 101, "Switching Protocols" }, 
  +        { 200, "OK" }, 
  +        { 201, "Created" }, 
  +        { 202, "Accepted" }, 
  +        { 203, "Non-Authoritative Information" }, 
  +        { 204, "No Content" }, 
  +        { 205, "Reset Content" }, 
  +        { 206, "Partial Content" }, 
  +        { 300, "Multiple Choices" }, 
  +        { 301, "Moved Permanently" }, 
  +        { 302, "Moved Temporarily" }, 
  +        { 303, "See Other" }, 
  +        { 304, "Not Modified" }, 
  +        { 305, "Use Proxy" }, 
  +        { 400, "Bad Request" }, 
  +        { 401, "Unauthorized" }, 
  +        { 402, "Payment Required" }, 
  +        { 403, "Forbidden" }, 
  +        { 404, "Not Found" }, 
  +        { 405, "Method Not Allowed" }, 
  +        { 406, "Not Acceptable" }, 
  +        { 407, "Proxy Authentication Required" }, 
  +        { 408, "Request Timeout" }, 
  +        { 409, "Conflict" }, 
  +        { 410, "Gone" }, 
  +        { 411, "Length Required" }, 
  +        { 412, "Precondition Failed" }, 
  +        { 413, "Request Entity Too Large" }, 
  +        { 414, "Request-URI Too Long" }, 
  +        { 415, "Unsupported Media Type" }, 
  +        { 500, "Internal Server Error" }, 
  +        { 501, "Not Implemented" }, 
  +        { 502, "Bad Gateway" }, 
  +        { 503, "Service Unavailable" }, 
  +        { 504, "Gateway Timeout" }, 
  +        { 505, "HTTP Version Not Supported" },
  +        { 000, NULL}
  +    };
  +
  +    r = reasons;
  +    while (r->status <= status)
  +        if (r->status == status)
  +            return r->reason;
  +        else
  +            r++;
  +    return "No Reason";
  +} 
  +
   static int escape_url(const char *path, char *dest, int destsize)
   {
       const BYTE *s = (const BYTE *)path;
  @@ -433,7 +488,7 @@
                * Create the status line
                */
               if (!reason) {
  -                reason = "";
  +                reason = status_reason(status);
               }
               status_str = (char *)_alloca((6 + strlen(reason)) * 
sizeof(char));
               sprintf(status_str, "%d %s", status, reason);
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to