httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ra...@hyperreal.org
Subject cvs commit: apache-1.3/src/modules/standard mod_rewrite.c
Date Mon, 02 Feb 1998 22:33:42 GMT
randy       98/02/02 14:33:41

  Modified:    src/include httpd.h
               src/main http_config.c http_core.c http_protocol.c util.c
               src/modules/proxy mod_proxy.c proxy_http.c
               src/modules/standard mod_rewrite.c
  Log:
  Generalize default_port manipulations.
  The proxy may still need some work, but will defer until I can
  review these changes with others.
  Obtained from: Ben Laurie, Randy Terbush
  Reviewed by: Ben Laurie, Randy Terbush
  
  Revision  Changes    Path
  1.180     +6 -2      apache-1.3/src/include/httpd.h
  
  Index: httpd.h
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/include/httpd.h,v
  retrieving revision 1.179
  retrieving revision 1.180
  diff -u -r1.179 -r1.180
  --- httpd.h	1998/02/01 22:05:34	1.179
  +++ httpd.h	1998/02/02 22:33:29	1.180
  @@ -116,7 +116,11 @@
   
   /* -------------- Port number for server running standalone --------------- */
   
  -#define DEFAULT_PORT 80
  +#define DEFAULT_HTTP_PORT	80
  +#define DEFAULT_HTTPS_PORT	443
  +#define is_default_port(port,r)	((port) == default_port(r))
  +#define http_method(r)	"http"
  +#define	default_port(r)	DEFAULT_HTTP_PORT
   
   /* --------- Default user name and group name running standalone ---------- */
   /* --- These may be specified as numbers by placing a # before a number --- */
  @@ -802,7 +806,7 @@
   #define escape_uri(ppool,path) os_escape_path(ppool,path,1)
   API_EXPORT(char *) escape_html(pool *p, const char *s);
   API_EXPORT(char *) construct_server(pool *p, const char *hostname,
  -				    unsigned port);
  +				    unsigned port, const request_rec *r);
   API_EXPORT(char *) escape_shell_cmd(pool *p, const char *s);
   
   API_EXPORT(int) count_dirs(const char *path);
  
  
  
  1.95      +1 -1      apache-1.3/src/main/http_config.c
  
  Index: http_config.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/main/http_config.c,v
  retrieving revision 1.94
  retrieving revision 1.95
  diff -u -r1.94 -r1.95
  --- http_config.c	1998/01/21 22:11:01	1.94
  +++ http_config.c	1998/02/02 22:33:31	1.95
  @@ -1225,7 +1225,7 @@
   {
       server_rec *s = (server_rec *) pcalloc(p, sizeof(server_rec));
   
  -    s->port = DEFAULT_PORT;
  +    s->port = 0;
       s->server_admin = DEFAULT_ADMIN;
       s->server_hostname = NULL;
       s->error_fname = DEFAULT_ERRORLOG;
  
  
  
  1.156     +3 -3      apache-1.3/src/main/http_core.c
  
  Index: http_core.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/main/http_core.c,v
  retrieving revision 1.155
  retrieving revision 1.156
  diff -u -r1.155 -r1.156
  --- http_core.c	1998/02/02 19:46:53	1.155
  +++ http_core.c	1998/02/02 22:33:32	1.156
  @@ -622,11 +622,11 @@
   			    : r->server->port;
   	host = r->hostname ? r->hostname : r->server->server_hostname;
       }
  -    if (port == DEFAULT_PORT) {
  -	return pstrcat(p, "http://", host, uri, NULL);
  +    if (is_default_port(port, r)) {
  +	return pstrcat(p, http_method(r), "://", host, uri, NULL);
       }
       ap_snprintf(portnum, sizeof(portnum), "%u", port);
  -    return pstrcat(p, "http://", host, ":", portnum, uri, NULL);
  +    return pstrcat(p, http_method(r), "://", host, ":", portnum, uri, NULL);
   }
   
   /*****************************************************************
  
  
  
  1.184     +9 -6      apache-1.3/src/main/http_protocol.c
  
  Index: http_protocol.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/main/http_protocol.c,v
  retrieving revision 1.183
  retrieving revision 1.184
  diff -u -r1.183 -r1.184
  --- http_protocol.c	1998/01/31 00:15:43	1.183
  +++ http_protocol.c	1998/02/02 22:33:33	1.184
  @@ -625,14 +625,17 @@
   
   const char *check_fulluri(request_rec *r, const char *uri)
   {
  -    char *name, *host;
  -    int i;
  +    char *name, *host, *proto;
  +    int i, plen;
       unsigned port;
   
       /* This routine parses full URLs, if they match the server */
  -    if (strncasecmp(uri, "http://", 7))
  +    proto = http_method(r);
  +    plen = strlen(proto);
  +    
  +    if (strncasecmp(uri, proto, plen) || strncasecmp(uri + plen, "://", 3))
           return uri;
  -    name = pstrdup(r->pool, uri + 7);
  +    name = pstrdup(r->pool, uri + plen);
   
       /* Find the hostname, assuming a valid request */
       i = ind(name, '/');
  @@ -643,7 +646,7 @@
       if (*name)
           port = atoi(name);
       else
  -        port = 80;
  +        port = default_port(r);
   
       /* Make sure ports patch */
       if (port != r->server->port)
  @@ -651,7 +654,7 @@
   
       /* Save it for later use */
       r->hostname = pstrdup(r->pool, host);
  -    r->hostlen = 7 + i;
  +    r->hostlen = plen + 3 + i;
   
       /* The easy cases first */
       if (!strcasecmp(host, r->server->server_hostname)) {
  
  
  
  1.93      +2 -2      apache-1.3/src/main/util.c
  
  Index: util.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/main/util.c,v
  retrieving revision 1.92
  retrieving revision 1.93
  diff -u -r1.92 -r1.93
  --- util.c	1998/02/01 22:05:37	1.92
  +++ util.c	1998/02/02 22:33:34	1.93
  @@ -1071,12 +1071,12 @@
   }
   
   API_EXPORT(char *) construct_server(pool *p, const char *hostname,
  -				    unsigned port)
  +				    unsigned port, const request_rec *r)
   {
       char portnum[22];
       /* Long enough, even if port > 16 bits for some reason */
   
  -    if (port == DEFAULT_PORT)
  +    if (is_default_port(port, r))
   	return pstrdup(p, hostname);
       else {
   	ap_snprintf(portnum, sizeof(portnum), "%u", port);
  
  
  
  1.35      +2 -2      apache-1.3/src/modules/proxy/mod_proxy.c
  
  Index: mod_proxy.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/modules/proxy/mod_proxy.c,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- mod_proxy.c	1998/01/28 11:33:24	1.34
  +++ mod_proxy.c	1998/02/02 22:33:38	1.35
  @@ -60,7 +60,7 @@
   {
       {"ftp", DEFAULT_FTP_PORT},
       {"gopher", DEFAULT_GOPHER_PORT},
  -    {"http", DEFAULT_PORT},
  +    {"http", DEFAULT_HTTP_PORT},
       {"nntp", DEFAULT_NNTP_PORT},
       {"wais", DEFAULT_WAIS_PORT},
       {"https", DEFAULT_HTTPS_PORT},
  @@ -177,7 +177,7 @@
   
   /* canonicalise each specific scheme */
       if (strncmp(url, "http:", 5) == 0)
  -	return proxy_http_canon(r, url + 5, "http", DEFAULT_PORT);
  +	return proxy_http_canon(r, url + 5, "http", DEFAULT_HTTP_PORT);
       else if (strncmp(url, "ftp:", 4) == 0)
   	return proxy_ftp_canon(r, url + 4);
       else
  
  
  
  1.37      +2 -2      apache-1.3/src/modules/proxy/proxy_http.c
  
  Index: proxy_http.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/modules/proxy/proxy_http.c,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- proxy_http.c	1998/01/07 16:46:37	1.36
  +++ proxy_http.c	1998/02/02 22:33:38	1.37
  @@ -181,7 +181,7 @@
       if (urlptr == NULL)
   	return BAD_REQUEST;
       urlptr += 3;
  -    destport = DEFAULT_PORT;
  +    destport = DEFAULT_HTTP_PORT;
       strp = strchr(urlptr, '/');
       if (strp == NULL) {
   	desthost = pstrdup(p, urlptr);
  @@ -280,7 +280,7 @@
       bvputs(f, r->method, " ", proxyhost ? url : urlptr, " HTTP/1.0\015\012",
   	   NULL);
       bvputs(f, "Host: ", desthost, NULL);
  -    if (destportstr != NULL && destport != DEFAULT_PORT)
  +    if (destportstr != NULL && destport != DEFAULT_HTTP_PORT)
   	bvputs(f, ":", destportstr, "\015\012", NULL);
       else
   	bputs("\015\012", f);
  
  
  
  1.66      +6 -31     apache-1.3/src/modules/standard/mod_rewrite.c
  
  Index: mod_rewrite.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_rewrite.c,v
  retrieving revision 1.65
  retrieving revision 1.66
  diff -u -r1.65 -r1.66
  --- mod_rewrite.c	1998/02/01 22:05:41	1.65
  +++ mod_rewrite.c	1998/02/02 22:33:40	1.66
  @@ -923,12 +923,7 @@
   
       /* add the canonical URI of this URL */
       thisserver = r->server->server_hostname;
  -#ifdef APACHE_SSL
  -    if (((!r->connection->client->ssl) && (r->server->port == DEFAULT_PORT))
||
  -         ((r->connection->client->ssl) && (r->server->port == 443)))
  -#else
  -    if (r->server->port == DEFAULT_PORT)
  -#endif 
  +    if (is_default_port(r->server->port, r))
           thisport = "";
       else {
           ap_snprintf(buf, sizeof(buf), ":%u", r->server->port);
  @@ -937,15 +932,10 @@
       thisurl = table_get(r->subprocess_env, ENVVAR_SCRIPT_URL);
   
       /* set the variable */
  -#ifdef APACHE_SSL
       var = pstrcat(r->pool, http_method(r), "://", thisserver, thisport,
                     thisurl, NULL);
  -#else
  -    var = pstrcat(r->pool, "http://", thisserver, thisport, thisurl, NULL);
  -#endif
       table_setn(r->subprocess_env, ENVVAR_SCRIPT_URI, var);
   
  -
       /* if filename was not initially set,
        * we start with the requested URI
        */
  @@ -2108,11 +2098,7 @@
           olduri = pstrdup(r->pool, r->filename); /* save for logging */
   
           /* cut the hostname and port out of the URI */
  -#ifdef APACHE_SSL
           ap_cpystrn(buf, r->filename+strlen(http_method(r))+3, sizeof(buf));
  -#else
  -        ap_cpystrn(buf, r->filename+7, sizeof(buf));
  -#endif
           hostp = buf;
           for (cp = hostp; *cp != '\0' && *cp != '/' && *cp != ':'; cp++)
               ;
  @@ -2137,7 +2123,7 @@
               ap_cpystrn(host, hostp, sizeof(host));
               *cp = '/';
               /* set port */
  -            port = DEFAULT_PORT;
  +            port = default_port(r);
               /* set remaining url */
               url = cp;
           }
  @@ -2145,7 +2131,7 @@
               /* set host */
               ap_cpystrn(host, hostp, sizeof(host));
               /* set port */
  -            port = DEFAULT_PORT;
  +            port = default_port(r);
               /* set remaining url */
               url = "/";
           }
  @@ -2179,32 +2165,21 @@
             || (i > 8 && strncasecmp(r->filename, "https://", 8)  == 0)
             || (i > 9 && strncasecmp(r->filename, "gopher://", 9) == 0)
             || (i > 6 && strncasecmp(r->filename, "ftp://", 6)    == 0))) {
  -#ifdef APACHE_SSL
  +
           if (is_default_port(r->server->port,r))
  -#else
  -        if (r->server->port == DEFAULT_PORT)
  -#endif
               port[0] = '\0';
           else 
               ap_snprintf(port, sizeof(port), ":%u", r->server->port);
  +
           if (r->filename[0] == '/')
  -#ifdef APACHE_SSL
               ap_snprintf(newuri, sizeof(newuri), "%s://%s%s%s",
                           http_method(r), r->server->server_hostname,
                           port, r->filename);
  -#else
  -            ap_snprintf(newuri, sizeof(newuri), "http://%s%s%s",
  -                        r->server->server_hostname, port, r->filename);
  -#endif
           else
  -#ifdef APACHE_SSL
               ap_snprintf(newuri, sizeof(newuri), "%s://%s%s/%s",
                           http_method(r), r->server->server_hostname,
                           port, r->filename);
  -#else
  -            ap_snprintf(newuri, sizeof(newuri), "http://%s%s/%s",
  -                        r->server->server_hostname, port, r->filename);
  -#endif
  +
           r->filename = pstrdup(r->pool, newuri);
       }
       return;
  
  
  

Mime
View raw message