cvs commit: apache-1.3 Makefile.tmpl
rse 99/05/03 03:23:46 Modified:src CHANGES .Makefile.tmpl Log: Add contributors name (Yitzchak Scott-Thoennes) and make install-quiet consistent. Revision ChangesPath 1.1340+1 -1 apache-1.3/src/CHANGES Index: CHANGES === RCS file: /home/cvs/apache-1.3/src/CHANGES,v retrieving revision 1.1339 retrieving revision 1.1340 diff -u -r1.1339 -r1.1340 --- CHANGES 1999/05/02 02:57:59 1.1339 +++ CHANGES 1999/05/03 10:23:44 1.1340 @@ -59,7 +59,7 @@ *) Add support for OS/2 (case insenstive filesystem, .exe suffix, etc) to APACI files and related scripts. - [?? [EMAIL PROTECTED], Ralf S. Engelschall] PR#4269 + [Yitzchak Scott-Thoennes [EMAIL PROTECTED], Ralf S. Engelschall] PR#4269 *) Add support for standalone mode in TPF [Joe Moenich [EMAIL PROTECTED]] 1.81 +1 -1 apache-1.3/Makefile.tmpl Index: Makefile.tmpl === RCS file: /home/cvs/apache-1.3/Makefile.tmpl,v retrieving revision 1.80 retrieving revision 1.81 diff -u -r1.80 -r1.81 --- Makefile.tmpl 1999/05/02 16:42:30 1.80 +++ Makefile.tmpl 1999/05/03 10:23:46 1.81 @@ -242,7 +242,7 @@ # the non-verbose variant for package maintainers install-quiet: - @$(MAKE) -f $(TOP)/$(MKF) $(MFLAGS) $(MFWD) QUIET=1 install + @$(MAKE) -f $(TOP)/$(MKF) $(MFLAGS) $(MFWD) QUIET=1 install-all # create the installation tree install-mktree:
cvs commit: apache-1.3/src/main http_protocol.c
coar99/05/03 08:09:08 Modified:src CHANGES src/main http_protocol.c Log: If we're removing Vary from the response header, force the response to HTTP/1.0 for cache friendliness. Submitted by: Dmitry Khrustalev [EMAIL PROTECTED] Reviewed by: Ken Coar Revision ChangesPath 1.1341+1 -1 apache-1.3/src/CHANGES Index: CHANGES === RCS file: /home/cvs/apache-1.3/src/CHANGES,v retrieving revision 1.1340 retrieving revision 1.1341 diff -u -r1.1340 -r1.1341 --- CHANGES 1999/05/03 10:23:44 1.1340 +++ CHANGES 1999/05/03 15:09:04 1.1341 @@ -34,7 +34,7 @@ *) Add force-no-vary envariable to allow servers to work around clients that choke on Vary fields in the response header. - [Ken Coar] PR#4118 + [Ken Coar, Dmitry Khrustalev [EMAIL PROTECTED]] PR#4118 *) Fixed a bug in mod_dir that causes a child process will infinitely recurse when it attemps to handle a request for a directory wnd the 1.267 +4 -0 apache-1.3/src/main/http_protocol.c Index: http_protocol.c === RCS file: /home/cvs/apache-1.3/src/main/http_protocol.c,v retrieving revision 1.266 retrieving revision 1.267 diff -u -r1.266 -r1.267 --- http_protocol.c 1999/04/29 15:06:52 1.266 +++ http_protocol.c 1999/05/03 15:09:07 1.267 @@ -1476,9 +1476,13 @@ /* * Remove the 'Vary' header field if the client can't handle it. + * Since this will have nasty effects on HTTP/1.1 caches, force + * the response into HTTP/1.0 mode. */ if (ap_table_get(r-subprocess_env, force-no-vary) != NULL) { ap_table_unset(r-headers_out, Vary); + r-proto_num = HTTP_VERSION(1,0); + ap_table_set(r-subprocess_env, force-response-1.0, 1); } ap_hard_timeout(send headers, r);
cvs commit: apache-1.3/src/modules/standard mod_autoindex.c
coar99/05/03 12:05:19 Modified:src CHANGES src/modules/standard mod_autoindex.c Log: Rip loose another piece of mod_autoindex's configuration hairball, breaking the description handling free from the path/filename paradigm used for most of the stuff. Make AddDescription work as documented. PR: 1898, 3072 Revision ChangesPath 1.1342+3 -0 apache-1.3/src/CHANGES Index: CHANGES === RCS file: /home/cvs/apache-1.3/src/CHANGES,v retrieving revision 1.1341 retrieving revision 1.1342 diff -u -r1.1341 -r1.1342 --- CHANGES 1999/05/03 15:09:04 1.1341 +++ CHANGES 1999/05/03 19:05:11 1.1342 @@ -1,5 +1,8 @@ Changes with Apache 1.3.7 + *) Modify mod_autoindex's handling of AddDescription so that the + behaviour matches the documentation. [Ken Coar] PR#1898, 3072. + *) Add functionality to the install-bindist.sh script created by binbuild.sh to use tar when copying distribution files to the serverroot. This allows upgrading an existing installation 1.105 +76 -6 apache-1.3/src/modules/standard/mod_autoindex.c Index: mod_autoindex.c === RCS file: /home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v retrieving revision 1.104 retrieving revision 1.105 diff -u -r1.104 -r1.105 --- mod_autoindex.c 1999/05/01 17:13:04 1.104 +++ mod_autoindex.c 1999/05/03 19:05:17 1.105 @@ -72,6 +72,7 @@ #include http_log.h #include http_main.h #include util_script.h +#include fnmatch.h module MODULE_VAR_EXPORT autoindex_module; @@ -131,6 +132,12 @@ char *data; }; +typedef struct ai_desc_t { +char *pattern; +char *description; +int full_path; +} ai_desc_t; + typedef struct autoindex_config_struct { char *default_icon; @@ -143,8 +150,12 @@ int icon_height; char *default_order; -array_header *icon_list, *alt_list, *desc_list, *ign_list; -array_header *hdr_list, *rdme_list; +array_header *icon_list; +array_header *alt_list; +array_header *desc_list; +array_header *ign_list; +array_header *hdr_list; +array_header *rdme_list; } autoindex_config_rec; @@ -257,10 +268,31 @@ return NULL; } +/* + * Add description text for a filename pattern. Prefix the pattern + * with a wildcard unless it begins with '/' signifying an absolute + * path. If the pattern contains a '/' anywhere, add a slash to the + * prefix so that bar/bletch won't be matched by foobar/bletch, + * and make a note that there's a delimiter; the matching routine + * simplifies to just the actual filename whenever it can. This allows + * definitions in parent directories to be made for files in subordinate + * ones using relative paths. Always postfix with a wildard so that + * partial or leading names will match. + */ static const char *add_desc(cmd_parms *cmd, void *d, char *desc, char *to) { -push_item(((autoindex_config_rec *) d)-desc_list, cmd-info, to, - cmd-path, desc); +autoindex_config_rec *dcfg = (autoindex_config_rec *) d; +ai_desc_t *desc_entry; +char *prefix = ; + +desc_entry = (ai_desc_t *) ap_push_array(dcfg-desc_list); +desc_entry-full_path = (strchr(to, '/') == NULL) ? 0 : 1; +if (*to != '/') { + prefix = desc_entry-full_path ? */ : *; +} +desc_entry-pattern = ap_pstrcat(dcfg-desc_list-pool, + prefix, to, *, NULL); +desc_entry-description = ap_pstrdup(dcfg-desc_list-pool, desc); return NULL; } @@ -530,7 +562,7 @@ new-name_adjust = K_UNSET; new-icon_list = ap_make_array(p, 4, sizeof(struct item)); new-alt_list = ap_make_array(p, 4, sizeof(struct item)); -new-desc_list = ap_make_array(p, 4, sizeof(struct item)); +new-desc_list = ap_make_array(p, 4, sizeof(ai_desc_t)); new-ign_list = ap_make_array(p, 4, sizeof(struct item)); new-hdr_list = ap_make_array(p, 4, sizeof(struct item)); new-rdme_list = ap_make_array(p, 4, sizeof(struct item)); @@ -688,7 +720,6 @@ #define find_icon(d,p,t) find_item(p,d-icon_list,t) #define find_alt(d,p,t) find_item(p,d-alt_list,t) -#define find_desc(d,p) find_item(p,d-desc_list,0) #define find_header(d,p) find_item(p,d-hdr_list,0) #define find_readme(d,p) find_item(p,d-rdme_list,0) @@ -705,6 +736,45 @@ r.content_type = r.content_encoding = NULL; return find_item(r, d-icon_list, 1); +} + +/* + * Look through the list of pattern/description pairs and return the first one + * if any) that matches the filename in the request. If multiple patterns + * match, only
cvs commit: apache-1.3/src/modules/standard mod_autoindex.c
coar99/05/03 13:48:44 Modified:src/modules/standard mod_autoindex.c Log: Improve the filename pattern matching so that we only do wildcard processing when we must, and simple scanning when we can. Revision ChangesPath 1.106 +49 -13apache-1.3/src/modules/standard/mod_autoindex.c Index: mod_autoindex.c === RCS file: /home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v retrieving revision 1.105 retrieving revision 1.106 diff -u -r1.105 -r1.106 --- mod_autoindex.c 1999/05/03 19:05:17 1.105 +++ mod_autoindex.c 1999/05/03 20:48:43 1.106 @@ -136,6 +136,7 @@ char *pattern; char *description; int full_path; +int wildcards; } ai_desc_t; typedef struct autoindex_config_struct { @@ -269,16 +270,27 @@ } /* - * Add description text for a filename pattern. Prefix the pattern - * with a wildcard unless it begins with '/' signifying an absolute - * path. If the pattern contains a '/' anywhere, add a slash to the - * prefix so that bar/bletch won't be matched by foobar/bletch, - * and make a note that there's a delimiter; the matching routine - * simplifies to just the actual filename whenever it can. This allows - * definitions in parent directories to be made for files in subordinate - * ones using relative paths. Always postfix with a wildard so that - * partial or leading names will match. + * Add description text for a filename pattern. If the pattern has + * wildcards already (or we need to add them), add leading and + * trailing wildcards to it to ensure substring processing. If the + * pattern contains a '/' anywhere, force wildcard matching mode, + * add a slash to the prefix so that bar/bletch won't be matched + * by foobar/bletch, and make a note that there's a delimiter; + * the matching routine simplifies to just the actual filename + * whenever it can. This allows definitions in parent directories + * to be made for files in subordinate ones using relative paths. */ + +/* + * Absent a strcasestr() function, we have to force wildcards on + * systems for which AAA and aaa mean the same file. + */ +#ifdef CASE_BLIND_FILESYSTEM +#define WILDCARDS_REQUIRED 1 +#else +#define WILDCARDS_REQUIRED 0 +#endif + static const char *add_desc(cmd_parms *cmd, void *d, char *desc, char *to) { autoindex_config_rec *dcfg = (autoindex_config_rec *) d; @@ -287,11 +299,17 @@ desc_entry = (ai_desc_t *) ap_push_array(dcfg-desc_list); desc_entry-full_path = (strchr(to, '/') == NULL) ? 0 : 1; -if (*to != '/') { +desc_entry-wildcards = (WILDCARDS_REQUIRED + || desc_entry-full_path + || ap_is_fnmatch(to)); +if (desc_entry-wildcards) { prefix = desc_entry-full_path ? */ : *; + desc_entry-pattern = ap_pstrcat(dcfg-desc_list-pool, + prefix, to, *, NULL); } -desc_entry-pattern = ap_pstrcat(dcfg-desc_list-pool, - prefix, to, *, NULL); +else { + desc_entry-pattern = ap_pstrdup(dcfg-desc_list-pool, to); +} desc_entry-description = ap_pstrdup(dcfg-desc_list-pool, desc); return NULL; } @@ -745,6 +763,13 @@ * same as the order in which directives were processed, earlier matching * directives will dominate. */ + +#ifdef CASE_BLIND_FILESYSTEM +#define MATCH_FLAGS FNM_CASE_BLIND +#else +#define MATCH_FLAGS 0 +#endif + static char *find_desc(autoindex_config_rec *dcfg, request_rec *r) { int i; @@ -765,12 +790,23 @@ } for (i = 0; i dcfg-desc_list-nelts; ++i) { ai_desc_t *tuple = list[i]; + int found; /* * Only use the full-path filename if the pattern contains '/'s. */ filename = (tuple-full_path) ? filename_full : filename_only; - if (ap_fnmatch(tuple-pattern, filename, 0) == 0) { + /* + * Make the comparison using the cheapest method; only do + * wildcard checking if we must. + */ + if (tuple-wildcards) { + found = (ap_fnmatch(tuple-pattern, filename, MATCH_FLAGS) == 0); + } + else { + found = (strstr(filename, tuple-pattern) != NULL); + } + if (found) { return tuple-description; } }
cvs commit: apache-1.3 STATUS
coar99/05/03 14:38:02 Modified:.STATUS Log: What the hey, I'll raise my hand. Revision ChangesPath 1.683 +2 -2 apache-1.3/STATUS Index: STATUS === RCS file: /home/cvs/apache-1.3/STATUS,v retrieving revision 1.682 retrieving revision 1.683 diff -u -r1.682 -r1.683 --- STATUS1999/04/17 08:43:26 1.682 +++ STATUS1999/05/03 21:38:01 1.683 @@ -1,9 +1,9 @@ 1.3 STATUS: - Last modified at [$Date: 1999/04/17 08:43:26 $] + Last modified at [$Date: 1999/05/03 21:38:01 $] Release: -1.3.7-dev: current. +1.3.7-dev: current. Ken volunteers to be release manager. 1.3.6. Tagged and rolled on Mar. 22. Released and announced on 24th. 1.3.5: Not released.
cvs commit: apache-1.3/htdocs/manual dso.html
randy 99/05/03 15:47:09 Modified:htdocs/manual dso.html Log: Update some supported platforms. Revision ChangesPath 1.11 +4 -4 apache-1.3/htdocs/manual/dso.html Index: dso.html === RCS file: /home/cvs/apache-1.3/htdocs/manual/dso.html,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- dso.html 1998/12/06 16:14:19 1.10 +++ dso.html 1999/05/03 22:47:08 1.11 @@ -174,15 +174,15 @@ (actually tested versions in parenthesis) PRE -o FreeBSD(2.1.5, 2.2.5, 2.2.6) +o FreeBSD(2.1.5, 2.2.x, 3.x, 4.x) o OpenBSD(2.x) o NetBSD (1.3.1) -o BSDI (4.0) +o BSDI (3.x, 4.x) o Linux (Debian/1.3.1, RedHat/4.2) -o Solaris(2.4, 2.5.1, 2.6) +o Solaris(2.4, 2.5, 2.6, 2.7) o SunOS (4.1.3) o Digital UNIX (4.0) -o IRIX (6.2) +o IRIX (5.3, 6.2) o HP/UX (10.20) o UnixWare (2.01, 2.1.2) o SCO(5.0.4)