cvs commit: apache/src/helpers GuessOS
dgaudet 97/06/26 19:01:08 Modified:src Tag: APACHE_1_2_X Configure CHANGES src/helpers Tag: APACHE_1_2_X GuessOS Log: PR#327: Port to NonStop-UX Submitted by: Joachim Schmitz [EMAIL PROTECTED] Revision ChangesPath No revision No revision 1.96.2.4 +6 -0 apache/src/Configure Index: Configure === RCS file: /export/home/cvs/apache/src/Configure,v retrieving revision 1.96.2.3 retrieving revision 1.96.2.4 diff -C3 -r1.96.2.3 -r1.96.2.4 *** Configure 1997/06/27 01:58:15 1.96.2.3 --- Configure 1997/06/27 02:01:03 1.96.2.4 *** *** 421,426 --- 421,432 LIBS=$LIBS -lsocket -lnsl DEF_WANTHSREGEX=yes ;; + *-tandem-sysv4*) + OS='SVR4' + CFLAGS=$CFLAGS -DSVR4 + LIBS=$LIBS -lsocket -lnsl + DEF_WANTHSREGEX=yes + ;; *-sysv4*) OS='SVR4' CFLAGS=$CFLAGS -DSVR4 1.286.2.7 +2 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.286.2.6 retrieving revision 1.286.2.7 diff -C3 -r1.286.2.6 -r1.286.2.7 *** CHANGES 1997/06/27 01:59:29 1.286.2.6 --- CHANGES 1997/06/27 02:01:04 1.286.2.7 *** *** 1,5 --- 1,7 Changes with Apache 1.2.1 + *) Port to NonStop-UX [Joachim Schmitz [EMAIL PROTECTED]] PR#327 + *) Update ConvexOS support for 11.5. [David DeSimone [EMAIL PROTECTED]] PR#399 No revision No revision 1.19.2.3 +4 -0 apache/src/helpers/GuessOS Index: GuessOS === RCS file: /export/home/cvs/apache/src/helpers/GuessOS,v retrieving revision 1.19.2.2 retrieving revision 1.19.2.3 diff -C3 -r1.19.2.2 -r1.19.2.3 *** GuessOS 1997/06/27 01:59:31 1.19.2.2 --- GuessOS 1997/06/27 02:01:07 1.19.2.3 *** *** 197,202 --- 197,206 UNIX_SV:*:*:maxion) echo ${MACHINE}-ccur-sysv4; exit 0; ;; + + NonStop-UX:4.[02]*:[BC]*:*) + echo ${MACHINE}-tandem-sysv4; exit 0; + ;; esac
cvs commit: apache/src/helpers GuessOS
dgaudet 97/06/26 19:02:02 Modified:src Tag: APACHE_1_2_X Configure CHANGES src/helpers Tag: APACHE_1_2_X GuessOS Log: PR#511: update unixware support for 2.1.2 Submitted by: Lawrence Rosenman ler@lerctr.org Revision ChangesPath No revision No revision 1.96.2.5 +6 -0 apache/src/Configure Index: Configure === RCS file: /export/home/cvs/apache/src/Configure,v retrieving revision 1.96.2.4 retrieving revision 1.96.2.5 diff -C3 -r1.96.2.4 -r1.96.2.5 *** Configure 1997/06/27 02:01:03 1.96.2.4 --- Configure 1997/06/27 02:01:57 1.96.2.5 *** *** 403,408 --- 403,414 CFLAGS=$CFLAGS -DUW LIBS=$LIBS -lsocket -lnsl -lcrypt ;; + *-unixware212) + OS='Unixware 2.1.2' + CFLAGS=$CFLAGS -DUW + LIBS=$LIBS -lsocket -lnsl -lcrypt + DBM_LIB= + ;; maxion-*-sysv4*) OS='SVR4' CFLAGS=$CFLAGS -DSVR4 1.286.2.8 +3 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.286.2.7 retrieving revision 1.286.2.8 diff -C3 -r1.286.2.7 -r1.286.2.8 *** CHANGES 1997/06/27 02:01:04 1.286.2.7 --- CHANGES 1997/06/27 02:01:58 1.286.2.8 *** *** 1,5 --- 1,8 Changes with Apache 1.2.1 + *) Update Unixware support for 2.1.2. [Lawrence Rosenman ler@lerctr.org] + PR#511 + *) Port to NonStop-UX [Joachim Schmitz [EMAIL PROTECTED]] PR#327 *) Update ConvexOS support for 11.5. [David DeSimone [EMAIL PROTECTED]] No revision No revision 1.19.2.4 +2 -0 apache/src/helpers/GuessOS Index: GuessOS === RCS file: /export/home/cvs/apache/src/helpers/GuessOS,v retrieving revision 1.19.2.3 retrieving revision 1.19.2.4 diff -C3 -r1.19.2.3 -r1.19.2.4 *** GuessOS 1997/06/27 02:01:07 1.19.2.3 --- GuessOS 1997/06/27 02:02:01 1.19.2.4 *** *** 41,46 --- 41,48 4.2MP) if [ x$VERSION = x2.1.1 ]; then echo ${MACHINE}-whatever-unixware211; exit 0 + elif [ x$VERSION = x2.1.2 ]; then + echo ${MACHINE}-whatever-unixware212; exit 0 else echo ${MACHINE}-whatever-unixware2; exit 0 fi
cvs commit: apache/src CHANGES Makefile.tmpl
dgaudet 97/06/26 19:09:17 Modified:src Tag: APACHE_1_2_X CHANGES Makefile.tmpl Log: PR#752: make clean is more aggressive Revision ChangesPath No revision No revision 1.286.2.9 +15 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.286.2.8 retrieving revision 1.286.2.9 diff -C3 -r1.286.2.8 -r1.286.2.9 *** CHANGES 1997/06/27 02:01:58 1.286.2.8 --- CHANGES 1997/06/27 02:09:14 1.286.2.9 *** *** 1,4 --- 1,19 Changes with Apache 1.2.1 + + *) make clean at the top level now removes *.o. [Dean Gaudet] PR#752 + + *) Don't serve file system objects unless they are plain files, symlinks, + or directories. This prevents local users from using pipes or + named sockets to invoke programs for an extremely crude form of + CGI. [Dean Gaudet] + + *) HeaderName and ReadmeName were settable in .htaccess and could + contain ../ allowing a local user to publish any file on the + system. No slashes are allowed now. [Dean Gaudet] + + *) It was possible to violate the symlink Options using mod_dir (headers, + readmes, titles), mod_negotiation (type maps), or mod_cern_meta + (meta files). [Dean Gaudet] *) Update Unixware support for 2.1.2. [Lawrence Rosenman ler@lerctr.org] PR#511 1.46.2.1 +1 -1 apache/src/Makefile.tmpl Index: Makefile.tmpl === RCS file: /export/home/cvs/apache/src/Makefile.tmpl,v retrieving revision 1.46 retrieving revision 1.46.2.1 diff -C3 -r1.46 -r1.46.2.1 *** Makefile.tmpl 1997/06/04 20:21:15 1.46 --- Makefile.tmpl 1997/06/27 02:09:15 1.46.2.1 *** *** 36,42 $(MAKE) CC=$(CC) AUX_CFLAGS='$(CFLAGS)' RANLIB='$(RANLIB)') clean: ! rm -f httpd $(OBJS) cd regex; $(MAKE) clean cd modules; $(MAKE) clean --- 36,42 $(MAKE) CC=$(CC) AUX_CFLAGS='$(CFLAGS)' RANLIB='$(RANLIB)') clean: ! rm -f httpd *.o core cd regex; $(MAKE) clean cd modules; $(MAKE) clean
cvs commit: apache/conf httpd.conf-dist
dgaudet 97/06/26 19:12:39 Modified:conf httpd.conf-dist Log: Default HostnameLookups to off. Reviewed by: Dean, Rasmus, Jim, Randy Submitted by: Linus Torvalds Revision ChangesPath 1.14 +3 -1 apache/conf/httpd.conf-dist Index: httpd.conf-dist === RCS file: /export/home/cvs/apache/conf/httpd.conf-dist,v retrieving revision 1.13 retrieving revision 1.14 diff -C3 -r1.13 -r1.14 *** httpd.conf-dist 1997/05/04 20:18:04 1.13 --- httpd.conf-dist 1997/06/27 02:12:38 1.14 *** *** 20,26 # HostnameLookups: Log the names of clients or just their IP numbers # e.g. www.apache.org (on) or 204.62.129.132 (off) ! HostnameLookups on # If you wish httpd to run as a different user or group, you must run # httpd as root initially and it will switch. --- 20,28 # HostnameLookups: Log the names of clients or just their IP numbers # e.g. www.apache.org (on) or 204.62.129.132 (off) ! # The default is off because it'd be overall better for the net if people ! # had to knowingly turn this feature on. ! HostnameLookups off # If you wish httpd to run as a different user or group, you must run # httpd as root initially and it will switch.
cvs commit: apache/conf httpd.conf-dist
dgaudet 97/06/26 19:15:08 Modified:src Tag: APACHE_1_2_X CHANGES conf Tag: APACHE_1_2_X httpd.conf-dist Log: Default HostnameLookups to off. Reviewed by: Dean, Rasmus, Jim, Randy Submitted by: Linus Torvalds Revision ChangesPath No revision No revision 1.286.2.10 +8 -4 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.286.2.9 retrieving revision 1.286.2.10 diff -C3 -r1.286.2.9 -r1.286.2.10 *** CHANGES 1997/06/27 02:09:14 1.286.2.9 --- CHANGES 1997/06/27 02:15:05 1.286.2.10 *** *** 1,7 Changes with Apache 1.2.1 ! *) make clean at the top level now removes *.o. [Dean Gaudet] PR#752 ! *) Don't serve file system objects unless they are plain files, symlinks, or directories. This prevents local users from using pipes or named sockets to invoke programs for an extremely crude form of --- 1,11 Changes with Apache 1.2.1 ! ! *) HostnameLookups now defaults to off because it is far better for ! the net if we require people that actually need this data to ! enable it. [Linus Torvalds] ! *) make clean at the top level now removes *.o. [Dean Gaudet] PR#752 ! *) Don't serve file system objects unless they are plain files, symlinks, or directories. This prevents local users from using pipes or named sockets to invoke programs for an extremely crude form of *** *** 25,33 *) Support for dec cc compiler under ultrix. [P. Alejandro Lopez-Valencia [EMAIL PROTECTED]] PR#388 ! *) Support for Maxion/OS SVR4.2 Real Time Unix. [no name given] PR#383 ! *) mod_status dumps core in inetd mode. [Marc Slemko and Roy Fielding] PR#566 --- 29,37 *) Support for dec cc compiler under ultrix. [P. Alejandro Lopez-Valencia [EMAIL PROTECTED]] PR#388 ! *) Support for Maxion/OS SVR4.2 Real Time Unix. [no name given] PR#383 ! *) mod_status dumps core in inetd mode. [Marc Slemko and Roy Fielding] PR#566 No revision No revision 1.13.2.1 +3 -1 apache/conf/httpd.conf-dist Index: httpd.conf-dist === RCS file: /export/home/cvs/apache/conf/httpd.conf-dist,v retrieving revision 1.13 retrieving revision 1.13.2.1 diff -C3 -r1.13 -r1.13.2.1 *** httpd.conf-dist 1997/05/04 20:18:04 1.13 --- httpd.conf-dist 1997/06/27 02:15:07 1.13.2.1 *** *** 20,26 # HostnameLookups: Log the names of clients or just their IP numbers # e.g. www.apache.org (on) or 204.62.129.132 (off) ! HostnameLookups on # If you wish httpd to run as a different user or group, you must run # httpd as root initially and it will switch. --- 20,28 # HostnameLookups: Log the names of clients or just their IP numbers # e.g. www.apache.org (on) or 204.62.129.132 (off) ! # The default is off because it'd be overall better for the net if people ! # had to knowingly turn this feature on. ! HostnameLookups off # If you wish httpd to run as a different user or group, you must run # httpd as root initially and it will switch.
cvs commit: apache/src CHANGES mod_negotiation.c
dgaudet 97/06/26 19:20:21 Modified:src Tag: APACHE_1_2_X CHANGES mod_negotiation.c Log: PR#94: Content negot fails unless each varient has a charset Reviewed by: Dean, Alexei Submitted by: Paul Sutton Revision ChangesPath No revision No revision 1.286.2.11 +4 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.286.2.10 retrieving revision 1.286.2.11 diff -C3 -r1.286.2.10 -r1.286.2.11 *** CHANGES 1997/06/27 02:15:05 1.286.2.10 --- CHANGES 1997/06/27 02:20:18 1.286.2.11 *** *** 1,4 --- 1,8 Changes with Apache 1.2.1 + + *) If an object has multiple variants that are otherwise equal Apache + would prefer the last listed variant rather than the first. + [Paul Sutton] PR#94 *) HostnameLookups now defaults to off because it is far better for the net if we require people that actually need this data to 1.40.2.1 +19 -11apache/src/mod_negotiation.c Index: mod_negotiation.c === RCS file: /export/home/cvs/apache/src/mod_negotiation.c,v retrieving revision 1.40 retrieving revision 1.40.2.1 diff -C3 -r1.40 -r1.40.2.1 *** mod_negotiation.c 1997/04/17 02:50:20 1.40 --- mod_negotiation.c 1997/06/27 02:20:19 1.40.2.1 *** *** 642,658 return cp; } ! int read_type_map (negotiation_state *neg, char *map_name) { request_rec *r = neg-r; ! FILE *map = pfopen (neg-pool, map_name, r); ! char buffer[MAX_STRING_LEN]; enum header_state hstate; struct var_rec mime_info; if (map == NULL) { ! log_reason(cannot access type map file, map_name, r); return FORBIDDEN; } --- 642,661 return cp; } ! static int read_type_map (negotiation_state *neg, request_rec *rr) { request_rec *r = neg-r; ! FILE *map; char buffer[MAX_STRING_LEN]; enum header_state hstate; struct var_rec mime_info; + if (rr-status != HTTP_OK) { + return rr-status; + } + map = pfopen (neg-pool, rr-filename, r); if (map == NULL) { ! log_reason(cannot access type map file, rr-filename, r); return FORBIDDEN; } *** *** 780,786 closedir(dirp); neg-avail_vars-nelts = 0; ! return read_type_map (neg, sub_req-filename); } /* Have reasonable variant --- gather notes. --- 783,789 closedir(dirp); neg-avail_vars-nelts = 0; ! return read_type_map (neg, sub_req); } /* Have reasonable variant --- gather notes. *** *** 1439,1446 /* If the best variant's charset is ISO-8859-1 and this variant has the same charset quality, then we prefer this variant */ if (variant-charset_quality == best-charset_quality ! (best-content_charset == NULL || *best-content_charset == 0 || ! strcmp(best-content_charset, iso-8859-1) == 0)) { *p_bestq = q; return 1; } --- 1442,1452 /* If the best variant's charset is ISO-8859-1 and this variant has the same charset quality, then we prefer this variant */ if (variant-charset_quality == best-charset_quality ! (variant-content_charset != NULL ! strcmp(variant-content_charset, iso-8859-1) != 0) ! (best-content_charset == NULL || ! *best-content_charset == '\0' || ! strcmp(best-content_charset, iso-8859-1) == 0)) { *p_bestq = q; return 1; } *** *** 1538,1546 /* If the best variant's charset is ISO-8859-1 and this variant has the same charset quality, then we prefer this variant */ if (variant-charset_quality best-charset_quality || ! (variant-charset_quality == best-charset_quality ! (best-content_charset == NULL || *best-content_charset == 0 || ! strcmp(best-content_charset, iso-8859-1) == 0))) { *p_bestq = q; return 1; } --- 1544,1554 /* If the best variant's charset is ISO-8859-1 and this variant has the same charset quality, then we prefer this variant */ if (variant-charset_quality best-charset_quality || ! ((variant-content_charset != NULL ! strcmp(variant-content_charset, iso-8859-1) != 0) ! (best-content_charset == NULL || !
cvs commit: apache/src http_request.c mod_cern_meta.c mod_dir.c
dgaudet 97/06/26 19:21:25 Modified:src Tag: APACHE_1_2_X http_request.c mod_cern_meta.c mod_dir.c Log: Ugh I messed up the security fixes commit. Revision ChangesPath No revision No revision 1.50.2.1 +41 -4 apache/src/http_request.c Index: http_request.c === RCS file: /export/home/cvs/apache/src/http_request.c,v retrieving revision 1.50 retrieving revision 1.50.2.1 diff -C3 -r1.50 -r1.50.2.1 *** http_request.c1997/05/14 19:22:52 1.50 --- http_request.c1997/06/27 02:21:21 1.50.2.1 *** *** 85,90 --- 85,108 * they change, all the way down. */ + + /* + * We don't want people able to serve up pipes, or unix sockets, or other + * scary things. Note that symlink tests are performed later. + */ + static int check_safe_file(request_rec *r) + { + if (r-finfo.st_mode == 0 /* doesn't exist */ + || S_ISDIR (r-finfo.st_mode) + || S_ISREG (r-finfo.st_mode) + || S_ISLNK (r-finfo.st_mode)) { + return OK; + } + log_reason(object is not a file, directory or symlink, r-filename, r); + return HTTP_FORBIDDEN; + } + + int check_symlinks (char *d, int opts) { struct stat lfi, fi; *** *** 310,320 if (res != OK) { return res; } ! if (test_filename[strlen(test_filename)-1] == '/') --num_dirs; ! if (S_ISDIR (r-finfo.st_mode)) ++num_dirs; for (i = 1; i = num_dirs; ++i) { core_dir_config *core_dir = --- 328,344 if (res != OK) { return res; } ! ! if ((res = check_safe_file(r))) { ! return res; ! } ! if (test_filename[strlen(test_filename)-1] == '/') --num_dirs; ! if (S_ISDIR (r-finfo.st_mode)) { ! ++num_dirs; ! } for (i = 1; i = num_dirs; ++i) { core_dir_config *core_dir = *** *** 399,406 r-per_dir_config = per_dir_defaults; ! if ((res = check_symlinks (r-filename, allow_options(r ! { log_reason(Symbolic link not allowed, r-filename, r); return res; } --- 423,438 r-per_dir_config = per_dir_defaults; ! /* Symlink permissions are determined by the parent. If the request is for ! * a directory then applying the symlink test here would use the ! * permissions of the directory as opposed to its parent. Consider a ! * symlink pointing to a dir with a .htaccess disallowing symlinks. If you ! * access /symlink (or /symlink/) you would get a 403 without this S_ISDIR ! * test. But if you accessed /symlink/index.html, for example, you would ! * *not* get the 403. ! */ ! if (!S_ISDIR (r-finfo.st_mode) ! (res = check_symlinks (r-filename, allow_options(r { log_reason(Symbolic link not allowed, r-filename, r); return res; } *** *** 667,672 --- 699,709 rnew-filename = make_full_path (rnew-pool, fdir, new_file); if (stat (rnew-filename, rnew-finfo) 0) { rnew-finfo.st_mode = 0; + } + + if ((res = check_safe_file(rnew))) { + rnew-status = res; + return rnew; } rnew-per_dir_config = r-per_dir_config; 1.10.2.1 +14 -20apache/src/mod_cern_meta.c Index: mod_cern_meta.c === RCS file: /export/home/cvs/apache/src/mod_cern_meta.c,v retrieving revision 1.10 retrieving revision 1.10.2.1 diff -C3 -r1.10 -r1.10.2.1 *** mod_cern_meta.c 1997/03/07 14:15:39 1.10 --- mod_cern_meta.c 1997/06/27 02:21:22 1.10.2.1 *** *** 131,136 --- 131,137 #include sys/stat.h #include util_script.h #include http_log.h + #include http_request.h #define DEFAULT_METADIR .web #define DEFAULT_METASUFFIX .meta *** *** 238,247 char *last_slash; char *real_file; char *scrap_book; - struct stat meta_stat; FILE *f; cern_meta_config *cmc ; int rv; cmc = get_module_config (r-server-module_config, cern_meta_module); --- 239,248 char *last_slash; char *real_file; char *scrap_book; FILE *f; cern_meta_config *cmc ; int rv; + request_rec *rr; cmc = get_module_config (r-server-module_config, cern_meta_module); *** *** 276,305 metafilename = pstrcat(r-pool, /, scrap_book, /,
cvs commit: apache/src CHANGES mod_rewrite.c mod_rewrite.h
dgaudet 97/06/26 19:26:35 Modified:src Tag: APACHE_1_2_X CHANGES mod_rewrite.c mod_rewrite.h Log: Update mod_rewrite from 3.0.5 to 3.0.6. Reviewed by: Dean, Alexei Submitted by: Ralf Revision ChangesPath No revision No revision 1.286.2.12 +7 -1 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.286.2.11 retrieving revision 1.286.2.12 diff -C3 -r1.286.2.11 -r1.286.2.12 *** CHANGES 1997/06/27 02:20:18 1.286.2.11 --- CHANGES 1997/06/27 02:26:29 1.286.2.12 *** *** 1,5 Changes with Apache 1.2.1 ! *) If an object has multiple variants that are otherwise equal Apache would prefer the last listed variant rather than the first. [Paul Sutton] PR#94 --- 1,11 Changes with Apache 1.2.1 ! ! *) Update mod_rewrite from 3.0.5 to 3.0.6. New ruleflag ! QSA=query_string_append. Also fixed a nasty bug in per-dir context: ! when a URL http://... was used in concunction with a special ! redirect flag, e.g. R=permanent, the permanent status was lost. ! [Ronald Tschalaer [EMAIL PROTECTED], Ralf S. Engelschall] ! *) If an object has multiple variants that are otherwise equal Apache would prefer the last listed variant rather than the first. [Paul Sutton] PR#94 1.28.2.1 +12 -4 apache/src/mod_rewrite.c Index: mod_rewrite.c === RCS file: /export/home/cvs/apache/src/mod_rewrite.c,v retrieving revision 1.28 retrieving revision 1.28.2.1 diff -C3 -r1.28 -r1.28.2.1 *** mod_rewrite.c 1997/04/24 23:35:22 1.28 --- mod_rewrite.c 1997/06/27 02:26:30 1.28.2.1 *** *** 61,67 ** |_| |_| |_|\___/ \__,_|___|_| \___| \_/\_/ |_| |_|\__\___| ** |_| ** ! ** URL Rewriting Module, Version 3.0.5 (16-Apr-1997) ** ** This module uses a rule-based rewriting engine (based on a ** regular-expression parser) to rewrite requested URLs on the fly. --- 61,67 ** |_| |_| |_|\___/ \__,_|___|_| \___| \_/\_/ |_| |_|\__\___| ** |_| ** ! ** URL Rewriting Module, Version 3.0.6 (15-Jun-1997) ** ** This module uses a rule-based rewriting engine (based on a ** regular-expression parser) to rewrite requested URLs on the fly. *** *** 779,784 --- 779,788 || strcasecmp(key, G) == 0 ) { cfg-flags |= RULEFLAG_GONE; } + else if ( strcasecmp(key, qsappend) == 0 + || strcasecmp(key, QSA) == 0 ) { + cfg-flags |= RULEFLAG_QSAPPEND; + } else { return pstrcat(p, RewriteRule: unknown flag ', key, '\n, NULL); } *** *** 1559,1564 --- 1563,1569 } rewritelog(r, 2, [per-dir %s] redirect %s - %s, perdir, r-filename, newuri); r-filename = pstrdup(r-pool, newuri); + r-status = p-forced_responsecode; return 1; } *** *** 1602,1608 reduce_uri(r); /* split out on-the-fly generated QUERY_STRING '?x...' */ ! splitout_queryargs(r); /* if a MIME-type should be later forced for this URL, then remember this */ if (p-forced_mimetype != NULL) { --- 1607,1613 reduce_uri(r); /* split out on-the-fly generated QUERY_STRING '?x...' */ ! splitout_queryargs(r, p-flags RULEFLAG_QSAPPEND); /* if a MIME-type should be later forced for this URL, then remember this */ if (p-forced_mimetype != NULL) { *** *** 1788,1794 ** */ ! static void splitout_queryargs(request_rec *r) { char *q; char *olduri; --- 1793,1799 ** */ ! static void splitout_queryargs(request_rec *r, int qsappend) { char *q; char *olduri; *** *** 1797,1803 if (q != NULL) { olduri = pstrdup(r-pool, r-filename); *q++ = '\0'; ! r-args = pstrcat(r-pool, q, , r-args, NULL); if (r-args[strlen(r-args)-1] == '') r-args[strlen(r-args)-1] = '\0'; rewritelog(r, 3, split uri=%s - uri=%s, args=%s, olduri, r-filename, r-args); --- 1802,1811 if (q != NULL) { olduri = pstrdup(r-pool, r-filename); *q++ = '\0'; ! if (qsappend) ! r-args = pstrcat(r-pool, q, , r-args, NULL); ! else ! r-args =
cvs commit: apache/src CHANGES mod_cgi.c mod_include.c util_script.c
dgaudet 97/06/26 19:28:59 Modified:src Tag: APACHE_1_2_X CHANGES mod_cgi.c mod_include.c util_script.c Log: give me useless text not useless errno Reviewed by: Dean, Alexei Submitted by: Marc Revision ChangesPath No revision No revision 1.286.2.13 +2 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.286.2.12 retrieving revision 1.286.2.13 diff -C3 -r1.286.2.12 -r1.286.2.13 *** CHANGES 1997/06/27 02:26:29 1.286.2.12 --- CHANGES 1997/06/27 02:28:53 1.286.2.13 *** *** 1,4 --- 1,6 Changes with Apache 1.2.1 + + *) Improved unix error response logging. [Marc Slemko] *) Update mod_rewrite from 3.0.5 to 3.0.6. New ruleflag QSA=query_string_append. Also fixed a nasty bug in per-dir context: 1.39.2.1 +2 -1 apache/src/mod_cgi.c Index: mod_cgi.c === RCS file: /export/home/cvs/apache/src/mod_cgi.c,v retrieving revision 1.39 retrieving revision 1.39.2.1 diff -C3 -r1.39 -r1.39.2.1 *** mod_cgi.c 1997/04/21 20:29:09 1.39 --- mod_cgi.c 1997/06/27 02:28:54 1.39.2.1 *** *** 333,339 */ ap_snprintf(err_string, sizeof(err_string), ! exec of %s failed, errno is %d\n, r-filename, errno); write(2, err_string, strlen(err_string)); exit(0); } --- 333,340 */ ap_snprintf(err_string, sizeof(err_string), ! exec of %s failed, reason: %s (errno = %d)\n, ! r-filename, strerror(errno), errno); write(2, err_string, strlen(err_string)); exit(0); } 1.33.2.1 +2 -2 apache/src/mod_include.c Index: mod_include.c === RCS file: /export/home/cvs/apache/src/mod_include.c,v retrieving revision 1.33 retrieving revision 1.33.2.1 diff -C3 -r1.33 -r1.33.2.1 *** mod_include.c 1997/06/05 00:57:45 1.33 --- mod_include.c 1997/06/27 02:28:55 1.33.2.1 *** *** 646,653 fprintf (dbg, Exec failed\n); #endif ap_snprintf(err_string, sizeof(err_string), ! httpd: exec of %s failed, errno is %d\n, ! SHELL_PATH,errno); write (2, err_string, strlen(err_string)); exit(0); } --- 646,653 fprintf (dbg, Exec failed\n); #endif ap_snprintf(err_string, sizeof(err_string), ! httpd: exec of %s failed, reason: %s (errno = %d)\n, ! SHELL_PATH, strerror(errno), errno); write (2, err_string, strlen(err_string)); exit(0); } 1.58.2.1 +4 -1 apache/src/util_script.c Index: util_script.c === RCS file: /export/home/cvs/apache/src/util_script.c,v retrieving revision 1.58 retrieving revision 1.58.2.1 diff -C3 -r1.58 -r1.58.2.1 *** util_script.c 1997/05/11 23:13:22 1.58 --- util_script.c 1997/06/27 02:28:56 1.58.2.1 *** *** 502,508 program = fopen (r-filename, r); if (!program) { char err_string[HUGE_STRING_LEN]; ! ap_snprintf(err_string, sizeof(err_string), open of %s failed, errno is %d\n, r-filename, errno); /* write(2, err_string, strlen(err_string)); */ /* exit(0); */ log_unixerr(fopen, NULL, err_string, r-server); --- 502,511 program = fopen (r-filename, r); if (!program) { char err_string[HUGE_STRING_LEN]; ! ap_snprintf(err_string, sizeof(err_string), ! open of %s failed, reason: fopen: %s (errno = %d)\n, ! r-filename, strerror(errno), errno); ! /* write(2, err_string, strlen(err_string)); */ /* exit(0); */ log_unixerr(fopen, NULL, err_string, r-server);
cvs commit: apache/htdocs/manual/mod core.html mod_auth_anon.html mod_dir.html mod_include.html mod_proxy.html mod_rewrite.html mod_status.html
dgaudet 97/06/26 20:02:17 Modified:htdocsTag: APACHE_1_2_X index.html htdocs/manual Tag: APACHE_1_2_X custom-error.html index.html new_features_1_2.html process-model.html suexec.html virtual-host.html htdocs/manual/misc Tag: APACHE_1_2_X FAQ.html compat_notes.html fin_wait_2.html index.html known_bugs.html nopgp.html perf-bsd44.html perf.html vif-info.html htdocs/manual/mod Tag: APACHE_1_2_X core.html mod_auth_anon.html mod_dir.html mod_include.html mod_proxy.html mod_rewrite.html mod_status.html Added: htdocs/manual Tag: APACHE_1_2_X new_features_1_3.html htdocs/manual/misc Tag: APACHE_1_2_X descriptors.html Log: Merge in all of the docs from HEAD, I'll clean it up a bit later. Revision ChangesPath No revision No revision 1.5.2.1 +33 -23apache/htdocs/index.html Index: index.html === RCS file: /export/home/cvs/apache/htdocs/index.html,v retrieving revision 1.5 retrieving revision 1.5.2.1 diff -C3 -r1.5 -r1.5.2.1 *** index.html1997/05/01 05:26:31 1.5 --- index.html1997/06/27 03:01:56 1.5.2.1 *** *** 1,23 ! HTMLHEAD ! TITLETest Page for Apache/TITLE ! /HEADBODY ! ! H1It Worked!/H1 ! ! If you can see this, then your ! A HREF=http://www.apache.org/;Apache/A installation was ! successful. You may now add content to this directory and ! replace this page. ! ! P ! The Apache A HREF=manual/index.htmldocumentation has been ! included with this distribution./A ! ! P ! You are free to use the image below on an Apache-powered web ! server. Thanks for using Apache! ! ! P ! img src=apache_pb.gif alt= ! ! /BODY/HTML --- 1,33 ! !DOCTYPE HTML PUBLIC -//W3C//DTD HTML 3.2 Final//EN ! HTML ! HEAD ! TITLETest Page for Apache/TITLE ! /HEAD ! !-- Background white, links blue (unvisited), navy (visited), red (active) -- ! BODY ! BGCOLOR=#FF ! TEXT=#00 ! LINK=#FF ! VLINK=#80 ! ALINK=#FF ! ! H1 ALIGN=CENTERIt Worked!/H1 ! P ! If you can see this, then your ! A HREF=http://www.apache.org/;Apache/A installation was ! successful. You may now add content to this directory and ! replace this page. ! /P ! P ! The Apache A HREF=manual/index.htmldocumentation/A has been ! included with this distribution. ! /P ! P ! You are free to use the image below on an Apache-powered web ! server. Thanks for using Apache! ! /P ! P ALIGN=CENTER ! IMG SRC=apache_pb.gif ALT= ! /P ! /BODY ! /HTML No revision No revision 1.8.2.1 +2 -2 apache/htdocs/manual/custom-error.html Index: custom-error.html === RCS file: /export/home/cvs/apache/htdocs/manual/custom-error.html,v retrieving revision 1.8 retrieving revision 1.8.2.1 diff -C3 -r1.8 -r1.8.2.1 *** custom-error.html 1997/06/04 11:07:47 1.8 --- custom-error.html 1997/06/27 03:01:58 1.8.2.1 *** *** 29,37 response, then this response can be replaced with either some friendlier text or by a redirection to another URL (local or external). ! P ! DTOld behavior DDNCSA httpd 1.3 would return some boring old error/problem message --- 29,37 response, then this response can be replaced with either some friendlier text or by a redirection to another URL (local or external). ! P ! DTOld behavior DDNCSA httpd 1.3 would return some boring old error/problem message 1.14.2.1 +1 -0 apache/htdocs/manual/index.html Index: index.html === RCS file: /export/home/cvs/apache/htdocs/manual/index.html,v retrieving revision 1.14 retrieving revision 1.14.2.1 diff -C3 -r1.14 -r1.14.2.1 *** index.html1997/06/04 11:07:48 1.14 --- index.html1997/06/27 03:01:58 1.14.2.1 *** *** 19,24 --- 19,25 h3a name=newRelease Notes/a/h3 ul + lia href=new_features_1_3.htmlNew features in Apache 1.3/a lia href=new_features_1_2.htmlNew features in Apache 1.2/a lia href=new_features_1_1.htmlNew features in Apache 1.1/a lia href=new_features_1_0.htmlNew features in Apache 1.0/a 1.29.2.1 +6 -6 apache/htdocs/manual/new_features_1_2.html Index: new_features_1_2.html
cvs commit: apache/src CHANGES
dgaudet 97/06/26 20:20:01 Modified:src CHANGES Log: Update CHANGES on head so that it matches same on 1.2 branch. Revision ChangesPath 1.297 +27 -1 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.296 retrieving revision 1.297 diff -C3 -r1.296 -r1.297 *** CHANGES 1997/06/24 03:03:47 1.296 --- CHANGES 1997/06/27 03:19:59 1.297 *** *** 8,18 Changes with Apache 1.2.1 *) Don't serve file system objects unless they are plain files, symlinks, or directories. This prevents local users from using pipes or named sockets to invoke programs for an extremely crude form of CGI. [Dean Gaudet] ! *) HeaderName and ReadmeName were settable in .htaccess and could contain ../ allowing a local user to publish any file on the system. No slashes are allowed now. [Dean Gaudet] --- 8,36 Changes with Apache 1.2.1 + *) Improved unix error response logging. [Marc Slemko] + + *) Update mod_rewrite from 3.0.5 to 3.0.6. New ruleflag + QSA=query_string_append. Also fixed a nasty bug in per-dir context: + when a URL http://... was used in concunction with a special + redirect flag, e.g. R=permanent, the permanent status was lost. + [Ronald Tschalaer [EMAIL PROTECTED], Ralf S. Engelschall] + + *) If an object has multiple variants that are otherwise equal Apache + would prefer the last listed variant rather than the first. + [Paul Sutton] PR#94 + + *) HostnameLookups now defaults to off because it is far better for + the net if we require people that actually need this data to + enable it. [Linus Torvalds] + + *) make clean at the top level now removes *.o. [Dean Gaudet] PR#752 + *) Don't serve file system objects unless they are plain files, symlinks, or directories. This prevents local users from using pipes or named sockets to invoke programs for an extremely crude form of CGI. [Dean Gaudet] ! *) HeaderName and ReadmeName were settable in .htaccess and could contain ../ allowing a local user to publish any file on the system. No slashes are allowed now. [Dean Gaudet] *** *** 47,52 --- 65,78 log files more feasible. If this causes trouble please report it, you can disable this workaround by adding -DNO_SLACK to EXTRA_CFLAGS. [Dean Gaudet] various PRs + + *) Related to the last entry, network sockets are now opened before + log files are opened. The only known case where this can cause + problems is under Solaris with many virtualhosts and many Listen + directives. But using -DHIGH_SLACK_LINE=256 described above will + work around this problem. [Dean Gaudet] + + *) pregsub had an off-by-1 in its error checking code. [Alexei Kosut] Changes with Apache 1.2
cvs commit: apache/src mod_cern_meta.c
dgaudet 97/06/25 01:15:23 Modified:src mod_cern_meta.c Log: Fix a problem caused by the security fix. It has to return DECLINED rather than FORBIDDEN if the file doesn't exist. Revision ChangesPath 1.12 +3 -1 apache/src/mod_cern_meta.c Index: mod_cern_meta.c === RCS file: /export/home/cvs/apache/src/mod_cern_meta.c,v retrieving revision 1.11 retrieving revision 1.12 diff -C3 -r1.11 -r1.12 *** mod_cern_meta.c 1997/06/24 03:03:48 1.11 --- mod_cern_meta.c 1997/06/25 08:15:21 1.12 *** *** 239,245 char *last_slash; char *real_file; char *scrap_book; - struct stat meta_stat; FILE *f; cern_meta_config *cmc ; int rv; --- 239,244 *** *** 292,297 --- 291,299 f = pfopen (r-pool, metafilename, r); if (f == NULL) { + if (errno == ENOENT) { + return DECLINED; + } log_reason(meta file permissions deny server access, metafilename, r); return FORBIDDEN; };
cvs commit: apache/src http_config.h
dgaudet 97/06/24 10:54:16 Modified:src http_config.h Log: The magic number needed to be bumped due to changes during the NT port. Revision ChangesPath 1.30 +1 -1 apache/src/http_config.h Index: http_config.h === RCS file: /export/home/cvs/apache/src/http_config.h,v retrieving revision 1.29 retrieving revision 1.30 diff -C3 -r1.29 -r1.30 *** http_config.h 1997/05/27 04:41:49 1.29 --- http_config.h 1997/06/24 17:54:15 1.30 *** *** 226,232 * handle it back-compatibly, or at least signal an error). */ ! #define MODULE_MAGIC_NUMBER 19970526 #define STANDARD_MODULE_STUFF MODULE_MAGIC_NUMBER, -1, __FILE__, NULL /* Generic accessors for other modules to get at their own module-specific --- 226,232 * handle it back-compatibly, or at least signal an error). */ ! #define MODULE_MAGIC_NUMBER 19970623 #define STANDARD_MODULE_STUFF MODULE_MAGIC_NUMBER, -1, __FILE__, NULL /* Generic accessors for other modules to get at their own module-specific
cvs commit: apache/src Makefile.tmpl
dgaudet 97/06/24 10:57:50 Modified:src Makefile.tmpl Log: Nah be a little less aggressive during make clean. This level of makefile doesn't create any .a files so don't remove any. Revision ChangesPath 1.48 +1 -1 apache/src/Makefile.tmpl Index: Makefile.tmpl === RCS file: /export/home/cvs/apache/src/Makefile.tmpl,v retrieving revision 1.47 retrieving revision 1.48 diff -C3 -r1.47 -r1.48 *** Makefile.tmpl 1997/06/20 21:55:16 1.47 --- Makefile.tmpl 1997/06/24 17:57:50 1.48 *** *** 36,42 $(MAKE) CC=$(CC) AUX_CFLAGS='$(CFLAGS)' RANLIB='$(RANLIB)') clean: ! rm -f httpd *.o *.a core cd regex; $(MAKE) clean cd modules; $(MAKE) clean --- 36,42 $(MAKE) CC=$(CC) AUX_CFLAGS='$(CFLAGS)' RANLIB='$(RANLIB)') clean: ! rm -f httpd *.o core cd regex; $(MAKE) clean cd modules; $(MAKE) clean
cvs commit: apache/src http_main.c
dgaudet 97/06/24 11:15:20 Modified:src http_main.c Log: Eliminate a compiler warning. Revision ChangesPath 1.160 +0 -1 apache/src/http_main.c Index: http_main.c === RCS file: /export/home/cvs/apache/src/http_main.c,v retrieving revision 1.159 retrieving revision 1.160 diff -C3 -r1.159 -r1.160 *** http_main.c 1997/06/24 00:32:31 1.159 --- http_main.c 1997/06/24 18:15:19 1.160 *** *** 2338,2344 void standalone_main(int argc, char **argv) { - struct sockaddr_in sa_server; int remaining_children_to_start; listen_rec *lr; --- 2338,2343
cvs commit: apache/support suexec.c
dgaudet 97/06/23 15:48:49 Modified:support suexec.c Log: string.h is ANSI, strings.h isn't. Use string.h. Revision ChangesPath 1.23 +1 -1 apache/support/suexec.c Index: suexec.c === RCS file: /export/home/cvs/apache/support/suexec.c,v retrieving revision 1.22 retrieving revision 1.23 diff -C3 -r1.22 -r1.23 *** suexec.c 1997/04/24 23:28:46 1.22 --- suexec.c 1997/06/23 22:48:48 1.23 *** *** 75,81 #include sys/types.h #include stdio.h #include stdarg.h ! #include strings.h #include pwd.h #include grp.h #include time.h --- 75,81 #include sys/types.h #include stdio.h #include stdarg.h ! #include string.h #include pwd.h #include grp.h #include time.h
cvs commit: apache/src CHANGES PORTING alloc.c conf.h http_main.c httpd.h util.c
dgaudet 97/06/23 16:56:22 Modified:src CHANGES PORTING alloc.c conf.h http_main.c httpd.h util.c Log: Create fd slack to keep enough low numbered descriptors open for per request data. Reviewed by: Marc, Jim Revision ChangesPath 1.289 +13 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.288 retrieving revision 1.289 diff -C3 -r1.288 -r1.289 *** CHANGES 1997/06/23 11:36:56 1.288 --- CHANGES 1997/06/23 23:56:15 1.289 *** *** 6,11 --- 6,24 *) Added NT support [Ben Laurie and Ambarish Malpani [EMAIL PROTECTED]] + Changes with Apache 1.2.1 + + *) Attempt to work around problems with third party libraries that do not + handle high numbered descriptors (examples include bind, and + solaris libc). On all systems apache attempts to keep all permanent + descriptors above 15 (called the low slack line). Solaris users + can also benefit from adding -DHIGH_SLACK_LINE=256 to EXTRA_CFLAGS + which keeps all non-FILE * descriptors above 255. On all systems + this should make supporting large numbers of vhosts with many open + log files more feasible. If this causes trouble please report it, + you can disable this workaround by adding -DNO_SLACK to EXTRA_CFLAGS. + [Dean Gaudet] various PRs + Changes with Apache 1.2 Changes with Apache 1.2b11 1.5 +3 -0 apache/src/PORTING Index: PORTING === RCS file: /export/home/cvs/apache/src/PORTING,v retrieving revision 1.4 retrieving revision 1.5 diff -C3 -r1.4 -r1.5 *** PORTING 1997/02/25 21:04:42 1.4 --- PORTING 1997/06/23 23:56:15 1.5 *** *** 227,232 --- 227,235 NO_LINGCLOSE: Do not use Apache's soft, lingering close feature to terminate connections. + NO_SLACK: +Do not use the slack fd feature which requires a working fcntl +F_DUPFD. -- MISC #DEFINES: 1.33 +6 -3 apache/src/alloc.c Index: alloc.c === RCS file: /export/home/cvs/apache/src/alloc.c,v retrieving revision 1.32 retrieving revision 1.33 diff -C3 -r1.32 -r1.33 *** alloc.c 1997/06/16 18:42:47 1.32 --- alloc.c 1997/06/23 23:56:16 1.33 *** *** 58,65 * rst --- 4/95 --- 6/95 */ ! #include conf.h ! #include alloc.h #include multithread.h #include stdarg.h --- 58,64 * rst --- 4/95 --- 6/95 */ ! #include httpd.h #include multithread.h #include stdarg.h *** *** 832,838 block_alarms(); fd = open(name, flg, mode); save_errno = errno; ! if (fd = 0) note_cleanups_for_fd (a, fd); unblock_alarms(); errno = save_errno; return fd; --- 831,840 block_alarms(); fd = open(name, flg, mode); save_errno = errno; ! if (fd = 0) { ! fd = ap_slack (fd, AP_SLACK_HIGH); ! note_cleanups_for_fd (a, fd); ! } unblock_alarms(); errno = save_errno; return fd; *** *** 884,889 --- 886,892 desc = open(name, baseFlag | O_APPEND | O_CREAT, modeFlags); if (desc = 0) { + desc = ap_slack(desc, AP_SLACK_LOW); fd = fdopen(desc, mode); } } else { 1.102 +1 -0 apache/src/conf.h Index: conf.h === RCS file: /export/home/cvs/apache/src/conf.h,v retrieving revision 1.101 retrieving revision 1.102 diff -C3 -r1.101 -r1.102 *** conf.h1997/06/16 20:04:51 1.101 --- conf.h1997/06/23 23:56:16 1.102 *** *** 73,78 --- 73,79 extern void GETPRIVMODE(); extern void GETUSERMODE(); extern char *inet_ntoa(); + #define NO_SLACK #elif defined(SUNOS4) #define HAVE_GMTOFF 1.158 +2 -0 apache/src/http_main.c Index: http_main.c === RCS file: /export/home/cvs/apache/src/http_main.c,v retrieving revision 1.157 retrieving revision 1.158 diff -C3 -r1.157 -r1.158 *** http_main.c 1997/06/21 22:27:11 1.157 --- http_main.c 1997/06/23 23:56:17 1.158 *** *** 1819,1824 --- 1819,1826 exit(1); } + s = ap_slack(s, AP_SLACK_HIGH); + note_cleanups_for_socket(pconf, s); /* arrange to close on exec or restart */ #ifndef MPE 1.114 +29 -0
cvs commit: apache/src CHANGES util.c
dgaudet 97/06/23 17:11:12 Modified:src Tag: APACHE_1_2_X CHANGES util.c Log: Fix an off-by-1 bug in pregsub(). Reviewed by: Randy, Ralf Submitted by: Alexei Revision ChangesPath No revision No revision 1.286.2.1 +4 -0 apache/src/CHANGES 1.52.2.1 +2 -2 apache/src/util.c
cvs commit: apache/src CHANGES http_main.c mod_status.c scoreboard.h
dgaudet 97/06/23 17:32:35 Modified:src CHANGES http_main.c mod_status.c scoreboard.h Log: PR#566: mod_status dumps core in inetd mode Submitted by: Marc Slemko and Roy Fielding Reviewed by: Marc Slemko, Roy Fielding, Alexei Kosut Revision ChangesPath 1.290 +3 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.289 retrieving revision 1.290 diff -C3 -r1.289 -r1.290 *** CHANGES 1997/06/23 23:56:15 1.289 --- CHANGES 1997/06/24 00:32:30 1.290 *** *** 8,13 --- 8,16 Changes with Apache 1.2.1 + *) PR#566: mod_status dumps core in inetd mode. + [Marc Slemko and Roy Fielding] + *) Attempt to work around problems with third party libraries that do not handle high numbered descriptors (examples include bind, and solaris libc). On all systems apache attempts to keep all permanent 1.159 +5 -0 apache/src/http_main.c Index: http_main.c === RCS file: /export/home/cvs/apache/src/http_main.c,v retrieving revision 1.158 retrieving revision 1.159 diff -C3 -r1.158 -r1.159 *** http_main.c 1997/06/23 23:56:17 1.158 --- http_main.c 1997/06/24 00:32:31 1.159 *** *** 1058,1063 --- 1058,1068 #endif /* MULTITHREAD */ + int exists_scoreboard_image () + { + return (scoreboard_image ? 1 : 0); + } + int update_child_status (int child_num, int status, request_rec *r) { int old_status; 1.48 +9 -1 apache/src/mod_status.c Index: mod_status.c === RCS file: /export/home/cvs/apache/src/mod_status.c,v retrieving revision 1.47 retrieving revision 1.48 diff -C3 -r1.47 -r1.48 *** mod_status.c 1997/05/08 08:23:31 1.47 --- mod_status.c 1997/06/24 00:32:31 1.48 *** *** 95,100 --- 95,101 #include util_script.h #include time.h #include scoreboard.h + #include http_log.h #ifdef NEXT #include machine/param.h *** *** 229,235 status[SERVER_BUSY_DNS]='D'; status[SERVER_GRACEFUL]='G'; ! if (r-method_number != M_GET) return NOT_IMPLEMENTED; r-content_type = text/html; /* --- 230,243 status[SERVER_BUSY_DNS]='D'; status[SERVER_GRACEFUL]='G'; ! if (!exists_scoreboard_image()) { ! log_printf(r-server, Server status unavailable in inetd mode); ! return HTTP_NOT_IMPLEMENTED; ! } ! r-allowed = (1 M_GET) | (1 M_TRACE); ! if (r-method_number != M_GET) return HTTP_METHOD_NOT_ALLOWED; ! if (!exists_scoreboard_image()) return HTTP_NOT_IMPLEMENTED; ! r-content_type = text/html; /* 1.23 +1 -1 apache/src/scoreboard.h Index: scoreboard.h === RCS file: /export/home/cvs/apache/src/scoreboard.h,v retrieving revision 1.22 retrieving revision 1.23 diff -C3 -r1.22 -r1.23 *** scoreboard.h 1997/06/15 19:22:34 1.22 --- scoreboard.h 1997/06/24 00:32:32 1.23 *** *** 109,112 extern void sync_scoreboard_image(void); short_score get_scoreboard_info(int x); ! --- 109,112 extern void sync_scoreboard_image(void); short_score get_scoreboard_info(int x); ! int exists_scoreboard_image ();
cvs commit: apache/src util.c
dgaudet 97/06/23 17:39:20 Modified:src util.c Log: ap_slack: don't try to dup if the fd is already above the line Revision ChangesPath 1.56 +4 -1 apache/src/util.c Index: util.c === RCS file: /export/home/cvs/apache/src/util.c,v retrieving revision 1.55 retrieving revision 1.56 diff -C3 -r1.55 -r1.56 *** util.c1997/06/23 23:56:18 1.55 --- util.c1997/06/24 00:39:19 1.56 *** *** 1344,1350 int new_fd; #ifdef HIGH_SLACK_LINE ! if (line == AP_SLACK_HIGH) { new_fd = fcntl (fd, F_DUPFD, HIGH_SLACK_LINE); if (new_fd != -1) { close (fd); --- 1344,1350 int new_fd; #ifdef HIGH_SLACK_LINE ! if (line == AP_SLACK_HIGH fd HIGH_SLACK_LINE) { new_fd = fcntl (fd, F_DUPFD, HIGH_SLACK_LINE); if (new_fd != -1) { close (fd); *** *** 1353,1358 --- 1353,1361 } #endif /* otherwise just assume line == AP_SLACK_LOW */ + if (fd = LOW_SLACK_LINE) { + return fd; + } new_fd = fcntl (fd, F_DUPFD, LOW_SLACK_LINE); if (new_fd == -1) { return fd;
cvs commit: apache/src CHANGES
dgaudet 97/06/23 17:47:19 Modified:src CHANGES Log: Oops forgot to update CHANGES. Revision ChangesPath 1.291 +4 -2 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.290 retrieving revision 1.291 diff -C3 -r1.290 -r1.291 *** CHANGES 1997/06/24 00:32:30 1.290 --- CHANGES 1997/06/24 00:47:18 1.291 *** *** 7,15 *) Added NT support [Ben Laurie and Ambarish Malpani [EMAIL PROTECTED]] Changes with Apache 1.2.1 ! *) PR#566: mod_status dumps core in inetd mode. ! [Marc Slemko and Roy Fielding] *) Attempt to work around problems with third party libraries that do not handle high numbered descriptors (examples include bind, and --- 7,17 *) Added NT support [Ben Laurie and Ambarish Malpani [EMAIL PROTECTED]] Changes with Apache 1.2.1 + + *) Support for Maxion/OS SVR4.2 Real Time Unix. [no name given] PR#383 ! *) mod_status dumps core in inetd mode. [Marc Slemko and Roy Fielding] ! PR#566 *) Attempt to work around problems with third party libraries that do not handle high numbered descriptors (examples include bind, and
cvs commit: apache/src CHANGES
dgaudet 97/06/23 17:59:02 Modified:src/helpers GuessOS src CHANGES Log: PR#399: Update Convex support for 11.5 Submitted by: David DeSimone [EMAIL PROTECTED] Revision ChangesPath 1.21 +1 -1 apache/src/helpers/GuessOS Index: GuessOS === RCS file: /export/home/cvs/apache/src/helpers/GuessOS,v retrieving revision 1.20 retrieving revision 1.21 diff -C3 -r1.20 -r1.21 *** GuessOS 1997/06/24 00:46:12 1.20 --- GuessOS 1997/06/24 00:58:59 1.21 *** *** 190,196 echo ${MACHINE}-ncr-sysv4; exit 0 ;; ! ConvexOS:*:11.0:*) echo ${MACHINE}-v11-${SYSTEM}; exit 0; ;; --- 190,196 echo ${MACHINE}-ncr-sysv4; exit 0 ;; ! ConvexOS:*:11.*:*) echo ${MACHINE}-v11-${SYSTEM}; exit 0; ;; 1.293 +3 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.292 retrieving revision 1.293 diff -C3 -r1.292 -r1.293 *** CHANGES 1997/06/24 00:51:54 1.292 --- CHANGES 1997/06/24 00:59:00 1.293 *** *** 8,13 --- 8,16 Changes with Apache 1.2.1 + *) Update ConvexOS support for 11.5. [David DeSimone [EMAIL PROTECTED]] + PR#399 + *) Support for dec cc compiler under ultrix. [P. Alejandro Lopez-Valencia [EMAIL PROTECTED]] PR#388
cvs commit: apache/src/helpers GuessOS
dgaudet 97/06/23 18:06:06 Modified:src Configure CHANGES src/helpers GuessOS Log: PR#327: Port to NonStop-UX Submitted by: Joachim Schmitz [EMAIL PROTECTED] Revision ChangesPath 1.100 +6 -0 apache/src/Configure Index: Configure === RCS file: /export/home/cvs/apache/src/Configure,v retrieving revision 1.99 retrieving revision 1.100 diff -C3 -r1.99 -r1.100 *** Configure 1997/06/24 00:51:53 1.99 --- Configure 1997/06/24 01:06:02 1.100 *** *** 421,426 --- 421,432 LIBS=$LIBS -lsocket -lnsl DEF_WANTHSREGEX=yes ;; + *-tandem-sysv4*) + OS='SVR4' + CFLAGS=$CFLAGS -DSVR4 + LIBS=$LIBS -lsocket -lnsl + DEF_WANTHSREGEX=yes + ;; *-sysv4*) OS='SVR4' CFLAGS=$CFLAGS -DSVR4 1.294 +2 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.293 retrieving revision 1.294 diff -C3 -r1.293 -r1.294 *** CHANGES 1997/06/24 00:59:00 1.293 --- CHANGES 1997/06/24 01:06:03 1.294 *** *** 8,13 --- 8,15 Changes with Apache 1.2.1 + *) Port to NonStop-UX [Joachim Schmitz [EMAIL PROTECTED]] PR#327 + *) Update ConvexOS support for 11.5. [David DeSimone [EMAIL PROTECTED]] PR#399 1.22 +4 -0 apache/src/helpers/GuessOS Index: GuessOS === RCS file: /export/home/cvs/apache/src/helpers/GuessOS,v retrieving revision 1.21 retrieving revision 1.22 diff -C3 -r1.21 -r1.22 *** GuessOS 1997/06/24 00:58:59 1.21 --- GuessOS 1997/06/24 01:06:05 1.22 *** *** 197,202 --- 197,206 UNIX_SV:*:*:maxion) echo ${MACHINE}-ccur-sysv4; exit 0; ;; + + NonStop-UX:4.[02]*:[BC]*:*) + echo ${MACHINE}-tandem-sysv4; exit 0; + ;; esac
cvs commit: apache/src CHANGES http_request.c mod_cern_meta.c mod_dir.c mod_negotiation.c
dgaudet 97/06/23 20:03:53 Modified:src CHANGES http_request.c mod_cern_meta.c mod_dir.c mod_negotiation.c Log: Fix a few security problems. Avoid problems with pipes, sockets, etc. in the filesystem. Use sub_req_lookup_file for various functions that open ancillary files, so that they have to pass the symlink tests. Also disallow slashes in HeaderName and ReadmeName to avoid ../../../hacks. Revision ChangesPath 1.296 +16 -3 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.295 retrieving revision 1.296 diff -C3 -r1.295 -r1.296 *** CHANGES 1997/06/24 01:10:56 1.295 --- CHANGES 1997/06/24 03:03:47 1.296 *** *** 7,24 *) Added NT support [Ben Laurie and Ambarish Malpani [EMAIL PROTECTED]] Changes with Apache 1.2.1 *) Update Unixware support for 2.1.2. [Lawrence Rosenman ler@lerctr.org] PR#511 ! *) Port to NonStop-UX [Joachim Schmitz [EMAIL PROTECTED]] PR#327 ! *) Update ConvexOS support for 11.5. [David DeSimone [EMAIL PROTECTED]] PR#399 *) Support for dec cc compiler under ultrix. [P. Alejandro Lopez-Valencia [EMAIL PROTECTED]] PR#388 ! *) Support for Maxion/OS SVR4.2 Real Time Unix. [no name given] PR#383 *) mod_status dumps core in inetd mode. [Marc Slemko and Roy Fielding] --- 7,37 *) Added NT support [Ben Laurie and Ambarish Malpani [EMAIL PROTECTED]] Changes with Apache 1.2.1 + + *) Don't serve file system objects unless they are plain files, symlinks, + or directories. This prevents local users from using pipes or + named sockets to invoke programs for an extremely crude form of + CGI. [Dean Gaudet] + + *) HeaderName and ReadmeName were settable in .htaccess and could + contain ../ allowing a local user to publish any file on the + system. No slashes are allowed now. [Dean Gaudet] + + *) It was possible to violate the symlink Options using mod_dir (headers, + readmes, titles), mod_negotiation (type maps), or mod_cern_meta + (meta files). [Dean Gaudet] *) Update Unixware support for 2.1.2. [Lawrence Rosenman ler@lerctr.org] PR#511 ! *) Port to NonStop-UX [Joachim Schmitz [EMAIL PROTECTED]] PR#327 ! *) Update ConvexOS support for 11.5. [David DeSimone [EMAIL PROTECTED]] PR#399 *) Support for dec cc compiler under ultrix. [P. Alejandro Lopez-Valencia [EMAIL PROTECTED]] PR#388 ! *) Support for Maxion/OS SVR4.2 Real Time Unix. [no name given] PR#383 *) mod_status dumps core in inetd mode. [Marc Slemko and Roy Fielding] 1.52 +41 -4 apache/src/http_request.c Index: http_request.c === RCS file: /export/home/cvs/apache/src/http_request.c,v retrieving revision 1.51 retrieving revision 1.52 diff -C3 -r1.51 -r1.52 *** http_request.c1997/06/15 19:22:27 1.51 --- http_request.c1997/06/24 03:03:47 1.52 *** *** 85,90 --- 85,108 * they change, all the way down. */ + + /* + * We don't want people able to serve up pipes, or unix sockets, or other + * scary things. Note that symlink tests are performed later. + */ + static int check_safe_file(request_rec *r) + { + if (r-finfo.st_mode == 0 /* doesn't exist */ + || S_ISDIR (r-finfo.st_mode) + || S_ISREG (r-finfo.st_mode) + || S_ISLNK (r-finfo.st_mode)) { + return OK; + } + log_reason(object is not a file, directory or symlink, r-filename, r); + return HTTP_FORBIDDEN; + } + + int check_symlinks (char *d, int opts) { #if defined(__EMX__) || defined(WIN32) *** *** 310,320 if (res != OK) { return res; } ! if (test_filename[strlen(test_filename)-1] == '/') --num_dirs; ! if (S_ISDIR (r-finfo.st_mode)) ++num_dirs; for (i = 1; i = num_dirs; ++i) { core_dir_config *core_dir = --- 328,344 if (res != OK) { return res; } ! ! if ((res = check_safe_file(r))) { ! return res; ! } ! if (test_filename[strlen(test_filename)-1] == '/') --num_dirs; ! if (S_ISDIR (r-finfo.st_mode)) { ! ++num_dirs; ! } for (i = 1; i = num_dirs; ++i) { core_dir_config *core_dir = *** *** 399,406 r-per_dir_config = per_dir_defaults; ! if ((res = check_symlinks (r-filename, allow_options(r ! { log_reason(Symbolic link not allowed, r
cvs commit: apache/htdocs/manual/mod core.html
dgaudet 97/06/22 16:58:40 Modified:htdocs/manual/mod core.html Log: Maybe help users a bit, I doubt it. Consider PR#480, PR#599. Revision ChangesPath 1.58 +3 -0 apache/htdocs/manual/mod/core.html Index: core.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/core.html,v retrieving revision 1.57 retrieving revision 1.58 diff -C3 -r1.57 -r1.58 *** core.html 1997/06/10 00:28:33 1.57 --- core.html 1997/06/22 23:58:38 1.58 *** *** 836,841 --- 836,844 dd !--%plaintext lt;?INDEX {\tt FollowSymLinks} optiongt; -- The server will follow symbolic links in this directory. + bNote/b: even though the server follows the symlink it does inot/i + change the pathname used to match against codelt;Directorygt;/code + sections. dtIncludes dd !--%plaintext lt;?INDEX {\tt Includes} optiongt; --
cvs commit: apache/htdocs/manual/misc compat_notes.html
dgaudet 97/06/22 22:16:19 Modified:htdocs/manual/misc compat_notes.html Log: PR#657: apache doesn't recognize Limit GET, POST, NCSA does Revision ChangesPath 1.9 +4 -0 apache/htdocs/manual/misc/compat_notes.html Index: compat_notes.html === RCS file: /export/home/cvs/apache/htdocs/manual/misc/compat_notes.html,v retrieving revision 1.8 retrieving revision 1.9 diff -C3 -r1.8 -r1.9 *** compat_notes.html 1997/06/07 12:22:06 1.8 --- compat_notes.html 1997/06/23 05:16:18 1.9 *** *** 33,38 --- 33,39 LIThe basic mod_auth CODEAuthGroupFile/CODE-specified group file format allows commas between user names - Apache does not.BR I- added 12/1/96/I + /LI LIPIf you follow the NCSA guidelines for setting up access restrictions based on client domain, you may well have added entries for, *** *** 99,104 --- 100,108 files if the last line does not have a trailing newline. This affects configuration files (httpd.conf, access.conf and srm.conf), and htpasswd and htgroup files. + /LI + + LIApache does not permit commas delimiting the methods in lt;Limitgt;. /OL
cvs commit: apache/src http_config.c http_main.c
dgaudet 97/06/21 15:27:13 Modified:src http_config.c http_main.c Log: That last fix didn't quite fix the USR1 problem. This one seems to. Eliminate all the listeners == NULL code by making sure there's always at least one listener, the default one. This gets rid of some code duplication. Revision ChangesPath 1.50 +22 -1 apache/src/http_config.c Index: http_config.c === RCS file: /export/home/cvs/apache/src/http_config.c,v retrieving revision 1.49 retrieving revision 1.50 diff -C3 -r1.49 -r1.50 *** http_config.c 1997/05/15 23:39:20 1.49 --- http_config.c 1997/06/21 22:27:10 1.50 *** *** 1074,1079 --- 1074,1099 return s; } + + static void default_listeners(pool *p, server_rec *s) + { + listen_rec *new; + + if (listeners != NULL) { + return; + } + /* allocate a default listener */ + new = pcalloc(p, sizeof(listen_rec)); + new-local_addr.sin_family = AF_INET; + new-local_addr.sin_addr.s_addr = htonl(INADDR_ANY); + new-local_addr.sin_port = htons(s-port); + new-fd = -1; + new-used = 0; + new-next = NULL; + listeners = new; + } + + server_rec *read_config(pool *p, pool *ptemp, char *confname) { server_rec *s = init_server_config(p); *** *** 1088,1098 process_resource_config (s, s-access_confname, p, ptemp); fixup_virtual_hosts (p, s); for (m = top_module; m; m = m-next) if (m-init) (*m-init) (s, p); ! return s; } --- 1108,1119 process_resource_config (s, s-access_confname, p, ptemp); fixup_virtual_hosts (p, s); + default_listeners (p, s); for (m = top_module; m; m = m-next) if (m-init) (*m-init) (s, p); ! return s; } 1.157 +76 -127 apache/src/http_main.c Index: http_main.c === RCS file: /export/home/cvs/apache/src/http_main.c,v retrieving revision 1.156 retrieving revision 1.157 diff -C3 -r1.156 -r1.157 *** http_main.c 1997/06/21 20:48:14 1.156 --- http_main.c 1997/06/21 22:27:11 1.157 *** *** 1894,1944 static listen_rec *old_listeners; static void copy_listeners(pool *p) ! { listen_rec *lr; assert(old_listeners == NULL); ! for(lr=listeners ; lr ; lr=lr-next) ! { ! listen_rec *nr=malloc(sizeof *nr); if (nr == NULL) { ! fprintf (stderr, Ouch! malloc failed in copy_listeners()\n); ! exit (1); } ! *nr=*lr; ! kill_cleanups_for_socket(p,nr-fd); ! nr-next=old_listeners; assert(!nr-used); ! old_listeners=nr; ! } } static int find_listener(listen_rec *lr) ! { listen_rec *or; ! for(or=old_listeners ; or ; or=or-next) ! if(!memcmp(or-local_addr,lr-local_addr,sizeof or-local_addr)) ! { ! or-used=1; return or-fd; ! } ! return -1; } static void close_unused_listeners() ! { ! listen_rec *or,*next; ! for(or=old_listeners ; or ; or=next) ! { ! next=or-next; ! if(!or-used) closesocket(or-fd); free(or); - } - old_listeners=NULL; } static int s_iInitCount = 0; --- 1894,1944 static listen_rec *old_listeners; static void copy_listeners(pool *p) ! { listen_rec *lr; assert(old_listeners == NULL); ! for (lr = listeners; lr; lr = lr-next) { ! listen_rec *nr = malloc(sizeof *nr); if (nr == NULL) { ! fprintf (stderr, Ouch! malloc failed in copy_listeners()\n); ! exit (1); } ! *nr = *lr; ! kill_cleanups_for_socket(p, nr-fd); ! nr-next = old_listeners; assert(!nr-used); ! old_listeners = nr; } + } + static int find_listener(listen_rec *lr) ! { listen_rec *or; ! for (or = old_listeners; or; or = or-next) { ! if (!memcmp(or-local_addr, lr-local_addr, sizeof(or-local_addr))) { ! or-used = 1; return or-fd; ! } } + return -1; + } + static void close_unused_listeners() ! { ! listen_rec *or, *next; ! for (or = old_listeners; or; or = next) { ! next = or-next; ! if (!or-used) closesocket(or-fd); free(or); } + old_listeners = NULL; + } static int s_iInitCount = 0; *** *** 2019,2024 --- 2019,2025 #endif struct sockaddr sa_server;
cvs commit: apache/src http_main.c
dgaudet 97/06/20 14:56:47 Modified:src http_main.c Log: Be more verbose with the Linux shmget error. Reviewed by: Randy Revision ChangesPath 1.155 +7 -0 apache/src/http_main.c Index: http_main.c === RCS file: /export/home/cvs/apache/src/http_main.c,v retrieving revision 1.154 retrieving revision 1.155 diff -C3 -r1.154 -r1.155 *** http_main.c 1997/06/16 20:04:52 1.154 --- http_main.c 1997/06/20 21:56:46 1.155 *** *** 843,848 --- 843,855 if ((shmid = shmget(shmkey, SCOREBOARD_SIZE, IPC_CREAT|SHM_R|SHM_W)) == -1) { + #ifdef LINUX + if (errno == ENOSYS) { + fprintf(stderr, + httpd: Your kernel was built without CONFIG_SYSVIPC\n + httpd: please consult the Apache FAQ for details\n); + } + #endif perror(shmget); fprintf(stderr, httpd: Could not call shmget\n); exit(1);
cvs commit: apache-site in_the_news.html
dgaudet 97/06/19 00:15:34 Modified:. in_the_news.html Log: add informationweek article Revision ChangesPath 1.7 +12 -0 apache-site/in_the_news.html Index: in_the_news.html === RCS file: /export/home/cvs/apache-site/in_the_news.html,v retrieving revision 1.6 retrieving revision 1.7 diff -C3 -r1.6 -r1.7 *** in_the_news.html 1997/06/10 08:03:03 1.6 --- in_the_news.html 1997/06/19 07:15:32 1.7 *** *** 22,27 --- 22,39 /i/blockquote pb + a href=http://www.techweb.com/se/directlink.cgi?IWK19970602S0051; + Informationweek, June 2nd 1997, Web servers -- Apache:Freely Successful -- + The Net's Web server shareware continues to gain popularity/a/b + brblockquotei + The Apache Group has accomplished a feat that should make it the envy + of commercial software developers everywhere. Without spending a cent on + research, marketing, or advertising, this group of volunteer programmers + created Apache-Web server software that may be the most widely used + product on the Internet today. + /i/blockquote + + pb a href=http://www.webweek.com/97Mar17/infrastructure/blasts.html; WebWeek, March 17th 1997, New Web Server Blasts Pages Across the Net/A/b brblockquotei
cvs commit: apache/src/modules/proxy proxy_cache.c
dgaudet 97/06/16 10:58:35 Modified:src/modules/proxy proxy_cache.c Log: apply mutex warning fix Revision ChangesPath 1.15 +5 -5 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.14 retrieving revision 1.15 diff -C3 -r1.14 -r1.15 *** proxy_cache.c 1997/06/15 19:22:47 1.14 --- proxy_cache.c 1997/06/16 17:58:34 1.15 *** *** 111,131 { static int inside = 0; ! acquire_mutex(garbage_mutex); if(inside == 1) { ! release_mutex(garbage_mutex); return; } else inside = 1; ! release_mutex(garbage_mutex); help_proxy_garbage_coll(r); ! acquire_mutex(garbage_mutex); inside = 0; ! release_mutex(garbage_mutex); } --- 111,131 { static int inside = 0; ! (void)acquire_mutex(garbage_mutex); if(inside == 1) { ! (void)release_mutex(garbage_mutex); return; } else inside = 1; ! (void)release_mutex(garbage_mutex); help_proxy_garbage_coll(r); ! (void)acquire_mutex(garbage_mutex); inside = 0; ! (void)release_mutex(garbage_mutex); }
cvs commit: apache/src/modules/proxy proxy_cache.c proxy_ftp.c proxy_http.c
dgaudet 97/06/16 12:32:55 Modified:src buff.c buff.h http_main.c src/modules/proxy proxy_cache.c proxy_ftp.c proxy_http.c Log: Clean up buff.c changes in NT port. Replace fb-is_socket with B_SOCKET flag. include http_main.h. Create buff_write() and buff_read() static functions in buff.c to increase readability/maintainability. Revision ChangesPath 1.28 +50 -68apache/src/buff.c Index: buff.c === RCS file: /export/home/cvs/apache/src/buff.c,v retrieving revision 1.27 retrieving revision 1.28 diff -C3 -r1.27 -r1.28 *** buff.c1997/06/15 19:22:24 1.27 --- buff.c1997/06/16 19:32:49 1.28 *** *** 50,58 * */ ! #include conf.h ! #include alloc.h ! #include buff.h #include errno.h #include stdio.h --- 50,57 * */ ! #include httpd.h ! #include http_main.h #include errno.h #include stdio.h *** *** 72,79 #define DEFAULT_BUFSIZE (4096) - extern int check_alarm(); /* didn't want to include http_main.h */ - /* * Buffered I/O routines. * These are a replacement for the stdio routines. --- 71,76 *** *** 194,199 --- 191,238 #endif /* WIN32 */ + + /* these are wrappers to make code below more readable */ + #if !defined (__GNUC__) + #define inline + #endif + + static inline int buff_read (BUFF *fb, void *buf, int nbyte) + { + int rv; + + #ifdef WIN32 + if (fb-flags B_SOCKET) { + rv = recvwithtimeout( fb-fd_in, buf, nbyte, 0 ); + if (rv == SOCKET_ERROR) + errno = WSAGetLastError() - WSABASEERR; + } + else + rv = read( fb-fd_in, buf, nbyte ); + #else + rv = read( fb-fd_in, buf, nbyte ); + #endif /* WIN32 */ + return rv; + } + + static inline int buff_write (BUFF *fb, const void *buf, int nbyte) + { + int rv; + + #ifdef WIN32 + if (fb-flags B_SOCKET) { + rv = sendwithtimeout( fb-fd, buf, nbyte, 0); + if (rv == SOCKET_ERROR) + errno = WSAGetLastError() - WSABASEERR; + } + else + rv = write( fb-fd, buf, nbyte ); + #else + rv = write( fb-fd, buf, nbyte ); + #endif /* WIN32 */ + return rv; + } + static void doerror(BUFF *fb, int err) { *** *** 213,219 * Create a new buffered stream */ BUFF * ! bcreate(pool *p, int flags, int is_socket) { BUFF *fb; --- 252,258 * Create a new buffered stream */ BUFF * ! bcreate(pool *p, int flags) { BUFF *fb; *** *** 240,246 fb-fd = -1; fb-fd_in = -1; - fb-is_socket = is_socket; return fb; } --- 279,284 *** *** 423,440 } } do { ! #ifdef WIN32 ! if(fb-is_socket) ! { ! rv = recvwithtimeout( fb-fd_in, buf, nbyte, 0 ); ! if(rv == SOCKET_ERROR) ! errno = WSAGetLastError() - WSABASEERR; ! } ! else ! rv = read( fb-fd_in, buf, nbyte ); ! #else ! rv = read( fb-fd_in, buf, nbyte ); ! #endif /* WIN32 */ } while (rv == -1 errno == EINTR !(fb-flags B_EOUT)); return( rv ); } --- 461,467 } } do { ! rv = buff_read (fb, buf, nbyte); } while (rv == -1 errno == EINTR !(fb-flags B_EOUT)); return( rv ); } *** *** 731,748 return -1; while (nbyte 0) { ! #ifdef WIN32 ! if(fb-is_socket) ! { ! i = sendwithtimeout( fb-fd, buf, nbyte, 0); ! if(i == SOCKET_ERROR) ! errno = WSAGetLastError() - WSABASEERR; ! } ! else ! i = write( fb-fd, buf, nbyte ); ! #else ! i = write( fb-fd, buf, nbyte ); ! #endif /* WIN32 */ if( i 0 ) { if( errno != EAGAIN errno != EINTR ) { return -1; --- 758,764 return -1; while (nbyte 0) { ! i = buff_write( fb, buf, nbyte ); if( i 0 ) { if( errno != EAGAIN errno != EINTR ) { return -1; *** *** 780,797 if (!(fb-flags B_CHUNK)) { ! #ifdef WIN32 ! if(fb-is_socket) ! { ! i = sendwithtimeout(fb-fd, buf, nbyte, 0 ); ! if(i == SOCKET_ERROR) ! errno = WSAGetLastError() - WSABASEERR; ! } ! else ! i = write(fb-fd, buf, nbyte); ! #else ! i = write(fb-fd, buf, nbyte); ! #endif /* WIN32 */ return(i); } --- 796,802 if
cvs commit: apache/src buff.c
dgaudet 97/06/16 12:45:13 Modified:src buff.c Log: A tiny bit more cleanup. Also check B_SOCKET when closing the fds. Revision ChangesPath 1.29 +24 -11apache/src/buff.c Index: buff.c === RCS file: /export/home/cvs/apache/src/buff.c,v retrieving revision 1.28 retrieving revision 1.29 diff -C3 -r1.28 -r1.29 *** buff.c1997/06/16 19:32:49 1.28 --- buff.c1997/06/16 19:45:12 1.29 *** *** 759,766 while (nbyte 0) { i = buff_write( fb, buf, nbyte ); ! if( i 0 ) { ! if( errno != EAGAIN errno != EINTR ) { return -1; } } --- 759,766 while (nbyte 0) { i = buff_write( fb, buf, nbyte ); ! if (i 0) { ! if (errno != EAGAIN errno != EINTR) { return -1; } } *** *** 785,803 bcwrite(BUFF *fb, const void *buf, int nbyte) { char chunksize[16]; /* Big enough for practically anything */ - int i; #ifndef NO_WRITEV struct iovec vec[3]; ! int rv; #endif if (fb-flags (B_WRERR|B_EOUT)) return -1; ! if (!(fb-flags B_CHUNK)) ! { ! i = buff_write(fb, buf, nbyte); ! return(i); } #ifdef NO_WRITEV --- 785,800 bcwrite(BUFF *fb, const void *buf, int nbyte) { char chunksize[16]; /* Big enough for practically anything */ #ifndef NO_WRITEV struct iovec vec[3]; ! int i, rv; #endif if (fb-flags (B_WRERR|B_EOUT)) return -1; ! if (!(fb-flags B_CHUNK)) { ! return buff_write(fb, buf, nbyte); } #ifdef NO_WRITEV *** *** 1050,1058 if (fb-flags B_WR) rc1 = bflush(fb); else rc1 = 0; ! rc2 = closesocket(fb-fd); ! if (fb-fd_in != fb-fd) rc3 = closesocket(fb-fd_in); ! else rc3 = 0; fb-inptr = fb-inbase; fb-incnt = 0; --- 1047,1071 if (fb-flags B_WR) rc1 = bflush(fb); else rc1 = 0; ! #ifdef WIN32 ! if (fb-flags B_SOCKET) { ! rc2 = closesocket(fb-fd); ! if (fb-fd_in != fb-fd) { ! rc3 = closesocket(fb-fd_in); ! } else { ! rc3 = 0; ! } ! } else { ! #endif ! rc2 = close(fb-fd); ! if (fb-fd_in != fb-fd) { ! rc3 = close(fb-fd_in); ! } else { ! rc3 = 0; ! } ! #ifdef WIN32 ! } ! #endif fb-inptr = fb-inbase; fb-incnt = 0;
cvs commit: apache/src conf.h http_main.c
dgaudet 97/06/16 13:04:54 Modified:src conf.h http_main.c Log: Remove C++ style comment. Only define O_BINARY if it isn't already defined (who knows, there may be some unix out there ...). Now that O_BINARY is defined for all architectures we can remove some EMX special cases. Clean up a signal for consistency. Revision ChangesPath 1.101 +3 -1 apache/src/conf.h Index: conf.h === RCS file: /export/home/cvs/apache/src/conf.h,v retrieving revision 1.100 retrieving revision 1.101 diff -C3 -r1.100 -r1.101 *** conf.h1997/06/15 19:22:24 1.100 --- conf.h1997/06/16 20:04:51 1.101 *** *** 504,510 /* Put your NT stuff here - Ambarish */ /* temporarily replace crypt */ ! //char *crypt(const char *pw, const char *salt); #define crypt(buf,salt) (buf) /* Although DIR_TYPE is dirent (see nt/readdir.h) we need direct.h for --- 504,510 /* Put your NT stuff here - Ambarish */ /* temporarily replace crypt */ ! /* char *crypt(const char *pw, const char *salt); */ #define crypt(buf,salt) (buf) /* Although DIR_TYPE is dirent (see nt/readdir.h) we need direct.h for *** *** 626,632 --- 626,634 #include fcntl.h #include limits.h #define closesocket(s) close(s) + #ifndef O_BINARY #define O_BINARY (0) + #endif #else /* WIN32 */ #include winsock.h 1.154 +1 -11 apache/src/http_main.c Index: http_main.c === RCS file: /export/home/cvs/apache/src/http_main.c,v retrieving revision 1.153 retrieving revision 1.154 diff -C3 -r1.153 -r1.154 *** http_main.c 1997/06/16 19:32:50 1.153 --- http_main.c 1997/06/16 20:04:52 1.154 *** *** 975,986 #else scoreboard_fname = server_root_relative (p, scoreboard_fname); - #ifdef __EMX__ - /* OS/2 needs binary mode set. */ scoreboard_fd = popenf(p, scoreboard_fname, O_CREAT|O_BINARY|O_RDWR, 0644); - #else - scoreboard_fd = popenf(p, scoreboard_fname, O_CREAT|O_RDWR, 0644); - #endif if (scoreboard_fd == -1) { perror (scoreboard_fname); --- 975,981 *** *** 1001,1012 #ifdef SCOREBOARD_FILE if (scoreboard_fd != -1) pclosef (p, scoreboard_fd); - #ifdef __EMX__ - /* OS/2 needs binary mode set. */ scoreboard_fd = popenf(p, scoreboard_fname, O_CREAT|O_BINARY|O_RDWR, 0666); - #else - scoreboard_fd = popenf(p, scoreboard_fname, O_CREAT|O_RDWR, 0666); - #endif if (scoreboard_fd == -1) { perror (scoreboard_fname); --- 996,1002 *** *** 1501,1507 signal (SIGHUP, (void (*)(int))restart); #endif /* SIGHUP */ #ifdef SIGUSR1 ! signal (SIGUSR1, (void (*)())restart); #endif /* SIGUSR1 */ #endif } --- 1491,1497 signal (SIGHUP, (void (*)(int))restart); #endif /* SIGHUP */ #ifdef SIGUSR1 ! signal (SIGUSR1, (void (*)(int))restart); #endif /* SIGUSR1 */ #endif }
cvs commit: apache/src util_script.c
dgaudet 97/06/16 13:18:32 Modified:src util_script.c Log: use sizeof rather than manifest constants Revision ChangesPath 1.60 +3 -3 apache/src/util_script.c Index: util_script.c === RCS file: /export/home/cvs/apache/src/util_script.c,v retrieving revision 1.59 retrieving revision 1.60 diff -C3 -r1.59 -r1.60 *** util_script.c 1997/06/15 19:22:34 1.59 --- util_script.c 1997/06/16 20:18:31 1.60 *** *** 509,515 log_unixerr(fopen, NULL, err_string, r-server); return(pid); } ! fgets (interpreter, 2048, program); fclose (program); if (!strncmp (interpreter, #!, 2)) { is_script = 1; --- 509,515 log_unixerr(fopen, NULL, err_string, r-server); return(pid); } ! fgets (interpreter, sizeof(interpreter), program); fclose (program); if (!strncmp (interpreter, #!, 2)) { is_script = 1; *** *** 604,610 log_unixerr(fopen, NULL, err_string, r-server); return(pid); } ! sz = fread (interpreter, 1, 2047, program); if(sz 0) { char err_string[HUGE_STRING_LEN]; ap_snprintf(err_string, sizeof(err_string), open of %s failed, errno is %d\n, r-filename, errno); --- 604,610 log_unixerr(fopen, NULL, err_string, r-server); return(pid); } ! sz = fread (interpreter, 1, sizeof(interpreter)-1, program); if(sz 0) { char err_string[HUGE_STRING_LEN]; ap_snprintf(err_string, sizeof(err_string), open of %s failed, errno is %d\n, r-filename, errno); *** *** 616,622 fclose (program); if (!strncmp (interpreter, #!, 2)) { is_script = 1; ! for(i=2; i2048; i++) { if((interpreter[i] == '\r') || (interpreter[i] == '\n')) --- 616,622 fclose (program); if (!strncmp (interpreter, #!, 2)) { is_script = 1; ! for(i=2; isizeof(interpreter); i++) { if((interpreter[i] == '\r') || (interpreter[i] == '\n'))
cvs commit: apache/src/modules Makefile
dgaudet 97/06/04 15:34:36 Removed: src/modules Makefile Log: How'd this get back in??
cvs commit: apache/htdocs/manual/misc FAQ.html
dgaudet 97/05/10 16:30:05 Modified:htdocs/manual/misc FAQ.html Log: YATBD Revision ChangesPath 1.57 +4 -1 apache/htdocs/manual/misc/FAQ.html Index: FAQ.html === RCS file: /export/home/cvs/apache/htdocs/manual/misc/FAQ.html,v retrieving revision 1.56 retrieving revision 1.57 diff -C3 -r1.56 -r1.57 *** FAQ.html 1997/05/06 15:12:35 1.56 --- FAQ.html 1997/05/10 23:30:03 1.57 *** *** 8,14 !--#include virtual=header.html -- H1Apache Server Frequently Asked Questions/H1 P ! $Revision: 1.56 $ ($Date: 1997/05/06 15:12:35 $) /P P The latest version of this FAQ is always available from the main --- 8,14 !--#include virtual=header.html -- H1Apache Server Frequently Asked Questions/H1 P ! $Revision: 1.57 $ ($Date: 1997/05/10 23:30:03 $) /P P The latest version of this FAQ is always available from the main *** *** 59,64 --- 59,67 !-- do so via a username and password? -- !-- - Why do I get send lost connection messages in my error -- !-- log? -- + !-- - specifically consider .pdf files which seem to cause this -- + !-- a lot when accessed via the plugin ... and also mention-- + !-- how range-requests can cause bytes served file size -- !-- - Why does http://host/~user not work but http://host/~user/ -- !-- work properly? -- UL
cvs commit: apache/conf srm.conf-dist
dgaudet 97/05/07 12:21:47 Modified:conf srm.conf-dist Log: Documentation clarification for PR#521. Revision ChangesPath 1.12 +4 -0 apache/conf/srm.conf-dist Index: srm.conf-dist === RCS file: /export/home/cvs/apache/conf/srm.conf-dist,v retrieving revision 1.11 retrieving revision 1.12 diff -C3 -r1.11 -r1.12 *** srm.conf-dist 1997/01/07 06:38:04 1.11 --- srm.conf-dist 1997/05/07 19:21:47 1.12 *** *** 131,136 --- 131,140 # Aliases: Add here as many aliases as you need (with no limit). The format is # Alias fakename realname + # Note that if you include a trailing / on fakename then the server will + # require it to be present in the URL. So /icons isn't aliased in this + # example. + #Alias /icons/ /usr/local/etc/httpd/icons/ # ScriptAlias: This controls which directories contain server scripts.
cvs commit: apache/htdocs/manual/mod mod_alias.html
dgaudet 97/05/07 12:24:37 Modified:htdocs/manual/mod mod_alias.html Log: More clarification for PR#521. Revision ChangesPath 1.9 +6 -0 apache/htdocs/manual/mod/mod_alias.html Index: mod_alias.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_alias.html,v retrieving revision 1.8 retrieving revision 1.9 diff -C3 -r1.8 -r1.9 *** mod_alias.html1997/01/24 00:32:47 1.8 --- mod_alias.html1997/05/07 19:24:36 1.9 *** *** 39,44 --- 39,50 blockquotecodeAlias /image /ftp/pub/image/code/blockquote A request for http://myserver/image/foo.gif would cause the server to return the file /ftp/pub/image/foo.gif.p + + Note that if you include a trailing / on the emurl-path/em then the + server will require a trailing / in order to expand the alias. That is, + if you use codeAlias /icons/ /usr/local/etc/httpd/icons//code then + the url code/icons/code will not be aliased.p + See also A HREF=#scriptaliasScriptAlias/A.phr A name=redirecth2Redirect/h2/A
cvs commit: apache/htdocs/manual/mod core.html
dgaudet 97/05/04 13:11:54 Modified:htdocs/manual dns-caveats.html vhosts-in-depth.html htdocs/manual/mod core.html Log: Add documentation about :port in virtualhost. Note the necessity of using _default_:* if the user wants to match all ips on all ports. Revision ChangesPath 1.3 +6 -3 apache/htdocs/manual/dns-caveats.html Index: dns-caveats.html === RCS file: /export/home/cvs/apache/htdocs/manual/dns-caveats.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C3 -r1.2 -r1.3 *** dns-caveats.html 1997/05/01 05:26:33 1.2 --- dns-caveats.html 1997/05/04 20:11:51 1.3 *** *** 139,146 the IP address of any of the webservers will be served from the main or default server configurations. The main server configuration consists of all those definitions appearing outside of any VirtualHost section. ! You may want instead to define a codelt;VirtualHost _defaultgt;/code ! which returns 403 or 404 for all hits. h3a name=tipsTips to Avoid these problems/a/h3 --- 139,149 the IP address of any of the webservers will be served from the main or default server configurations. The main server configuration consists of all those definitions appearing outside of any VirtualHost section. ! You may want instead to define a codelt;VirtualHost _default_:*gt;/code ! which returns 403 or 404 for all hits. (The trailing code:*/code ! makes it apply to all ports, which is just a safety measure should you ! begin using multiple codea href=mod/core.html#listenListen/a/code ! directives.) h3a name=tipsTips to Avoid these problems/a/h3 *** *** 149,155 li use IP addresses in codeListen/code li use IP addresses in codeBindAddress/code li ensure all virtual hosts have an explicit codeServerName/code ! li create a codelt;VirtualHost _default_gt;/code server that has no pages to serve /ul --- 152,158 li use IP addresses in codeListen/code li use IP addresses in codeBindAddress/code li ensure all virtual hosts have an explicit codeServerName/code ! li create a codelt;VirtualHost _default_:*gt;/code server that has no pages to serve /ul 1.7 +6 -6 apache/htdocs/manual/vhosts-in-depth.html Index: vhosts-in-depth.html === RCS file: /export/home/cvs/apache/htdocs/manual/vhosts-in-depth.html,v retrieving revision 1.6 retrieving revision 1.7 diff -C3 -r1.6 -r1.7 *** vhosts-in-depth.html 1997/05/01 05:26:36 1.6 --- vhosts-in-depth.html 1997/05/04 20:11:52 1.7 *** *** 302,321 DNS for all the domains listed. a href=dns-caveats.html There's more information ! available on this and the next two topics/a. licodeServerName/code should always be set for each vhost. Otherwise ! A DNS lookup is required for each vhost. liA DNS lookup is always required for the main_server's codeServerName/code (or to generate that if it isn't specified ! in the config). liIf a codeServerPath/code directive exists which is a prefix of another codeServerPath/code directive that appears later in the configuration file, then the former will always be matched and the latter will never be matched. (That is assuming that no ! Host header was available to disambiguate the two.) liIf a vhost that would otherwise be a name-vhost includes a codePort/code statement that doesn't match the main_server --- 302,321 DNS for all the domains listed. a href=dns-caveats.html There's more information ! available on this and the next two topics/a./p licodeServerName/code should always be set for each vhost. Otherwise ! A DNS lookup is required for each vhost./p liA DNS lookup is always required for the main_server's codeServerName/code (or to generate that if it isn't specified ! in the config)./p liIf a codeServerPath/code directive exists which is a prefix of another codeServerPath/code directive that appears later in the configuration file, then the former will always be matched and the latter will never be matched. (That is assuming that no ! Host header was available to disambiguate the two.)/p liIf a vhost that would otherwise be a name-vhost includes a codePort/code statement that doesn't match the main_server *** *** 325,331 to the port of the main_server) as the connection vhost. Then codecheck_hostalias/code will refuse to check any other name-based vhost because of the port mismatch. The result is that the
cvs commit: apache/src CHANGES
dgaudet 97/05/04 13:22:29 Modified:src CHANGES Log: Note the problem described in PR#530. Revision ChangesPath 1.264 +4 -1 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.263 retrieving revision 1.264 diff -C3 -r1.263 -r1.264 *** CHANGES 1997/05/01 17:36:23 1.263 --- CHANGES 1997/05/04 20:22:27 1.264 *** *** 13,19 *) Allow HTTPD_ROOT, SERVER_CONFIG_FILE, DEFAULT_PATH, and SHELL_PATH to be configured via -D in Configuration. [Dean Gaudet] PR#449 ! *) VirtualHost _default_:portnum didn't work properly. [Dean Gaudet] *) Added prototype for mktemp() for SUNOS4 [Marc Slemko] --- 13,22 *) Allow HTTPD_ROOT, SERVER_CONFIG_FILE, DEFAULT_PATH, and SHELL_PATH to be configured via -D in Configuration. [Dean Gaudet] PR#449 ! *) VirtualHost _default_:portnum didn't work properly. Note that ! this fix probably requires existing configs to begin using ! VirtualHost _default:* if they have multiple Listen statements. ! [Dean Gaudet] *) Added prototype for mktemp() for SUNOS4 [Marc Slemko]
cvs commit: apache/htdocs/manual stopping.html
dgaudet 97/04/30 15:57:50 Modified:htdocs/manual stopping.html Log: Document the problem of config file errors. Revision ChangesPath 1.5 +18 -0 apache/htdocs/manual/stopping.html Index: stopping.html === RCS file: /export/home/cvs/apache/htdocs/manual/stopping.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C3 -r1.4 -r1.5 *** stopping.html 1997/04/27 07:45:00 1.4 --- stopping.html 1997/04/30 22:57:47 1.5 *** *** 52,57 --- 52,61 will notice that the server statistics are set to zero when a codeHUP/code is sent. + pbNote:/b If your configuration file has errors in it when you issue a + restart then your parent will not restart, it will exit with an error. + See below for a method of avoiding this. + h3USR1 Signal: graceful restart/h3 pbNote:/b prior to release 1.2b9 this code is quite unstable and *** *** 96,101 --- 100,119 old log. For example if most of your hits take less than 10 minutes to complete for users on low bandwidth links then you could wait 15 minutes before doing anything with the old log. + + pbNote:/b If your configuration file has errors in it when you issue a + restart then your parent will not restart, it will exit with an error. + In the case of graceful + restarts it will also leave children running when it exits. (These are + the children which are gracefully exiting by handling their last request.) + This will cause problems if you attempt to restart the server -- it will + not be able to bind to its listening ports. At present the only work + around is to check the syntax of your files before doing a restart. The + easiest way is to just run httpd as a non-root user. If there are no + errors it will attempt to open its sockets and logs and fail because it's + not root (or because the currently running httpd already has those ports + bound). If it fails for any other reason then it's probably a config file + error and the error should be fixed before issuing the graceful restart. h3Appendix: signals and race conditions/h3
cvs commit: apache/htdocs/manual/mod mod_access.html
dgaudet 97/04/30 18:03:30 Modified:htdocs/manual/mod mod_access.html Log: Avoid user confusion. Revision ChangesPath 1.6 +4 -1 apache/htdocs/manual/mod/mod_access.html Index: mod_access.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_access.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C3 -r1.5 -r1.6 *** mod_access.html 1997/05/01 00:44:48 1.5 --- mod_access.html 1997/05/01 01:03:30 1.6 *** *** 151,157 on the deny list are granted access. (The initial state is irrelevant.) /dl ! Example: blockquotecode order deny,allowbr deny from allbr --- 151,160 on the deny list are granted access. (The initial state is irrelevant.) /dl ! Note that in all cases every codeallow/code and codedeny/code ! statement is evaluated, there is no quot;short-circuitingquot;. ! ! pExample: blockquotecode order deny,allowbr deny from allbr
cvs commit: apache/htdocs/manual vhosts-in-depth.html
dgaudet 97/04/28 13:11:26 Modified:htdocs/manual vhosts-in-depth.html Log: A grammar-o, a typo, and another What Works. Revision ChangesPath 1.5 +10 -5 apache/htdocs/manual/vhosts-in-depth.html Index: vhosts-in-depth.html === RCS file: /export/home/cvs/apache/htdocs/manual/vhosts-in-depth.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C3 -r1.4 -r1.5 *** vhosts-in-depth.html 1997/04/28 19:50:56 1.4 --- vhosts-in-depth.html 1997/04/28 20:11:25 1.5 *** *** 179,185 h3Vhost Matching/h3 p ! The process by which vhost a request is for is as follows: p codefind_virtual_server/code: When the connection is first made by the client, the local IP address (the IP address to which the client --- 179,185 h3Vhost Matching/h3 p ! The server determines which vhost to use for a request as follows: p codefind_virtual_server/code: When the connection is first made by the client, the local IP address (the IP address to which the client *** *** 278,284 pConsider the config file above with three vhosts A, B, C. Suppose that B is a named-based vhost, and A and C are IP-based vhosts. If a request comes in on B or C's address containing a header ! quot;SAMPHost: ASAMPquot; then it will be served from A's config. If a request comes in on A's address then it will always be served from A's config regardless of any Host: header. --- 278,284 pConsider the config file above with three vhosts A, B, C. Suppose that B is a named-based vhost, and A and C are IP-based vhosts. If a request comes in on B or C's address containing a header ! quot;SAMPHost: A/SAMPquot; then it will be served from A's config. If a request comes in on A's address then it will always be served from A's config regardless of any Host: header. *** *** 353,370 liPlace all main_server definitions before any VirtualHost definitions. (This is to aid the readability of the configuration -- the post-config merging process makes it non-obvious that definitions mixed in around ! virtualhosts might affect all virtualhosts.) liArrange your VirtualHosts such that all name-based virtual hosts come first, followed by IP-based ! virtual hosts, followed by any SAMP_default_/SAMP virtual host liAvoid codeServerPaths/code which are prefixes of other codeServerPaths/code. If you cannot avoid this then you have to ensure that the longer (more specific) prefix vhost appears earlier in the configuration file than the shorter (less specific) prefix (EMi.e./EM, quot;ServerPath /abcquot; should appear after ! quot;ServerPath /abcdefquot;). /ul --- 353,375 liPlace all main_server definitions before any VirtualHost definitions. (This is to aid the readability of the configuration -- the post-config merging process makes it non-obvious that definitions mixed in around ! virtualhosts might affect all virtualhosts.)/p liArrange your VirtualHosts such that all name-based virtual hosts come first, followed by IP-based ! virtual hosts, followed by any SAMP_default_/SAMP virtual host/p liAvoid codeServerPaths/code which are prefixes of other codeServerPaths/code. If you cannot avoid this then you have to ensure that the longer (more specific) prefix vhost appears earlier in the configuration file than the shorter (less specific) prefix (EMi.e./EM, quot;ServerPath /abcquot; should appear after ! quot;ServerPath /abcdefquot;). /p ! ! liDo not use iport-based/i vhosts in the same server as ! name-based vhosts. A loose definition for port-based is a vhost which ! is determined by the port on the server (emi.e./em one server with ! ports 8000, 8080, and 80 all of which have different configurations)./p /ul
cvs commit: apache/htdocs/manual/mod mod_include.html
dgaudet 97/04/28 13:16:49 Modified:htdocs/manual/mod mod_include.html Log: PR#496: clear up the docs a little bit Revision ChangesPath 1.9 +3 -0 apache/htdocs/manual/mod/mod_include.html Index: mod_include.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_include.html,v retrieving revision 1.8 retrieving revision 1.9 diff -C3 -r1.8 -r1.9 *** mod_include.html 1997/04/18 22:19:58 1.8 --- mod_include.html 1997/04/28 20:16:48 1.9 *** *** 335,340 --- 335,343 last modified time of the file. If it is not set, then no last-modified date is sent. Setting this bit allows clients and proxies to cache the result of the request. + pbNote:/b you would not want to use this, for example, when you + code#include/code a CGI that produces different output on each hit + (or potentially depends on the hit). /dl p
cvs commit: apache/src CHANGES
dgaudet 97/04/27 00:14:15 Modified:src CHANGES Log: Note Sameer's Configuration.tmpl change. (oh yeah and the rest of this just removes trailing whitespace, something that bugs me.) Revision ChangesPath 1.252 +50 -46apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.251 retrieving revision 1.252 diff -C3 -r1.251 -r1.252 *** CHANGES 1997/04/27 06:55:51 1.251 --- CHANGES 1997/04/27 07:14:14 1.252 *** *** 1,10 Changes with Apache 1.2 ! *) Fix problem with scripts not receiving a SIGPIPE when client drops the connection (e.g., when user presses Stop). Apache will now stop trying to send a message body immediately after an error from write. [Roy Fielding and Nathan Kurz] PR#335 *) Fix graceful restart on architectures not using scoreboard files (it is still broken on scoreboard-file architectures). Eliminate many signal-related race conditions in both forms of --- 1,14 Changes with Apache 1.2 ! *) Fix problem with scripts not receiving a SIGPIPE when client drops the connection (e.g., when user presses Stop). Apache will now stop trying to send a message body immediately after an error from write. [Roy Fielding and Nathan Kurz] PR#335 + *) Rearrange Configuration.tmpl so that mod_rewrite has higher priority + than mod_alias, and mod_alias has higher priority than mod_proxy. + [Sameer Parekh] + *) Fix graceful restart on architectures not using scoreboard files (it is still broken on scoreboard-file architectures). Eliminate many signal-related race conditions in both forms of *** *** 32,38 [Roy Fielding] PR#339, 367, 354, 453 *) Fix IRIX warning about bzero undefined. [Marc Slemko] ! *) Fix problem with Directory proxy: [Martin Kraemer] PR#271 *) Corrected spelling of authoritative. AuthDBAuthoratative became --- 36,42 [Roy Fielding] PR#339, 367, 354, 453 *) Fix IRIX warning about bzero undefined. [Marc Slemko] ! *) Fix problem with Directory proxy: [Martin Kraemer] PR#271 *) Corrected spelling of authoritative. AuthDBAuthoratative became *** *** 62,76 *) Configure would create a broken Makefile if the configuration file contained a commented-out Rule. [Roy Fielding] ! *) Promote per_dir_config and subprocess_env from the subrequest to the main request in mod_negotiation. In particular this fixes a bug where Files sections wouldn't properly apply to negotiated content. [Dean Gaudet] ! *) Fix a potential deadlock in mod_cgi script_err handling. [Ralf S. Engelschall] ! *) rotatelogs zero-pads the logfile names to improve alphabetic sorting. [Mitchell Blank Jr] --- 66,80 *) Configure would create a broken Makefile if the configuration file contained a commented-out Rule. [Roy Fielding] ! *) Promote per_dir_config and subprocess_env from the subrequest to the main request in mod_negotiation. In particular this fixes a bug where Files sections wouldn't properly apply to negotiated content. [Dean Gaudet] ! *) Fix a potential deadlock in mod_cgi script_err handling. [Ralf S. Engelschall] ! *) rotatelogs zero-pads the logfile names to improve alphabetic sorting. [Mitchell Blank Jr] *** *** 90,96 request. [Dean Gaudet] *) Configure was finding non-modules on EXTRA_LIBS. [Frank Cringle] PR#380 ! *) Use /bin/sh5 on ultrix. [P. Alejandro Lopez-Valencia] PR#369 *) Add UnixWare compile/install instructions. [Chuck Murcko] --- 94,100 request. [Dean Gaudet] *) Configure was finding non-modules on EXTRA_LIBS. [Frank Cringle] PR#380 ! *) Use /bin/sh5 on ultrix. [P. Alejandro Lopez-Valencia] PR#369 *) Add UnixWare compile/install instructions. [Chuck Murcko] *** *** 312,318 *) more proxy FTP bug fixes: - Changed send_dir() to remove user/passwd from displayed URL. ! - Changed login error messages to be more descriptive. - remove setting of SO_DEBUG socket option - Make ftp_getrc() more lenient about multiline responses, specifically, 230 responses which don't have continuation 230- --- 316,322 *) more proxy FTP bug fixes: - Changed send_dir() to remove user/passwd from displayed URL. ! - Changed login error messages to be more descriptive. - remove setting of SO_DEBUG
cvs commit: apache/src/helpers GuessOS
dgaudet 97/04/27 00:52:20 Modified:htdocs/manual/mod core.html src CHANGES Configuration.tmpl Configure conf.h src/helpers GuessOS Log: Clean up Linux configuration by detecting 2.x linux and enabling HAVE_SHMGET, and HAVE_SYS_RESOURCE_H. Don't touch Linux 1.x systems for fear of various compatibility problems. Ditch that silly hack LINUX_TWEAK that I wish I hadn't introduced. Reviewed by: Paul S., Roy Revision ChangesPath 1.53 +7 -6 apache/htdocs/manual/mod/core.html Index: core.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/core.html,v retrieving revision 1.52 retrieving revision 1.53 diff -C3 -r1.52 -r1.53 *** core.html 1997/04/25 20:49:04 1.52 --- core.html 1997/04/27 07:52:14 1.53 *** *** 1133,1149 Apache 1.2 and above:p ! Linux 2.x users should consider defining codeRules LINUX_TWEAK=yes/code ! in the codeConfiguration/code file which will cause the server to ! use shared memory instead of a scoreboard file. This is known to cause ! compilation problems with some distributions and kernels, so we have not ! enabled it by default. (Patches to conditionally determine the ability ! to set this option are quite welcome.)p SVR4 users should consider adding code-DHAVE_SHMGET/code to the codeEXTRA_CFLAGS/code in your codeConfiguration/code. This is believed to work, but we were unable to test it in time for 1.2 release.p phr --- 1133,1150 Apache 1.2 and above:p ! Linux 1.x users might be able to add code-DHAVE_SHMGET/code to ! the codeEXTRA_CFLAGS/code in your codeConfiguration/code. This ! might work with some 1.x installations, but won't work with all of ! them.p SVR4 users should consider adding code-DHAVE_SHMGET/code to the codeEXTRA_CFLAGS/code in your codeConfiguration/code. This is believed to work, but we were unable to test it in time for 1.2 release.p + + strongSee Also/strong: + a href=../stopping.htmlStopping and Restarting Apache/a/p phr 1.254 +4 -4 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.253 retrieving revision 1.254 diff -C3 -r1.253 -r1.254 *** CHANGES 1997/04/27 07:45:02 1.253 --- CHANGES 1997/04/27 07:52:16 1.254 *** *** 82,91 Directory sections missing a trailing /. [Ralf S. Engelschall] ! *) Back out the HAVE_SHMGET change for Linux because it's too late in ! the beta cycle to deal cleanly with compilation problems on the ! myriad of linux systems out there. Linux users should see ! Configuration.tmpl about defining Rule LINUX_TWEAK=yes. [Dean Gaudet] PR#336, PR#340 *) Redirect did not preserve ?query_strings when present in the client's --- 82,91 Directory sections missing a trailing /. [Ralf S. Engelschall] ! *) Clean up Linux settings in conf.h by detecting 2.x versus 1.x. For ! 1.x the settings are those of pre-1.2b8. For 2.x we include ! HAVE_SHMGET (scoreboard in shared memory rather than file) and ! HAVE_SYS_RESOURCE_H (enable the RLimit commands). [Dean Gaudet] PR#336, PR#340 *) Redirect did not preserve ?query_strings when present in the client's 1.60 +1 -9 apache/src/Configuration.tmpl Index: Configuration.tmpl === RCS file: /export/home/cvs/apache/src/Configuration.tmpl,v retrieving revision 1.59 retrieving revision 1.60 diff -C3 -r1.59 -r1.60 *** Configuration.tmpl1997/04/25 22:02:44 1.59 --- Configuration.tmpl1997/04/27 07:52:16 1.60 *** *** 57,63 # functions. The format is: Rule RULE=value # # At present, only the following RULES are known: WANTHSREGEX, SOCKS4, ! # STATUS, IRIXNIS, and LINUX_TWEAK. # # For all Rules, if set to yes, then Configure knows we want that # capability and does what is required to add it in. If set to default --- 57,63 # functions. The format is: Rule RULE=value # # At present, only the following RULES are known: WANTHSREGEX, SOCKS4, ! # STATUS, and IRIXNIS. # # For all Rules, if set to yes, then Configure knows we want that # capability and does what is required to add it in. If set to default *** *** 80,97 # SGI IRIX. If you are, and you are using NIS, you should set this # to 'yes' # - # LINUX_TWEAK: - # Only takes effect if Configure determines that you are running a Linux - # system. This enables two
cvs commit: apache/src httpd.h
dgaudet 97/04/27 04:57:17 Modified:src httpd.h Log: Hello 1.2b10. Revision ChangesPath 1.99 +1 -1 apache/src/httpd.h Index: httpd.h === RCS file: /export/home/cvs/apache/src/httpd.h,v retrieving revision 1.98 retrieving revision 1.99 diff -C3 -r1.98 -r1.99 *** httpd.h 1997/04/27 11:50:55 1.98 --- httpd.h 1997/04/27 11:57:16 1.99 *** *** 250,256 * Example: Apache/1.1.0 MrWidget/0.1-alpha */ ! #define SERVER_BASEVERSION Apache/1.2b9 /* SEE COMMENTS ABOVE */ #ifdef SERVER_SUBVERSION #define SERVER_VERSION SERVER_BASEVERSION SERVER_SUBVERSION #else --- 250,256 * Example: Apache/1.1.0 MrWidget/0.1-alpha */ ! #define SERVER_BASEVERSION Apache/1.2b10-dev /* SEE COMMENTS ABOVE */ #ifdef SERVER_SUBVERSION #define SERVER_VERSION SERVER_BASEVERSION SERVER_SUBVERSION #else
cvs commit: apache/htdocs/manual custom-error.html
dgaudet 97/04/25 13:32:19 Modified:htdocs/manual custom-error.html Log: Eliminate some user confusion regarding REDIRECT_*. Revision ChangesPath 1.6 +5 -1 apache/htdocs/manual/custom-error.html Index: custom-error.html === RCS file: /export/home/cvs/apache/htdocs/manual/custom-error.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C3 -r1.5 -r1.6 *** custom-error.html 1996/12/22 05:37:58 1.5 --- custom-error.html 1997/04/25 20:32:18 1.6 *** *** 65,71 PAt least codeREDIRECT_URL/code and codeREDIRECT_QUERY_STRING/code will be passed to the new URL (assuming it's a cgi-script or a cgi-include). The ! other variables will exist only if they existed prior to the error/problem.p DTConfiguration --- 65,75 PAt least codeREDIRECT_URL/code and codeREDIRECT_QUERY_STRING/code will be passed to the new URL (assuming it's a cgi-script or a cgi-include). The ! other variables will exist only if they existed prior to the error/problem. ! bNone/b of these will be set if your ErrorDocument is an ! iexternal/i redirect (i.e. anything starting with a protocol name ! like codehttp:/code, even if it refers to the same host as the ! server).p DTConfiguration
cvs commit: apache/htdocs/manual/mod core.html
dgaudet 97/04/25 13:49:08 Modified:htdocs/manual/mod core.html Log: Clarify the function of Port to avoid problems like PR#459 and PR#485. Revision ChangesPath 1.52 +31 -4 apache/htdocs/manual/mod/core.html Index: core.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/core.html,v retrieving revision 1.51 retrieving revision 1.52 diff -C3 -r1.51 -r1.52 *** core.html 1997/04/24 11:06:17 1.51 --- core.html 1997/04/25 20:49:04 1.52 *** *** 919,934 strongContext:/strong server configbr strongStatus:/strong corep ! The Port directive sets the network port on which the server listens. ! emNum/em is a number from 0 to 65535; some port numbers (especially below 1024) are reserved for particular protocols. See code/etc/services/code for a list of some defined ports; the standard port for the http protocol is 80.p Port 80 is one of Unix's special ports. All ports numbered below 1024 are reserved for system use, i.e. regular (non-root) users cannot ! make use of them; instead they can only use higher port numbers.p ! To use port 80, you must start the server from the root account. After binding to the port and before accepting requests, Apache will change to a low privileged user as set by the A HREF=#userUser directive/A.p --- 919,961 strongContext:/strong server configbr strongStatus:/strong corep ! emNumber/em is a number from 0 to 65535; some port numbers (especially below 1024) are reserved for particular protocols. See code/etc/services/code for a list of some defined ports; the standard port for the http protocol is 80.p + The Port directive has two behaviours, the first of which is necessary for + NCSA backwards compatibility (and which is confusing in the context of + Apache).p + + ul + li + In the absence of any a href=#listenListen/a or + a href=#bindaddressBindAddress/a directives specifying a port number, + the Port directive sets the network port on which the server listens. + If there are any Listen or BindAddress directives specifying + code:number/code then Port has no effect on what address the server + listens at. + + liThe Port directive + sets the codeSERVER_PORT/code environment variable (for + a href=mod_cgi.htmlCGI/a and a href=mod_include.htmlSSI/a), + and is used when the server must generate a URL that refers to itself + (for example when creating an external redirect to itself). + /ul + + In no event does a Port setting affect + what ports a a href=#virtualhostVirtualHost/a responds on, the + VirtualHost directive itself is used for that.p + + The primary behaviour of Port should be considered to be similar to that of + the a href=#servernameServerName/a directive. The ServerName + and Port together specify what you consider to be the icanonical/i + address of the server.p + Port 80 is one of Unix's special ports. All ports numbered below 1024 are reserved for system use, i.e. regular (non-root) users cannot ! make use of them; instead they can only use higher port numbers. To use port 80, you must start the server from the root account. After binding to the port and before accepting requests, Apache will change to a low privileged user as set by the A HREF=#userUser directive/A.p
cvs commit: apache/src CHANGES mod_auth.c mod_auth_db.c mod_auth_dbm.c
dgaudet 97/04/24 03:16:57 Modified:src CHANGES mod_auth.c mod_auth_db.c mod_auth_dbm.c Log: Corrected spelling of authoritative. Submitted by: Marc Slemko Reviewed by: Dean, Roy, Paul S. Revision ChangesPath 1.243 +3 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.242 retrieving revision 1.243 diff -C3 -r1.242 -r1.243 *** CHANGES 1997/04/22 04:28:09 1.242 --- CHANGES 1997/04/24 10:16:54 1.243 *** *** 1,5 --- 1,8 Changes with Apache 1.2 + *) Corrected spelling of authoritative. AuthDBAuthoratative became + AuthDBAuthoritative. [Marc Slemko] PR#420 + *) MaxClients should be at least 1. [Lars Eilebrecht] PR#375 *) The default handler now logs invalid methods or URIs (i.e. PUT on an 1.15 +2 -2 apache/src/mod_auth.c Index: mod_auth.c === RCS file: /export/home/cvs/apache/src/mod_auth.c,v retrieving revision 1.14 retrieving revision 1.15 diff -C3 -r1.14 -r1.15 *** mod_auth.c1997/03/29 01:48:19 1.14 --- mod_auth.c1997/04/24 10:16:54 1.15 *** *** 57,66 * * Adapted to Apache by rst. * ! * dirkx - Added Authoratative control to allow passing on to lower * modules if and only if the user-id is not known to this * module. A known user with a faulty or absent password still ! * causes an AuthRequired. The default is 'Authoratative', i.e. * no control is passed along. */ --- 57,66 * * Adapted to Apache by rst. * ! * dirkx - Added Authoritative control to allow passing on to lower * modules if and only if the user-id is not known to this * module. A known user with a faulty or absent password still ! * causes an AuthRequired. The default is 'Authoritative', i.e. * no control is passed along. */ 1.12 +3 -3 apache/src/mod_auth_db.c Index: mod_auth_db.c === RCS file: /export/home/cvs/apache/src/mod_auth_db.c,v retrieving revision 1.11 retrieving revision 1.12 diff -C3 -r1.11 -r1.12 *** mod_auth_db.c 1997/03/07 14:15:38 1.11 --- mod_auth_db.c 1997/04/24 10:16:55 1.12 *** *** 73,82 * mapped to Berkeley DB. You can use either mod_auth_dbm or * mod_auth_db. The latter makes it more obvious that it's Berkeley. * ! * dirkx - Added Authoratative control to allow passing on to lower * modules if and only if the user-id is not known to this * module. A known user with a faulty or absent password still ! * causes an AuthRequired. The default is 'Authoratative', i.e. * no control is passed along. */ --- 73,82 * mapped to Berkeley DB. You can use either mod_auth_dbm or * mod_auth_db. The latter makes it more obvious that it's Berkeley. * ! * dirkx - Added Authoritative control to allow passing on to lower * modules if and only if the user-id is not known to this * module. A known user with a faulty or absent password still ! * causes an AuthRequired. The default is 'Authoritative', i.e. * no control is passed along. */ *** *** 125,131 { AuthGroupFile, set_db_slot, (void*)XtOffsetOf(db_auth_config_rec, auth_dbgrpfile), OR_AUTHCFG, TAKE12, NULL }, ! { AuthDBAuthoratative, set_flag_slot, (void*)XtOffsetOf(db_auth_config_rec, auth_dbauthoritative), OR_AUTHCFG, FLAG, Set to 'no' to allow access control to be passed along to lower modules if the userID is not known to this module }, --- 125,131 { AuthGroupFile, set_db_slot, (void*)XtOffsetOf(db_auth_config_rec, auth_dbgrpfile), OR_AUTHCFG, TAKE12, NULL }, ! { AuthDBAuthoritative, set_flag_slot, (void*)XtOffsetOf(db_auth_config_rec, auth_dbauthoritative), OR_AUTHCFG, FLAG, Set to 'no' to allow access control to be passed along to lower modules if the userID is not known to this module }, 1.15 +2 -2 apache/src/mod_auth_dbm.c Index: mod_auth_dbm.c === RCS file: /export/home/cvs/apache/src/mod_auth_dbm.c,v retrieving revision 1.14 retrieving revision 1.15 diff -C3 -r1.14 -r1.15 *** mod_auth_dbm.c1997/03/07 14:15:38 1.14 --- mod_auth_dbm.c1997/04/24 10:16:55 1.15 *** *** 57,66 * * Adapted to Apache by rst. * ! * dirkx - Added Authoratative control to allow passing on
cvs commit: apache/src CHANGES http_core.c
dgaudet 97/04/24 03:19:11 Modified:src CHANGES http_core.c Log: Fixes problem with Directory proxy:... Submitted by: Martin Kraemer Reviewed by: Chuck, Dean Revision ChangesPath 1.244 +2 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.243 retrieving revision 1.244 diff -C3 -r1.243 -r1.244 *** CHANGES 1997/04/24 10:16:54 1.243 --- CHANGES 1997/04/24 10:19:09 1.244 *** *** 1,4 --- 1,6 Changes with Apache 1.2 + + *) Fix problem with Directory proxy: [Martin Kraemer] PR#271 *) Corrected spelling of authoritative. AuthDBAuthoratative became AuthDBAuthoritative. [Marc Slemko] PR#420 1.80 +1 -0 apache/src/http_core.c Index: http_core.c === RCS file: /export/home/cvs/apache/src/http_core.c,v retrieving revision 1.79 retrieving revision 1.80 diff -C3 -r1.79 -r1.80 *** http_core.c 1997/04/22 02:42:07 1.79 --- http_core.c 1997/04/24 10:19:09 1.80 *** *** 82,87 --- 82,88 (core_dir_config *)pcalloc(a, sizeof(core_dir_config)); if (!dir || dir[strlen(dir) - 1] == '/') conf-d = dir; + else if (strncmp(dir,proxy:,6)==0) conf-d = pstrdup (a, dir); else conf-d = pstrcat (a, dir, /, NULL); conf-d_is_matchexp = conf-d ? is_matchexp( conf-d ) : 0;
cvs commit: apache/htdocs/manual/misc known_bugs.html
dgaudet 97/04/24 04:06:19 Modified:htdocs/manual/mod core.html htdocs/manual/misc known_bugs.html Log: Make a note of PR#467, the serialized accept problem. Revision ChangesPath 1.51 +3 -1 apache/htdocs/manual/mod/core.html Index: core.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/core.html,v retrieving revision 1.50 retrieving revision 1.51 diff -C3 -r1.50 -r1.51 *** core.html 1997/04/23 01:12:43 1.50 --- core.html 1997/04/24 11:06:17 1.51 *** *** 646,652 pstrongSee Also:/strong a href=../dns-caveats.htmlDNS Issues/abr strongSee Also:/strong ! a href=../bind.htmlSetting which addresses and ports Apache uses/a/p hr A name=limith2lt;Limitgt; directive/h2/A --- 646,654 pstrongSee Also:/strong a href=../dns-caveats.htmlDNS Issues/abr strongSee Also:/strong ! a href=../bind.htmlSetting which addresses and ports Apache uses/abr ! strongSee Also:/strong ! a href=../misc/known_bugs.html#listenbugKnown Bugs/a/p hr A name=limith2lt;Limitgt; directive/h2/A 1.11 +19 -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.10 retrieving revision 1.11 diff -C3 -r1.10 -r1.11 *** known_bugs.html 1997/04/22 08:57:32 1.10 --- known_bugs.html 1997/04/24 11:06:18 1.11 *** *** 18,23 --- 18,42 PSee Also: A HREF=compat_notes.htmlCompatibility notes/A/P HR + H2Version 1.2 (all)/H2 + + OL + LIOn some architectectures if your configuration uses multiple + a href=../mod/core#listenListen/a directives then it is possible + that the server will starve one of the sockets while serving hits on + another. The work-around is to add + code-DUSE_FLOCK_SERIALIZED_ACCEPT/code to the + codeEXTRA_CFLAGS/code line in your Configuration and rebuild. + (If you encounter problems with that, you can also try + code-DUSE_FCNTL_SERIALIZED_ACCEPT/code.) + This affects any architecture that doesn't use one of the + codeUSE_x_SERIALIZED_ACCEPT/code definitions, see the + source file codeconf.h/code for your architecture. + pThis will be tracked as + a href=http://www.apache.org/bugdb.cgi/full/467;PR#467/a. + /LI + /OL + H2Version 1.2b8/H2 There are several known bugs in 1.2b8. See the
cvs commit: apache/htdocs/manual stopping.html
dgaudet 97/04/24 14:08:12 Modified:htdocs/manual stopping.html Log: Document scoreboardfile lameness. Revision ChangesPath 1.2 +9 -6 apache/htdocs/manual/stopping.html Index: stopping.html === RCS file: /export/home/cvs/apache/htdocs/manual/stopping.html,v retrieving revision 1.1 retrieving revision 1.2 diff -C3 -r1.1 -r1.2 *** stopping.html 1997/04/23 02:40:50 1.1 --- stopping.html 1997/04/24 21:08:11 1.2 *** *** 64,69 --- 64,74 replaces it with a child from the new igeneration/i of the configuration, which begins serving new requests immediately. + pArchitectures that use an on disk a + href=mod/core.html#scoreboardfileScoreBoardFile/a are not supported + on graceful restarts. See the ScoreBoardFile documentation for a method + to determine if your architecture uses it. + pThis code is designed to always respect the a href=mod/core.html#maxclientsMaxClients/a, a href=mod/core.html#minspareserversMinSpareServers/a, *** *** 109,120 pArchitectures that use an on disk a href=mod/core.html#scoreboardfileScoreBoardFile/a have the potential ! to lose track of a child during graceful restart (you'll see an a ! href=mod/core.html#errorlogErrorLog/a message saying something about ! a ilong lost child/i). The ScoreBoardFile directive explains how ! to figure out if your server uses a file, and possibly how to avoid it. ! There is also the potential that the scoreboard will be corrupted during ! any signalling, but this only has bad effects on graceful restart. pcodeNEXT/code and codeMACHTEN/code have small race conditions which can cause a restart/die signal to be lost, but should not cause the --- 114,123 pArchitectures that use an on disk a href=mod/core.html#scoreboardfileScoreBoardFile/a have the potential ! to corrupt their scoreboards whenever a signal is received. It is ! possible for the server to forget about some children when this happens. ! See the ScoreBoardFile documentation for a method to determine if your ! architecture uses it. pcodeNEXT/code and codeMACHTEN/code have small race conditions which can cause a restart/die signal to be lost, but should not cause the
cvs commit: apache/src/modules/proxy proxy_connect.c
dgaudet 97/04/24 16:21:36 Modified:src CHANGES src/modules/proxy proxy_connect.c Log: Fix another bstring.h problem. Submitted by: Mark Slemko Reviewed by: Dean, Roy Revision ChangesPath 1.245 +2 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.244 retrieving revision 1.245 diff -C3 -r1.244 -r1.245 *** CHANGES 1997/04/24 10:19:09 1.244 --- CHANGES 1997/04/24 23:21:32 1.245 *** *** 1,4 --- 1,6 Changes with Apache 1.2 + + *) Fix IRIX warning about bzero undefined. [Marc Slemko] *) Fix problem with Directory proxy: [Martin Kraemer] PR#271 1.8 +4 -0 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.7 retrieving revision 1.8 diff -C3 -r1.7 -r1.8 *** proxy_connect.c 1997/04/11 05:10:50 1.7 --- proxy_connect.c 1997/04/24 23:21:35 1.8 *** *** 56,61 --- 56,65 #include http_log.h #include http_main.h + #ifdef HAVE_BSTRING_H + #include bstring.h/* for IRIX, FD_SET calls bzero() */ + #endif + /* * This handles Netscape CONNECT method secure proxy requests. * A connection is opened to the specified host and data is
cvs commit: apache/support suexec.c
dgaudet 97/04/24 16:25:12 Modified:src CHANGES util_script.c support suexec.c Log: Fix suexec segfault when group doesn't exist. Submitted by: Gregory Neil Shapiro [EMAIL PROTECTED] Reviewed by: Randy, Dean, Roy Revision ChangesPath 1.246 +3 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.245 retrieving revision 1.246 diff -C3 -r1.245 -r1.246 *** CHANGES 1997/04/24 23:21:32 1.245 --- CHANGES 1997/04/24 23:25:08 1.246 *** *** 1,5 --- 1,8 Changes with Apache 1.2 + *) Fix suexec segfault when group doesn't exist. [Gregory Neil Shapiro] + PR#367, 368, 354, 453 + *) Fix IRIX warning about bzero undefined. [Marc Slemko] *) Fix problem with Directory proxy: [Martin Kraemer] PR#271 1.49 +12 -4 apache/src/util_script.c Index: util_script.c === RCS file: /export/home/cvs/apache/src/util_script.c,v retrieving revision 1.48 retrieving revision 1.49 diff -C3 -r1.48 -r1.49 *** util_script.c 1997/04/12 04:25:00 1.48 --- util_script.c 1997/04/24 23:25:09 1.49 *** *** 436,441 --- 436,442 core_dir_config *conf; struct passwd *pw; struct group *gr; + char *grpname; conf = (core_dir_config *)get_module_config(r-per_dir_config, core_module); *** *** 551,557 return; } r-uri -= 2; ! gr = getgrgid (pw-pw_gid); execuser = (char *) palloc (r-pool, (sizeof(pw-pw_name) + 1)); execuser = pstrcat (r-pool, ~, pw-pw_name, NULL); } --- 552,565 return; } r-uri -= 2; ! if ((gr = getgrgid (pw-pw_gid)) == NULL) { ! if ((grpname = palloc (r-pool, 16)) == NULL) ! return; ! else ! ap_snprintf(grpname, sizeof(grpname), %d\0, pw-pw_gid); ! } ! else ! grpname = gr-gr_name; execuser = (char *) palloc (r-pool, (sizeof(pw-pw_name) + 1)); execuser = pstrcat (r-pool, ~, pw-pw_name, NULL); } *** *** 569,582 } if (shellcmd) ! execle(SUEXEC_BIN, SUEXEC_BIN, execuser, gr-gr_name, argv0, NULL, env); else if((!r-args) || (!r-args[0]) || (ind(r-args,'=') = 0)) ! execle(SUEXEC_BIN, SUEXEC_BIN, execuser, gr-gr_name, argv0, NULL, env); else { execve(SUEXEC_BIN, !create_argv(r, SUEXEC_BIN, execuser, gr-gr_name, argv0, r-args, (void *)NULL), env); } } --- 577,590 } if (shellcmd) ! execle(SUEXEC_BIN, SUEXEC_BIN, execuser, grpname, argv0, NULL, env); else if((!r-args) || (!r-args[0]) || (ind(r-args,'=') = 0)) ! execle(SUEXEC_BIN, SUEXEC_BIN, execuser, grpname, argv0, NULL, env); else { execve(SUEXEC_BIN, !create_argv(r, SUEXEC_BIN, execuser, grpname, argv0, r-args, (void *)NULL), env); } } 1.21 +11 -5 apache/support/suexec.c Index: suexec.c === RCS file: /export/home/cvs/apache/support/suexec.c,v retrieving revision 1.20 retrieving revision 1.21 diff -C3 -r1.20 -r1.21 *** suexec.c 1997/04/07 17:48:39 1.20 --- suexec.c 1997/04/24 23:25:11 1.21 *** *** 294,311 /* * Error out if the target group name is invalid. */ ! if ((gr = getgrnam(target_gname)) == NULL) { ! log_err(invalid target group name: (%s)\n, target_gname); ! exit(106); } /* * Save these for later since initgroups will hose the struct */ uid = pw-pw_uid; - gid = gr-gr_gid; actual_uname = strdup(pw-pw_name); - actual_gname = strdup(gr-gr_name); target_homedir = strdup(pw-pw_dir); /* --- 294,317 /* * Error out if the target group name is invalid. */ ! if (strspn(target_gname, 1234567890) != strlen(target_gname)) { ! if ((gr = getgrnam(target_gname)) == NULL) { ! log_err(invalid target group name: (%s)\n, target_gname); ! exit(106); ! } ! gid = gr-gr_gid; ! actual_gname = strdup(gr-gr_name); ! } ! else { ! gid = atoi(target_gname); ! actual_gname = strdup(target_gname); } /* * Save these for later
cvs commit: apache/src CHANGES alloc.c alloc.h http_main.c http_protocol.c mod_browser.c mod_include.c mod_rewrite.c mod_status.c scoreboard.h
dgaudet 97/04/24 16:35:29 Modified:src CHANGES alloc.c alloc.h http_main.c http_protocol.c mod_browser.c mod_include.c mod_rewrite.c mod_status.c scoreboard.h Log: Graceful restarts, reliable signals, and memory fixes. Reviewed by: Paul S., Roy, (and others reviewed earlier incarnations) Revision ChangesPath 1.248 +12 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.247 retrieving revision 1.248 diff -C3 -r1.247 -r1.248 *** CHANGES 1997/04/24 23:28:44 1.247 --- CHANGES 1997/04/24 23:35:18 1.248 *** *** 1,4 --- 1,16 Changes with Apache 1.2 + + *) Fix graceful restart on architectures not using scoreboard files + (it is still broken on scoreboard-file architectures). + Eliminate many signal-related race conditions in both forms of + restart, and in SIGTERM. See htdocs/manual/stopping.html for + details on stopping and restarting the parent. + [Dean Gaudet] + + *) Fix memory leaks in mod_rewrite, mod_browser, mod_include. Tune + memory allocator to avoid a behaviour that required extra blocks to + be allocated. + [Dean Gaudet] *) Allow suexec to access files relative to current directory but not above. (Excluding leading / or any .. directory.) [Ken Coar] 1.27 +12 -4 apache/src/alloc.c Index: alloc.c === RCS file: /export/home/cvs/apache/src/alloc.c,v retrieving revision 1.26 retrieving revision 1.27 diff -C3 -r1.26 -r1.27 *** alloc.c 1997/04/07 10:58:38 1.26 --- alloc.c 1997/04/24 23:35:18 1.27 *** *** 185,194 * on the free list... */ - min_size += BLOCK_MINFREE; - while (blok != NULL) { ! if (min_size = blok-h.endp - blok-h.first_avail) { *lastptr = blok-h.next; blok-h.next = NULL; return blok; --- 185,192 * on the free list... */ while (blok != NULL) { ! if (min_size + BLOCK_MINFREE = blok-h.endp - blok-h.first_avail) { *lastptr = blok-h.next; blok-h.next = NULL; return blok; *** *** 201,207 /* Nope. */ ! return malloc_block (min_size); } --- 199,206 /* Nope. */ ! min_size += BLOCK_MINFREE; ! return malloc_block((min_size BLOCK_MINALLOC) ? min_size : BLOCK_MINALLOC); } *** *** 896,901 --- 895,909 register_cleanup (p, (void *)preg, regex_cleanup, regex_cleanup); return preg; + } + + + void pregfree(pool *p, regex_t *reg) + { + block_alarms(); + regfree (reg); + kill_cleanup (p, (void *)reg, regex_cleanup); + unblock_alarms(); } /* 1.19 +6 -3 apache/src/alloc.h Index: alloc.h === RCS file: /export/home/cvs/apache/src/alloc.h,v retrieving revision 1.18 retrieving revision 1.19 diff -C3 -r1.18 -r1.19 *** alloc.h 1997/04/07 10:58:38 1.18 --- alloc.h 1997/04/24 23:35:19 1.19 *** *** 210,216 void note_cleanups_for_fd (pool *, int); void kill_cleanups_for_fd (pool *p, int fd); ! regex_t *pregcomp(pool *p, const char *pattern, int cflags); /* routines to note closes... file descriptors are constrained enough * on some systems that we want to support this. --- 210,217 void note_cleanups_for_fd (pool *, int); void kill_cleanups_for_fd (pool *p, int fd); ! regex_t *pregcomp (pool *p, const char *pattern, int cflags); ! void pregfree (pool *p, regex_t *reg); /* routines to note closes... file descriptors are constrained enough * on some systems that we want to support this. *** *** 236,244 FILE **pipe_err); #define spawn_child(p,f,v,k,in,out) spawn_child_err(p,f,v,k,in,out,NULL) ! /* magic numbers --- only one so far, min free bytes in a new pool block */ ! #define BLOCK_MINFREE 8192 /* Finally, some accounting */ --- 237,247 FILE **pipe_err); #define spawn_child(p,f,v,k,in,out) spawn_child_err(p,f,v,k,in,out,NULL) ! /* magic numbers --- min free bytes to consider a free pool block useable, ! * and the min amount to allocate if we have to go to malloc() */ ! #define BLOCK_MINFREE 4096 ! #define BLOCK_MINALLOC 8192 /* Finally, some accounting */ 1.139 +409 -318
cvs commit: apache/htdocs/manual stopping.html
dgaudet 97/04/22 19:40:50 Added: htdocs/manual stopping.html Log: This documents graceful restarts, and the caveats associated with them. The graceful restart code itself isn't committed yet... and so this doc won't be linked to until we commit the graceful restart code.
cvs commit: apache/htdocs/manual/misc FAQ.html
dgaudet 97/04/21 20:01:27 Modified:htdocs/manual/misc FAQ.html Log: Tweak the wording about the JDK 1.0.2 problem slightly. Revision ChangesPath 1.37 +4 -2 apache/htdocs/manual/misc/FAQ.html Index: FAQ.html === RCS file: /export/home/cvs/apache/htdocs/manual/misc/FAQ.html,v retrieving revision 1.36 retrieving revision 1.37 diff -C3 -r1.36 -r1.37 *** FAQ.html 1997/04/22 02:55:43 1.36 --- FAQ.html 1997/04/22 03:01:25 1.37 *** *** 8,14 !--#include virtual=header.html -- H1Apache Server Frequently Asked Questions/H1 P ! $Revision: 1.36 $ ($Date: 1997/04/22 02:55:43 $) /P P If you are reading a text-only version of this FAQ, you may find numbers --- 8,14 !--#include virtual=header.html -- H1Apache Server Frequently Asked Questions/H1 P ! $Revision: 1.37 $ ($Date: 1997/04/22 03:01:25 $) /P P If you are reading a text-only version of this FAQ, you may find numbers *** *** 864,870 processing a request. Unfortunately, the Java Development Kit (JDK) version 1.0.2 URL methods (URLConnection and friends) expect to see the version string quot;HTTP/1.0quot; and do not correctly interpret ! the quot;HTTP/1.1quot; value Apache is sending. The result is that the JDK methods do not correctly parse the headers, and include them with the document content by mistake. /P --- 864,872 processing a request. Unfortunately, the Java Development Kit (JDK) version 1.0.2 URL methods (URLConnection and friends) expect to see the version string quot;HTTP/1.0quot; and do not correctly interpret ! the quot;HTTP/1.1quot; value Apache is sending (this part of the ! response is a declaration of what the server can do rather than a ! declaration of the dialect of the response). The result is that the JDK methods do not correctly parse the headers, and include them with the document content by mistake. /P
cvs commit: apache/htdocs/manual/misc FAQ.html
dgaudet 97/04/21 19:52:46 Modified:htdocs/manual/misc FAQ.html Log: Marc's suggestion: doc the iovec problems under linux. Give two workarounds. Revision ChangesPath 1.35 +17 -1 apache/htdocs/manual/misc/FAQ.html Index: FAQ.html === RCS file: /export/home/cvs/apache/htdocs/manual/misc/FAQ.html,v retrieving revision 1.34 retrieving revision 1.35 diff -C3 -r1.34 -r1.35 *** FAQ.html 1997/04/21 22:48:05 1.34 --- FAQ.html 1997/04/22 02:52:45 1.35 *** *** 8,14 !--#include virtual=header.html -- H1Apache Server Frequently Asked Questions/H1 P ! $Revision: 1.34 $ ($Date: 1997/04/21 22:48:05 $) /P P If you are reading a text-only version of this FAQ, you may find numbers --- 8,14 !--#include virtual=header.html -- H1Apache Server Frequently Asked Questions/H1 P ! $Revision: 1.35 $ ($Date: 1997/04/22 02:52:45 $) /P P If you are reading a text-only version of this FAQ, you may find numbers *** *** 62,67 --- 62,69 /LI LIA HREF=#whereWhere can I get Apache?/A /LI +LIA HREF=#linuxiovecWhen compiling under Linux it complains +about redefinition of `struct iovec'./A /OL /LI LISTRONGTechnical Questions/STRONG *** *** 806,811 --- 808,827 directive (probably in SAMPconf/httpd.conf/SAMP) needs to name a group that actually exists in the SAMP/etc/group/SAMP file (or your system's equivalent). + /P + HR + /LI + LIA NAME=linuxiovec + STRONGWhen compiling under Linux it complains about redefinition + of `struct iovec'./STRONG + /A + P + This is a conflict between your C library includes and your kernel + includes. You need to make sure that the versions of both are matched + properly. There are two workarounds. One is to remove the definition + of struct iovec from your C library includes. Another is to add + code-DNO_WRITEV/code to the codeEXTRA_CFLAGS/code line in + your codeConfiguration/code and reconfigure/rebuild. /P HR /LI
cvs commit: apache/src mod_cgi.c
dgaudet 97/04/16 12:50:02 Modified:src mod_cgi.c Log: Close script_in before trying to eat up script_err to prevent a deadlock. Submitted by: Ralf Reviewed by: Roy, Dean Revision ChangesPath 1.38 +1 -2 apache/src/mod_cgi.c Index: mod_cgi.c === RCS file: /export/home/cvs/apache/src/mod_cgi.c,v retrieving revision 1.37 retrieving revision 1.38 diff -C3 -r1.37 -r1.38 *** mod_cgi.c 1997/04/06 07:43:40 1.37 --- mod_cgi.c 1997/04/16 19:49:59 1.38 *** *** 521,526 --- 521,527 send_http_header(r); if (!r-header_only) send_fd(script_in, r); + pfclose (r-main ? r-main-pool : r-pool, script_in); /* Soak up stderr */ soft_timeout(soaking script stderr, r); *** *** 528,535 !r-connection-aborted) continue; kill_timeout(r); - - pfclose (r-main ? r-main-pool : r-pool, script_in); pfclose (r-main ? r-main-pool : r-pool, script_err); } --- 529,534
cvs commit: apache/src CHANGES mod_rewrite.c mod_rewrite.h
dgaudet 97/04/16 19:52:53 Modified:src CHANGES mod_rewrite.c mod_rewrite.h Log: Updated mod_rewrite to 3.0.5: Fixes problem with rewriting inside Directory sections missing a trailing /. Reviewed by: Dean, Randy Submitted by: Ralf Revision ChangesPath 1.236 +2 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.235 retrieving revision 1.236 diff -C3 -r1.235 -r1.236 *** CHANGES 1997/04/17 02:50:19 1.235 --- CHANGES 1997/04/17 02:52:50 1.236 *** *** 7,12 --- 7,14 *) Updated mod_rewrite to 3.0.4: Fixes HTTP redirects from within .htaccess files because the RewriteBase was not replaced correctly. + Updated mod_rewrite to 3.0.5: Fixes problem with rewriting inside + Directory sections missing a trailing /. [Ralf S. Engelschall] *) Back out the HAVE_SHMGET change for Linux because it's too late in 1.27 +11 -2 apache/src/mod_rewrite.c Index: mod_rewrite.c === RCS file: /export/home/cvs/apache/src/mod_rewrite.c,v retrieving revision 1.26 retrieving revision 1.27 diff -C3 -r1.26 -r1.27 *** mod_rewrite.c 1997/04/16 06:07:44 1.26 --- mod_rewrite.c 1997/04/17 02:52:51 1.27 *** *** 61,67 ** |_| |_| |_|\___/ \__,_|___|_| \___| \_/\_/ |_| |_|\__\___| ** |_| ** ! ** URL Rewriting Module, Version 3.0.4 (15-Apr-1997) ** ** This module uses a rule-based rewriting engine (based on a ** regular-expression parser) to rewrite requested URLs on the fly. --- 61,67 ** |_| |_| |_|\___/ \__,_|___|_| \___| \_/\_/ |_| |_|\__\___| ** |_| ** ! ** URL Rewriting Module, Version 3.0.5 (16-Apr-1997) ** ** This module uses a rule-based rewriting engine (based on a ** regular-expression parser) to rewrite requested URLs on the fly. *** *** 309,318 a-state = ENGINE_DISABLED; a-options = OPTION_NONE; - a-directory = pstrdup(p, path); a-baseurl = NULL; a-rewriteconds= make_array(p, 2, sizeof(rewritecond_entry)); a-rewriterules= make_array(p, 2, sizeof(rewriterule_entry)); return (void *)a; } --- 309,327 a-state = ENGINE_DISABLED; a-options = OPTION_NONE; a-baseurl = NULL; a-rewriteconds= make_array(p, 2, sizeof(rewritecond_entry)); a-rewriterules= make_array(p, 2, sizeof(rewriterule_entry)); + + if (path == NULL) + a-directory = NULL; + else { + /* make sure it has a trailing slash */ + if (path[strlen(path)-1] == '/') + a-directory = pstrdup(p, path); + else + a-directory = pstrcat(p, path, /, NULL); + } return (void *)a; } 1.22 +1 -1 apache/src/mod_rewrite.h Index: mod_rewrite.h === RCS file: /export/home/cvs/apache/src/mod_rewrite.h,v retrieving revision 1.21 retrieving revision 1.22 diff -C3 -r1.21 -r1.22 *** mod_rewrite.h 1997/04/16 06:07:43 1.21 --- mod_rewrite.h 1997/04/17 02:52:51 1.22 *** *** 64,70 ** |_| |_| |_|\___/ \__,_|___|_| \___| \_/\_/ |_| |_|\__\___| ** |_| ** ! ** URL Rewriting Module, Version 3.0.4 (17-Apr-1997) ** ** This module uses a rule-based rewriting engine (based on a ** regular-expression parser) to rewrite requested URLs on the fly. --- 64,70 ** |_| |_| |_|\___/ \__,_|___|_| \___| \_/\_/ |_| |_|\__\___| ** |_| ** ! ** URL Rewriting Module, Version 3.0.5 (16-Apr-1997) ** ** This module uses a rule-based rewriting engine (based on a ** regular-expression parser) to rewrite requested URLs on the fly.
cvs commit: apache/src CHANGES Configuration.tmpl Configure conf.h
dgaudet 97/04/15 13:00:24 Modified:src CHANGES Configuration.tmpl Configure conf.h Log: Linux platforms have various differences that make it difficult to enable the HAVE_SHMGET and disable the USE_FCNTL_SERIALIZED_ACCEPT reliably. So instead we'll let the user shoot themselves. Reviewed by: Jim, Ralf, Chuck Revision ChangesPath 1.232 +6 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.231 retrieving revision 1.232 diff -C3 -r1.231 -r1.232 *** CHANGES 1997/04/14 01:09:12 1.231 --- CHANGES 1997/04/15 20:00:20 1.232 *** *** 1,5 --- 1,11 Changes with Apache 1.2 + *) Back out the HAVE_SHMGET change for Linux because it's too late in + the beta cycle to deal cleanly with compilation problems on the + myriad of linux systems out there. Linux users should see + Configuration.tmpl about defining Rule LINUX_TWEAKS=yes. + [Dean Gaudet] PR#336, PR#340 + *) Redirect did not preserve ?query_strings when present in the client's request. [Dean Gaudet] 1.58 +9 -1 apache/src/Configuration.tmpl Index: Configuration.tmpl === RCS file: /export/home/cvs/apache/src/Configuration.tmpl,v retrieving revision 1.57 retrieving revision 1.58 diff -C3 -r1.57 -r1.58 *** Configuration.tmpl1997/04/15 04:32:54 1.57 --- Configuration.tmpl1997/04/15 20:00:20 1.58 *** *** 57,63 # functions. The format is: Rule RULE=value # # At present, only the following RULES are known: WANTHSREGEX, SOCKS4, ! # STATUS and IRIXNIS. # # For all Rules, if set to yes, then Configure knows we want that # capability and does what is required to add it in. If set to default --- 57,63 # functions. The format is: Rule RULE=value # # At present, only the following RULES are known: WANTHSREGEX, SOCKS4, ! # STATUS, IRIXNIS, and LINUX_TWEAK. # # For all Rules, if set to yes, then Configure knows we want that # capability and does what is required to add it in. If set to default *** *** 80,89 --- 80,97 # SGI IRIX. If you are, and you are using NIS, you should set this # to 'yes' # + # LINUX_TWEAK: + # Only takes effect if Configure determines that you are running a Linux + # system. This enables two optimizations that work well on i386 linux 2.0 + # or later systems. They aren't enabled by default because of kernel and + # library problems with various versions of linux. We'd rather release + # something known stable and let you choose the optimizations yourself. + # Rule STATUS=yes Rule SOCKS4=no Rule IRIXNIS=no + Rule LINUX_TWEAK=no # The following rules should be set automatically by Configure. However, if # they are not set by Configure (because we don't know the correct value for 1.92 +4 -0 apache/src/Configure Index: Configure === RCS file: /export/home/cvs/apache/src/Configure,v retrieving revision 1.91 retrieving revision 1.92 diff -C3 -r1.91 -r1.92 *** Configure 1997/04/14 11:52:20 1.91 --- Configure 1997/04/15 20:00:21 1.92 *** *** 133,138 --- 133,139 RULE_STATUS=`./helpers/CutRule STATUS $file` RULE_SOCKS4=`./helpers/CutRule SOCKS4 $file` RULE_IRIXNIS=`./helpers/CutRule IRIXNIS $file` + RULE_LINUX_TWEAK=`./helpers/CutRule LINUX_TWEAK $file` # # Now we determine the OS/Platform automagically, thanks to *** *** 262,267 --- 263,271 DEF_WANTHSREGEX=yes OS='Linux' CFLAGS=$CFLAGS -DLINUX + if [ $RULE_LINUX_TWEAK = yes ]; then + CFLAGS=$CFLAGS -DLINUX_TWEAK + fi ;; *-lynx-lynxos*) OS='LynxOS' 1.93 +14 -2 apache/src/conf.h Index: conf.h === RCS file: /export/home/cvs/apache/src/conf.h,v retrieving revision 1.92 retrieving revision 1.93 diff -C3 -r1.92 -r1.93 *** conf.h1997/04/09 01:40:51 1.92 --- conf.h1997/04/15 20:00:21 1.93 *** *** 253,265 #define NO_USE_SIGACTION #elif defined(LINUX) #undef HAVE_GMTOFF #undef NO_KILLPG #undef NO_SETSID #undef NEED_STRDUP - #define HAVE_SHMGET #define JMP_BUF sigjmp_buf - #define USE_FCNTL_SERIALIZED_ACCEPT #include sys/time.h #elif defined(SCO) --- 253,277 #define NO_USE_SIGACTION #elif defined(LINUX) + #ifndef LINUX_TWEAK + /* the old stable way ... it's
cvs commit: apache/src CHANGES
dgaudet 97/04/15 13:23:00 Modified:src CHANGES Log: typo fix Revision ChangesPath 1.233 +1 -1 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.232 retrieving revision 1.233 diff -C3 -r1.232 -r1.233 *** CHANGES 1997/04/15 20:00:20 1.232 --- CHANGES 1997/04/15 20:22:58 1.233 *** *** 3,9 *) Back out the HAVE_SHMGET change for Linux because it's too late in the beta cycle to deal cleanly with compilation problems on the myriad of linux systems out there. Linux users should see ! Configuration.tmpl about defining Rule LINUX_TWEAKS=yes. [Dean Gaudet] PR#336, PR#340 *) Redirect did not preserve ?query_strings when present in the client's --- 3,9 *) Back out the HAVE_SHMGET change for Linux because it's too late in the beta cycle to deal cleanly with compilation problems on the myriad of linux systems out there. Linux users should see ! Configuration.tmpl about defining Rule LINUX_TWEAK=yes. [Dean Gaudet] PR#336, PR#340 *) Redirect did not preserve ?query_strings when present in the client's
cvs commit: apache/src CHANGES mod_alias.c
dgaudet 97/04/13 18:09:14 Modified:src CHANGES mod_alias.c Log: Redirect did not preserve ?query_strings when present in the client's request. Revision ChangesPath 1.231 +3 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.230 retrieving revision 1.231 diff -C3 -r1.230 -r1.231 *** CHANGES 1997/04/11 22:24:53 1.230 --- CHANGES 1997/04/14 01:09:12 1.231 *** *** 1,5 --- 1,8 Changes with Apache 1.2 + *) Redirect did not preserve ?query_strings when present in the client's + request. [Dean Gaudet] + *) Add mod_example (illustration of API techniques). [Ken Coar] *) Add macro for memmove to conf.h for SUNOS4. [Marc Slemko] 1.15 +6 -1 apache/src/mod_alias.c Index: mod_alias.c === RCS file: /export/home/cvs/apache/src/mod_alias.c,v retrieving revision 1.14 retrieving revision 1.15 diff -C3 -r1.14 -r1.15 *** mod_alias.c 1997/03/07 14:15:37 1.14 --- mod_alias.c 1997/04/14 01:09:13 1.15 *** *** 272,279 return DECLINED; if ((ret = try_alias_list (r, serverconf-redirects, 1, status)) != NULL) { ! if (is_HTTP_REDIRECT(status)) table_set (r-headers_out, Location, ret); return status; } --- 272,284 return DECLINED; if ((ret = try_alias_list (r, serverconf-redirects, 1, status)) != NULL) { ! if (is_HTTP_REDIRECT(status)) { ! /* include QUERY_STRING if any */ ! if (r-args) { ! ret = pstrcat (r-pool, ret, ?, r-args, NULL); ! } table_set (r-headers_out, Location, ret); + } return status; }
cvs commit: apache/src mod_rewrite.c mod_rewrite.h
dgaudet 97/04/11 21:19:51 Modified:src mod_rewrite.c mod_rewrite.h Log: Sync to 3.0.3 Reviewed by: Dean Submitted by: Ralf Revision ChangesPath 1.25 +12 -12apache/src/mod_rewrite.c Index: mod_rewrite.c === RCS file: /export/home/cvs/apache/src/mod_rewrite.c,v retrieving revision 1.24 retrieving revision 1.25 diff -C3 -r1.24 -r1.25 *** mod_rewrite.c 1997/03/29 01:55:57 1.24 --- mod_rewrite.c 1997/04/12 04:19:49 1.25 *** *** 61,67 ** |_| |_| |_|\___/ \__,_|___|_| \___| \_/\_/ |_| |_|\__\___| ** |_| ** ! ** URL Rewriting Module, Version 3.0.2 (26-Mar-1997) ** ** This module uses a rule-based rewriting engine (based on a ** regular-expression parser) to rewrite requested URLs on the fly. --- 61,67 ** |_| |_| |_|\___/ \__,_|___|_| \___| \_/\_/ |_| |_|\__\___| ** |_| ** ! ** URL Rewriting Module, Version 3.0.3 (08-Apr-1997) ** ** This module uses a rule-based rewriting engine (based on a ** regular-expression parser) to rewrite requested URLs on the fly. *** *** 878,891 /* add the canonical URI of this URL */ thisserver = r-server-server_hostname; #ifdef APACHE_SSL ! if (((!r-connection-client-ssl) (r-server-port == 80)) || ((r-connection-client-ssl) (r-server-port == 443))) #else ! if (r-server-port == 80) #endif thisport = ; else { ! ap_snprintf(buf, sizeof(buf), :%d, r-server-port); thisport = pstrdup(r-pool, buf); } thisurl = table_get(r-subprocess_env, ENVVAR_SCRIPT_URL); --- 878,891 /* add the canonical URI of this URL */ thisserver = r-server-server_hostname; #ifdef APACHE_SSL ! if (((!r-connection-client-ssl) (r-server-port == DEFAULT_PORT)) || ((r-connection-client-ssl) (r-server-port == 443))) #else ! if (r-server-port == DEFAULT_PORT) #endif thisport = ; else { ! ap_snprintf(buf, sizeof(buf), :%u, r-server-port); thisport = pstrdup(r-pool, buf); } thisurl = table_get(r-subprocess_env, ENVVAR_SCRIPT_URL); *** *** 1618,1631 strncmp(r-filename, ftp://;, 6) == 0)) { #ifdef APACHE_SSL ! if ((!r-connection-client-ssl r-server-port == 80) || ( r-connection-client-ssl r-server-port == 443) ) #else ! if (r-server-port == 80) #endif port[0] = '\0'; else ! ap_snprintf(port, sizeof(port), :%d, r-server-port); if (r-filename[0] == '/') #ifdef APACHE_SSL ap_snprintf(newuri, sizeof(newuri), %s://%s%s%s, http_method(r), r-server-server_hostname, port, r-filename); --- 1618,1631 strncmp(r-filename, ftp://;, 6) == 0)) { #ifdef APACHE_SSL ! if ((!r-connection-client-ssl r-server-port == DEFAULT_PORT) || ( r-connection-client-ssl r-server-port == 443) ) #else ! if (r-server-port == DEFAULT_PORT) #endif port[0] = '\0'; else ! ap_snprintf(port, sizeof(port), :%u, r-server-port); if (r-filename[0] == '/') #ifdef APACHE_SSL ap_snprintf(newuri, sizeof(newuri), %s://%s%s%s, http_method(r), r-server-server_hostname, port, r-filename); *** *** 1806,1812 static void reduce_uri(request_rec *r) { char *cp; ! short port; char *portp; char *hostp; char *url; --- 1806,1812 static void reduce_uri(request_rec *r) { char *cp; ! unsigned short port; char *portp; char *hostp; char *url; *** *** 1860,1866 EOS_PARANOIA(host); *cp = '/'; /* set port */ ! port = 80; /* set remaining url */ url = cp; } --- 1860,1866 EOS_PARANOIA(host); *cp = '/'; /* set port */ ! port = DEFAULT_PORT; /* set remaining url */ url = cp; } *** *** 1869,1875 strncpy(host, hostp, sizeof(host)-1); EOS_PARANOIA(host); /* set port */ ! port = 80; /* set remaining url */ url = /; } --- 1869,1875 strncpy(host, hostp, sizeof(host)-1);
cvs commit: apache/src httpd.h
dgaudet 97/04/11 21:27:55 Modified:src httpd.h Log: Allow HARD_SERVER_LIMIT to be tuned in Configuration. Reviewed by: Jim Revision ChangesPath 1.97 +2 -0 apache/src/httpd.h Index: httpd.h === RCS file: /export/home/cvs/apache/src/httpd.h,v retrieving revision 1.96 retrieving revision 1.97 diff -C3 -r1.96 -r1.97 *** httpd.h 1997/04/12 04:24:58 1.96 --- httpd.h 1997/04/12 04:27:54 1.97 *** *** 221,227 --- 221,229 * enough that we can read the whole thing without worrying too much about * the overhead. */ + #ifndef HARD_SERVER_LIMIT #define HARD_SERVER_LIMIT 256 + #endif /* Number of requests to try to handle in a single process. If = 0, * the children don't die off. That's the default here, since I'm still
cvs commit: apache/htdocs/manual/misc FAQ.html
dgaudet 97/04/11 21:49:11 Modified:htdocs/manual/misc FAQ.html Log: A few tweaks. Revision ChangesPath 1.21 +6 -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.20 retrieving revision 1.21 diff -C3 -r1.20 -r1.21 *** FAQ.html 1997/04/12 03:40:38 1.20 --- FAQ.html 1997/04/12 04:49:10 1.21 *** *** 8,14 !--#include virtual=header.html -- H1Apache Server Frequently Asked Questions/H1 P ! $Revision: 1.20 $ ($Date: 1997/04/12 03:40:38 $) /P H2The Questions/H2 !-- Stuff to Add: -- --- 8,14 !--#include virtual=header.html -- H1Apache Server Frequently Asked Questions/H1 P ! $Revision: 1.21 $ ($Date: 1997/04/12 04:49:10 $) /P H2The Questions/H2 !-- Stuff to Add: -- *** *** 341,347 P (Substitute the appropiate locations for your SAMPServerRoot/SAMP and your SAMPhttpd/SAMP and ! SAMPcore/SAMP files.) /P /LI /OL --- 341,348 P (Substitute the appropiate locations for your SAMPServerRoot/SAMP and your SAMPhttpd/SAMP and ! SAMPcore/SAMP files. You may have to use SAMPgdb/SAMP ! instead of SAMPdbx/SAMP.) /P /LI /OL *** *** 614,620 /LI LIquot;Don't do thatquot; - try to run with fewer virtual hosts /LI !LISpread your operation across multiple server processes and/or ports /LI /OL P --- 615,623 /LI LIquot;Don't do thatquot; - try to run with fewer virtual hosts /LI !LISpread your operation across multiple server processes (using !A HREF=../mod/core.html#listenListen/A for example, !but see the first point) and/or ports /LI /OL P
cvs commit: apache/src/modules/example README
dgaudet 97/04/11 21:52:38 Modified:src/modules/example README Log: typo fix Revision ChangesPath 1.2 +1 -1 apache/src/modules/example/README Index: README === RCS file: /export/home/cvs/apache/src/modules/example/README,v retrieving revision 1.1 retrieving revision 1.2 diff -C3 -r1.1 -r1.2 *** README1997/04/11 22:12:34 1.1 --- README1997/04/12 04:52:37 1.2 *** *** 42,48 Location /example-info SetHandler example-handler ! /Location? As an alternative, you can put the following into a .htaccess file and then request the file test.example from that location: --- 42,48 Location /example-info SetHandler example-handler ! /Location As an alternative, you can put the following into a .htaccess file and then request the file test.example from that location:
cvs commit: apache/support suexec.c
dgaudet 97/04/07 10:48:40 Modified:support suexec.c Log: suexec doesn't close the log file so CGIs could write to it Reviewed by: Roy, Randy, Chuck Submitted by: Marc Revision ChangesPath 1.20 +8 -0 apache/support/suexec.c Index: suexec.c === RCS file: /export/home/cvs/apache/support/suexec.c,v retrieving revision 1.19 retrieving revision 1.20 diff -C3 -r1.19 -r1.20 *** suexec.c 1997/03/03 19:33:53 1.19 --- suexec.c 1997/04/07 17:48:39 1.20 *** *** 451,456 --- 451,464 } clean_env(); + + /* + * Be sure to close the log file so the CGI can't + * mess with it. If the exec fails, it will be reopened + * automatically when log_err is called. + */ + fclose(log); + log = NULL; /* * Execute the command, replacing our image with its own.
cvs commit: apache-site info.html
dgaudet 97/04/07 10:51:19 Modified:. info.html Log: Bring up to date with recent Apache work. Reviewed by: Roy, Dean Submitted by: Paul Sutton Revision ChangesPath 1.3 +17 -14apache-site/info.html Index: info.html === RCS file: /export/home/cvs/apache-site/info.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C3 -r1.2 -r1.3 *** info.html 1997/03/25 20:21:48 1.2 --- info.html 1997/04/07 17:51:18 1.3 *** *** 17,29 H2The Apache httpd server .../H2 UL ! LIis a plug-in replacement for NCSA 1.3/LI ! LIFixes numerous bugs and security holes seen in NCSA 1.3 and 1.4/LI ! LIis free --- we will not charge anyone for using it, and will allow ! redistribution on the usual free software terms./LI ! LIis Bmuch/B faster than NCSA 1.3, more efficient and faster than 1.4/1.5 too./LI ! LIoffers better compliance with existing HTTP specs./LI ! LIImplement frequently requested features:BRBR DL DTDBM databases for authentication/DT DDallows you to easily set up password-protected pages with --- 17,33 H2The Apache httpd server .../H2 UL ! LIis a powerful, flexible, HTTP/1.1 compliant web server ! LIimplements the latest protocols, including HTTP/1.1 (RFC2068) ! LIis highly configurable and extensible with third-party modules ! LIcan be customised by writing 'modules' using the Apache module API ! LIprovides full source code and comes with an unrestrictive license ! LIruns on most versions of Unix without modification ! LIis actively being developed ! LIencourages user feedback through new ideas, bug reports and patches ! /UL ! ! LIimplements many frequently requested features:BRBR DL DTDBM databases for authentication/DT DDallows you to easily set up password-protected pages with *** *** 67,74 PBSpeed, features, stability./B/P PThe Apache Group will allow everyone to use and redistribute Apache without ! charge. NCSA have plans to change their license, although the final terms are ! not yet known./P PThe Apache Group consists of server users --- people who run web servers for a living, and will, if it is feasible, --- 71,77 PBSpeed, features, stability./B/P PThe Apache Group will allow everyone to use and redistribute Apache without ! charge. /P PThe Apache Group consists of server users --- people who run web servers for a living, and will, if it is feasible, *** *** 84,94 PAn incomplete A HREF=info/apache_users.htmllist of sites/A running Apache is being maintained./P H2When will Apache be available ?/H2 ! PApache version 1.1.1 is currently available to everyone, and is ! the most stable version. Apache 1.2b1 has been released for testing, though we feel this release is also very stable. ! H2Will Apache be supported ?/H2 PSupport for Apache will be via the A HREF=news:comp.infosystems.www.servers.unix;comp.infosystems.www.servers.unix/A --- 87,97 PAn incomplete A HREF=info/apache_users.htmllist of sites/A running Apache is being maintained./P H2When will Apache be available ?/H2 ! PApache version 1.1.3 is currently available to everyone, and is ! the most stable version. Apache 1.2b7 has been released for testing, though we feel this release is also very stable. ! H2Will Apache be supported?/H2 PSupport for Apache will be via the A HREF=news:comp.infosystems.www.servers.unix;comp.infosystems.www.servers.unix/A *** *** 117,126 Apache project. Apache developers will regularly check this newsgroup for questions that need answering./P ! H2Why is it called Apache ?/H2 PThe Apache group was formed around a number of people who provided Ipatch/I files that had been written for NCSA httpd 1.3. The result after combining them was BA PA/BtBCH/By server./P ! H2How do I get Apache ?/H2 PThe Apache httpd server is available in the form of source code: ul livia http from various places listed on the A HREF=./main Apache --- 120,129 Apache project. Apache developers will regularly check this newsgroup for questions that need answering./P ! H2Why is it called Apache?/H2 PThe Apache group was formed around a number of people who provided Ipatch/I files that had been written for NCSA httpd 1.3. The result after combining them was BA PA/BtBCH/By server./P ! H2How do I get Apache?/H2 PThe Apache httpd server is available in the form of source code: ul livia http from various places listed on the A HREF=./main Apache
cvs commit: apache-site bug_report.html
dgaudet 97/03/27 12:05:20 Modified:. bug_report.html Log: Tweaks suggested by Marc. Submitted by: Ken Coar Revision ChangesPath 1.3 +15 -1 apache-site/bug_report.html Index: bug_report.html === RCS file: /export/home/cvs/apache-site/bug_report.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C3 -r1.2 -r1.3 *** bug_report.html 1997/03/25 04:58:25 1.2 --- bug_report.html 1997/03/27 20:05:18 1.3 *** *** 8,14 PWelcome to the Apache Bug Reporting Page! If you are having trouble with Apache, ! please fill this out and submit it. Before you do that, though, make bsure/b you have:/P --- 8,15 PWelcome to the Apache Bug Reporting Page! If you are having trouble with Apache, ! please fill out a problem report form and submit it. Before you do ! that, though, make bsure/b you have:/P *** *** 26,31 --- 27,45 can make sure it's an Apache bug and not a bug in a module provided by someone else). /OL + + BLOCKQUOTE + STRONG + If you're not sure whether your problem is specifically related to + Apache, we strongly recommend that you check in the + A +HREF=news:comp.infosystems.www.servers.unix; + SAMPcomp.infosystems.www.servers.unix/SAMP/A + USENET newsgroup first. If you don't receive a response within a few + days, then please submit it to the Apache bug database. If it's a + known issue, you'll probably get a faster response from the newsgroup. + /STRONG + /BLOCKQUOTE PIf you have done all of the preceding, then please select the button below and fill out the form,
cvs commit: apache/htdocs/manual/mod mod_log_config.html
dgaudet 97/03/27 12:09:03 Modified:htdocs/manual/mod mod_log_config.html Log: Add NCSA extended/combined log format example suggested by David Richards [EMAIL PROTECTED]. Revision ChangesPath 1.14 +1 -0 apache/htdocs/manual/mod/mod_log_config.html Index: mod_log_config.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_log_config.html,v retrieving revision 1.13 retrieving revision 1.14 diff -C3 -r1.13 -r1.14 *** mod_log_config.html 1997/02/19 17:46:41 1.13 --- mod_log_config.html 1997/03/27 20:09:02 1.14 *** *** 143,148 --- 143,149 Note that the common log format is defined by the string code%h %l %u %t \%r\ %s %b/code, which can be used as the basis for extending for format if desired (e.g. to add extra fields at the end). + NCSA's extended/combined log format would be code%h %l %u %t \%r\ %s %b \%{Referer}i\ \%{Agent}i\/code. h2Using Multiple Log Files/h3
cvs commit: apache/htdocs/manual/misc FAQ.html
dgaudet 97/03/27 14:31:22 Modified:htdocs/manual/misc FAQ.html Log: typo fix Revision ChangesPath 1.7 +2 -2 apache/htdocs/manual/misc/FAQ.html Index: FAQ.html === RCS file: /export/home/cvs/apache/htdocs/manual/misc/FAQ.html,v retrieving revision 1.6 retrieving revision 1.7 diff -C3 -r1.6 -r1.7 *** FAQ.html 1996/12/05 06:26:21 1.6 --- FAQ.html 1997/03/27 22:31:20 1.7 *** *** 21,27 LIA HREF=#futureWhat are the future plans for Apache ?/A LIA HREF=#supportWho do I contact for support ?/A LIA HREF=#moreIs there any more information on Apache ?/A ! LIA HREF=#whereWhere can get Apache ?/A /OL HR --- 21,27 LIA HREF=#futureWhat are the future plans for Apache ?/A LIA HREF=#supportWho do I contact for support ?/A LIA HREF=#moreIs there any more information on Apache ?/A ! LIA HREF=#whereWhere can I get Apache ?/A /OL HR *** *** 149,155 /P HR ! LIA name=whereWhere can get Apache ?/A P You can find the source for Apache at A HREF=http://www.apache.org/;http://www.apache.org//A. /P --- 149,155 /P HR ! LIA name=whereWhere can I get Apache ?/A P You can find the source for Apache at A HREF=http://www.apache.org/;http://www.apache.org//A. /P
cvs commit: apache/src Configure
dgaudet 97/03/25 12:21:22 Modified:src Configure Log: More bug reporting cleanup. Reviewed by: Dean Gaudet, Jim Jagielski Submitted by: Ken Coar Revision ChangesPath 1.85 +6 -3 apache/src/Configure Index: Configure === RCS file: /export/home/cvs/apache/src/Configure,v retrieving revision 1.84 retrieving revision 1.85 diff -C3 -r1.84 -r1.85 *** Configure 1997/03/24 22:49:09 1.84 --- Configure 1997/03/25 20:21:20 1.85 *** *** 420,428 uname -v echo uname -X uname -X ! echo Ideally, read the file PORTING, do what it says and send the ! echo resulting patches to [EMAIL PROTECTED] Otherwise, email ! echo this output to [EMAIL PROTECTED] echo Thank you exit 1 ;; --- 420,431 uname -v echo uname -X uname -X ! echo Ideally, read the file PORTING, do what it says, and send the ! echo resulting patches to The Apache Group by filling out a report ! echo form at http://www.apache.org/bugdb.cgi - or, if your browser ! echo isn\'t forms-capable, you can send them via email to ! echo [EMAIL PROTECTED] If you don\'t wish to do the port ! echo yourself, please submit this output rather than the patches. echo Thank you exit 1 ;;
cvs commit: apache-site info.html
dgaudet 97/03/25 12:21:49 Modified:. info.html Log: More bug reporting cleanup. Reviewed by:Dean Gaudet, Jim Jagielski Submitted by: Ken Coar Revision ChangesPath 1.2 +12 -1 apache-site/info.html Index: info.html === RCS file: /export/home/cvs/apache-site/info.html,v retrieving revision 1.1 retrieving revision 1.2 diff -C3 -r1.1 -r1.2 *** info.html 1997/03/25 04:43:15 1.1 --- info.html 1997/03/25 20:21:48 1.2 *** *** 98,104 pA number of companies now also provide full commercial support for the Apache server ! PBug reports and suggestions should be sent to A HREF=mailto:[EMAIL PROTECTED][EMAIL PROTECTED]/A PSince Apache was originally based on NCSA 1.3 code, many questions about it can be answered by many --- 98,115 pA number of companies now also provide full commercial support for the Apache server ! PBug reports and suggestions should be submitted by filling out a ! report form at ! A ! HREF=http://www.apache.org/bugdb.cgi; ! SAMPhttp://www.apache.org/bugdb.cgi/SAMP/A. ! If your browser is not forms-capable, or you can't access the form for some ! other reason, you can submit information by sending a mail message to ! A ! HREF=mailto:[EMAIL PROTECTED] ! SAMP[EMAIL PROTECTED]/SAMP/A. ! Submission EMvia/EM the browser form is much prefereable, however, ! so please only send mail if there is no alternative. PSince Apache was originally based on NCSA 1.3 code, many questions about it can be answered by many
cvs commit: apache/htdocs/manual vhosts-in-depth.html
dgaudet 97/03/24 10:40:18 Modified:htdocs/manual vhosts-in-depth.html Log: Yet another observation. Revision ChangesPath 1.3 +3 -0 apache/htdocs/manual/vhosts-in-depth.html Index: vhosts-in-depth.html === RCS file: /export/home/cvs/apache/htdocs/manual/vhosts-in-depth.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C3 -r1.2 -r1.3 *** vhosts-in-depth.html 1997/03/23 19:26:42 1.2 --- vhosts-in-depth.html 1997/03/24 18:40:16 1.3 *** *** 297,302 --- 297,305 then all the name-based vhosts will be parsed as ip-based vhosts. Then the last of them will steal all the hits./p + li The last name-based vhost in the config is always matched for any hit + which doesn't match one of the other name-based vhosts. + /ul a name=whatworksh3What Works/h3/a
cvs commit: apache-site - Imported sources
dgaudet 97/03/24 20:43:17 Log: Put the www site files under CVS. Status: Vendor Tag: apache Release Tags: v1_0 I apache-site/docs N apache-site/index.html I apache-site/dist N apache-site/404.html I apache-site/incoming N apache-site/.cvsignore N apache-site/bug_report.html N apache-site/comsupport.html N apache-site/bugs.cgi N apache-site/info.html N apache-site/bugdb.cgi N apache-site/apache_pb.gif N apache-site/related_projects.html I apache-site/from-cvs N apache-site/in_the_news.html N apache-site/.message N apache-site/113announce.html N apache-site/announcelist.html N apache-site/phf_abuse_log.cgi N apache-site/images/small_feather.gif N apache-site/images/apache_pb_1.0.gif N apache-site/images/apache_sub.gif N apache-site/images/apache_email.gif N apache-site/images/apache_home.gif N apache-site/images/apache_index.gif N apache-site/images/graybar.gif N apache-site/images/apache_feather.gif N apache-site/images/orange_ball.gif N apache-site/images/apache_logo.gif N apache-site/images/powered_by.gif N apache-site/images/apache_feather_promo.gif N apache-site/images/apache_pb3.gif N apache-site/images/apache_feather_bullet.gif N apache-site/images/apache_pb.gif N apache-site/images/smiley.xbm N apache-site/library/index.html I apache-site/library/index.html~ N apache-site/press/04apr96.txt N apache-site/info/apache_users.html N apache-site/info/apache_on_linux.html N apache-site/info/three-config-files.html N apache-site/info/supportdb.txt N apache-site/info/aol-http.html N apache-site/info/support.cgi N apache-site/info/how-to-mirror.html N apache-site/info/apache_nt.html N apache-site/contributors/index.html No conflicts created by this import
cvs commit: apache-site bug_report.html
dgaudet 97/03/24 20:58:26 Modified:. bug_report.html Log: Bug reporting changes to direct people to the GNATS system. Reviewed by:Dean Gaudet, Roy Fielding Submitted by: Ken Coar Revision ChangesPath 1.2 +26 -82apache-site/bug_report.html Index: bug_report.html === RCS file: /export/home/cvs/apache-site/bug_report.html,v retrieving revision 1.1 retrieving revision 1.2 diff -C3 -r1.1 -r1.2 *** bug_report.html 1997/03/25 04:43:15 1.1 --- bug_report.html 1997/03/25 04:58:25 1.2 *** *** 6,100 IMG SRC=images/apache_sub.gif ALT= H2Apache Bug Reporting Page/H2 ! PWelcome to the Apache Bug Reporting Page! If you are having trouble with Apache, ! please fill this out and submit it. Before you do that, though, make bsure/b you have:/P OL LIMade sure the bug exists in A href=dist/the most recent version/A of ! Apache. LIChecked the A href=docs/misc/known_bugs.htmlknown bugs/A page. ! LIChecked the A href=docs/misc/compat_notes.htmlcompatibility notes/A page. LIFollowed the instructions in the codeINSTALL/code file correctly - you edited the codeConfiguration/code file to set the right platform ! and ran the codeConfigure/code script to create the new codeMakefile/code. ! LITried compiling with only the distributed set of modules (so that we can make sure ! it's an apache bug and not a bug in a module provided by someone else). /OL ! H3Note: we already know about the problem interactions between AOL's ! proxies and Apache 1.2's use of HTTP/1.1. We are working with AOL to ! help them fix their problems./H3 ! ! PIf you have done all of the preceding, then fill out the form below, ! and we will respond to it as soon as we can. If your browser is ! incapable of using forms, please submit the same information to A ! href=mailto:[EMAIL PROTECTED][EMAIL PROTECTED]/A./P ! ! H1Do NOT send configuration questions or requests for help debugging CGI !!/H1 ! ! P ! ! FORM METHOD=POST ACTION=http://www.apache.org/bugs.cgi; ! ! Your email address: input type=text name=emailaddy size=15BR ! ! Quick, one-line summary of the problem:BR ! input type=text name=summary size=45BR ! ! Operating system: SELECT NAME=platform ! OPTIONAIX ! OPTIONApollo ! OPTIONA/UX ! OPTIONBSDI ! OPTIONFreeBSD ! OPTIONHPUX ! OPTIONIrix ! OPTIONLinux ! OPTIONNeXT ! OPTIONNetBSD ! OPTIONOS/2 ! OPTIONOSF/1 ! OPTIONSCO ! OPTION SELECTEDSolaris 2.x ! OPTIONSunOS 4.x ! OPTIONUltrix ! OPTIONUnixWare ! OPTIONOTHER: ! /SELECTBR ! Operating system, if other: input type=text name=other size=5 ! OS Version: input type=text name=version size=5br ! Version of Apache being used: input type=text name=aversion size-5BR ! ! Extra modules used: input type=text name=modules size=45 ! ! P ! ! What are the symptoms of the bug you are seeing?BR ! ! textarea rows=10 cols=50 name=symptoms/textarea ! ! P ! ! If you have a URL to an object which exhibits this bug, ! please post it here:BR ! ! input type=text name=urlprob size=50 ! ! P ! ! If the bug created a core file, and you have codegdb/code or ! codedbx/code installed, please do a backtrace showing where the ! segmentation fault occured, and paste that in right here:BR ! ! textarea rows=10 cols=50 name=backtrace/textarea ! ! P ! ! input type=submit value=Submit bug report ! ! P ! /FORM ! ! /BODY/HTML --- 6,44 IMG SRC=images/apache_sub.gif ALT= H2Apache Bug Reporting Page/H2 ! PWelcome to the Apache Bug Reporting Page! If you are having trouble ! with Apache, ! please fill this out and submit it. Before you do that, though, make ! bsure/b you have:/P OL LIMade sure the bug exists in A href=dist/the most recent version/A of ! Apache. LIChecked the A href=docs/misc/known_bugs.htmlknown bugs/A page. ! LIChecked the A href=docs/misc/compat_notes.htmlcompatibility ! notes/A page. LIFollowed the instructions in the codeINSTALL/code file correctly - you edited the codeConfiguration/code file to set the right platform ! and ran the codeConfigure/code script to create the new ! codeMakefile/code. ! LITried compiling with only the distributed set of modules (so that we ! can make sure ! it's an Apache bug and not a bug in a module provided by someone else). /OL ! PIf you have done all of the preceding, then please select the button ! below and fill out the form, ! and we will respond to it as soon as we can. ! /P ! FORM ACTION=http://www.apache.org/bugdb.cgi; ! INPUT TYPE=submit VALUE=Search for/submit
cvs commit: apache/htdocs/manual vhosts-in-depth.html
dgaudet 97/03/23 11:26:43 Modified:htdocs/manual vhosts-in-depth.html Log: Added some more notes based on observations from Brent Holland [EMAIL PROTECTED]. Revision ChangesPath 1.2 +29 -9 apache/htdocs/manual/vhosts-in-depth.html Index: vhosts-in-depth.html === RCS file: /export/home/cvs/apache/htdocs/manual/vhosts-in-depth.html,v retrieving revision 1.1 retrieving revision 1.2 diff -C3 -r1.1 -r1.2 *** vhosts-in-depth.html 1997/03/20 23:31:45 1.1 --- vhosts-in-depth.html 1997/03/23 19:26:42 1.2 *** *** 56,62 first name in its codeVirtualHost/code directive. The complete list of names in the codeVirtualHost/code directive are treated just like a codeServerAlias/code (but are not overridden by any ! codeServerAlias/code statement). p All vhosts are stored in a list which is in the reverse order that --- 56,64 first name in its codeVirtualHost/code directive. The complete list of names in the codeVirtualHost/code directive are treated just like a codeServerAlias/code (but are not overridden by any ! codeServerAlias/code statement). Note that subsequent codePort/code ! statements for this vhost will not affect the ports assigned in the ! address set. p All vhosts are stored in a list which is in the reverse order that *** *** 118,126 p Now a pass is made through the vhosts to fill in any missing codeServerName/code fields and to classify the vhost as either ! an iip-based/i vhost or a iname-based/i vhost. A vhost is an ! ip-based vhost if none of the vhosts address set overlaps the main_server ! address set. Otherwise it is considered a name-based vhost. p For any undefined codeServerName/code fields, a name-based vhost defaults to the address given first in the codeVirtualHost/code --- 120,130 p Now a pass is made through the vhosts to fill in any missing codeServerName/code fields and to classify the vhost as either ! an iip-based/i vhost or a iname-based/i vhost. A vhost is ! considered a name-based vhost if any of its address set overlaps the ! main_server (the port associated with each address must match the ! main_server's codePort/code). Otherwise it is considered an ip-based ! vhost. p For any undefined codeServerName/code fields, a name-based vhost defaults to the address given first in the codeVirtualHost/code *** *** 141,147 p codefind_virtual_server/code: When the connection is first made by the client, the local ip address (the ip address to which the client connected) is looked up in the server list. A vhost is matched if it ! is an ip-based vhost, and the ip address matches and the port matches (taking into account wildcards). p If no vhosts are matched then the last occurance, if it appears, --- 145,151 p codefind_virtual_server/code: When the connection is first made by the client, the local ip address (the ip address to which the client connected) is looked up in the server list. A vhost is matched if it ! is an ip-based vhost, the ip address matches and the port matches (taking into account wildcards). p If no vhosts are matched then the last occurance, if it appears, *** *** 185,191 of this match is to compare any port, if one was given in the request, against the codePort/code field of the connection vhost. If there's a mismatch then the vhost used for the request is the connection vhost. ! (This is probably a bug.) p If the port matches, then httpd scans the list of vhosts starting with --- 189,195 of this match is to compare any port, if one was given in the request, against the codePort/code field of the connection vhost. If there's a mismatch then the vhost used for the request is the connection vhost. ! (This is a bug, see observations.) p If the port matches, then httpd scans the list of vhosts starting with *** *** 199,206 codeServerName/code and codePort/code. li Compare the request hostname against any and all addresses given in ! the codeVirtualHost/code directive for this vhost. i(n.b. this ! assumes Dean's VirtualHost confusion patch is accepted.)/i li Compare the request hostname against the codeServerAlias/code given for the vhost. --- 203,209 codeServerName/code and codePort/code. li Compare the request hostname against any and all addresses given in ! the codeVirtualHost/code directive for this vhost. li Compare the request hostname against the codeServerAlias/code given for the vhost. *** *** 275,281 another codeServerPath/code directive
cvs commit: apache/src CHANGES alloc.c http_config.c http_log.c http_main.c mod_log_agent.c mod_log_config.c mod_log_referer.c mod_mime.c mod_rewrite.c util.c
dgaudet 97/03/22 15:51:10 Modified:src CHANGES alloc.c http_config.c http_log.c http_main.c mod_log_agent.c mod_log_config.c mod_log_referer.c mod_mime.c mod_rewrite.c util.c Log: errno reporting cleanup. popenf, pclosef, spawn_child all return valid errno. Reviewed by: Chuck, Jim Revision ChangesPath 1.209 +5 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.208 retrieving revision 1.209 diff -C3 -r1.208 -r1.209 *** CHANGES 1997/03/20 23:30:48 1.208 --- CHANGES 1997/03/22 23:51:00 1.209 *** *** 1,5 --- 1,10 Changes with Apache 1.2b8 + *) Report extra info from errno with many errors that cause httpd to exit. + spawn_child, popenf, and pclosef now have valid errno returns in the + event of an error. Correct problems where errno was stomped on + before being reported. [Dean Gaudet] + *) In the proxy, if the cache filesystem was full, garbage_coll() was never called, and thus the filesystem would remain full indefinitely. We now also remove incomplete cache files left if the origin server 1.25 +15 -0 apache/src/alloc.c Index: alloc.c === RCS file: /export/home/cvs/apache/src/alloc.c,v retrieving revision 1.24 retrieving revision 1.25 diff -C3 -r1.24 -r1.25 *** alloc.c 1997/03/20 17:10:10 1.24 --- alloc.c 1997/03/22 23:51:01 1.25 *** *** 791,812 --- 791,818 int popenf(pool *a, const char *name, int flg, int mode) { int fd; + int save_errno; block_alarms(); fd = open(name, flg, mode); + save_errno = errno; if (fd = 0) note_cleanups_for_fd (a, fd); unblock_alarms(); + errno = save_errno; return fd; } int pclosef(pool *a, int fd) { int res; + int save_errno; block_alarms(); res = close(fd); + save_errno = errno; kill_cleanup(a, (void *)fd, fd_cleanup); unblock_alarms(); + errno = save_errno; return res; } *** *** 927,950 --- 933,962 int in_fds[2]; int out_fds[2]; int err_fds[2]; + int save_errno; block_alarms(); if (pipe_in pipe (in_fds) 0) { + save_errno = errno; unblock_alarms(); + errno = save_errno; return 0; } if (pipe_out pipe (out_fds) 0) { + save_errno = errno; if (pipe_in) { close (in_fds[0]); close (in_fds[1]); } unblock_alarms(); + errno = save_errno; return 0; } if (pipe_err pipe (err_fds) 0) { + save_errno = errno; if (pipe_in) { close (in_fds[0]); close (in_fds[1]); } *** *** 952,961 --- 964,975 close (out_fds[0]); close (out_fds[1]); } unblock_alarms(); + errno = save_errno; return 0; } if ((pid = fork()) 0) { + save_errno = errno; if (pipe_in) { close (in_fds[0]); close (in_fds[1]); } *** *** 966,971 --- 980,986 close (err_fds[0]); close (err_fds[1]); } unblock_alarms(); + errno = save_errno; return 0; } 1.47 +4 -2 apache/src/http_config.c Index: http_config.c === RCS file: /export/home/cvs/apache/src/http_config.c,v retrieving revision 1.46 retrieving revision 1.47 diff -C3 -r1.46 -r1.47 *** http_config.c 1997/03/20 23:30:48 1.46 --- http_config.c 1997/03/22 23:51:01 1.47 *** *** 759,767 parms.override = (RSRC_CONF|OR_ALL)~(OR_AUTHCFG|OR_LIMIT); if(!(cfg = fopen(fname, r))) { fprintf(stderr,httpd: could not open document config file %s\n, fname); - perror(fopen); exit(1); } --- 759,767 parms.override = (RSRC_CONF|OR_ALL)~(OR_AUTHCFG|OR_LIMIT); if(!(cfg = fopen(fname, r))) { + perror(fopen); fprintf(stderr,httpd: could not open document config file %s\n, fname); exit(1); } *** *** 931,938 getrlimit ( RLIMIT_NOFILE, limits ); if ( limits.rlim_cur limits.rlim_max ) { limits.rlim_cur += 2; ! if ( setrlimit ( RLIMIT_NOFILE, limits ) 0 ) fprintf (stderr, Cannot exceed hard limit for open files); } #endif --- 931,940 getrlimit
cvs commit: apache/htdocs/manual host.html
dgaudet 97/03/22 16:04:20 Modified:htdocs/manual host.html Log: Add another example for when ServerAlias is necessary. Revision ChangesPath 1.6 +7 -0 apache/htdocs/manual/host.html Index: host.html === RCS file: /export/home/cvs/apache/htdocs/manual/host.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C3 -r1.5 -r1.6 *** host.html 1996/12/12 01:09:39 1.5 --- host.html 1997/03/23 00:04:20 1.6 *** *** 80,85 --- 80,92 pNote that you can use code*/code and code?/code as wild-card characters./p + pYou also might need ServerAlias if you are serving local users who + do not always include the domain name. For example, if local users are + familiar with typing www or www.physics then you will need to add + codeServerAlias www www.physics/code. It isn't possible for the + server to know what domain the client uses for their name resolution + because the client doesn't provide that information in the request./p + h2Security Considerations/h2 Apache allows all virtual hosts to be made accessible via the
cvs commit: apache/src CHANGES http_config.c http_main.c http_protocol.c
is ! only available in Apache 1.2 and later.p lt;VirtualHostgt; and lt;/VirtualHostgt; are used to enclose a group of directives which will apply only to a particular virtual host. --- 1271,1284 A name=virtualhosth2lt;VirtualHostgt; directive/h2/A !--%plaintext lt;?INDEX {\tt VirtualHost} section directivegt; -- ! strongSyntax:/strong lt;VirtualHost emaddr/em[:emport/em] ...gt; ... lt;/VirtualHostgt; br strongContext:/strong server configbr strongStatus:/strong Core.br ! strongCompatibility:/strong Non-IP address-based Virtual Hosting only ! available in Apache 1.1 and later.br ! strongCompatibility:/strong Multiple address support only available in ! Apache 1.2 and later.p lt;VirtualHostgt; and lt;/VirtualHostgt; are used to enclose a group of directives which will apply only to a particular virtual host. *** *** 1296,1311 command (if your OS supports it), or with kernel patches like A HREF=../misc/vif-info.htmlVIF/A (for SunOS(TM) 4.1.x)).p ! SECURITY: See the A HREF=../misc/security_tips.htmlsecurity tips/A document for details on why your security could be compromised if the directory where logfiles are stored is writable by anyone other than the user that starts the server. pstrongSee also:/strong A HREF=../virtual-host.htmlInformation on Virtual Hosts. (multihome)/Abr strongSee also:/strong ! a href=../host.htmlNon-IP address-based Virtual Hosts/a /p !--#include virtual=footer.html -- --- 1309,1335 command (if your OS supports it), or with kernel patches like A HREF=../misc/vif-info.htmlVIF/A (for SunOS(TM) 4.1.x)).p ! The special name code_default_/code can be specified in which case ! this virtual host will match any ip address that is not explicitly listed ! in another virtual host. In the absence of any _default_ virtual host ! the main server config, consisting of all those definitions outside ! any VirtualHost section, is used when no match occurs.p ! ! strongSECURITY/strong: See the ! A HREF=../misc/security_tips.htmlsecurity tips/A document for details on why your security could be compromised if the directory where logfiles are stored is writable by anyone other than the user that starts the server. pstrongSee also:/strong + A HREF=../dns-caveats.htmlWarnings about DNS and Apache/abr + strongSee also:/strong A HREF=../virtual-host.htmlInformation on Virtual Hosts. (multihome)/Abr strongSee also:/strong ! a href=../host.htmlNon-IP address-based Virtual Hosts/abr ! strongSee also:/strong ! a href=../vhosts-in-depth.htmlIn-depth description of Virtual Host matching/a /p !--#include virtual=footer.html -- 1.208 +6 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.207 retrieving revision 1.208 diff -C3 -r1.207 -r1.208 *** CHANGES 1997/03/20 18:40:11 1.207 --- CHANGES 1997/03/20 23:30:48 1.208 *** *** 45,50 --- 45,56 *) Fixed server status updating of per-connection counters. [Roy Fielding] + *) Add documentation for DNS issues (reliability and security), and try + to explain the virtual host matching process. [Dean Gaudet] + + *) Try to continue gracefully by disabling the vhost if a DNS lookup + fails while parsing the configuration file. [Dean Gaudet] + *) Workaround to a compiler bug that causes SunOS 4.1.x to panic. [Roy Fielding] 1.46 +5 -6 apache/src/http_config.c Index: http_config.c === RCS file: /export/home/cvs/apache/src/http_config.c,v retrieving revision 1.45 retrieving revision 1.46 diff -C3 -r1.45 -r1.46 *** http_config.c 1997/03/18 09:57:40 1.45 --- http_config.c 1997/03/20 23:30:48 1.46 *** *** 902,909 hep = gethostbyname(w); if ((!hep) || (hep-h_addrtype != AF_INET || !hep-h_addr_list[0])) { ! fprintf (stderr, Cannot resolve host name %s --- exiting!\n, w); ! exit(1); } for( i = 0; hep-h_addr_list[i]; ++i ) { --- 902,910 hep = gethostbyname(w); if ((!hep) || (hep-h_addrtype != AF_INET || !hep-h_addr_list[0])) { ! fprintf (stderr, Cannot resolve host name %s --- ignoring!\n, w); ! if (t != NULL) *t = ':'; ! return; } for( i = 0; hep-h_addr_list[i]; ++i ) { *** *** 953,963 } /* terminate the list */ *addrs = NULL; ! if( s-addrs == NULL ) { ! fprintf( stderr, virtual host must have at least one address\n ); ! exit(1); } - s-port = s-addrs
cvs commit: apache/htdocs/manual dns-caveats.html vhosts-in-depth.html
dgaudet 97/03/20 15:31:45 Added: htdocs/manual dns-caveats.html vhosts-in-depth.html Log: Spoon!
cvs commit: apache/src CHANGES http_protocol.c
dgaudet 97/03/18 19:09:26 Modified:src CHANGES http_protocol.c Log: per_dir_defaults weren't set correctly until directory_walk for name-based vhosts. This fixes an obscure bug with the wrong config info being used for vhosts that share the same ip as the server. Reviewed by: Roy, Ralf, Randy Revision ChangesPath 1.203 +5 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.202 retrieving revision 1.203 diff -C3 -r1.202 -r1.203 *** CHANGES 1997/03/18 10:23:52 1.202 --- CHANGES 1997/03/19 03:09:24 1.203 *** *** 1,5 --- 1,10 Changes with Apache 1.2b8 + *) per_dir_defaults weren't set correctly until directory_walk for + name-based vhosts. This fixes an obscure bug with the wrong config + info being used for vhosts that share the same ip as the server. + [Dean Gaudet] + *) Improved generation of modules/Makefile to be more generic for new module directories. [Ken Coar and Chuck Murcko] 1.108 +3 -0 apache/src/http_protocol.c Index: http_protocol.c === RCS file: /export/home/cvs/apache/src/http_protocol.c,v retrieving revision 1.107 retrieving revision 1.108 diff -C3 -r1.107 -r1.108 *** http_protocol.c 1997/03/07 14:43:52 1.107 --- http_protocol.c 1997/03/19 03:09:24 1.108 *** *** 756,761 --- 756,764 check_hostalias(r); else check_serverpath(r); + + /* we may have switched to another server */ + r-per_dir_config = r-server-lookup_defaults; kill_timeout (r); conn-keptalive = 0; /* We now have a request - so no more short timeouts */
cvs commit: apache/src CHANGES mod_auth_anon.c
dgaudet 97/03/18 19:12:54 Modified:src CHANGES mod_auth_anon.c Log: required an @ or a . in the email address, not both Reviewed by: Dean, Roy, Randy Revision ChangesPath 1.204 +3 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.203 retrieving revision 1.204 diff -C3 -r1.203 -r1.204 *** CHANGES 1997/03/19 03:09:24 1.203 --- CHANGES 1997/03/19 03:12:51 1.204 *** *** 1,5 --- 1,8 Changes with Apache 1.2b8 + *) mod_auth_anon required an @ or a . in the email address, not both. + [Dirk vanGulik] + *) per_dir_defaults weren't set correctly until directory_walk for name-based vhosts. This fixes an obscure bug with the wrong config info being used for vhosts that share the same ip as the server. 1.15 +3 -2 apache/src/mod_auth_anon.c Index: mod_auth_anon.c === RCS file: /export/home/cvs/apache/src/mod_auth_anon.c,v retrieving revision 1.14 retrieving revision 1.15 diff -C3 -r1.14 -r1.15 *** mod_auth_anon.c 1997/03/07 14:15:37 1.14 --- mod_auth_anon.c 1997/03/19 03:12:52 1.15 *** *** 234,241 ( (!sec-auth_anon_mustemail) || strlen(send_pw) ) /* does the password look like an email address ? */ ( (!sec-auth_anon_verifyemail) || ! (strpbrk(@,send_pw) != NULL) || ! (strpbrk(.,send_pw) != NULL) ) ) { if (sec-auth_anon_logemail) { --- 234,242 ( (!sec-auth_anon_mustemail) || strlen(send_pw) ) /* does the password look like an email address ? */ ( (!sec-auth_anon_verifyemail) || ! ((strpbrk(@,send_pw) != NULL) ! ! (strpbrk(.,send_pw) != NULL)) ) ) { if (sec-auth_anon_logemail) {
cvs commit: apache/htdocs/manual/mod core.html
dgaudet 97/03/17 00:16:09 Modified:htdocs/manual/mod core.html Log: Document ScoreBoardfile. Note that PidFile is subject to security concerns as well. Revision ChangesPath 1.41 +29 -1 apache/htdocs/manual/mod/core.html Index: core.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/core.html,v retrieving revision 1.40 retrieving revision 1.41 diff -C3 -r1.40 -r1.41 *** core.html 1997/03/16 23:35:34 1.40 --- core.html 1997/03/17 08:16:07 1.41 *** *** 51,56 --- 51,57 liA HREF=#rlimitmemRLimitMEM/A liA HREF=#rlimitnprocRLimitNPROC/A liA HREF=#satisfySatisfy/A + liA HREF=#scoreboardfileScoreBoardFile/A liA HREF=#sendbuffersizeSendBufferSize/A liA HREF=#serveradminServerAdmin/A liA HREF=#serveraliasServerAlias/A *** *** 877,883 It is often useful to be able to send the server a signal, so that it closes and then reopens its A HREF=#errorlogErrorLog/A and TransferLog, and re-reads its configuration files. This is done by sending a SIGHUP (kill -1) ! signal to the process id listed in the PidFile.phr A name=porth2Port directive/h2/A !--%plaintext lt;?INDEX {\tt Port} directivegt; -- --- 878,889 It is often useful to be able to send the server a signal, so that it closes and then reopens its A HREF=#errorlogErrorLog/A and TransferLog, and re-reads its configuration files. This is done by sending a SIGHUP (kill -1) ! signal to the process id listed in the PidFile.p ! ! The PidFile is subject to the same warnings about log file placement and ! a href=../misc/security_tips.htmlsecurity/a. ! ! phr A name=porth2Port directive/h2/A !--%plaintext lt;?INDEX {\tt Port} directivegt; -- *** *** 1038,1043 --- 1044,1071 Access policy if both allow and require used. The parameter can be either em'all'/em or em'any'/em. + + phr + + A name=scoreboardfileh2ScoreBoardFile directive/h2/A + !--%plaintext lt;?INDEX {\tt ScoreBoardFile} directivegt; -- + strongSyntax:/strong ScoreBoardFile emfilename/embr + strongDefault:/strong codeScoreBoardFile logs/apache_status/codebr + strongContext:/strong server configbr + strongStatus:/strong corep + + The ScoreBoardFile directive is required on some architectures to place + a file that the server will use to communicate between its children and + the parent. The easiest way to find out if your architecture requires + a scoreboard file is to run Apache and see if it creates the file named + by the directive. If your architecture requires it then you must ensure + that this file is not used at the same time by more than one invocation + of Apache.p + + If you have to use a ScoreBoardFile then you may see improved speed by + placing it on a RAM disk. But be careful that you heed the same warnings + about log file placement and + a href=../misc/security_tips.htmlsecurity/a. phr
cvs commit: apache/conf httpd.conf-dist
dgaudet 97/03/17 00:18:19 Modified:conf httpd.conf-dist Log: Try to avoid semi-common error of sharing ScoreBoardFiles. Revision ChangesPath 1.12 +4 -1 apache/conf/httpd.conf-dist Index: httpd.conf-dist === RCS file: /export/home/cvs/apache/conf/httpd.conf-dist,v retrieving revision 1.11 retrieving revision 1.12 diff -C3 -r1.11 -r1.12 *** httpd.conf-dist 1997/02/16 22:48:22 1.11 --- httpd.conf-dist 1997/03/17 08:18:19 1.12 *** *** 66,72 # PidFile: The file the server should log its pid to PidFile logs/httpd.pid ! # ScoreBoardFile: File used to store internal server process information ScoreBoardFile logs/apache_status # ServerName allows you to set a host name which is sent back to clients for --- 66,75 # PidFile: The file the server should log its pid to PidFile logs/httpd.pid ! # ScoreBoardFile: File used to store internal server process information. ! # Not all architectures require this. But if yours does (you'll know because ! # this file is created when you run Apache) then you *must* ensure that ! # no two invocations of Apache share the same scoreboard file. ScoreBoardFile logs/apache_status # ServerName allows you to set a host name which is sent back to clients for
cvs commit: apache/htdocs/manual/mod core.html
dgaudet 97/03/16 15:35:35 Modified:htdocs/manual/mod core.html Log: Typo. Reviewed by: Ken Coar Revision ChangesPath 1.40 +1 -1 apache/htdocs/manual/mod/core.html Index: core.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/core.html,v retrieving revision 1.39 retrieving revision 1.40 diff -C3 -r1.39 -r1.40 *** core.html 1997/03/16 23:34:02 1.39 --- core.html 1997/03/16 23:35:34 1.40 *** *** 656,662 URL. It is comparable to the a href=#directorylt;Directorygt;/a directive, and should be matched with a lt;/Locationgt; directive. Directives that ! apply to the URL given should be listen within. codelt;Locationgt;/code sections are processed in the order they appear in the configuration file, after the lt;Directorygt; sections and code.htaccess/code files are --- 656,662 URL. It is comparable to the a href=#directorylt;Directorygt;/a directive, and should be matched with a lt;/Locationgt; directive. Directives that ! apply to the URL given should be listed within. codelt;Locationgt;/code sections are processed in the order they appear in the configuration file, after the lt;Directorygt; sections and code.htaccess/code files are
cvs commit: apache/src CHANGES http_main.c
dgaudet 97/03/15 12:49:10 Modified:src CHANGES http_main.c Log: Possible workaround to a compiler bug that causes SunOS 4.1.x to panic. Submitted by: Roy Fielding Revision ChangesPath 1.198 +3 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.197 retrieving revision 1.198 diff -C3 -r1.197 -r1.198 *** CHANGES 1997/03/14 03:27:31 1.197 --- CHANGES 1997/03/15 20:49:08 1.198 *** *** 1,5 --- 1,8 Changes with Apache 1.2b8 + *) Workaround to a compiler bug that causes SunOS 4.1.x to panic. + [Roy Fielding] + *) Negotiation changes: Don't output empty content-type in variant list; Output charset in variant list; Return sooner from handle_multi() if no variants found; Add handling of '*' wildcard in Accept-Charset. 1.129 +12 -13apache/src/http_main.c Index: http_main.c === RCS file: /export/home/cvs/apache/src/http_main.c,v retrieving revision 1.128 retrieving revision 1.129 diff -C3 -r1.128 -r1.129 *** http_main.c 1997/03/11 06:04:39 1.128 --- http_main.c 1997/03/15 20:49:09 1.129 *** *** 1552,1567 /* The Nagle algorithm says that we should delay sending partial * packets in hopes of getting more data. We don't want to do * this; we are not telnet. There are bad interactions between ! * P-HTTP and Nagle's algorithm that have very severe performance ! * penalties. (Failing to do disable Nagle is not much of a * problem with simple HTTP.) * * In spite of these problems, failure here is not a shooting offense. */ ! const int just_say_no = 1; ! if (0 != setsockopt(s, IPPROTO_TCP, TCP_NODELAY, (char*)just_say_no, ! sizeof just_say_no)) fprintf(stderr, httpd: could not set socket option TCP_NODELAY\n); } #else --- 1552,1567 /* The Nagle algorithm says that we should delay sending partial * packets in hopes of getting more data. We don't want to do * this; we are not telnet. There are bad interactions between ! * persistent connections and Nagle's algorithm that have very severe ! * performance penalties. (Failing to disable Nagle is not much of a * problem with simple HTTP.) * * In spite of these problems, failure here is not a shooting offense. */ ! int just_say_no = 1; ! if (setsockopt(s, IPPROTO_TCP, TCP_NODELAY, (char*)just_say_no, !sizeof(int)) 0) fprintf(stderr, httpd: could not set socket option TCP_NODELAY\n); } #else *** *** 1842,1849 make_sock(pool *pconf, const struct sockaddr_in *server) { int s; ! const int one = 1; ! const int keepalive_value = 1; if ((s = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)) == -1) { perror(socket); --- 1842,1848 make_sock(pool *pconf, const struct sockaddr_in *server) { int s; ! int one = 1; if ((s = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)) == -1) { perror(socket); *** *** 1855,1868 #ifndef MPE /* MPE does not support SO_REUSEADDR and SO_KEEPALIVE */ ! if((setsockopt(s, SOL_SOCKET,SO_REUSEADDR,(char *)one,sizeof(one))) !== -1) { perror(setsockopt(SO_REUSEADDR)); fprintf(stderr,httpd: could not set socket option SO_REUSEADDR\n); exit(1); } ! if((setsockopt(s, SOL_SOCKET,SO_KEEPALIVE,(char *)keepalive_value, ! sizeof(keepalive_value))) == -1) { perror(setsockopt(SO_KEEPALIVE)); fprintf(stderr,httpd: could not set socket option SO_KEEPALIVE\n); exit(1); --- 1854,1866 #ifndef MPE /* MPE does not support SO_REUSEADDR and SO_KEEPALIVE */ ! if (setsockopt(s, SOL_SOCKET,SO_REUSEADDR,(char *)one,sizeof(int)) 0) { perror(setsockopt(SO_REUSEADDR)); fprintf(stderr,httpd: could not set socket option SO_REUSEADDR\n); exit(1); } ! one = 1; ! if (setsockopt(s, SOL_SOCKET,SO_KEEPALIVE,(char *)one,sizeof(int)) 0) { perror(setsockopt(SO_KEEPALIVE)); fprintf(stderr,httpd: could not set socket option SO_KEEPALIVE\n); exit(1); *** *** 1883,1889 li.l_linger = 900; if (setsockopt(s, SOL_SOCKET, SO_LINGER, ! (char *)li, sizeof(struct linger)) 0) { perror(setsockopt(SO_LINGER)); fprintf(stderr,httpd: could not set socket option SO_LINGER\n); exit(1);
cvs commit: apache/htdocs/manual/mod mod_browser.html
dgaudet 97/03/11 19:00:46 Modified:htdocs/manual/mod mod_browser.html Log: fixed typo Revision ChangesPath 1.7 +1 -1 apache/htdocs/manual/mod/mod_browser.html Index: mod_browser.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_browser.html,v retrieving revision 1.6 retrieving revision 1.7 diff -C3 -r1.6 -r1.7 *** mod_browser.html 1996/12/02 18:14:03 1.6 --- mod_browser.html 1997/03/12 03:00:45 1.7 *** *** 40,46 header. The first argument should be a POSIX.2 extended regular expression (similar to an egrep-style regex). The rest of the arguments give names of variables to set. These take the form of either ! codevarname/code, code!varname/code or codevarname=value/code. In the first form, the value will be set to 1. The second will remove the given variable if already defined, and the third will set the variable to the value given by codevalue/code. If a User-Agent --- 40,46 header. The first argument should be a POSIX.2 extended regular expression (similar to an egrep-style regex). The rest of the arguments give names of variables to set. These take the form of either ! codevarname/code, code!varname/code or codevarname=value/code. In the first form, the value will be set to 1. The second will remove the given variable if already defined, and the third will set the variable to the value given by codevalue/code. If a User-Agent
cvs commit: apache/src http_config.c
dgaudet 97/03/10 01:19:40 Modified:src http_config.c Log: PR#160: invoke_handler() doesn't handle mime arguments in content-type Submitted: Petr Lampa Reviewed: Dean, Randy, Chuck, Jim Revision ChangesPath 1.43 +7 -1 apache/src/http_config.c Index: http_config.c === RCS file: /export/home/cvs/apache/src/http_config.c,v retrieving revision 1.42 retrieving revision 1.43 diff -C3 -r1.42 -r1.43 *** http_config.c 1997/01/26 01:15:11 1.42 --- http_config.c 1997/03/10 09:19:39 1.43 *** *** 314,320 module *modp; handler_rec *handp; char *content_type = r-content_type ? r-content_type : default_type (r); !char *handler = r-handler ? r-handler : content_type; /* Pass one --- direct matches */ --- 314,326 module *modp; handler_rec *handp; char *content_type = r-content_type ? r-content_type : default_type (r); !char *handler, *p; ! !if ((p = strchr(content_type, ';')) != NULL) { /* MIME type arguments */ !while (p content_type p[-1] == ' ') --p; /* strip trailing spaces */ !content_type = pstrndup(r-pool, content_type, p - content_type); !} !handler = r-handler ? r-handler : content_type; /* Pass one --- direct matches */
cvs commit: apache/src CHANGES
dgaudet 97/03/10 01:20:39 Modified:src CHANGES Log: PR#160: invoke_handler() doesn't handle mime arguments in content-type Submitted: Petr Lampa Reviewed: Dean, Randy, Chuck, Jim Revision ChangesPath 1.192 +3 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.191 retrieving revision 1.192 diff -C3 -r1.191 -r1.192 *** CHANGES 1997/03/07 17:43:35 1.191 --- CHANGES 1997/03/10 09:20:38 1.192 *** *** 1,5 --- 1,8 Changes with Apache 1.2b8 + *) invoke_handler() doesn't handle mime arguments in content-type + [Petr Lampa] PR#160 + *) Reduced IdentityCheck timeout to 30 seconds, as per RFC 1413 minimum. [Ken Coar]
cvs commit: apache/src CHANGES alloc.c
dgaudet 97/03/10 01:27:43 Modified:src CHANGES alloc.c Log: Memory allocation problem in push_array() -- it would corrupt memory when nalloc==0. Submitted: Kai Risku [EMAIL PROTECTED] and Roy Fielding Reviewed: Dean, Randy, Chuck Revision ChangesPath 1.193 +4 -1 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.192 retrieving revision 1.193 diff -C3 -r1.192 -r1.193 *** CHANGES 1997/03/10 09:20:38 1.192 --- CHANGES 1997/03/10 09:27:41 1.193 *** *** 1,7 Changes with Apache 1.2b8 *) invoke_handler() doesn't handle mime arguments in content-type ! [Petr Lampa] PR#160 *) Reduced IdentityCheck timeout to 30 seconds, as per RFC 1413 minimum. [Ken Coar] --- 1,10 Changes with Apache 1.2b8 + *) Memory allocation problem in push_array() -- it would corrupt memory + when nalloc==0. [Kai Risku [EMAIL PROTECTED] and Roy Fielding] + *) invoke_handler() doesn't handle mime arguments in content-type ! [Petr Lampa] PR#160 *) Reduced IdentityCheck timeout to 30 seconds, as per RFC 1413 minimum. [Ken Coar] 1.23 +6 -5 apache/src/alloc.c Index: alloc.c === RCS file: /export/home/cvs/apache/src/alloc.c,v retrieving revision 1.22 retrieving revision 1.23 diff -C3 -r1.22 -r1.23 *** alloc.c 1997/01/19 17:43:27 1.22 --- alloc.c 1997/03/10 09:27:41 1.23 *** *** 461,471 void *push_array (array_header *arr) { if (arr-nelts == arr-nalloc) { ! char *new_data = pcalloc (arr-pool, arr-nalloc * arr-elt_size * 2); memcpy (new_data, arr-elts, arr-nalloc * arr-elt_size); arr-elts = new_data; ! arr-nalloc *= 2; } ++arr-nelts; --- 461,474 void *push_array (array_header *arr) { if (arr-nelts == arr-nalloc) { ! int new_size = (arr-nalloc = 0) ? 1 : arr-nalloc * 2; ! char *new_data; ! ! new_data = pcalloc (arr-pool, arr-elt_size * new_size); memcpy (new_data, arr-elts, arr-nalloc * arr-elt_size); arr-elts = new_data; ! arr-nalloc = new_size; } ++arr-nelts; *** *** 477,487 int elt_size = dst-elt_size; if (dst-nelts + src-nelts dst-nalloc) { ! int new_size = dst-nalloc * 2; char *new_data; - if (new_size == 0) ++new_size; - while (dst-nelts + src-nelts new_size) new_size *= 2; --- 480,488 int elt_size = dst-elt_size; if (dst-nelts + src-nelts dst-nalloc) { ! int new_size = (dst-nalloc = 0) ? 1 : dst-nalloc * 2; char *new_data; while (dst-nelts + src-nelts new_size) new_size *= 2;
cvs commit: apache/htdocs/manual/mod index.html
dgaudet 97/03/09 23:46:57 Modified:htdocs/manual/mod index.html Log: fix a thinko Revision ChangesPath 1.10 +1 -1 apache/htdocs/manual/mod/index.html Index: index.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/index.html,v retrieving revision 1.9 retrieving revision 1.10 diff -C3 -r1.9 -r1.10 *** index.html1997/01/24 10:18:16 1.9 --- index.html1997/03/10 07:46:56 1.10 *** *** 46,52 ddStart-time linking with the GNU libdld. dtA HREF=mod_env.htmlmod_env/A ddPassing of environments to CGI scripts ! dtA NAME=mod_expires.htmlmod_expires/A Apache 1.2 and up ddApply Expires: headers to resources dtA HREF=mod_headers.htmlmod_headers/A Apache 1.2 and up ddAdd arbitrary HTTP headers to resources --- 46,52 ddStart-time linking with the GNU libdld. dtA HREF=mod_env.htmlmod_env/A ddPassing of environments to CGI scripts ! dtA HREF=mod_expires.htmlmod_expires/A Apache 1.2 and up ddApply Expires: headers to resources dtA HREF=mod_headers.htmlmod_headers/A Apache 1.2 and up ddAdd arbitrary HTTP headers to resources