martin 98/02/27 02:18:42
Modified: src/modules/proxy mod_proxy.c mod_proxy.h proxy_util.c Log: Add pool to interfaces of proxy_is_XXX functions (needed for future expansion) Revision Changes Path 1.39 +4 -3 apache-1.3/src/modules/proxy/mod_proxy.c Index: mod_proxy.c =================================================================== RCS file: /home/cvs/apache-1.3/src/modules/proxy/mod_proxy.c,v retrieving revision 1.38 retrieving revision 1.39 diff -u -u -r1.38 -r1.39 --- mod_proxy.c 1998/02/23 08:04:10 1.38 +++ mod_proxy.c 1998/02/27 10:18:38 1.39 @@ -530,20 +530,20 @@ fprintf(stderr, "Parsed mask %s\n", inet_ntoa(New->mask)); #endif } - else if (proxy_is_domainname(New)) { + else if (proxy_is_domainname(New, parms->pool)) { str_tolower(New->name); #if DEBUGGING fprintf(stderr, "Parsed domain %s\n", New->name); #endif } - else if (proxy_is_hostname(New)) { + else if (proxy_is_hostname(New, parms->pool)) { str_tolower(New->name); #if DEBUGGING fprintf(stderr, "Parsed host %s\n", New->name); #endif } else { - proxy_is_word(New); + proxy_is_word(New, parms->pool); #if DEBUGGING fprintf(stderr, "Parsed word %s\n", New->name); #endif @@ -708,6 +708,7 @@ new->name = arg; /* Don't do name lookups on things that aren't dotted */ if (strchr(arg, '.') != NULL && proxy_host2addr(new->name, &hp) == NULL) + /*@@@FIXME: This copies only the first of (possibly many) IP addrs */ memcpy(&new->addr, hp.h_addr, sizeof(struct in_addr)); else new->addr.s_addr = 0; 1.29 +4 -4 apache-1.3/src/modules/proxy/mod_proxy.h Index: mod_proxy.h =================================================================== RCS file: /home/cvs/apache-1.3/src/modules/proxy/mod_proxy.h,v retrieving revision 1.28 retrieving revision 1.29 diff -u -u -r1.28 -r1.29 --- mod_proxy.h 1998/02/23 08:04:10 1.28 +++ mod_proxy.h 1998/02/27 10:18:39 1.29 @@ -286,9 +286,9 @@ BUFF *proxy_cache_error(struct cache_req *r); int proxyerror(request_rec *r, const char *message); const char *proxy_host2addr(const char *host, struct hostent *reqhp); -int proxy_is_ipaddr(struct dirconn_entry *This); -int proxy_is_domainname(struct dirconn_entry *This); -int proxy_is_hostname(struct dirconn_entry *This); -int proxy_is_word(struct dirconn_entry *This); +int proxy_is_ipaddr(struct dirconn_entry *This, pool *p); +int proxy_is_domainname(struct dirconn_entry *This, pool *p); +int proxy_is_hostname(struct dirconn_entry *This, pool *p); +int proxy_is_word(struct dirconn_entry *This, pool *p); int proxy_doconnect(int sock, struct sockaddr_in *addr, request_rec *r); int proxy_garbage_init(server_rec *, pool *); 1.44 +8 -4 apache-1.3/src/modules/proxy/proxy_util.c Index: proxy_util.c =================================================================== RCS file: /home/cvs/apache-1.3/src/modules/proxy/proxy_util.c,v retrieving revision 1.43 retrieving revision 1.44 diff -u -u -r1.43 -r1.44 --- proxy_util.c 1998/02/27 10:10:20 1.43 +++ proxy_util.c 1998/02/27 10:18:40 1.44 @@ -867,7 +867,7 @@ } /* Return TRUE if addr represents an IP address (or an IP network address) */ -int proxy_is_ipaddr(struct dirconn_entry *This) +int proxy_is_ipaddr(struct dirconn_entry *This, pool *p) { const char *addr = This->name; long ip_addr[4]; @@ -1054,7 +1054,7 @@ } /* Return TRUE if addr represents a domain name */ -int proxy_is_domainname(struct dirconn_entry *This) +int proxy_is_domainname(struct dirconn_entry *This, pool *p) { char *addr = This->name; int i; @@ -1066,10 +1066,12 @@ /* rfc1035 says DNS names must consist of "[-a-zA-Z0-9]" and '.' */ for (i = 0; isalnum(addr[i]) || addr[i] == '-' || addr[i] == '.'; ++i); +#if 0 if (addr[i] == ':') { fprintf(stderr, "@@@@ handle optional port in proxy_is_domainname()\n"); /* @@@@ handle optional port */ } +#endif if (addr[i] != '\0') return 0; @@ -1104,7 +1106,7 @@ } /* Return TRUE if addr represents a host name */ -int proxy_is_hostname(struct dirconn_entry *This) +int proxy_is_hostname(struct dirconn_entry *This, pool *p) { char *addr = This->name; int i; @@ -1116,10 +1118,12 @@ /* rfc1035 says DNS names must consist of "[-a-zA-Z0-9]" and '.' */ for (i = 0; isalnum(addr[i]) || addr[i] == '-' || addr[i] == '.'; ++i); +#if 0 if (addr[i] == ':') { fprintf(stderr, "@@@@ handle optional port in proxy_is_hostname()\n"); /* @@@@ handle optional port */ } +#endif if (addr[i] != '\0' || proxy_host2addr(addr, &This->hostlist) != NULL) return 0; @@ -1159,7 +1163,7 @@ } /* Return TRUE if addr is to be matched as a word */ -int proxy_is_word(struct dirconn_entry *This) +int proxy_is_word(struct dirconn_entry *This, pool *p) { This->matcher = proxy_match_word; return 1;