Added basic support for OPTIONS and TRACE HTTP methods:
authoroes <oes@users.sourceforge.net>
Wed, 25 Sep 2002 14:53:15 +0000 (14:53 +0000)
committeroes <oes@users.sourceforge.net>
Wed, 25 Sep 2002 14:53:15 +0000 (14:53 +0000)
parse_http_url now recognizes the "*" URI as well as
the OPTIONS and TRACE method keywords.

urlmatch.c

index 34f23b0..f3aa6a6 100644 (file)
@@ -1,7 +1,7 @@
-const char urlmatch_rcs[] = "$Id: urlmatch.c,v 1.10 2002/05/12 21:40:37 jongfoster Exp $";
+const char urlmatch_rcs[] = "$Id: urlmatch.c,v 1.10.2.1 2002/06/06 19:06:44 jongfoster Exp $";
 /*********************************************************************
  *
- * File        :  $Source: /cvsroot/ijbswa/current/Attic/urlmatch.c,v $
+ * File        :  $Source: /cvsroot/ijbswa//current/Attic/urlmatch.c,v $
  *
  * Purpose     :  Declares functions to match URLs against URL
  *                patterns.
@@ -33,6 +33,9 @@ const char urlmatch_rcs[] = "$Id: urlmatch.c,v 1.10 2002/05/12 21:40:37 jongfost
  *
  * Revisions   :
  *    $Log: urlmatch.c,v $
+ *    Revision 1.10.2.1  2002/06/06 19:06:44  jongfoster
+ *    Adding support for proprietary Microsoft WebDAV extensions
+ *
  *    Revision 1.10  2002/05/12 21:40:37  jongfoster
  *    - Removing some unused code
  *
@@ -155,8 +158,8 @@ void free_http_request(struct http_request *http)
  *
  * Returns     :  JB_ERR_OK on success
  *                JB_ERR_MEMORY on out of memory
- *                JB_ERR_CGI_PARAMS on malformed command/URL
- *                                  or >100 domains deep.
+ *                JB_ERR_PARSE on malformed command/URL
+ *                             or >100 domains deep.
  *
  *********************************************************************/
 jb_err parse_http_url(const char * url,
@@ -179,6 +182,17 @@ jb_err parse_http_url(const char * url,
    }
 
 
+   /*
+    * Check for * URI. If found, we're done.
+    */  
+   if (*http->url == '*')
+   {
+      http->path = strdup("*");
+      http->hostport = strdup("");
+      return JB_ERR_OK;
+   }
+
+
    /*
     * Split URL into protocol,hostport,path.
     */
@@ -301,10 +315,10 @@ jb_err parse_http_url(const char * url,
       }
    }
 
-
    /*
     * Split domain name so we can compare it against wildcards
     */
+
    {
       char *vec[BUFFER_SIZE];
       size_t size;
@@ -349,8 +363,8 @@ jb_err parse_http_url(const char * url,
       memcpy(http->dvec, vec, size);
    }
 
-
    return JB_ERR_OK;
+
 }
 
 
@@ -409,6 +423,8 @@ jb_err parse_http_request(const char *req,
          || (0 == strcmpic(v[0], "post"))
          || (0 == strcmpic(v[0], "put"))
          || (0 == strcmpic(v[0], "delete"))
+         || (0 == strcmpic(v[0], "options"))
+         || (0 == strcmpic(v[0], "trace"))
  
          /* or a webDAV extension (RFC2518) */
          || (0 == strcmpic(v[0], "propfind"))