httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mar...@hyperreal.org
Subject cvs commit: apache-1.3/src/main util_uri.c
Date Wed, 21 Jul 1999 12:53:53 GMT
martin      99/07/21 05:53:53

  Modified:    src/main util_uri.c
  Log:
  Deal with empty port strings in the URI (http://myhost:/) and
  detect non-digit port strings. When re-assembling an URL,
  omit default ports.
  
  Revision  Changes    Path
  1.25      +15 -8     apache-1.3/src/main/util_uri.c
  
  Index: util_uri.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/main/util_uri.c,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- util_uri.c	1999/05/21 12:16:21	1.24
  +++ util_uri.c	1999/07/21 12:53:52	1.25
  @@ -186,11 +186,18 @@
   
   	/* Construct scheme://site string */
   	if (uptr->hostname) {
  +	    int is_default_port;
  +
  +	    is_default_port =
  +		(uptr->port_str == NULL ||
  +		 uptr->port == 0 ||
  +		 uptr->port == ap_default_port_for_scheme(uptr->scheme));
  +
   	    ret = ap_pstrcat (p,
   			uptr->scheme, "://", ret, 
   			uptr->hostname ? uptr->hostname : "",
  -			uptr->port_str ? ":" : "",
  -			uptr->port_str ? uptr->port_str : "",
  +			is_default_port ? "" : ":",
  +			is_default_port ? "" : uptr->port_str,
   			NULL);
   	}
       }
  @@ -266,8 +273,8 @@
       /* This is a sub-RE which will break down the hostinfo part,
        * i.e., user, password, hostname and port.
        * $          12      3 4        5       6 7    */
  -    re_str    = "^(([^:]*)(:(.*))?@)?([^@:]*)(:(.*))?$";
  -    /*             ^^user^ :pw      ^host^   port */
  +    re_str    = "^(([^:]*)(:(.*))?@)?([^@:]*)(:([0-9]*))?$";
  +    /*             ^^user^ :pw        ^host^ ^:[port]^ */
       if ((ret = regcomp(&re_hostpart, re_str, REG_EXTENDED)) != 0) {
   	char line[1024];
   
  @@ -345,9 +352,9 @@
   	    return HTTP_BAD_REQUEST;
   	}
   
  -	/* $          12      3 4        5       6 7    */
  -	/*        = "^(([^:]*)(:(.*))?@)?([^@:]*)(:(.*))?$" */
  -	/*             ^^user^ :pw      ^host^   port */
  +	/* $      12      3 4        5       6 7            */
  +	/*      "^(([^:]*)(:(.*))?@)?([^@:]*)(:([0-9]*))?$" */
  +	/*         ^^user^ :pw        ^host^ ^:[port]^      */
   
   	/* empty user is valid, that's why we test $1 but use $2 */
   	if (match[1].rm_so != match[1].rm_eo)
  @@ -371,7 +378,7 @@
   
   		port = strtol(uptr->port_str, &endstr, 10);
   		uptr->port = port;
  -		if (*endstr != '\0' || uptr->port != port) {
  +		if (*endstr != '\0') {
   		    /* Invalid characters after ':' found */
   		    return HTTP_BAD_REQUEST;
   		}
  
  
  

Mime
View raw message