cvs commit: apache KEYS
chuck 97/06/05 10:02:14 Modified:. KEYS Log: added mine for code signing. Revision ChangesPath 1.9 +14 -0 apache/KEYS Index: KEYS === RCS file: /export/home/cvs/apache/KEYS,v retrieving revision 1.8 retrieving revision 1.9 diff -C3 -r1.8 -r1.9 *** KEYS 1997/06/05 10:25:20 1.8 --- KEYS 1997/06/05 17:02:12 1.9 *** *** 155,157 --- 155,171 EGTiYbe+Y3sHJhhP+d0TOLmsETG9tpi7gFZ6FfNcWPxFMdxGrf4= =0jQW -END PGP PUBLIC KEY BLOCK- + + Type bits/keyIDDate User ID + pub 1024/BA20321D 1997/06/05 Chuck Murcko [EMAIL PROTECTED] + + -BEGIN PGP PUBLIC KEY BLOCK- + Version: 2.6.2 + + mQCNAzOW7moAAAEEAMYZlNOxWCjLR/PosadbG+xsrB2unid2LiYoakTFiDIBaZjx + bu6hNmVZPYfKOXQcqrCu0EY3uVLP/L89bST5pfIZOzz8GTm33zrETgfzpXYyFdbX + eZ5vc6aa3+7zmI7h/aU567P9ruB2C/RBLl1A59wmPRRVvjEIAkI4bAO6IDIdAAUR + tCBDaHVjayBNdXJja28gPGNodWNrQHRvcHNhaWwub3JnPg== + =vUdL + -END PGP PUBLIC KEY BLOCK- +
cvs commit: apache-site index.html
chuck 97/06/05 17:22:39 Modified:. index.html Log: Fixed a small typo. Also removed the sentence The Apache Group believes this release to be stable, and relatively bug-free. from the README,html under apache/dist. Revision ChangesPath 1.20 +1 -1 apache-site/index.html Index: index.html === RCS file: /export/home/cvs/apache-site/index.html,v retrieving revision 1.19 retrieving revision 1.20 diff -C3 -r1.19 -r1.20 *** index.html1997/06/04 11:11:25 1.19 --- index.html1997/06/06 00:22:38 1.20 *** *** 55,61 The eleventh beta of Apache 1.2 has now been released. The Apache Group has appreciated the broad testing that previous releases have received ! and looks forward to making the general release of 1.2 available. It is the group's intention to give 1.2b11 some final testing in hopes of making 1.2b11 available as the general 1.2 release on June 5th. If you are running any beta of 1.2, you should upgrade to 1.2b11 for both stability --- 55,61 The eleventh beta of Apache 1.2 has now been released. The Apache Group has appreciated the broad testing that previous releases have received ! and looks forward to make the general release of 1.2 available. It is the group's intention to give 1.2b11 some final testing in hopes of making 1.2b11 available as the general 1.2 release on June 5th. If you are running any beta of 1.2, you should upgrade to 1.2b11 for both stability
cvs commit: apache/src/modules/proxy proxy_util.c
chuck 97/06/04 14:20:28 Modified:src/modules/proxy proxy_util.c Log: Final proxy cleanups for release. Change errant memchr call to memset. Check for NULL read fd in proxy_send_fb() so we minimize risk of a coredump after a timeout on the origin host connection. Revision ChangesPath 1.17 +2 -2 apache/src/modules/proxy/proxy_util.c Index: proxy_util.c === RCS file: /export/home/cvs/apache/src/modules/proxy/proxy_util.c,v retrieving revision 1.16 retrieving revision 1.17 diff -C3 -r1.16 -r1.17 *** proxy_util.c 1997/05/31 22:43:00 1.16 --- proxy_util.c 1997/06/04 21:20:27 1.17 *** *** 399,405 */ hard_timeout(proxy send body, r); ! while (!con-aborted) { n = bread(f, buf, IOBUFSIZE); if (n == -1) /* input error */ { --- 399,405 */ hard_timeout(proxy send body, r); ! while (!con-aborted f != NULL) { n = bread(f, buf, IOBUFSIZE); if (n == -1) /* input error */ { *** *** 717,723 ipaddr = inet_addr(host); hp = gethostbyaddr((char *)ipaddr, sizeof(u_long), AF_INET); if (hp == NULL) { ! memchr(hpbuf, 0, sizeof(hpbuf)); hpbuf.h_name = 0; hpbuf.h_addrtype = AF_INET; hpbuf.h_length = sizeof(u_long); --- 717,723 ipaddr = inet_addr(host); hp = gethostbyaddr((char *)ipaddr, sizeof(u_long), AF_INET); if (hp == NULL) { ! memset(hpbuf, 0, sizeof(hpbuf)); hpbuf.h_name = 0; hpbuf.h_addrtype = AF_INET; hpbuf.h_length = sizeof(u_long);
cvs commit: apache/src/modules/proxy proxy_util.c
chuck 97/05/31 15:43:02 Modified:src/modules/proxy proxy_util.c Log: Submitted by: Jozsef Hollosi [EMAIL PROTECTED] Cleanup to remove malloc() from proxy_host2addr. Revision ChangesPath 1.16 +2 -3 apache/src/modules/proxy/proxy_util.c Index: proxy_util.c === RCS file: /export/home/cvs/apache/src/modules/proxy/proxy_util.c,v retrieving revision 1.15 retrieving revision 1.16 diff -C3 -r1.15 -r1.16 *** proxy_util.c 1997/05/29 06:23:36 1.15 --- proxy_util.c 1997/05/31 22:43:00 1.16 *** *** 701,706 --- 701,707 struct hostent *hp; static struct hostent hpbuf; static u_long ipaddr; + static char* charpbuf[2]; for (i=0; host[i] != '\0'; i++) if (!isdigit(host[i]) host[i] != '.') *** *** 720,734 hpbuf.h_name = 0; hpbuf.h_addrtype = AF_INET; hpbuf.h_length = sizeof(u_long); ! hpbuf.h_addr_list = malloc(2 * sizeof(char*)); hpbuf.h_addr_list[0] = (char*)ipaddr; hpbuf.h_addr_list[1] = 0; hp = hpbuf; } } memcpy(reqhp, hp, sizeof(struct hostent)); - if (hpbuf.h_addr_list != NULL) - free(hpbuf.h_addr_list); return NULL; } --- 721,733 hpbuf.h_name = 0; hpbuf.h_addrtype = AF_INET; hpbuf.h_length = sizeof(u_long); ! hpbuf.h_addr_list = charpbuf; hpbuf.h_addr_list[0] = (char*)ipaddr; hpbuf.h_addr_list[1] = 0; hp = hpbuf; } } memcpy(reqhp, hp, sizeof(struct hostent)); return NULL; }
cvs commit: apache/src CHANGES
chuck 97/05/30 13:56:38 Modified:src CHANGES Log: Submitted by: Jozsef Hollosi [EMAIL PROTECTED] Fixup for PR#624 patch. No leak, no malloc(). Updated CHANGES. Revision ChangesPath 1.285 +2 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.284 retrieving revision 1.285 diff -C3 -r1.284 -r1.285 *** CHANGES 1997/05/29 06:46:53 1.284 --- CHANGES 1997/05/30 20:56:36 1.285 *** *** 1,5 --- 1,7 Changes with Apache 1.2 + *) Fixed open timestamp fd in proxy_cache.c [Chuck Murcko] + *) Added undocumented perl SSI mechanism for -DUSE_PERL_SSI and mod_perl. [Rob Hartill]
cvs commit: apache/src/modules/proxy proxy_cache.c
chuck 97/05/29 08:16:04 Modified:src/modules/proxy proxy_cache.c Log: Close timestamp file after open/create; partial fix for PR#624 Revision ChangesPath 1.13 +3 -2 apache/src/modules/proxy/proxy_cache.c Index: proxy_cache.c === RCS file: /export/home/cvs/apache/src/modules/proxy/proxy_cache.c,v retrieving revision 1.12 retrieving revision 1.13 diff -C3 -r1.12 -r1.13 *** proxy_cache.c 1997/04/06 07:43:48 1.12 --- proxy_cache.c 1997/05/29 15:16:01 1.13 *** *** 98,104 array_header *files; struct stat buf; struct gc_ent *fent,**elts; ! int i; static time_t lastcheck=BAD_DATE; /* static data!!! */ cachedir = conf-root; --- 98,104 array_header *files; struct stat buf; struct gc_ent *fent,**elts; ! int i, timefd; static time_t lastcheck=BAD_DATE; /* static data!!! */ cachedir = conf-root; *** *** 122,128 unblock_alarms(); return; } ! if (creat(filename, 0666) == -1) { if (errno != EEXIST) proxy_log_uerror(creat, filename, NULL, r-server); --- 122,128 unblock_alarms(); return; } ! if ((timefd = creat(filename, 0666)) == -1) { if (errno != EEXIST) proxy_log_uerror(creat, filename, NULL, r-server); *** *** 131,136 --- 131,137 unblock_alarms(); return; } + close(timefd); } else { lastcheck = buf.st_mtime; /* save the time */
cvs commit: apache/htdocs/manual/mod mod_proxy.html
chuck 97/05/09 02:23:03 Modified:htdocs/manual/mod mod_proxy.html Log: Redo 'controlling access to proxy' section, noting that Limit block is required, that Files block is required for versions 1.2b10, and using all allowable methods in the Limit block. Revision ChangesPath 1.21 +4 -1 apache/htdocs/manual/mod/mod_proxy.html Index: mod_proxy.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_proxy.html,v retrieving revision 1.20 retrieving revision 1.21 diff -C3 -r1.20 -r1.21 *** mod_proxy.html1997/05/01 05:27:01 1.20 --- mod_proxy.html1997/05/09 09:23:02 1.21 *** *** 301,313 pre lt;Directory proxy:*gt; ! lt;Limit GETgt; order deny,allow deny from [machines you'd like *not* to allow by IP address or name] allow from [machines you'd like to allow by IP address or name] lt;/Limitgt; lt;/Directorygt; /prep h2a name=shortnameUsing Netscape hostname shortcuts/a/h2 --- 301,316 pre lt;Directory proxy:*gt; ! lt;Limit GET PUT POST DELETE CONNECT OPTIONSgt; order deny,allow deny from [machines you'd like *not* to allow by IP address or name] allow from [machines you'd like to allow by IP address or name] lt;/Limitgt; lt;/Directorygt; /prep + + A lt;Filesgt; block will also work, and is the only method known to work + for all possible URLs in Apache versions earlier than 1.2b10.p h2a name=shortnameUsing Netscape hostname shortcuts/a/h2
cvs commit: apache/htdocs/manual unixware.html
chuck 97/05/09 02:34:10 Modified:htdocs/manual unixware.html Log: Add info from DeanRMoeller [EMAIL PROTECTED], PR#466, concerning problems with accept() errors. Revision ChangesPath 1.3 +3 -1 apache/htdocs/manual/unixware.html Index: unixware.html === RCS file: /export/home/cvs/apache/htdocs/manual/unixware.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C3 -r1.2 -r1.3 *** unixware.html 1997/04/25 01:27:30 1.2 --- unixware.html 1997/05/09 09:34:09 1.3 *** *** 16,22 H2UnixWare 1.x/H2 Make sure that USE_FCNTL_SERIALIZE_ACCEPT is defined (if not ! defined by Apache autoconfiguration). H2UnixWare 2.0.x/H2 --- 16,24 H2UnixWare 1.x/H2 Make sure that USE_FCNTL_SERIALIZE_ACCEPT is defined (if not ! defined by Apache autoconfiguration). If using the UnixWare icc/i ! compiler, and you still see accept() errors, don't use compiler optimization, ! or get igcc/i. H2UnixWare 2.0.x/H2
cvs commit: apache/htdocs/manual/mod mod_proxy.html
chuck 97/04/24 18:29:58 Modified:htdocs/manual/mod mod_proxy.html Log: Changed back to use of Directory blocks for access control. Clarified location of proxy source in 1.2. Added note that proxy is HTTP 1.0 compliant. Revision ChangesPath 1.19 +6 -6 apache/htdocs/manual/mod/mod_proxy.html Index: mod_proxy.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_proxy.html,v retrieving revision 1.18 retrieving revision 1.19 diff -C3 -r1.18 -r1.19 *** mod_proxy.html1997/04/25 00:07:02 1.18 --- mod_proxy.html1997/04/25 01:29:57 1.19 *** *** 9,17 H1Apache module mod_proxy/h1 This module is contained in the codemod_proxy.c/code file for Apache 1.1.x, ! or the codemodules/proxy/libproxy.a/code library for Apache 1.2, and ! is not compiled in by default. It provides for a caching proxy server. ! It is only available in Apache 1.1 and later. Common configuration questions are addressed a href=#configshere/a. h3Note:/h3 --- 9,17 H1Apache module mod_proxy/h1 This module is contained in the codemod_proxy.c/code file for Apache 1.1.x, ! or the codemodules/proxy/code subdirectory for Apache 1.2, and ! is not compiled in by default. It provides for an bHTTP 1.0/b caching proxy ! server. It is only available in Apache 1.1 and later. Common configuration questions are addressed a href=#configshere/a. h3Note:/h3 *** *** 296,312 a name=accessh2Controlling access to your proxy/h2 ! You can control who can access your proxy via the normal lt;Filesgt; control block using the following example:p pre ! lt;Files proxy:*gt; lt;Limit GETgt; order deny,allow deny from [machines you'd like *not* to allow by IP address or name] allow from [machines you'd like to allow by IP address or name] lt;/Limitgt; ! lt;/Filesgt; /prep a name=shortnameh2Using Netscape hostname shortcuts/h2 --- 296,312 a name=accessh2Controlling access to your proxy/h2 ! You can control who can access your proxy via the normal lt;Directorygt; control block using the following example:p pre ! lt;Directory proxy:*gt; lt;Limit GETgt; order deny,allow deny from [machines you'd like *not* to allow by IP address or name] allow from [machines you'd like to allow by IP address or name] lt;/Limitgt; ! lt;/Directorygt; /prep a name=shortnameh2Using Netscape hostname shortcuts/h2
cvs commit: apache/src/modules/proxy mod_proxy.h
chuck 97/04/15 17:13:06 Modified:src/modules/proxy mod_proxy.h Log: Clean up TODO list; fix mailing address. Revision ChangesPath 1.11 +2 -4 apache/src/modules/proxy/mod_proxy.h Index: mod_proxy.h === RCS file: /export/home/cvs/apache/src/modules/proxy/mod_proxy.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C3 -r1.10 -r1.11 *** mod_proxy.h 1997/04/11 05:10:50 1.10 --- mod_proxy.h 1997/04/16 00:13:05 1.11 *** *** 88,98 4. Use a cache expiry database for more efficient GC (Jeremy Wohl) ! 5. Handle multiple IPs for doconnect() ! 6. Bulletproof GC against SIGALRM ! ! Chuck Murcko [EMAIL PROTECTED] 1 Oct 96 */ --- 88,96 4. Use a cache expiry database for more efficient GC (Jeremy Wohl) ! 5. Bulletproof GC against SIGALRM ! Chuck Murcko [EMAIL PROTECTED] 15 April 1997 */
cvs commit: apache/src/modules/proxy proxy_ftp.c
chuck 97/04/13 20:43:34 Modified:src/modules/proxy proxy_ftp.c Log: Encode spaces for displayed filenames in directories. Revision ChangesPath 1.20 +26 -2 apache/src/modules/proxy/proxy_ftp.c Index: proxy_ftp.c === RCS file: /export/home/cvs/apache/src/modules/proxy/proxy_ftp.c,v retrieving revision 1.19 retrieving revision 1.20 diff -C3 -r1.19 -r1.20 *** proxy_ftp.c 1997/04/13 15:20:30 1.19 --- proxy_ftp.c 1997/04/14 03:43:33 1.20 *** *** 149,155 } else { ! p = proxy_canonenc(pool, r-args, strlen(r-args), enc_path, 1); if (p == NULL) return BAD_REQUEST; path = pstrcat(pool, path, ?, p, NULL); } --- 149,155 } else { ! p = proxy_canonenc(pool, r-args, strlen(r-args), enc_fpath, 1); if (p == NULL) return BAD_REQUEST; path = pstrcat(pool, path, ?, p, NULL); } *** *** 213,218 --- 213,239 return status; } + static char * + encode_space(request_rec *r, char *path) + { + pool *pool=r-pool; + char *newpath; + int i, j, len; + + len = strlen(path); + newpath = palloc(pool, 3 * len + 1); + for (i=0, j=0; i len; i++, j++) { + if (path[i] != ' ') + newpath[j] = path[i]; + else { + proxy_c2hex(' ', newpath[j]); + j += 2; + } + } + newpath[j] = '\0'; + return newpath; + } + static long int send_dir(BUFF *f, request_rec *r, BUFF *f2, struct cache_req *c, char *url) { *** *** 220,225 --- 241,247 char buf2[IOBUFSIZE]; char *filename; char *tempurl; + char *newurlptr; int searchidx = 0; char *searchptr = NULL; int firstfile = 1; *** *** 235,240 --- 257,263 tempurl += n - 5; /* leave room for ftp:// */ } + n = decodeenc(tempurl); ap_snprintf(buf, sizeof(buf), HTMLHEADTITLE%s/TITLE/HEADBODYH1Directory %s/H1HRPRE, tempurl, tempurl); bwrite(con-client, buf, strlen(buf)); if (f2 != NULL) bwrite(f2, buf, strlen(buf)); *** *** 326,332 else { ap_snprintf(urlptr, sizeof(urlptr), %s%s%s,url,(url[strlen(url)-1]=='/' ? : /), filename); ! ap_snprintf(buf2, sizeof(buf2), %s A HREF=\%s\%s/A\015\012, buf, urlptr, filename); } strncpy(buf, buf2, sizeof(buf)); buf[sizeof(buf)-1] = '\0'; --- 349,356 else { ap_snprintf(urlptr, sizeof(urlptr), %s%s%s,url,(url[strlen(url)-1]=='/' ? : /), filename); ! newurlptr = encode_space(r, urlptr); ! ap_snprintf(buf2, sizeof(buf2), %s A HREF=\%s\%s/A\015\012, buf, newurlptr, filename); } strncpy(buf, buf2, sizeof(buf)); buf[sizeof(buf)-1] = '\0';
cvs commit: apache/src/modules/proxy proxy_util.c
chuck 97/04/11 23:17:46 Modified:src/modules/proxy proxy_util.c Log: Fix IP address handling of proxy_host2addr(). Revision ChangesPath 1.13 +9 -10 apache/src/modules/proxy/proxy_util.c Index: proxy_util.c === RCS file: /export/home/cvs/apache/src/modules/proxy/proxy_util.c,v retrieving revision 1.12 retrieving revision 1.13 diff -C3 -r1.12 -r1.13 *** proxy_util.c 1997/04/11 05:10:52 1.12 --- proxy_util.c 1997/04/12 06:17:45 1.13 *** *** 693,700 proxy_host2addr(const char *host, struct hostent *reqhp) { int i; ! struct in_addr ipaddr; ! char *addr_str; for (i=0; host[i] != '\0'; i++) if (!isdigit(host[i]) host[i] != '.') --- 693,700 proxy_host2addr(const char *host, struct hostent *reqhp) { int i; ! struct hostent *hp; ! u_long ipaddr; for (i=0; host[i] != '\0'; i++) if (!isdigit(host[i]) host[i] != '.') *** *** 702,719 if (host[i] != '\0') { - struct hostent *hp; - hp = gethostbyname(host); ! if (hp == NULL) return Host not found; ! memcpy(reqhp, hp, sizeof(struct hostent)); } else { ! if ((ipaddr.s_addr = inet_addr(host)) == -1) ! return Bad IP address; ! Explain1(Address is %s, addr_str); ! memcpy(reqhp-h_addr, ipaddr, sizeof(struct in_addr)); } return NULL; } --- 702,718 if (host[i] != '\0') { hp = gethostbyname(host); ! if (hp == NULL) ! return Host not found; } else { ! ipaddr = inet_addr(host); ! hp = gethostbyaddr((char *)ipaddr, sizeof(u_long), AF_INET); ! if (hp == NULL) ! return Address not found; } + memcpy(reqhp, hp, sizeof(struct hostent)); return NULL; }
cvs commit: apache/htdocs/manual/mod directives.html mod_proxy.html
chuck 97/04/12 11:31:57 Modified:htdocs/manual/mod directives.html mod_proxy.html Log: Added CacheDirLength and CacheDirLevels. Fixed link for CacheLastModifedFactor. Revision ChangesPath 1.16 +3 -1 apache/htdocs/manual/mod/directives.html Index: directives.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/directives.html,v retrieving revision 1.15 retrieving revision 1.16 diff -C3 -r1.15 -r1.16 *** directives.html 1997/04/11 22:23:25 1.15 --- directives.html 1997/04/12 18:31:54 1.16 *** *** 47,54 liA HREF=mod_browser.html#browsermatchBrowserMatch/A liA HREF=mod_browser.html#browsermatchnocaseBrowserMatchNoCase/A liA HREF=mod_proxy.html#cachedefaultexpireCacheDefaultExpire/A liA HREF=mod_proxy.html#cachegcintervalCacheGcInterval/A ! liA HREF=mod_proxy.html#cachelastmodfiedCacheLastModified/A liA HREF=mod_proxy.html#cachemaxexpireCacheMaxExpire/A liA HREF=mod_negotiation.html#cachenegotiateddocsCacheNegotiatedDocs/A liA HREF=mod_proxy.html#cacherootCacheRoot/A --- 47,56 liA HREF=mod_browser.html#browsermatchBrowserMatch/A liA HREF=mod_browser.html#browsermatchnocaseBrowserMatchNoCase/A liA HREF=mod_proxy.html#cachedefaultexpireCacheDefaultExpire/A + liA HREF=mod_proxy.html#cachedirlengthCacheDirLength/A + liA HREF=mod_proxy.html#cachedirlevelsCacheDirLevels/A liA HREF=mod_proxy.html#cachegcintervalCacheGcInterval/A ! liA HREF=mod_proxy.html#cachelastmodifiedfactorCacheLastModifiedFactor/A liA HREF=mod_proxy.html#cachemaxexpireCacheMaxExpire/A liA HREF=mod_negotiation.html#cachenegotiateddocsCacheNegotiatedDocs/A liA HREF=mod_proxy.html#cacherootCacheRoot/A 1.16 +29 -4 apache/htdocs/manual/mod/mod_proxy.html Index: mod_proxy.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_proxy.html,v retrieving revision 1.15 retrieving revision 1.16 diff -C3 -r1.15 -r1.16 *** mod_proxy.html1997/04/07 01:35:52 1.15 --- mod_proxy.html1997/04/12 18:31:55 1.16 *** *** 37,46 lia href=#proxyblockProxyBlock/a lia href=#cacherootCacheRoot/a lia href=#cachesizeCacheSize/a - lia href=#cachegcintervalCacheGcInterval/a lia href=#cachemaxexpireCacheMaxExpire/a - lia href=#cachelastmodifiedfactorCacheLastModifiedFactor/a lia href=#cachedefaultexpireCacheDefaultExpire/a lia href=#nocacheNoCache/a /ul --- 37,48 lia href=#proxyblockProxyBlock/a lia href=#cacherootCacheRoot/a lia href=#cachesizeCacheSize/a lia href=#cachemaxexpireCacheMaxExpire/a lia href=#cachedefaultexpireCacheDefaultExpire/a + lia href=#cachelastmodifiedfactorCacheLastModifiedFactor/a + lia href=#cachegcintervalCacheGcInterval/a + lia href=#cachedirlevelsCacheDirLevels/a + lia href=#cachedirlengthCacheDirLength/a lia href=#nocacheNoCache/a /ul *** *** 201,207 Apache 1.1 and later.p If the origin HTTP server did not supply an expiry date for the ! document, then estimate on using the formula pre expiry-period = time-since-last-modification * lt;factorgt; /pre --- 203,209 Apache 1.1 and later.p If the origin HTTP server did not supply an expiry date for the ! document, then estimate one using the formula pre expiry-period = time-since-last-modification * lt;factorgt; /pre *** *** 211,216 --- 213,241 pIf the expiry-period would be longer than that set by CacheMaxExpire, then the latter takes precedence. + A name=cachedirlevelsh2CacheDirLevels/h2/A + strongSyntax:/strong CacheDirLevels emlt;levelsgt;/embr + strongDefault:/strong /codeCacheDirLevels 3/codebr + strongContext:/strong server configbr + strongStatus:/strong Basebr + strongModule:/strong mod_proxybr + strongCompatibility:/strong CacheDirLevels is only available in + Apache 1.1 and later.p + + CacheDirLevels sets the number of levels of subdirectories in the cache. + Cached data will be saved this many directory levels below CacheRoot. + + A name=cachedirlengthh2CacheDirLength/h2/A + strongSyntax:/strong CacheDirLength emlt;lengthgt;/embr + strongDefault:/strong /codeCacheDirLength 1/codebr + strongContext:/strong server configbr + strongStatus:/strong Basebr + strongModule:/strong mod_proxybr + strongCompatibility:/strong CacheDirLength is only available in + Apache 1.1 and later.p + + CacheDirLength sets the number of characters in proxy cache subdirectory names. + A name=cachedefaultexpireh2CacheDefaultExpire/h2/A strongSyntax:/strong CacheDefaultExpire emlt;timegt;/embr strongDefault:/strong /codeCacheDefaultExpire 1/codebr *** ***
cvs commit: apache/htdocs/manual/misc known_bugs.html
chuck 97/04/12 12:56:13 Modified:htdocs/manual/misc known_bugs.html Log: Updated to 1.2b8 from 1.2b6 Revision ChangesPath 1.9 +4 -4 apache/htdocs/manual/misc/known_bugs.html Index: known_bugs.html === RCS file: /export/home/cvs/apache/htdocs/manual/misc/known_bugs.html,v retrieving revision 1.8 retrieving revision 1.9 diff -C3 -r1.8 -r1.9 *** known_bugs.html 1997/01/30 01:03:51 1.8 --- known_bugs.html 1997/04/12 19:56:11 1.9 *** *** 16,27 PSee Also: A HREF=compat_notes.htmlCompatibility notes/A/P HR ! H2Version 1.2b6/H2 ! There are several known bugs in 1.2b6. See the ! A HREF=http://www.apache.org/dist/patches/apply_to_1.2b6/;1.2b6 patches directory/A for patches for some of the ones that have been fixed since ! the release of 1.2b6.P H2Version 1.2/H2 --- 16,27 PSee Also: A HREF=compat_notes.htmlCompatibility notes/A/P HR ! H2Version 1.2b8/H2 ! There are several known bugs in 1.2b8. See the ! A HREF=http://www.apache.org/dist/patches/apply_to_1.2b8/;1.2b8 patches directory/A for patches for some of the ones that have been fixed since ! the release of 1.2b8.P H2Version 1.2/H2
cvs commit: apache/htdocs/manual unixware.html install.html install_1_1.html
chuck 97/04/12 14:49:33 Modified:htdocs/manual install.html install_1_1.html Added: htdocs/manual unixware.html Log: Add info for building under UnixWare to the 'Compiling and Installing' pages. Revision ChangesPath 1.6 +4 -1 apache/htdocs/manual/install.html Index: install.html === RCS file: /export/home/cvs/apache/htdocs/manual/install.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C3 -r1.5 -r1.6 *** install.html 1997/02/19 09:55:17 1.5 --- install.html 1997/04/12 21:49:30 1.6 *** *** 10,16 H1Compiling and Installing Apache 1.2/H1 If you wish to download and install an earlier version of Apache please ! read A HREF=install_1_1.htmlCompiling and Installing Apache 1.1/A. H2Downloading Apache/H2 --- 10,19 H1Compiling and Installing Apache 1.2/H1 If you wish to download and install an earlier version of Apache please ! read A HREF=install_1_1.htmlCompiling and Installing Apache 1.1/A./P ! ! UnixWare users will want to consult A HREF=unixware.htmlbuild notes/A ! for various UnixWare versions before compiling. H2Downloading Apache/H2 1.3 +4 -1 apache/htdocs/manual/install_1_1.html Index: install_1_1.html === RCS file: /export/home/cvs/apache/htdocs/manual/install_1_1.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C3 -r1.2 -r1.3 *** install_1_1.html 1996/11/26 05:36:39 1.2 --- install_1_1.html 1997/04/12 21:49:30 1.3 *** *** 11,17 Information on the latest version of Apache can be found on the Apache web server at http://www.apache.org/. This will list the current release, any more recent beta-test release, together with details of mirror ! web and anonymous ftp sites. h2Compiling Apache/h2 This release of Apache supports the notion of `optional modules'. --- 11,20 Information on the latest version of Apache can be found on the Apache web server at http://www.apache.org/. This will list the current release, any more recent beta-test release, together with details of mirror ! web and anonymous ftp sites./p ! ! UnixWare users will want to consult A HREF=unixware.htmlbuild notes/A ! for various UnixWare versions before compiling. h2Compiling Apache/h2 This release of Apache supports the notion of `optional modules'.
cvs commit: apache/htdocs/manual/misc FAQ.html
chuck 97/04/12 15:52:44 Modified:htdocs/manual/misc FAQ.html Log: Removed reference to experimental proxy. Revision ChangesPath 1.23 +2 -3 apache/htdocs/manual/misc/FAQ.html Index: FAQ.html === RCS file: /export/home/cvs/apache/htdocs/manual/misc/FAQ.html,v retrieving revision 1.22 retrieving revision 1.23 diff -C3 -r1.22 -r1.23 *** FAQ.html 1997/04/12 12:55:29 1.22 --- FAQ.html 1997/04/12 22:52:43 1.23 *** *** 8,14 !--#include virtual=header.html -- H1Apache Server Frequently Asked Questions/H1 P ! $Revision: 1.22 $ ($Date: 1997/04/12 12:55:29 $) /P H2The Questions/H2 !-- Stuff to Add: -- --- 8,14 !--#include virtual=header.html -- H1Apache Server Frequently Asked Questions/H1 P ! $Revision: 1.23 $ ($Date: 1997/04/12 22:52:43 $) /P H2The Questions/H2 !-- Stuff to Add: -- *** *** 550,557 STRONGDoes or will Apache act as a Proxy server?/STRONG/A P Apache version 1.1 and above comes with a proxy module. If compiled ! in, this will make Apache act as a caching-proxy server. This module ! is still considered experimental, however. /P HR /LI --- 550,556 STRONGDoes or will Apache act as a Proxy server?/STRONG/A P Apache version 1.1 and above comes with a proxy module. If compiled ! in, this will make Apache act as a caching-proxy server. /P HR /LI
cvs commit: apache/src/modules/proxy proxy_ftp.c
chuck 97/04/12 22:00:56 Modified:src/modules/proxy proxy_ftp.c Log: Further fine tune for FTP dir display when FTP server fails to format files of very large size properly. Revision ChangesPath 1.18 +2 -1 apache/src/modules/proxy/proxy_ftp.c Index: proxy_ftp.c === RCS file: /export/home/cvs/apache/src/modules/proxy/proxy_ftp.c,v retrieving revision 1.17 retrieving revision 1.18 diff -C3 -r1.17 -r1.18 *** proxy_ftp.c 1997/04/11 05:10:51 1.17 --- proxy_ftp.c 1997/04/13 05:00:54 1.18 *** *** 275,281 searchptr = filename; searchidx = filename - buf; } ! else if (searchptr != NULL searchidx != 0) { *(--filename) = ' '; buf[searchidx - 1] = 0; filename = buf[searchidx]; --- 275,282 searchptr = filename; searchidx = filename - buf; } ! else if (searchptr != NULL searchidx != 0 ! buf[searchidx] != 0) { *(--filename) = ' '; buf[searchidx - 1] = 0; filename = buf[searchidx];
cvs commit: apache/src/modules/proxy proxy_ftp.c
chuck 97/04/10 22:01:54 Modified:src/modules/proxy proxy_ftp.c Log: Improve handling of directories when filenames have spaces in them. Revision ChangesPath 1.16 +16 -0 apache/src/modules/proxy/proxy_ftp.c Index: proxy_ftp.c === RCS file: /export/home/cvs/apache/src/modules/proxy/proxy_ftp.c,v retrieving revision 1.15 retrieving revision 1.16 diff -C3 -r1.15 -r1.16 *** proxy_ftp.c 1997/04/09 06:51:07 1.15 --- proxy_ftp.c 1997/04/11 05:01:53 1.16 *** *** 220,225 --- 220,228 char buf2[IOBUFSIZE]; char *filename; char *tempurl; + char *searchptr = NULL; + int searchidx = 0; + int firstfile = 1; char urlptr[HUGE_STRING_LEN]; long total_bytes_sent; register int n, o, w; *** *** 265,270 --- 268,286 filename=strrchr(buf, ' '); *(filename++)=0; filename[strlen(filename)-1]=0; + + /* handle filenames with spaces in 'em */ + if(!strcmp(filename, .) || !strcmp(filename, ..) || firstfile) { + firstfile = 0; + searchptr = filename; + searchidx = filename - buf; + } + else if (searchptr != NULL searchidx != 0) { + *(--filename) = ' '; + buf[searchidx - 1] = 0; + filename = buf[searchidx]; + } + /* Special handling for '.' and '..' */ if (!strcmp(filename, .)) {
cvs commit: apache/src/modules/proxy mod_proxy.c mod_proxy.h proxy_connect.c proxy_ftp.c proxy_http.c proxy_util.c
chuck 97/04/10 22:10:55 Modified:src/modules/proxy mod_proxy.c mod_proxy.h proxy_connect.c proxy_ftp.c proxy_http.c proxy_util.c Log: For hosts with multiple IP addresses, try all additional addresses if necessary to get a connect(). Fail only if hostent address list is exhausted. Revision ChangesPath 1.10 +10 -4 apache/src/modules/proxy/mod_proxy.c Index: mod_proxy.c === RCS file: /export/home/cvs/apache/src/modules/proxy/mod_proxy.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C3 -r1.9 -r1.10 *** mod_proxy.c 1997/03/02 05:05:21 1.9 --- mod_proxy.c 1997/04/11 05:10:49 1.10 *** *** 335,340 --- 335,341 get_module_config (s-module_config, proxy_module); struct noproxy_entry *new; struct noproxy_entry *list=(struct noproxy_entry*)conf-noproxies-elts; + struct hostent hp; int found = 0; int i; *** *** 350,357 new = push_array (conf-noproxies); new-name = arg; /* Don't do name lookups on things that aren't dotted */ ! if (strchr(arg, '.') != NULL) ! proxy_host2addr(new-name, new-addr); else new-addr.s_addr = 0; } --- 351,360 new = push_array (conf-noproxies); new-name = arg; /* Don't do name lookups on things that aren't dotted */ ! if (strchr(arg, '.') != NULL) { ! proxy_host2addr(new-name, hp); ! memcpy(new-addr, hp.h_addr, sizeof(struct in_addr)); ! } else new-addr.s_addr = 0; } *** *** 473,478 --- 476,482 get_module_config (s-module_config, proxy_module); struct nocache_entry *new; struct nocache_entry *list=(struct nocache_entry*)conf-nocaches-elts; + struct hostent hp; int found = 0; int i; *** *** 488,495 new = push_array (conf-nocaches); new-name = arg; /* Don't do name lookups on things that aren't dotted */ ! if (strchr(arg, '.') != NULL) ! proxy_host2addr(new-name, new-addr); else new-addr.s_addr= 0; } --- 492,501 new = push_array (conf-nocaches); new-name = arg; /* Don't do name lookups on things that aren't dotted */ ! if (strchr(arg, '.') != NULL) { ! proxy_host2addr(new-name, hp); ! memcpy(new-addr, hp.h_addr, sizeof(struct in_addr)); ! } else new-addr.s_addr= 0; } 1.10 +1 -1 apache/src/modules/proxy/mod_proxy.h Index: mod_proxy.h === RCS file: /export/home/cvs/apache/src/modules/proxy/mod_proxy.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C3 -r1.9 -r1.10 *** mod_proxy.h 1997/03/20 18:40:14 1.9 --- mod_proxy.h 1997/04/11 05:10:50 1.10 *** *** 270,275 server_rec *s); BUFF *proxy_cache_error(struct cache_req *r); int proxyerror(request_rec *r, const char *message); ! const char *proxy_host2addr(const char *host, struct in_addr *addr); int proxy_doconnect(int sock, struct sockaddr_in *addr, request_rec *r); --- 270,275 server_rec *s); 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_doconnect(int sock, struct sockaddr_in *addr, request_rec *r); 1.7 +12 -3 apache/src/modules/proxy/proxy_connect.c Index: proxy_connect.c === RCS file: /export/home/cvs/apache/src/modules/proxy/proxy_connect.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C3 -r1.6 -r1.7 *** proxy_connect.c 1997/01/07 21:51:57 1.6 --- proxy_connect.c 1997/04/11 05:10:50 1.7 *** *** 88,98 { struct sockaddr_in server; struct in_addr destaddr; const char *host, *err; char *p; int port, sock; char buffer[HUGE_STRING_LEN]; ! int nbytes, i; fd_set fds; void *sconf = r-server-module_config; --- 88,99 { struct sockaddr_in server; struct in_addr destaddr; + struct hostent server_hp; const char *host, *err; char *p; int port, sock; char buffer[HUGE_STRING_LEN]; ! int nbytes, i, j; fd_set fds; void *sconf = r-server-module_config; *** *** 136,142 Explain2(CONNECT to %s on port %d, host, port); server.sin_port = htons(port); ! err =
cvs commit: apache/src CHANGES
chuck 97/04/10 22:16:39 Modified:src CHANGES Log: Add notes for recent proxy patches. Change rev number to one more politically correct, given the present group zeitgeist. Revision ChangesPath 1.229 +9 -2 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.228 retrieving revision 1.229 diff -C3 -r1.228 -r1.229 *** CHANGES 1997/04/09 06:51:30 1.228 --- CHANGES 1997/04/11 05:16:37 1.229 *** *** 1,6 ! Changes with Apache 1.2b9 ! *) add macro for memmove to conf.h for SUNOS4 [Marc Slemko] Changes with Apache 1.2b8 --- 1,13 ! Changes with Apache 1.2 ! *) Add macro for memmove to conf.h for SUNOS4. [Marc Slemko] ! ! *) Improve handling of directories when filenames have spaces in them. ! [Chuck Murcko] ! ! *) For hosts with multiple IP addresses, try all additional addresses if ! necessary to get a connect. Fail only if hostent address list is ! exhausted. [Chuck Murcko] Changes with Apache 1.2b8
cvs commit: apache/src CHANGES
chuck 97/04/08 23:51:31 Modified:src/modules/proxy proxy_ftp.c proxy_util.c src CHANGES Log: wrong proxy patch. backed it out. Revision ChangesPath 1.15 +5 -8 apache/src/modules/proxy/proxy_ftp.c Index: proxy_ftp.c === RCS file: /export/home/cvs/apache/src/modules/proxy/proxy_ftp.c,v retrieving revision 1.14 retrieving revision 1.15 diff -C3 -r1.14 -r1.15 *** proxy_ftp.c 1997/04/09 01:42:03 1.14 --- proxy_ftp.c 1997/04/09 06:51:07 1.15 *** *** 324,337 o+=w; } } ! if (!r-connection-aborted) { ! ap_snprintf(buf, sizeof(buf), /PREHRIA HREF=\http://www.apache.org\;%s/A/I/BODY/HTML, SERVER_VERSION); ! bwrite(con-client, buf, strlen(buf)); ! if (f2 != NULL) bwrite(f2, buf, strlen(buf)); ! total_bytes_sent+=strlen(buf); ! bflush(con-client); ! } else ! f2 = proxy_cache_error(c); return total_bytes_sent; } --- 324,334 o+=w; } } ! ap_snprintf(buf, sizeof(buf), /PREHRIA HREF=\http://www.apache.org\;%s/A/I/BODY/HTML, SERVER_VERSION); ! bwrite(con-client, buf, strlen(buf)); ! if (f2 != NULL) bwrite(f2, buf, strlen(buf)); ! total_bytes_sent+=strlen(buf); ! bflush(con-client); return total_bytes_sent; } 1.11 +0 -2 apache/src/modules/proxy/proxy_util.c Index: proxy_util.c === RCS file: /export/home/cvs/apache/src/modules/proxy/proxy_util.c,v retrieving revision 1.10 retrieving revision 1.11 diff -C3 -r1.10 -r1.11 *** proxy_util.c 1997/04/09 01:42:04 1.10 --- proxy_util.c 1997/04/09 06:51:07 1.11 *** *** 425,432 } if (!con-aborted) bflush(con-client); - else - f2 = proxy_cache_error(c); kill_timeout(r); return total_bytes_sent; --- 425,430 1.228 +0 -3 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.227 retrieving revision 1.228 diff -C3 -r1.227 -r1.228 *** CHANGES 1997/04/09 01:40:49 1.227 --- CHANGES 1997/04/09 06:51:30 1.228 *** *** 2,10 *) add macro for memmove to conf.h for SUNOS4 [Marc Slemko] - *) Proxy cleanup for transmission errors; avoids core dumps an some - of the truncated files. [Chuck Murcko] - Changes with Apache 1.2b8 *) suexec.c doesn't close the log file, allowing CGIs to continue writing --- 2,7
cvs commit: apache/src CHANGES conf.h
chuck 97/04/08 18:40:55 Modified:src CHANGES conf.h Log: Reviewed by: Chuck Murcko Submitted by: Marc Slemko Add #define for memmove for SUNOS4. Revision ChangesPath 1.227 +8 -1 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.226 retrieving revision 1.227 diff -C3 -r1.226 -r1.227 *** CHANGES 1997/04/07 17:49:28 1.226 --- CHANGES 1997/04/09 01:40:49 1.227 *** *** 1,5 Changes with Apache 1.2b8 ! *) suexec.c doesn't close the log file, allowing CGIs to continue writing to it. [Marc Slemko] --- 1,12 + Changes with Apache 1.2b9 + + *) add macro for memmove to conf.h for SUNOS4 [Marc Slemko] + + *) Proxy cleanup for transmission errors; avoids core dumps an some + of the truncated files. [Chuck Murcko] + Changes with Apache 1.2b8 ! *) suexec.c doesn't close the log file, allowing CGIs to continue writing to it. [Marc Slemko] 1.92 +1 -0 apache/src/conf.h Index: conf.h === RCS file: /export/home/cvs/apache/src/conf.h,v retrieving revision 1.91 retrieving revision 1.92 diff -C3 -r1.91 -r1.92 *** conf.h1997/04/07 09:44:17 1.91 --- conf.h1997/04/09 01:40:51 1.92 *** *** 86,91 --- 86,92 #include sys/time.h #define NEED_STRERROR typedef int rlim_t; + #define memmove(a,b,c) bcopy(b,a,c) #define NO_LINGCLOSE #elif defined(SOLARIS2)
cvs commit: apache/htdocs/manual/mod mod_proxy.html
chuck 97/04/06 18:35:54 Modified:htdocs/manual/mod mod_proxy.html Log: Correct syntax error in Limit block. This still doesn't fix the problem, though. Revision ChangesPath 1.15 +1 -1 apache/htdocs/manual/mod/mod_proxy.html Index: mod_proxy.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_proxy.html,v retrieving revision 1.14 retrieving revision 1.15 diff -C3 -r1.14 -r1.15 *** mod_proxy.html1997/04/06 02:42:02 1.14 --- mod_proxy.html1997/04/07 01:35:52 1.15 *** *** 276,282 pre lt;Directory proxy:*gt; ! lt;Limitgt; order allow,deny deny from [machines you'd like not to allow by IP address or name] allow from all --- 276,282 pre lt;Directory proxy:*gt; ! lt;Limit GETgt; order allow,deny deny from [machines you'd like not to allow by IP address or name] allow from all
cvs commit: apache/htdocs/manual/mod mod_proxy.html
chuck 97/04/05 18:42:03 Modified:htdocs/manual/mod mod_proxy.html Log: Fix typo in FAQ section on limiting access. Revision ChangesPath 1.14 +2 -0 apache/htdocs/manual/mod/mod_proxy.html Index: mod_proxy.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_proxy.html,v retrieving revision 1.13 retrieving revision 1.14 diff -C3 -r1.13 -r1.14 *** mod_proxy.html1997/02/20 04:26:07 1.13 --- mod_proxy.html1997/04/06 02:42:02 1.14 *** *** 276,284 --- 276,286 pre lt;Directory proxy:*gt; + lt;Limitgt; order allow,deny deny from [machines you'd like not to allow by IP address or name] allow from all + lt;/Limitgt; lt;/Directorygt; /prep
cvs commit: apache/src/modules/proxy proxy_cache.c
chuck 97/04/04 22:08:24 Modified:src/modules/proxy proxy_cache.c Log: Reviewed by: Chuck Murcko Submitted by: Brian Moore [EMAIL PROTECTED] Fix loopholes in cache expiry vis a vis alarms. This will be followed by Roy's comprehensive timeout patch. Revision ChangesPath 1.11 +10 -1 apache/src/modules/proxy/proxy_cache.c Index: proxy_cache.c === RCS file: /export/home/cvs/apache/src/modules/proxy/proxy_cache.c,v retrieving revision 1.10 retrieving revision 1.11 diff -C3 -r1.10 -r1.11 *** proxy_cache.c 1997/03/20 18:40:15 1.10 --- proxy_cache.c 1997/04/05 06:08:23 1.11 *** *** 119,124 --- 119,125 if (errno != ENOENT) { proxy_log_uerror(stat, filename, NULL, r-server); + unblock_alarms(); return; } if (creat(filename, 0666) == -1) *** *** 127,138 proxy_log_uerror(creat, filename, NULL, r-server); else lastcheck = abs(now); /* someone else got in there */ return; } } else { lastcheck = buf.st_mtime; /* save the time */ ! if (now lastcheck + every) return; if (utime(filename, NULL) == -1) proxy_log_uerror(utimes, filename, NULL, r-server); } --- 128,144 proxy_log_uerror(creat, filename, NULL, r-server); else lastcheck = abs(now); /* someone else got in there */ + unblock_alarms(); return; } } else { lastcheck = buf.st_mtime; /* save the time */ ! if (now lastcheck + every) ! { ! unblock_alarms(); ! return; ! } if (utime(filename, NULL) == -1) proxy_log_uerror(utimes, filename, NULL, r-server); } *** *** 143,149 --- 149,158 sub_garbage_coll(r,files,cachedir,/); if (curblocks cachesize || curblocks + curbytes = cachesize) + { + unblock_alarms(); return; + } qsort(files-elts, files-nelts, sizeof(struct gc_ent *), gcdiff);
cvs commit: apache/src CHANGES
chuck 97/04/04 22:09:53 Modified:src CHANGES Log: Note Brian Moore's patch. Revision ChangesPath 1.220 +2 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.219 retrieving revision 1.220 diff -C3 -r1.219 -r1.220 *** CHANGES 1997/04/01 06:17:51 1.219 --- CHANGES 1997/04/05 06:09:51 1.220 *** *** 1,5 --- 1,7 Changes with Apache 1.2b8 + *) Fix loopholes in proxy cache expiry vis a vis alarms. [Brian Moore] + *) Stopgap solution for CGI 3-second delay with server-side includes: if processing a subrequest, allocate memory from r-main-pool instead of r-pool so that we can avoid waiting for free_proc_chain to cleanup
cvs commit: apache/src/modules/proxy mod_proxy.c mod_proxy.h
chuck 97/03/01 21:05:23 Modified:src/modules/proxy mod_proxy.c mod_proxy.h Log: Add table slot for header parser. Revision ChangesPath 1.9 +2 -1 apache/src/modules/proxy/mod_proxy.c Index: mod_proxy.c === RCS file: /export/home/cvs/apache/src/modules/proxy/mod_proxy.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C3 -r1.8 -r1.9 *** mod_proxy.c 1997/01/05 09:06:05 1.8 --- mod_proxy.c 1997/03/02 05:05:21 1.9 *** *** 546,551 NULL,/* check access */ NULL,/* type_checker */ proxy_fixup, /* pre-run fixups */ !NULL /* logger */ }; --- 546,552 NULL,/* check access */ NULL,/* type_checker */ proxy_fixup, /* pre-run fixups */ !NULL,/* logger */ !NULL /* header parser */ }; 1.8 +1 -1 apache/src/modules/proxy/mod_proxy.h Index: mod_proxy.h === RCS file: /export/home/cvs/apache/src/modules/proxy/mod_proxy.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C3 -r1.7 -r1.8 *** mod_proxy.h 1997/01/05 09:06:05 1.7 --- mod_proxy.h 1997/03/02 05:05:22 1.8 *** *** 82,88 1. add 230 response output for ftp now that it works ! 2. Add gopher WAIS 3. Use protocol handler struct a la Apache module handlers (Dirk van Gulik) --- 82,88 1. add 230 response output for ftp now that it works ! 2. Make the ftp proxy transparent, also same with (future) gopher wais 3. Use protocol handler struct a la Apache module handlers (Dirk van Gulik)
cvs commit: apache/src/modules/proxy proxy_ftp.c
chuck 97/02/19 20:14:45 Modified:src/modules/proxy proxy_ftp.c Log: 1) remove setting of SO_DEBUG socket option to make Linux users happy. 2) Make ftp_getrc() more lenient about multiline responses (specifically, 230 responses which don't have continuation 230- on each line). These seem to be all NT FTP servers, and while they may be the mutant spawn of the devil, they appear to be legal by RFC 959. 3) Add missing kill_timeout() after transfer to user completes. This coupled with 2) is very likely the cause of Rasmus' timeout problem. Revision ChangesPath 1.9 +6 -15 apache/src/modules/proxy/proxy_ftp.c Index: proxy_ftp.c === RCS file: /export/home/cvs/apache/src/modules/proxy/proxy_ftp.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C3 -r1.8 -r1.9 *** proxy_ftp.c 1997/01/20 04:28:33 1.8 --- proxy_ftp.c 1997/02/20 04:14:44 1.9 *** *** 185,197 /* check format */ if (len 5 || !isdigit(linebuff[0]) || !isdigit(linebuff[1]) || !isdigit(linebuff[2]) || (linebuff[3] != ' ' linebuff[3] != '-')) ! return 0; ! status = 100 * linebuff[0] + 10 * linebuff[1] + linebuff[2] - 111 * '0'; if (linebuff[len-1] != '\n') { i = bskiplf(f); - if (i != 1) return i; } /* skip continuation lines */ --- 185,199 /* check format */ if (len 5 || !isdigit(linebuff[0]) || !isdigit(linebuff[1]) || !isdigit(linebuff[2]) || (linebuff[3] != ' ' linebuff[3] != '-')) ! status = 0; ! else ! status = 100 * linebuff[0] + 10 * linebuff[1] + linebuff[2] - 111 * '0'; ! ! Explain1(FTP: ftp_getrc() status = %d, status); if (linebuff[len-1] != '\n') { i = bskiplf(f); } /* skip continuation lines */ *** *** 203,213 { len = bgets(linebuff, 100, f); if (len == -1) return -1; - if (len 5) return 0; if (linebuff[len-1] != '\n') { i = bskiplf(f); - if (i != 1) return i; } } while (memcmp(linebuff, buff, 4) != 0); } --- 205,213 *** *** 564,579 } note_cleanups_for_fd(pool, dsock); - if (setsockopt(dsock, SOL_SOCKET, SO_DEBUG, (const char *)one, - sizeof (int)) == -1) - { - proxy_log_uerror(setsockopt, NULL, - proxy: error setting PASV debug option, r-server); - pclosef(pool, dsock); - pclosef(pool, sock); - return SERVER_ERROR; - } - bputs(PASV\015\012, f); bflush(f); Explain0(FTP: PASV command issued); --- 564,569 *** *** 867,872 --- 857,863 Explain1(FTP: returned status %d,i); } + kill_timeout(r); proxy_cache_tidy(c); /* finish */
cvs commit: apache/src CHANGES
chuck 97/02/19 20:21:37 Modified:src CHANGES Log: updates for proxy FTP. Revision ChangesPath 1.172 +9 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.171 retrieving revision 1.172 diff -C3 -r1.171 -r1.172 *** CHANGES 1997/02/20 04:13:16 1.171 --- CHANGES 1997/02/20 04:21:35 1.172 *** *** 1,5 --- 1,14 Changes with Apache 1.2b7 + *) more proxy FTP bug fixes: + - remove setting of SO_DEBUG socket option + - Make ftp_getrc() more lenient about multiline responses, +specifically, 230 responses which don't have continuation 230- +on each line). These seem to be all NT FTP servers, and while +perhaps questionable, they appear to be legal by RFC 959. + - Add missing kill_timeout() after transfer to user completes. + [Chuck Murcko] + *) Fixed problem where a busy server could hang when restarting after being sent a SIGHUP due to child processes not exiting. [Marc Slemko]
cvs commit: apache/htdocs/manual/mod mod_proxy.html
chuck 97/02/19 20:26:08 Modified:htdocs/manual/mod mod_proxy.html Log: Fix typo; add section about SOCKS 4.2/Solaris problems. Revision ChangesPath 1.13 +4 -1 apache/htdocs/manual/mod/mod_proxy.html Index: mod_proxy.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_proxy.html,v retrieving revision 1.12 retrieving revision 1.13 diff -C3 -r1.12 -r1.13 *** mod_proxy.html1997/01/09 07:29:12 1.12 --- mod_proxy.html1997/02/20 04:26:07 1.13 *** *** 312,320 Yes. Just build Apache with the rule codeSOCKS4=yes/code in your iConfiguration/i file, and follow the instructions there. SOCKS5 capability can be added in a similar way (there's no codeSOCKS5/code ! rule yet, so use the codeEXTRA_LFLAGS/code definition, or build Apache normally and run it with the irunsocks/i wrapper provided with SOCKS5, if your OS supports dynamically linked libraries.p Remember that you'll also have to grant access to your Apache proxy machine by permitting connections on the appropriate ports in your SOCKS daemon's --- 312,323 Yes. Just build Apache with the rule codeSOCKS4=yes/code in your iConfiguration/i file, and follow the instructions there. SOCKS5 capability can be added in a similar way (there's no codeSOCKS5/code ! rule yet), so use the codeEXTRA_LFLAGS/code definition, or build Apache normally and run it with the irunsocks/i wrapper provided with SOCKS5, if your OS supports dynamically linked libraries.p + + Some users have reported problems when using SOCKS version 4.2 on Solaris. + The problem was solved by upgrading to SOCKS 4.3.p Remember that you'll also have to grant access to your Apache proxy machine by permitting connections on the appropriate ports in your SOCKS daemon's
cvs commit: apache/src/modules/proxy proxy_http.c
chuck 97/02/19 21:16:26 Modified:src/modules/proxy proxy_http.c Log: Changed HTTP status check mask from HTTP/#.# ### * to HTTP/#.# ###* to be more lenient about servers which don't return all of a legal HTTP/1.x status. Revision ChangesPath 1.14 +1 -1 apache/src/modules/proxy/proxy_http.c Index: proxy_http.c === RCS file: /export/home/cvs/apache/src/modules/proxy/proxy_http.c,v retrieving revision 1.13 retrieving revision 1.14 diff -C3 -r1.13 -r1.14 *** proxy_http.c 1997/01/20 04:28:33 1.13 --- proxy_http.c 1997/02/20 05:16:25 1.14 *** *** 276,282 } /* Is it an HTTP/1 response? */ ! if (checkmask(buffer, HTTP/#.# ### *)) { /* If not an HTTP/1 messsage or if the status line was 8192 bytes */ if (buffer[5] != '1' || buffer[len-1] != '\n') --- 276,282 } /* Is it an HTTP/1 response? */ ! if (checkmask(buffer, HTTP/#.# ###*)) { /* If not an HTTP/1 messsage or if the status line was 8192 bytes */ if (buffer[5] != '1' || buffer[len-1] != '\n')
cvs commit: apache/src CHANGES
chuck 97/02/19 21:19:50 Modified:src CHANGES Log: Note HTTP status mask change for mod_proxy. Revision ChangesPath 1.173 +4 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.172 retrieving revision 1.173 diff -C3 -r1.172 -r1.173 *** CHANGES 1997/02/20 04:21:35 1.172 --- CHANGES 1997/02/20 05:19:48 1.173 *** *** 1,5 --- 1,9 Changes with Apache 1.2b7 + *) changed status check mask in proxy_http.c from HTTP/#.# ### * to + HTTP/#.# ###* to be more lenient about what we accept. + [Chuck Murcko] + *) more proxy FTP bug fixes: - remove setting of SO_DEBUG socket option - Make ftp_getrc() more lenient about multiline responses,
cvs commit: apache/src/modules Makefile
chuck 97/01/16 09:20:34 Modified:src/modules Makefile Log: Submitted by: [EMAIL PROTECTED] Fix bug for using multiple subdirectories under modules. I also added the bug fix to the clean production, since it would also be a problem there. Revision ChangesPath 1.6 +2 -0 apache/src/modules/Makefile Index: Makefile === RCS file: /export/home/cvs/apache/src/modules/Makefile,v retrieving revision 1.5 retrieving revision 1.6 diff -C3 -r1.5 -r1.6 *** Makefile 1997/01/01 18:19:49 1.5 --- Makefile 1997/01/16 17:20:32 1.6 *** *** 59,68 --- 59,70 (for dir in $(MODULES); do \ cd $$dir; \ $(MAKE) CC=$(CC) AUX_CFLAGS=$(AUX_CFLAGS) RANLIB=$(RANLIB); \ + cd ..; \ done) clean: (for dir in $(MODULES); do \ cd $$dir; $(MAKE) clean; \ + cd ..; \ done)
cvs commit: apache/src CHANGES
chuck 97/01/16 09:22:55 Modified:src CHANGES Log: Update about modules/Makefile change for multiple subdirs. Revision ChangesPath 1.123 +3 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.122 retrieving revision 1.123 diff -C3 -r1.122 -r1.123 *** CHANGES 1997/01/12 20:50:29 1.122 --- CHANGES 1997/01/16 17:22:54 1.123 *** *** 1,5 --- 1,8 Changes with Apache 1.2b5 + *) Fixed bug in modules/Makefile that wouldn't allow building in more + than one subdirectory (or cleaning, either). [Jeremy Laidman] + *) mod_info assumed that the config files were relative to ServerRoot. [Ken the Rodent]
cvs commit: apache/src http_main.c
chuck 97/01/10 01:26:00 Modified:src http_main.c Log: Get rid of warning for UnixWare 2.1.1 Revision ChangesPath 1.103 +4 -0 apache/src/http_main.c Index: http_main.c === RCS file: /export/home/cvs/apache/src/http_main.c,v retrieving revision 1.102 retrieving revision 1.103 diff -C3 -r1.102 -r1.103 *** http_main.c 1997/01/10 03:39:15 1.102 --- http_main.c 1997/01/10 09:25:58 1.103 *** *** 1493,1499 --- 1493,1503 void child_main(int child_num_arg) { + #if defined(UW) + size_t clen; + #else int clen; + #endif struct sockaddr sa_server; struct sockaddr sa_client;
cvs commit: apache/src http_main.c CHANGES
chuck 97/01/10 10:47:40 Modified:src http_main.c CHANGES Log: Reviewed by: Chuck Murcko, Rob Hartill, Brian Behlendorf Remove duplicate pcalloc() call from new_connection(). Revision ChangesPath 1.105 +1 -2 apache/src/http_main.c Index: http_main.c === RCS file: /export/home/cvs/apache/src/http_main.c,v retrieving revision 1.104 retrieving revision 1.105 diff -C3 -r1.104 -r1.105 *** http_main.c 1997/01/10 11:26:22 1.104 --- http_main.c 1997/01/10 18:47:36 1.105 *** *** 1439,1449 { conn_rec *conn = (conn_rec *)pcalloc (p, sizeof(conn_rec)); ! /* Get a connection structure, and initialize what fields we can * (the rest are zeroed out by pcalloc). */ - conn = (conn_rec *)pcalloc(p, sizeof(conn_rec)); conn-child_num = child_num; conn-pool = p; --- 1439,1448 { conn_rec *conn = (conn_rec *)pcalloc (p, sizeof(conn_rec)); ! /* Got a connection structure, so initialize what fields we can * (the rest are zeroed out by pcalloc). */ conn-child_num = child_num; conn-pool = p; 1.115 +2 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.114 retrieving revision 1.115 diff -C3 -r1.114 -r1.115 *** CHANGES 1997/01/10 03:39:17 1.114 --- CHANGES 1997/01/10 18:47:37 1.115 *** *** 1,5 --- 1,7 Changes with Apache 1.2b5 + *) remove duplicate pcalloc() call in new_connection(). + *) Fix incorrect comparison which could allow number of children = MaxClients + 1 if less than HARD_SERVER_LIMIT. Also fix potential problem if StartServers HARD_SERVER_LIMIT. [Ed Korthof]
cvs commit: apache/src http_main.c CHANGES
chuck 97/01/09 19:39:20 Modified:src http_main.c CHANGES Log: Reviewed by: Jim Jagielski, Brian Behlendorf, Chuck Murcko Submitted by: Ed Korthof [EMAIL PROTECTED] There is one incorrect comparison (which still doesn't allow for more children than HARD_SERVER_LIMIT, though it would allow one more child than the maximum specified, if that was less than HARD_SERVER_LIMIT). There is also the possibility of messing up your server if you specify StartServers HARD_SERVER_LIMIT (the latter may cause fatal memory corruption -- it did in the one test I've run). The attached patch fixes both of those. Revision ChangesPath 1.102 +2 -2 apache/src/http_main.c Index: http_main.c === RCS file: /export/home/cvs/apache/src/http_main.c,v retrieving revision 1.101 retrieving revision 1.102 diff -C3 -r1.101 -r1.102 *** http_main.c 1997/01/01 18:10:20 1.101 --- http_main.c 1997/01/10 03:39:15 1.102 *** *** 1947,1953 if (daemons_max_free daemons_min_free + 1) /* Don't thrash... */ daemons_max_free = daemons_min_free + 1; ! while (num_children daemons_to_start) { make_child(server_conf, num_children++); } --- 1947,1953 if (daemons_max_free daemons_min_free + 1) /* Don't thrash... */ daemons_max_free = daemons_min_free + 1; ! while (num_children daemons_to_start num_children daemons_limit) { make_child(server_conf, num_children++); } *** *** 1970,1976 sync_scoreboard_image(); if ((count_idle_servers() daemons_min_free) (child_slot = find_free_child_num()) = 0 ! child_slot = daemons_limit) { Explain1(Starting new child in slot %d,child_slot); (void)update_child_status(child_slot,SERVER_STARTING, (request_rec*)NULL); --- 1970,1976 sync_scoreboard_image(); if ((count_idle_servers() daemons_min_free) (child_slot = find_free_child_num()) = 0 ! child_slot daemons_limit) { Explain1(Starting new child in slot %d,child_slot); (void)update_child_status(child_slot,SERVER_STARTING, (request_rec*)NULL); 1.114 +4 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.113 retrieving revision 1.114 diff -C3 -r1.113 -r1.114 *** CHANGES 1997/01/07 21:55:38 1.113 --- CHANGES 1997/01/10 03:39:17 1.114 *** *** 1,5 --- 1,9 Changes with Apache 1.2b5 + *) Fix incorrect comparison which could allow number of children = + MaxClients + 1 if less than HARD_SERVER_LIMIT. Also fix potential + problem if StartServers HARD_SERVER_LIMIT. [Ed Korthof] + *) Replace instances of inet_ntoa() with inet_addr() for ProxyBlock. It's more portable. [Martin Kraemer]
cvs commit: apache/src Makefile.tmpl
chuck 97/01/06 21:15:11 Modified:src Makefile.tmpl Log: Replace hardcoded instances of make with $(MAKE). Revision ChangesPath 1.35 +4 -4 apache/src/Makefile.tmpl Index: Makefile.tmpl === RCS file: /export/home/cvs/apache/src/Makefile.tmpl,v retrieving revision 1.34 retrieving revision 1.35 diff -C3 -r1.34 -r1.35 *** Makefile.tmpl 1996/11/20 19:55:06 1.34 --- Makefile.tmpl 1997/01/07 05:15:10 1.35 *** *** 28,43 $(CC) $(LFLAGS) -o httpd $(OBJS) $(REGLIB) $(LIBS) regex/libregex.a: ! (cd regex; make lib CC=$(CC) AUX_CFLAGS=$(CFLAGS) RANLIB=$(RANLIB)) modules/proxy/libproxy.a: (cd modules; \ ! make CC=$(CC) AUX_CFLAGS=$(CFLAGS) RANLIB=$(RANLIB)) clean: rm -f httpd $(OBJS) *pure* ! cd regex; make clean ! cd modules; make clean dist.tar: # Assure a semi-sensible configuration going out... --- 28,43 $(CC) $(LFLAGS) -o httpd $(OBJS) $(REGLIB) $(LIBS) regex/libregex.a: ! (cd regex; $(MAKE) lib CC=$(CC) AUX_CFLAGS=$(CFLAGS) RANLIB=$(RANLIB)) modules/proxy/libproxy.a: (cd modules; \ ! $(MAKE) CC=$(CC) AUX_CFLAGS=$(CFLAGS) RANLIB=$(RANLIB)) clean: rm -f httpd $(OBJS) *pure* ! cd regex; $(MAKE) clean ! cd modules; $(MAKE) clean dist.tar: # Assure a semi-sensible configuration going out...
cvs commit: apache/src CHANGES
chuck 97/01/05 01:32:34 Modified:src CHANGES Log: Add stuff. Fix typo. Revision ChangesPath 1.112 +8 -1 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.111 retrieving revision 1.112 diff -C3 -r1.111 -r1.112 *** CHANGES 1996/12/31 23:29:12 1.111 --- CHANGES 1997/01/05 09:32:33 1.112 *** *** 1,11 Changes with Apache 1.2b5 *) suEXEC wrapper was freeing memory that had not been malloc'ed. *) Correctly allow access and auth directives in Files sections in server config files. [Alexei Kosut] ! *) Fix bug with ServerPath that could cause certaub files to be not found by the server. [Alexei Kosut] Changes with Apache 1.2b4: --- 1,18 Changes with Apache 1.2b5 + *) Add ProxyBlock directive w/IP address caching. Add IP address + caching to NoCache directive as well. ProxyBlock works with all + handlers; NoCache now also works with FTP for anonymous logins. + Still more code cleanup. [Chuck Murcko] + + *) Fix byte ordering problems for REMOTE_PORT [Chuck Murcko] + *) suEXEC wrapper was freeing memory that had not been malloc'ed. *) Correctly allow access and auth directives in Files sections in server config files. [Alexei Kosut] ! *) Fix bug with ServerPath that could cause certain files to be not found by the server. [Alexei Kosut] Changes with Apache 1.2b4:
cvs commit: apache/src/modules/proxy proxy_ftp.c
chuck 96/12/24 09:23:26 Modified:src/modules/proxy proxy_ftp.c Log: Add PASV to FTP proxy. Make default MIME type text/plain, so folks get their READMEs OK. Merry Christmas. Revision ChangesPath 1.4 +146 -48 apache/src/modules/proxy/proxy_ftp.c Index: proxy_ftp.c === RCS file: /export/home/cvs/apache/src/modules/proxy/proxy_ftp.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C3 -r1.3 -r1.4 *** proxy_ftp.c 1996/10/20 23:59:02 1.3 --- proxy_ftp.c 1996/12/24 17:23:24 1.4 *** *** 326,346 * Handles direct access of ftp:// URLs * Original (Non-PASV) version from * Troy Morrison [EMAIL PROTECTED] */ int proxy_ftp_handler(request_rec *r, struct cache_req *c, char *url) { char *host, *path, *p, *user, *password, *parms; const char *err; ! int port, userlen, passlen, i, len, sock, dsock, csd, rc, nocache; struct sockaddr_in server; struct hdr_entry *hdr; array_header *resp_hdrs; ! BUFF *f, *cache, *data; pool *pool=r-pool; const int one=1; const long int zero=0L; /* This appears to fix a bug(?) that generates an Address family not supported by protocol error in proxy_doconnect() later (along with making sure server.sin_family = AF_INET - cdm) */ --- 326,358 * Handles direct access of ftp:// URLs * Original (Non-PASV) version from * Troy Morrison [EMAIL PROTECTED] + * PASV added by Chuck */ int proxy_ftp_handler(request_rec *r, struct cache_req *c, char *url) { char *host, *path, *p, *user, *password, *parms; const char *err; ! int port, userlen, passlen, i, len, sock, dsock, rc, nocache; ! int csd = 0; struct sockaddr_in server; struct hdr_entry *hdr; array_header *resp_hdrs; ! BUFF *f, *cache; ! BUFF *data = NULL; pool *pool=r-pool; const int one=1; const long int zero=0L; + /* stuff for PASV mode */ + unsigned int presult, h0, h1, h2, h3, p0, p1; + unsigned int paddr; + unsigned short pport; + struct sockaddr_in data_addr; + int pasvmode = 0; + char pasv[64]; + char *pstr; + /* This appears to fix a bug(?) that generates an Address family not supported by protocol error in proxy_doconnect() later (along with making sure server.sin_family = AF_INET - cdm) */ *** *** 519,574 else if (i == 504) parms[0] = '\0'; } ! /* set up data connection */ ! len = sizeof(struct sockaddr_in); ! if (getsockname(sock, (struct sockaddr *)server, len) 0) ! { ! proxy_log_uerror(getsockname, NULL, ! proxy: error getting socket address, r-server); ! pclosef(pool, sock); ! return SERVER_ERROR; ! } ! dsock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); if (dsock == -1) ! { ! proxy_log_uerror(socket, NULL, proxy: error creating socket, r-server); pclosef(pool, sock); ! return SERVER_ERROR; } note_cleanups_for_fd(pool, dsock); ! if (setsockopt(dsock, SOL_SOCKET, SO_REUSEADDR, (const char *)one, !sizeof(int)) == -1) { proxy_log_uerror(setsockopt, NULL, ! proxy: error setting reuseaddr option, r-server); pclosef(pool, dsock); pclosef(pool, sock); return SERVER_ERROR; } ! if (bind(dsock, (struct sockaddr *)server, sizeof(struct sockaddr_in)) == ! -1) ! { ! char buff[22]; ! sprintf(buff, %s:%d, inet_ntoa(server.sin_addr), server.sin_port); ! proxy_log_uerror(bind, buff, ! proxy: error binding to ftp data socket, r-server); ! pclosef(pool, sock); pclosef(pool, dsock); } - listen(dsock, 2); /* only need a short queue */ /* set request */ len = decodeenc(path); /* TM - if len == 0 then it must be a directory (you can't RETR nothing) */ ! if(len==0) parms=d; ! else { bputs(SIZE , f); bwrite(f, path, len); --- 531,665 else if (i == 504) parms[0] = '\0'; } ! /* try to set up PASV data connection first */ dsock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); if (dsock == -1) ! { ! proxy_log_uerror(socket, NULL, proxy: error creating PASV socket, r-server); pclosef(pool, sock); ! return SERVER_ERROR; } note_cleanups_for_fd(pool, dsock); ! if (setsockopt(dsock, SOL_SOCKET, SO_DEBUG, (const char *)one, ! sizeof (int)) == -1) { proxy_log_uerror(setsockopt, NULL, ! proxy: error setting PASV
cvs commit: apache/src CHANGES
chuck 96/12/24 10:41:10 Modified:src CHANGES Log: Note PASV change to mod_proxy. Revision ChangesPath 1.94 +2 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.93 retrieving revision 1.94 diff -C3 -r1.93 -r1.94 *** CHANGES 1996/12/24 18:38:54 1.93 --- CHANGES 1996/12/24 18:41:09 1.94 *** *** 1,5 --- 1,7 Changes with Apache 1.2b3: + *) Add PASV mode to mod_proxy FTP handler. [Chuck Murcko] + *) Changes to suexec wrapper to fix the following problems: 1. symlinked homedirs will kill ~userdirs. 2. initgroups() on Linux 2.0.x clobbers gr-grid.
cvs commit: apache/src Configuration.tmpl
chuck 96/12/24 11:14:25 Modified:src Configuration.tmpl Log: Stop scaring off the proxy user candidates. 8^) Revision ChangesPath 1.53 +2 -2 apache/src/Configuration.tmpl Index: Configuration.tmpl === RCS file: /export/home/cvs/apache/src/Configuration.tmpl,v retrieving revision 1.52 retrieving revision 1.53 diff -C3 -r1.52 -r1.53 *** Configuration.tmpl1996/11/10 14:51:56 1.52 --- Configuration.tmpl1996/12/24 19:14:24 1.53 *** *** 236,242 # Module fastcgi_module mod_fastcgi.o ! ## Finally, the proxy module. It's not as complete as it could ! ## be yet, so use at your own risk. # Module proxy_modulemodules/proxy/libproxy.a --- 236,242 # Module fastcgi_module mod_fastcgi.o ! ## Finally, the proxy module. It's not as complete as it could be yet. ! ## But it's getting there. # Module proxy_modulemodules/proxy/libproxy.a
cvs commit: apache/htdocs/manual/mod mod_proxy.html
chuck 96/12/24 11:46:58 Modified:htdocs/manual/mod mod_proxy.html Log: Add additional doc for the NoCache directive. Revision ChangesPath 1.7 +11 -3 apache/htdocs/manual/mod/mod_proxy.html Index: mod_proxy.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_proxy.html,v retrieving revision 1.6 retrieving revision 1.7 diff -C3 -r1.6 -r1.7 *** mod_proxy.html1996/12/24 19:40:10 1.6 --- mod_proxy.html1996/12/24 19:46:57 1.7 *** *** 200,214 strongCompatibility:/strong NoCache is only available in Apache 1.1 and later.p ! The NoCache directive specifies a list of hosts and/or domains, separated ! by spaces. HTTP documents from hosts or domains in the list are emnot/em cached by the proxy server. Example: pre NoCache joes.garage.com some.host.co.uk wotsamattau.edu /pre ! Note that 'wotsamattau' would also be sufficient to match 'wotsamattau.edu'. hr --- 200,222 strongCompatibility:/strong NoCache is only available in Apache 1.1 and later.p ! The NoCache directive specifies a list of words, hosts and/or domains, separated ! by spaces. HTTP documents from matched words, hosts or domains are emnot/em cached by the proxy server. Example: pre NoCache joes.garage.com some.host.co.uk wotsamattau.edu /pre ! Note that 'wotsamattau' would also be sufficient to match 'wotsamattau.edu'.p ! ! Note also that ! ! pre ! NoCache * ! /pre ! ! disables caching completely.p hr
cvs commit: apache/htdocs/manual/mod mod_proxy.html
chuck 96/12/24 11:55:58 Modified:htdocs/manual/mod mod_proxy.html Log: Fix misspelled link to common config topics. Revision ChangesPath 1.8 +1 -1 apache/htdocs/manual/mod/mod_proxy.html Index: mod_proxy.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_proxy.html,v retrieving revision 1.7 retrieving revision 1.8 diff -C3 -r1.7 -r1.8 *** mod_proxy.html1996/12/24 19:46:57 1.7 --- mod_proxy.html1996/12/24 19:55:57 1.8 *** *** 11,17 This module is contained in the codemod_proxy.c/code file, and is not compiled in by default. It provides for a caching proxy server. It is only available in Apache 1.1 and later. Common configuration ! questions are addressed a href=#confighere/a. h3Note:/h3 pThis module was experimental in Apache 1.1.x. As of Apache 1.2, mod_proxy --- 11,17 This module is contained in the codemod_proxy.c/code file, and is not compiled in by default. It provides for a caching proxy server. It is only available in Apache 1.1 and later. Common configuration ! questions are addressed a href=#configshere/a. h3Note:/h3 pThis module was experimental in Apache 1.1.x. As of Apache 1.2, mod_proxy
cvs commit: apache/htdocs/manual/misc known_bugs.html
chuck 96/12/24 12:15:48 Modified:htdocs/manual/misc known_bugs.html Log: Added mention of FIN_WAIT_2 problems, with pointer to example patch for BSDI. Revision ChangesPath 1.6 +8 -0 apache/htdocs/manual/misc/known_bugs.html Index: known_bugs.html === RCS file: /export/home/cvs/apache/htdocs/manual/misc/known_bugs.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C3 -r1.5 -r1.6 *** known_bugs.html 1996/12/12 01:09:51 1.5 --- known_bugs.html 1996/12/24 20:15:47 1.6 *** *** 19,24 --- 19,32 H2Version 1.2/H2 OL + + LIusers have reported problems with many connections stuck in the + FIN_WAIT_2 state due to server timeouts. This is an issue with the OS TCP + stack, as some OS never timeout from this state. An example patch for BSDI + is available + a href=http://www.apache.org/dist/contrib/patches/1.2/fin_wait_2.patch; + here/a. + LIhard_timeout() for request reads uses incorrect logic, and ends up waiting for an initial request read for the default timeout number of seconds, 1200, yet only the KeepAliveTimeout number of
cvs commit: apache/src/modules/proxy mod_proxy.h
chuck 96/12/24 12:22:46 Modified:src/modules/proxy mod_proxy.h Log: Revise TBD list. Revision ChangesPath 1.5 +8 -13 apache/src/modules/proxy/mod_proxy.h Index: mod_proxy.h === RCS file: /export/home/cvs/apache/src/modules/proxy/mod_proxy.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C3 -r1.4 -r1.5 *** mod_proxy.h 1996/10/27 18:29:56 1.4 --- mod_proxy.h 1996/12/24 20:22:45 1.5 *** *** 78,105 More things to do: ! 0. Code cleanup ! 1. add 230 response output and PASV mode for ftp now that it works 2. Add gopher WAIS ! 3. Various other fixups to insure no NULL strings parsed, etc. ! ! 4. NoProxy directive for excluding sites to proxy ! ! 5. Imply NoCache * if cache directory is not configured, to enable proxy !without cache (and avoid SIGSEGV) ! 6. Use protocol handler struct a la Apache module handlers (Dirk van Gulik) ! 7. Use a cache expiry database for more efficient GC (Jeremy Wohl) ! 8. Handle multiple IPs for doconnect() ! 9. Bulletproof GC against SIGALRM ! 10. Make HTTPS and SNEWS ports configurable from a list Chuck Murcko [EMAIL PROTECTED] 1 Oct 96 --- 78,100 More things to do: ! 0. Code cleanup (ongoing) ! 1. add 230 response output for ftp now that it works 2. Add gopher WAIS ! 3. NoProxy directive for excluding sites to proxy ! 4. Use protocol handler struct a la Apache module handlers (Dirk van Gulik) ! 5. Use a cache expiry database for more efficient GC (Jeremy Wohl) ! 6. Handle multiple IPs for doconnect() ! 7. Bulletproof GC against SIGALRM ! 8. Make HTTPS and SNEWS ports configurable from a list Chuck Murcko [EMAIL PROTECTED] 1 Oct 96
cvs commit: apache/htdocs/manual/mod mod_proxy.html
chuck 96/12/24 12:57:05 Modified:htdocs/manual/mod mod_proxy.html Log: Change emphasis to agree with other docs. Revision ChangesPath 1.9 +1 -1 apache/htdocs/manual/mod/mod_proxy.html Index: mod_proxy.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_proxy.html,v retrieving revision 1.8 retrieving revision 1.9 diff -C3 -r1.8 -r1.9 *** mod_proxy.html1996/12/24 19:55:57 1.8 --- mod_proxy.html1996/12/24 20:57:04 1.9 *** *** 15,21 h3Note:/h3 pThis module was experimental in Apache 1.1.x. As of Apache 1.2, mod_proxy ! stability is *greatly* improved.p h2Summary/h2 --- 15,21 h3Note:/h3 pThis module was experimental in Apache 1.1.x. As of Apache 1.2, mod_proxy ! stability is igreatly/i improved.p h2Summary/h2
cvs commit: apache/src buff.c mod_rewrite.c mod_rewrite.h
chuck 96/12/09 14:39:22 Modified:src buff.c mod_rewrite.c mod_rewrite.h Log: Reviewed by: Brian Behlendorf, Chuck Murcko Submitted by: Marc Evans [EMAIL PROTECTED] patches for DEC AXP running OSF/1 v3.0. Revision ChangesPath 1.10 +1 -1 apache/src/buff.c Index: buff.c === RCS file: /export/home/cvs/apache/src/buff.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C3 -r1.9 -r1.10 *** buff.c1996/11/10 09:16:10 1.9 --- buff.c1996/12/09 22:39:18 1.10 *** *** 419,425 for (;;) { ! x = memchr(fb-inptr, '\012', fb-incnt); if (x != NULL) { x++; --- 419,425 for (;;) { ! x = (unsigned char *)memchr(fb-inptr, '\012', fb-incnt); if (x != NULL) { x++; 1.9 +26 -26apache/src/mod_rewrite.c Index: mod_rewrite.c === RCS file: /export/home/cvs/apache/src/mod_rewrite.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C3 -r1.8 -r1.9 *** mod_rewrite.c 1996/11/14 07:24:43 1.8 --- mod_rewrite.c 1996/12/09 22:39:19 1.9 *** *** 163,194 ** */ - /* the main config structure */ - module rewrite_module = { -STANDARD_MODULE_STUFF, - -init_module, /* module initializer */ - -config_perdir_create,/* create per-dirconfig structures */ -config_perdir_merge, /* merge per-dirconfig structures */ -config_server_create,/* create per-server config structures */ -config_server_merge, /* merge per-server config structures */ -command_table, /* table of config file commands */ - -handler_table, /* [#7] table of MIME-typed-dispatched request action handlers */ - -hook_uri2file, /* [#1] URI to filename translation */ - -NULL,/* [#3] check_user_id: get and validate user id from the HTTP request */ -NULL,/* [#4] check_auth:check if the user is ok _here_ */ -NULL,/* [#2] check_access: check access by host address, etc. */ - -hook_mimetype, /* [#5] determine MIME type */ - -hook_fixup, /* [#6] pre-run fixups */ -NULL /* [#8] log a transaction */ - }; - /* the table of commands we provide */ static command_rec command_table[] = { { RewriteEngine, cmd_rewriteengine, NULL, OR_FILEINFO, FLAG, --- 163,168 *** *** 214,219 --- 188,219 static handler_rec handler_table[] = { { redirect-handler, handler_redirect }, { NULL } + }; + + /* the main config structure */ + module rewrite_module = { +STANDARD_MODULE_STUFF, + +init_module, /* module initializer */ + +config_perdir_create,/* create per-dirconfig structures */ +config_perdir_merge, /* merge per-dirconfig structures */ +config_server_create,/* create per-server config structures */ +config_server_merge, /* merge per-server config structures */ +command_table, /* table of config file commands */ + +handler_table, /* [#7] table of MIME-typed-dispatched request action handlers */ + +hook_uri2file, /* [#1] URI to filename translation */ + +NULL,/* [#3] check_user_id: get and validate user id from the HTTP request */ +NULL,/* [#4] check_auth:check if the user is ok _here_ */ +NULL,/* [#2] check_access: check access by host address, etc. */ + +hook_mimetype, /* [#5] determine MIME type */ + +hook_fixup, /* [#6] pre-run fixups */ +NULL /* [#8] log a transaction */ }; /* the common cache */ 1.11 +0 -2 apache/src/mod_rewrite.h Index: mod_rewrite.h === RCS file: /export/home/cvs/apache/src/mod_rewrite.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C3 -r1.10 -r1.11 *** mod_rewrite.h 1996/11/20 19:55:06 1.10 --- mod_rewrite.h 1996/12/09 22:39:20 1.11 *** *** 280,287 /* static config */ extern module rewrite_module; - static command_rec command_table[]; - static handler_rec handler_table[]; extern cache *cachep; /* config structure handling */ --- 280,285
cvs commit: apache/src/modules/proxy proxy_http.c
chuck 96/12/09 14:40:18 Modified:src/modules/proxy proxy_http.c Log: 1) fixes possible NULL pointer reference w/NoCache 2) fixes NoCache behavior when using ProxyRemote (ProxyRemote host would cache nothing if it was in the local domain, and the local domain was in the NoCache list) 3) Adds Host: header when not available 4) Some code cleanup and clarification 1) and 2) were reported by Martin Kraemer, with patches. The function, though not the form, of Martin's stuff is adhered to here. Revision ChangesPath 1.7 +40 -25apache/src/modules/proxy/proxy_http.c Index: proxy_http.c === RCS file: /export/home/cvs/apache/src/modules/proxy/proxy_http.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C3 -r1.6 -r1.7 *** proxy_http.c 1996/11/25 11:22:05 1.6 --- proxy_http.c 1996/12/09 22:40:17 1.7 *** *** 142,149 const char *proxyhost, int proxyport) { char *p; ! const char *err, *host; ! int port, i, sock, len; array_header *reqhdrs_arr, *resp_hdrs; table_entry *reqhdrs; struct sockaddr_in server; --- 142,149 const char *proxyhost, int proxyport) { char *p; ! const char *err, *desthost; ! int i, sock, len; array_header *reqhdrs_arr, *resp_hdrs; table_entry *reqhdrs; struct sockaddr_in server; *** *** 152,157 --- 152,159 char buffer[HUGE_STRING_LEN], inprotocol[9], outprotocol[9]; pool *pool=r-pool; const long int zero=0L; + int destport = 0; + char *destportstr = NULL; void *sconf = r-server-module_config; proxy_server_conf *conf = *** *** 162,182 memset(server, '\0', sizeof(server)); server.sin_family = AF_INET; ! if (proxyhost != NULL) ! { ! server.sin_port = htons(proxyport); ! err = proxy_host2addr(proxyhost, server.sin_addr); ! if (err != NULL) return DECLINED; /* try another */ ! host = proxyhost; ! } else { url += 7; /* skip http:// */ ! /* We break the URL into host, port, path-search */ ! port = DEFAULT_PORT; p = strchr(url, '/'); if (p == NULL) { ! host = pstrdup(pool, url); url = /; } else { --- 164,179 memset(server, '\0', sizeof(server)); server.sin_family = AF_INET; ! /* We break the URL into host, port, path-search */ ! ! if ((desthost = table_get(r-headers_in, Host:)) == NULL) { url += 7; /* skip http:// */ ! destport = DEFAULT_PORT; p = strchr(url, '/'); if (p == NULL) { ! desthost = pstrdup(pool, url); url = /; } else { *** *** 184,200 memcpy(q, url, p-url); q[p-url] = '\0'; url = p; ! host = q; } ! p = strchr(host, ':'); ! if (p != NULL) ! { ! *(p++) = '\0'; ! port = atoi(p); ! } ! server.sin_port = htons(port); ! err = proxy_host2addr(host, server.sin_addr); if (err != NULL) return proxyerror(r, err); /* give up */ } --- 181,208 memcpy(q, url, p-url); q[p-url] = '\0'; url = p; ! desthost = q; } + } ! p = strchr(desthost, ':'); ! if (p != NULL) ! { ! *(p++) = '\0'; ! destport = atoi(p); ! destportstr = p; ! } ! ! if (proxyhost != NULL) ! { ! url = r-uri; /* restore original URL */ ! server.sin_port = htons(proxyport); ! err = proxy_host2addr(proxyhost, server.sin_addr); ! if (err != NULL) return DECLINED; /* try another */ ! } else ! { ! server.sin_port = htons(destport); ! err = proxy_host2addr(desthost, server.sin_addr); if (err != NULL) return proxyerror(r, err); /* give up */ } *** *** 213,231 else return proxyerror(r, Could not connect to remote machine); } ! clear_connection(r-headers_in); /* Strip connection-based headers */ f = bcreate(pool, B_RDWR); bpushfd(f, sock, sock); hard_timeout (proxy send, r); bvputs(f, r-method, , url, HTTP/1.0\015\012, NULL); reqhdrs_arr = table_elts (r-headers_in); reqhdrs = (table_entry *)reqhdrs_arr-elts; for (i=0; i reqhdrs_arr-nelts; i++) { ! if (reqhdrs[i].key == NULL || reqhdrs[i].val == NULL) continue; bvputs(f, reqhdrs[i].key, : , reqhdrs[i].val, \015\012, NULL); } --- 221,246 else return proxyerror(r, Could
cvs commit: apache/src CHANGES
chuck 96/12/09 14:47:32 Modified:src CHANGES Log: Note proxy and DEC OSF/1 changes. Revision ChangesPath 1.79 +10 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.78 retrieving revision 1.79 diff -C3 -r1.78 -r1.79 *** CHANGES 1996/12/09 05:57:36 1.78 --- CHANGES 1996/12/09 22:47:31 1.79 *** *** 1,5 --- 1,15 Changes with Apache 1.2b2: + *) changes for DEC AXP running OSF/1 v3.0. [Marc Evans] + + *) proxy_http.c bugfixes: [Chuck Murcko] + 1) fixes possible NULL pointer reference w/NoCache + 2) fixes NoCache behavior when using ProxyRemote (ProxyRemote +host would cache nothing if it was in the local domain, +and the local domain was in the NoCache list) + 3) Adds Host: header when not available + 4) Some code cleanup and clarification + *) mod_include.c bugfixes: 1) Fixed an ommission that caused include variables to not be parsed in config errmsg directives [Howard Fear]
cvs commit: apache/src/modules/proxy proxy_http.c
chuck 96/12/09 19:12:07 Modified:src/modules/proxy proxy_http.c Log: Reviewed by: Roy Fielding Correct thinko in table_get() arg. Add protection against URLs like http://somehost:/foo/bar with an isdigit() test on the char following the colon after a hostname. Revision ChangesPath 1.8 +6 -3 apache/src/modules/proxy/proxy_http.c Index: proxy_http.c === RCS file: /export/home/cvs/apache/src/modules/proxy/proxy_http.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C3 -r1.7 -r1.8 *** proxy_http.c 1996/12/09 22:40:17 1.7 --- proxy_http.c 1996/12/10 03:12:05 1.8 *** *** 166,172 /* We break the URL into host, port, path-search */ ! if ((desthost = table_get(r-headers_in, Host:)) == NULL) { url += 7; /* skip http:// */ destport = DEFAULT_PORT; --- 166,172 /* We break the URL into host, port, path-search */ ! if ((desthost = table_get(r-headers_in, Host)) == NULL) { url += 7; /* skip http:// */ destport = DEFAULT_PORT; *** *** 189,196 if (p != NULL) { *(p++) = '\0'; ! destport = atoi(p); ! destportstr = p; } if (proxyhost != NULL) --- 189,199 if (p != NULL) { *(p++) = '\0'; ! if (isdigit(*p)) ! { ! destport = atoi(p); ! destportstr = p; ! } } if (proxyhost != NULL)
cvs commit: apache/src/modules/proxy proxy_cache.c
chuck 96/11/25 07:22:13 Modified:src/modules/proxy proxy_cache.c Log: Cleanup promised earlier which didn't make it in. Revision ChangesPath 1.7 +3 -7 apache/src/modules/proxy/proxy_cache.c Index: proxy_cache.c === RCS file: /export/home/cvs/apache/src/modules/proxy/proxy_cache.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C3 -r1.6 -r1.7 *** proxy_cache.c 1996/11/25 02:49:53 1.6 --- proxy_cache.c 1996/11/25 15:22:11 1.7 *** *** 781,797 #define TMPFILESTR /tmpXX if (conf-cache.root == NULL) return DECLINED; ! c-tempfile=palloc(r-pool,strlen(conf-cache.root)+sizeof TMPFILESTR); strcpy(c-tempfile,conf-cache.root); - /* - p = strrchr(c-tempfile, '/'); - if (p == NULL) return DECLINED; - strcpy(p, TMPFILESTR); - */ strcat(c-tempfile,TMPFILESTR); #undef TMPFILESTR p = mktemp(c-tempfile); ! if (p == NULL) return DECLINED; Explain1(Create temporary file %s,c-tempfile); --- 781,793 #define TMPFILESTR /tmpXX if (conf-cache.root == NULL) return DECLINED; ! c-tempfile=palloc(r-pool,strlen(conf-cache.root)+sizeof(TMPFILESTR)); strcpy(c-tempfile,conf-cache.root); strcat(c-tempfile,TMPFILESTR); #undef TMPFILESTR p = mktemp(c-tempfile); ! if (p == NULL) ! return DECLINED; Explain1(Create temporary file %s,c-tempfile);
cvs commit: apache/src/modules/proxy proxy_cache.c
chuck 96/11/24 18:49:55 Modified:src/modules/proxy proxy_cache.c Log: Eliminate core dumps when CacheRoot is not defined and ProxyRequests On. This still allows proxy to operate. ProxyPass core dumps should be largely if not totally eliminated. Also. minor cleanup in this section. Revision ChangesPath 1.6 +3 -1 apache/src/modules/proxy/proxy_cache.c Index: proxy_cache.c === RCS file: /export/home/cvs/apache/src/modules/proxy/proxy_cache.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C3 -r1.5 -r1.6 *** proxy_cache.c 1996/11/04 20:43:20 1.5 --- proxy_cache.c 1996/11/25 02:49:53 1.6 *** *** 779,785 /* open temporary file */ #define TMPFILESTR /tmpXX ! c-tempfile=palloc(r-pool,strlen(conf-cache.root)+sizeof TMPFILESTR-1); strcpy(c-tempfile,conf-cache.root); /* p = strrchr(c-tempfile, '/'); --- 779,787 /* open temporary file */ #define TMPFILESTR /tmpXX ! if (conf-cache.root == NULL) ! return DECLINED; ! c-tempfile=palloc(r-pool,strlen(conf-cache.root)+sizeof TMPFILESTR); strcpy(c-tempfile,conf-cache.root); /* p = strrchr(c-tempfile, '/');
cvs commit: apache/src/modules Makefile
chuck 96/10/20 16:59:43 Modified:src/modules Makefile Log: lose $Id$ Revision ChangesPath 1.3 +0 -2 apache/src/modules/Makefile Index: Makefile === RCS file: /export/home/cvs/apache/src/modules/Makefile,v retrieving revision 1.2 retrieving revision 1.3 diff -C3 -r1.2 -r1.3 *** Makefile 1996/10/09 17:12:45 1.2 --- Makefile 1996/10/20 23:59:42 1.3 *** *** 50,57 # # simple Makefile for modules in src/modules # - # $Id: Makefile,v 1.2 1996/10/09 17:12:45 chuck Exp $ - # SHELL = /bin/sh --- 50,55
cvs commit: apache/src/modules Makefile
chuck 96/10/09 10:12:47 Modified:src/modules Makefile Log: Fix errant ';' in loops Revision ChangesPath 1.2 +3 -3 apache/src/modules/Makefile Index: Makefile === RCS file: /export/home/cvs/apache/src/modules/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -C3 -r1.1 -r1.2 *** Makefile 1996/10/09 14:51:48 1.1 --- Makefile 1996/10/09 17:12:45 1.2 *** *** 50,56 # # simple Makefile for modules in src/modules # ! # $Id: Makefile,v 1.1 1996/10/09 14:51:48 chuck Exp $ # SHELL = /bin/sh --- 50,56 # # simple Makefile for modules in src/modules # ! # $Id: Makefile,v 1.2 1996/10/09 17:12:45 chuck Exp $ # SHELL = /bin/sh *** *** 58,70 MODULES=proxy default: ! (for dir in $(MODULES); do; \ cd $$dir; \ $(MAKE) CC=$(CC) AUX_CFLAGS=$(AUX_CFLAGS) RANLIB=$(RANLIB); \ done) clean: ! (for dir in $(MODULES); do; \ cd $$dir; $(MAKE) clean; \ done) --- 58,70 MODULES=proxy default: ! (for dir in $(MODULES); do \ cd $$dir; \ $(MAKE) CC=$(CC) AUX_CFLAGS=$(AUX_CFLAGS) RANLIB=$(RANLIB); \ done) clean: ! (for dir in $(MODULES); do \ cd $$dir; $(MAKE) clean; \ done)
cvs commit: apache/src/modules/proxy mod_proxy.h proxy_cache.c proxy_connect.c proxy_ftp.c proxy_http.c proxy_util.c Makefile mod_proxy.c
chuck 96/10/01 00:11:48 Modified:src/modules/proxy Makefile mod_proxy.c Added: src/modules/proxy mod_proxy.h proxy_cache.c proxy_connect.c proxy_ftp.c proxy_http.c proxy_util.c Log: Phase II - The Great Proxy Reorganization Layout with protocol abstraction, daemon gc in mind. Revision ChangesPath 1.3 +15 -11apache/src/modules/proxy/Makefile Index: Makefile === RCS file: /export/home/cvs/apache/src/modules/proxy/Makefile,v retrieving revision 1.2 retrieving revision 1.3 diff -C3 -r1.2 -r1.3 *** Makefile 1996/09/29 13:58:55 1.2 --- Makefile 1996/10/01 07:11:41 1.3 *** *** 50,56 # # Makefile for the Apache proxy library # ! # $Id: Makefile,v 1.2 1996/09/29 13:58:55 chuck Exp $ # SHELL = /bin/sh --- 50,56 # # Makefile for the Apache proxy library # ! # $Id: Makefile,v 1.3 1996/10/01 07:11:41 chuck Exp $ # SHELL = /bin/sh *** *** 59,70 LIB=libproxy.a ! # define -DEXPLAIN if you want verbose debugging output CFLAGS=-I. -I$(INCDIR) $(AUX_CFLAGS) # Internal stuff, should not need changing. ! OBJS=mod_proxy.o ! PROXYSRC=mod_proxy.c default:$(LIB) --- 59,73 LIB=libproxy.a ! # AUX_CFLAGS comes from higher level Makefile CFLAGS=-I. -I$(INCDIR) $(AUX_CFLAGS) # Internal stuff, should not need changing. ! OBJS=mod_proxy.o proxy_cache.o proxy_connect.o proxy_ftp.o proxy_http.o \ ! proxy_util.o ! ! PROXYSRC=mod_proxy.c proxy_cache.c proxy_connect.c proxy_ftp.c proxy_http.c \ ! proxy_util.c default:$(LIB) *** *** 74,86 $(RANLIB) $@ # dependencies ! mod_proxy.o: $(INCDIR)/http_log.h ! mod_proxy.o: $(INCDIR)/http_main.h ! mod_proxy.o: $(INCDIR)/http_protocol.h ! mod_proxy.o: $(INCDIR)/http_config.h ! mod_proxy.o: $(INCDIR)/httpd.h ! mod_proxy.o: $(INCDIR)/md5.h ! mod_proxy.o: $(INCDIR)/explain.h # various forms of cleanup tidy: --- 77,90 $(RANLIB) $@ # dependencies ! mod_proxy.o proxy_cache.o proxy_connect.o proxy_ftp.o proxy_http.o \ ! proxy_util.o: mod_proxy.h ! mod_proxy.o: $(INCDIR)/httpd.h $(INCDIR)/http_config.h ! proxy_cache.o: $(INCDIR)/httpd.h $(INCDIR)/http_config.h $(INCDIR)/md5.h ! proxy_connect.o: $(INCDIR)/httpd.h $(INCDIR)/http_config.h ! proxy_ftp.o: $(INCDIR)/httpd.h $(INCDIR)/http_config.h ! proxy_http.o: $(INCDIR)/httpd.h $(INCDIR)/http_config.h ! proxy_util.o: $(INCDIR)/httpd.h $(INCDIR)/http_config.h $(INCDIR)/md5.h # various forms of cleanup tidy: 1.3 +51 -3052 apache/src/modules/proxy/mod_proxy.c Index: mod_proxy.c === RCS file: /export/home/cvs/apache/src/modules/proxy/mod_proxy.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C3 -r1.2 -r1.3 *** mod_proxy.c 1996/09/29 14:10:58 1.2 --- mod_proxy.c 1996/10/01 07:11:42 1.3 *** *** 50,197 * */ ! /* $Id: mod_proxy.c,v 1.2 1996/09/29 14:10:58 chuck Exp $ */ ! /* ! Note that the Explain() stuff is not yet complete. ! Also note numerous FIXMEs and CHECKMEs which should be eliminated. ! ! If TESTING is set, then garbage collection doesn't delete ... probably a good ! idea when hacking. ! ! This code is still experimental! ! ! Things to do: ! ! 1. Make it garbage collect in the background, not while someone is waiting for ! a response! ! ! 2. Check the logic thoroughly. ! ! 3. Empty directories are only removed the next time round (but this does avoid ! two passes). Consider doing them the first time round. ! ! Ben Laurie [EMAIL PROTECTED] 30 Mar 96 ! ! More things to do: ! ! 0. Massive code cleanup break into multiple files; link as a lib ! ! 1. add PASV mode for ftp now that it works ! ! 2. Add gopher WAIS ! ! 3. Various other fixups to insure no NULL strings parsed, etc. ! ! 4. NoProxy directive for excluding sites to proxy ! ! 5. Imply NoCache * if cache directory is not configured, to enable proxy !without cache (and avoid SIGSEGV) ! ! 6. Implement protocol handler struct a la Apache module handlers ! ! 7. Use a cache expiry database for more efficient GC ! ! 8. Handle multiple IPs for doconnect() ! ! 9. Bulletproof GC against SIGALRM ! ! Chuck Murcko [EMAIL PROTECTED] 28 Sep 96 ! ! */ ! ! #define TESTING 0 ! #undef EXPLAIN ! ! #include httpd.h ! #include http_config.h ! #include http_log.h ! #include http_main.h ! #include http_protocol.h ! ! #include md5.h ! ! #include utime.h ! ! #include explain.h
cvs commit: apache/src http_main.c
chuck 96/09/25 13:07:54 Modified:src http_main.c Log: Submitted by: Chuck Murcko Remove nokeepalive environment variable checks. Really. Revision ChangesPath 1.72 +3 -5 apache/src/http_main.c Index: http_main.c === RCS file: /export/home/cvs/apache/src/http_main.c,v retrieving revision 1.71 retrieving revision 1.72 diff -C3 -r1.71 -r1.72 *** http_main.c 1996/09/24 12:21:14 1.71 --- http_main.c 1996/09/25 20:07:50 1.72 *** *** 50,56 * */ ! /* $Id: http_main.c,v 1.71 1996/09/24 12:21:14 mjc Exp $ */ /* * httpd.c: simple http daemon for answering WWW file requests --- 50,56 * */ ! /* $Id: http_main.c,v 1.72 1996/09/25 20:07:50 chuck Exp $ */ /* * httpd.c: simple http daemon for answering WWW file requests *** *** 1530,1537 #if defined(STATUS) if (r) increment_counts(child_num,r,1); #endif ! while (r current_conn-keepalive ! !table_get(r-subprocess_env, nokeepalive)) { bflush(conn_io); destroy_pool(r-pool); (void)update_child_status (child_num, SERVER_BUSY_KEEPALIVE, --- 1530,1536 #if defined(STATUS) if (r) increment_counts(child_num,r,1); #endif ! while (r current_conn-keepalive) { bflush(conn_io); destroy_pool(r-pool); (void)update_child_status (child_num, SERVER_BUSY_KEEPALIVE, *** *** 1999,2006 r = read_request (conn); if (r) process_request (r); /* else premature EOF (ignore) */ ! while (r conn-keepalive ! !table_get(r-subprocess_env, nokeepalive)) { bflush(cio); destroy_pool(r-pool); r = read_request (conn); --- 1998,2004 r = read_request (conn); if (r) process_request (r); /* else premature EOF (ignore) */ ! while (r conn-keepalive) { bflush(cio); destroy_pool(r-pool); r = read_request (conn);
cvs commit: apache/conf httpd.conf-dist
chuck 96/09/17 13:02:20 Modified:conf httpd.conf-dist Log: Submitted by: Chuck Murcko Fixed regexp for BrowserMatch (nokeepalive). Revision ChangesPath 1.8 +2 -2 apache/conf/httpd.conf-dist Index: httpd.conf-dist === RCS file: /export/home/cvs/apache/conf/httpd.conf-dist,v retrieving revision 1.7 retrieving revision 1.8 diff -C3 -r1.7 -r1.8 *** httpd.conf-dist 1996/09/17 14:27:28 1.7 --- httpd.conf-dist 1996/09/17 20:02:17 1.8 *** *** 1,6 # This is the main server configuration file. See URL http://www.apache.org/ # for instructions. ! # $Id: httpd.conf-dist,v 1.7 1996/09/17 14:27:28 chuck Exp $ # Do NOT simply read the instructions in here without understanding # what they do, if you are unsure consult the online docs. You have been --- 1,6 # This is the main server configuration file. See URL http://www.apache.org/ # for instructions. ! # $Id: httpd.conf-dist,v 1.8 1996/09/17 20:02:17 chuck Exp $ # Do NOT simply read the instructions in here without understanding # what they do, if you are unsure consult the online docs. You have been *** *** 35,41 # Netscape 2.x and browsers which spoof it. There are known problems with # these ! BrowserMatch ^Mozilla/2* nokeepalive # ServerAdmin: Your address, where problems with the server should be # e-mailed. --- 35,41 # Netscape 2.x and browsers which spoof it. There are known problems with # these ! BrowserMatch Mozilla/2 nokeepalive # ServerAdmin: Your address, where problems with the server should be # e-mailed.
cvs commit: apache/src Configure
chuck 96/08/17 10:27:34 Modified:src Configure Log: Submitted by: Chuck Murcko Add missing /; escape - as a grep arg (-lsocks) Revision ChangesPath 1.11 +1 -1 apache/src/Configure Index: Configure === RCS file: /export/home/cvs/apache/src/Configure,v retrieving revision 1.10 retrieving revision 1.11 diff -C3 -r1.10 -r1.11 *** Configure 1996/08/17 14:18:20 1.10 --- Configure 1996/08/17 17:27:32 1.11 *** *** 290,296 # Set flag and check Makefile for -lsocks line CFLAGS=$CFLAGS -Dconnect=Rconnect -Dselect=Rselect CFLAGS=$CFLAGS -Dgethostbyname=Rgethostbyname ! if grep EXTRA_ Makefile | grep -lsocks /dev null; then : else LIBS=$LIBS -L/usr/local/lib -lsocks --- 290,296 # Set flag and check Makefile for -lsocks line CFLAGS=$CFLAGS -Dconnect=Rconnect -Dselect=Rselect CFLAGS=$CFLAGS -Dgethostbyname=Rgethostbyname ! if grep EXTRA_ Makefile | grep \-lsocks /dev/null; then : else LIBS=$LIBS -L/usr/local/lib -lsocks
cvs commit: apache/src CHANGES mod_proxy.c
chuck 96/07/28 15:17:55 Modified:src CHANGES mod_proxy.c Log: Submitted by: Chuck Murcko added NoCache * directive to enable proper operation w/o caching changed #tmp to tmp in temp file template, for broken link/unlink changed Expire to Expires in cache_update() added $Id$ Revision ChangesPath 1.45 +14 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.44 retrieving revision 1.45 diff -C3 -r1.44 -r1.45 *** CHANGES 1996/07/17 23:20:47 1.44 --- CHANGES 1996/07/28 22:17:49 1.45 *** *** 1,5 --- 1,19 Changes with Apache 1.2b1: + *) Changes to mod_proxy since 1.1beta: + tested w/SOCKS proxy for http + fixed IP address formation in host2addr() + fixed SIGALRM on big cache cleanup + fixed temp files #tmp not removed + changed PF_INET to AF_INET in socket() calls + installed CONNECT code from Troy Morrison [EMAIL PROTECTED] for testing + added NoCache config directive to disallow caching for selected hosts + added NoCache * directive to enable proper operation w/o caching + changed #tmp to tmp in temp file template, for broken link/unlink + changed Expire to Expires in cache_update() + added appropriate #defines for Next compile + added $Id: CHANGES,v 1.45 1996/07/28 22:17:49 chuck Exp $ for RCS/CVS [Chuck Murcko] + *) Fix ErrorDocument handling. When ErrorDocument failed it used to display filename instead of error message. [Paul Sutton] 1.35 +20 -13apache/src/mod_proxy.c Index: mod_proxy.c === RCS file: /export/home/cvs/apache/src/mod_proxy.c,v retrieving revision 1.34 retrieving revision 1.35 diff -C3 -r1.34 -r1.35 *** mod_proxy.c 1996/07/28 19:27:49 1.34 --- mod_proxy.c 1996/07/28 22:17:51 1.35 *** *** 51,56 --- 51,60 */ /* + * $Id: mod_proxy.c,v 1.35 1996/07/28 22:17:51 chuck Exp $ + */ + + /* Note that the Explain() stuff is not yet complete. Also note numerous FIXMEs and CHECKMEs which should be eliminated. *** *** 71,87 Ben Laurie [EMAIL PROTECTED] 30 Mar 96 ! More changes: ! 0) tested w/SOCKS proxy for http ! 1) fixed IP address formation in host2addr() ! 2) fixed SIGALRM on big cache cleanup ! 3) fixed temp files #tmp not removed ! 4) changed PF_INET to AF_INET in socket() calls ! 5) installed CONNECT code from Troy Morrison [EMAIL PROTECTED] for testing ! 6) added NoCache config directive to disallow caching for selected hosts ! Chuck Murcko [EMAIL PROTECTED] 2 Jun 96 */ --- 75,93 Ben Laurie [EMAIL PROTECTED] 30 Mar 96 ! More things to do: ! ! 0. Massive code cleanup break into multiple files; link as a lib ! ! 1. Check date routines ! ! 2. Get ftp working, add PASV mode ! ! 3. Add gopher WAIS ! 4. Various other fixups to insure no NULL strings parsed, etc. ! Chuck Murcko [EMAIL PROTECTED] 28 Jul 96 */ *** *** 1413,1419 sprintf(filename, %s%s, cachedir, ent-d_name); Explain1(GC Examining file %s,filename); /* is it a temporary file? */ ! if (strncmp(ent-d_name, #tmp, 4) == 0) { /* then stat it to see how old it is; delete temporary files 1 day old */ if (stat(filename, buf) == -1) --- 1419,1425 sprintf(filename, %s%s, cachedir, ent-d_name); Explain1(GC Examining file %s,filename); /* is it a temporary file? */ ! if (strncmp(ent-d_name, tmp, 3) == 0) { /* then stat it to see how old it is; delete temporary files 1 day old */ if (stat(filename, buf) == -1) *** *** 1783,1789 /* read expiry date; if a bad date, then leave it so the client can * read it */ ! expire = get_header(resp_hdrs, Expire); if (expire != NULL) expc = parsedate(expire-value, NULL); else expc = -1; --- 1789,1795 /* read expiry date; if a bad date, then leave it so the client can * read it */ ! expire = get_header(resp_hdrs, Expires); if (expire != NULL) expc = parsedate(expire-value, NULL); else expc = -1; *** *** 1974,1980 buff[35] = ' '; /* open temporary file */ ! #define TMPFILESTR /#tmpXX c-tempfile=palloc(r-pool,strlen(conf-cache.root)+sizeof TMPFILESTR-1); strcpy(c-tempfile,conf-cache.root); /* --- 1980,1986 buff[35] = ' '; /* open temporary file */ ! #define TMPFILESTR /tmpXX
cvs commit: apache/src mod_negotiation.c
chuck 96/07/28 15:40:56 Modified:src mod_negotiation.c Log: Reviewed by: Chuck Murcko Submitted by: Ralf S. Engelschall Prevent conflicts when ProxyRemote is in use Revision ChangesPath 1.11 +3 -0 apache/src/mod_negotiation.c Index: mod_negotiation.c === RCS file: /export/home/cvs/apache/src/mod_negotiation.c,v retrieving revision 1.10 retrieving revision 1.11 diff -C3 -r1.10 -r1.11 *** mod_negotiation.c 1996/07/28 19:27:49 1.10 --- mod_negotiation.c 1996/07/28 22:40:55 1.11 *** *** 593,598 --- 593,601 if (!(filp = strrchr (r-filename, '/'))) return DECLINED; /* Weird... */ + if (strncmp(r-filename, proxy:, 6) == 0) + return DECLINED; + ++filp; prefix_len = strlen (filp);
cvs commit: apache/src http_main.c
chuck 96/06/11 08:40:50 Modified:src http_main.c Log: Submitted by: Chuck Murcko Fix compile warnings and error (on NEXT) from incorrect variable declaration. Revision ChangesPath 1.38 +1 -1 apache/src/http_main.c Index: http_main.c === RCS file: /export/home/cvs/apache/src/http_main.c,v retrieving revision 1.37 retrieving revision 1.38 diff -C3 -r1.37 -r1.38 *** http_main.c 1996/06/11 06:21:48 1.37 --- http_main.c 1996/06/11 15:40:48 1.38 *** *** 817,823 * a while... */ ! static sigjmp_buf wait_timeout_buf; static int wait_or_timeout_retval = -1; static void longjmp_out_of_alarm (int sig) { --- 817,823 * a while... */ ! static JMP_BUF wait_timeout_buf; static int wait_or_timeout_retval = -1; static void longjmp_out_of_alarm (int sig) {
cvs commit: apache/src mod_proxy.c
chuck 96/06/11 08:42:59 Modified:src mod_proxy.c Log: Submitted by: Chuck Murcko Disable canonicalization of the search portion of proxied URLs. One small step toward HTTP 1.1 compliance. Revision ChangesPath 1.26 +1 -1 apache/src/mod_proxy.c Index: mod_proxy.c === RCS file: /export/home/cvs/apache/src/mod_proxy.c,v retrieving revision 1.25 retrieving revision 1.26 diff -C3 -r1.25 -r1.26 *** mod_proxy.c 1996/06/10 17:55:19 1.25 --- mod_proxy.c 1996/06/11 15:42:57 1.26 *** *** 676,682 /* process search */ if (p != NULL) { ! search = canonenc(r-pool, p, strlen(p), enc_search, 1); if (search == NULL) return BAD_REQUEST; } else search = ; --- 676,682 /* process search */ if (p != NULL) { ! search = p; if (search == NULL) return BAD_REQUEST; } else search = ;
cvs commit: apache/src mod_proxy.c
chuck 96/06/10 10:55:22 Modified:src mod_proxy.c Log: Submitted by: Chuck (I hope this is right) Murcko Changed host2addr() function back to using inet_addr() for IP address lookups, but in a way that works. Removed inet_aton() call because it's too new for some systems. Revision ChangesPath 1.25 +3 -1 apache/src/mod_proxy.c Index: mod_proxy.c === RCS file: /export/home/cvs/apache/src/mod_proxy.c,v retrieving revision 1.24 retrieving revision 1.25 diff -C3 -r1.24 -r1.25 *** mod_proxy.c 1996/06/08 21:21:29 1.24 --- mod_proxy.c 1996/06/10 17:55:19 1.25 *** *** 2188,2193 --- 2188,2194 host2addr(const char *host, struct in_addr *addr) { int i; + unsigned long ipaddr; for (i=0; host[i] != '\0'; i++) if (!isdigit(host[i]) host[i] != '.') *** *** 2202,2209 memcpy(addr, hp-h_addr, sizeof(struct in_addr)); } else { ! if (!inet_aton(host, addr)) return Bad IP address; } return NULL; } --- 2203,2211 memcpy(addr, hp-h_addr, sizeof(struct in_addr)); } else { ! if ((ipaddr = inet_addr(host)) == -1) return Bad IP address; + memcpy(addr, ipaddr, sizeof(unsigned long)); } return NULL; }
cvs commit: apache/src mod_proxy.c
chuck 96/06/08 14:21:31 Modified:src mod_proxy.c Log: Submitted by: Chuck Murcko Editorial change at the header to connect_handler() Revision ChangesPath 1.24 +5 -3 apache/src/mod_proxy.c Index: mod_proxy.c === RCS file: /export/home/cvs/apache/src/mod_proxy.c,v retrieving revision 1.23 retrieving revision 1.24 diff -C3 -r1.23 -r1.24 *** mod_proxy.c 1996/06/07 20:19:02 1.23 --- mod_proxy.c 1996/06/08 21:21:29 1.24 *** *** 2595,2605 } /* ! * This handles Netscape-SSL style CONNECT proxy requests. * A connection is opened to the specified host and data is * passed through between the WWW site and the browser. ! * This code is based on the IETF document at ! * http://www.netscape.com/docs/std/tunnelling_ssl.html. * * FIXME: this is bad, because it does its own socket I/O *instead of using the I/O in buff.c. However, --- 2595,2607 } /* ! * This handles Netscape CONNECT method secure proxy requests. * A connection is opened to the specified host and data is * passed through between the WWW site and the browser. ! * ! * This code is based on the INTERNET-DRAFT document ! * Tunneling SSL Through a WWW Proxy currently at ! * http://www.mcom.com/newsref/std/tunneling_ssl.html. * * FIXME: this is bad, because it does its own socket I/O *instead of using the I/O in buff.c. However,
cvs commit: apache/src http_main.c
chuck 96/06/07 12:51:18 Modified:src http_main.c Log: Reviewed by: Chuck Murcko Submitted by: Cliff Skolnick Obtained from: [EMAIL PROTECTED] When the server listens to multiple ports (via the httpd.conf 'Listen port' directive), a SIGHUP sent to the main server doesn't call reclaim_child_processes. The status of the killed child processes is collected much later, after the server is fully restarted. Also an error log entry for the SIGHUP is missing in logs/error_log. Revision ChangesPath 1.33 +7 -4 apache/src/http_main.c Index: http_main.c === RCS file: /export/home/cvs/apache/src/http_main.c,v retrieving revision 1.32 retrieving revision 1.33 diff -C3 -r1.32 -r1.33 *** http_main.c 1996/06/07 17:39:24 1.32 --- http_main.c 1996/06/07 19:51:16 1.33 *** *** 1341,1347 struct sockaddr_in sa_server; standalone = 1; ! sd = -1; if (!one_process) detach(); --- 1341,1347 struct sockaddr_in sa_server; standalone = 1; ! sd = listenmaxfd = -1; if (!one_process) detach(); *** *** 1354,1366 signal (SIGHUP, SIG_IGN); /* Until we're done (re)reading config */ if(!one_process) #ifndef NO_KILLPG ! killpg(pgrp,SIGHUP); /* Kill 'em off */ #else ! kill(-pgrp,SIGHUP); #endif ! if (sd != -1) { reclaim_child_processes(); /* Not when just starting up */ log_error (SIGHUP received. Attempting to restart, server_conf); } --- 1354,1369 signal (SIGHUP, SIG_IGN); /* Until we're done (re)reading config */ if(!one_process) + { #ifndef NO_KILLPG ! if (killpg(pgrp,SIGHUP) 0)/* Kill 'em off */ #else ! if (kill(-pgrp,SIGHUP) 0) #endif + log_unixerr (killpg SIGHUP, NULL, NULL, server_conf); + } ! if (sd != -1 || listenmaxfd != -1) { reclaim_child_processes(); /* Not when just starting up */ log_error (SIGHUP received. Attempting to restart, server_conf); }