cvs commit: apachen/src/main http_main.c
coar98/01/25 10:53:56 Modified:src/main http_main.c Log: Good point; add the NEED_HASHBANG_EMUL display to -V IFF. Revision ChangesPath 1.276 +3 -0 apachen/src/main/http_main.c Index: http_main.c === RCS file: /export/home/cvs/apachen/src/main/http_main.c,v retrieving revision 1.275 retrieving revision 1.276 diff -u -r1.275 -r1.276 --- http_main.c 1998/01/25 18:41:52 1.275 +++ http_main.c 1998/01/25 18:53:55 1.276 @@ -2867,6 +2867,9 @@ #ifdef CHARSET_EBCDIC printf(" -D CHARSET_EBCDIC\n"); #endif +#ifdef NEED_HASHBANG_EMUL +printf(" -D NEED_HASHBANG_EMUL\n"); +#endif printf("\n"); }
cvs commit: apachen/src/main http_main.c
martin 98/01/25 10:41:54 Modified:.STATUS src/main http_main.c Log: More switches are printed for the -V switch now Revision ChangesPath 1.128 +1 -0 apachen/STATUS Index: STATUS === RCS file: /home/cvs/apachen/STATUS,v retrieving revision 1.127 retrieving revision 1.128 diff -u -u -r1.127 -r1.128 --- STATUS1998/01/25 03:55:37 1.127 +++ STATUS1998/01/25 18:41:51 1.128 @@ -133,6 +133,7 @@ for OS's which don't support starting them automatically (enable with #define NEED_HASHBANG_EMUL) * more mod_mime_magic cleanup +* Add more compile time diagnosis to main's -V switch Available Patches: 1.275 +9 -0 apachen/src/main/http_main.c Index: http_main.c === RCS file: /home/cvs/apachen/src/main/http_main.c,v retrieving revision 1.274 retrieving revision 1.275 diff -u -u -r1.274 -r1.275 --- http_main.c 1998/01/24 16:27:55 1.274 +++ http_main.c 1998/01/25 18:41:52 1.275 @@ -2801,6 +2801,9 @@ #ifdef BIG_SECURITY_HOLE printf(" -D BIG_SECURITY_HOLE\n"); #endif +#ifdef SECURITY_HOLE_PASS_AUTHORIZATION +printf(" -D SECURITY_HOLE_PASS_AUTHORIZATION\n"); +#endif #ifdef HTTPD_ROOT printf(" -D HTTPD_ROOT=\"" HTTPD_ROOT "\"\n"); #endif @@ -2857,6 +2860,12 @@ #ifdef PIPE_BUF printf(" -D PIPE_BUF=%ld\n",(long)PIPE_BUF); #endif +#endif +#ifdef MULTITHREAD +printf(" -D MULTITHREAD\n"); +#endif +#ifdef CHARSET_EBCDIC +printf(" -D CHARSET_EBCDIC\n"); #endif printf("\n"); }
cvs commit: apachen/src/ap Makefile.tmpl ap.h ap_execve.c
coar98/01/25 08:13:13 Modified:src/ap Makefile.tmpl ap.h ap_execve.c Log: Fix some indenting issues in ap_execve.c, and fill in the blanks in ap.h and Makefile.tmpl. Revision ChangesPath 1.8 +1 -1 apachen/src/ap/Makefile.tmpl Index: Makefile.tmpl === RCS file: /export/home/cvs/apachen/src/ap/Makefile.tmpl,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- Makefile.tmpl 1998/01/25 01:40:55 1.7 +++ Makefile.tmpl 1998/01/25 16:13:11 1.8 @@ -29,4 +29,4 @@ ap_snprintf.o: $(INCDIR)/conf.h ap_strings.o: $(INCDIR)/httpd.h ap_cpystrn.o: $(INCDIR)/httpd.h -ap_execve.o: $(INCDIR)/httpd.h +ap_execve.o: $(INCDIR)/httpd.h $(INCDIR)/http_log.h 1.4 +3 -2 apachen/src/ap/ap.h Index: ap.h === RCS file: /export/home/cvs/apachen/src/ap/ap.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- ap.h 1998/01/21 19:17:34 1.3 +++ ap.h 1998/01/25 16:13:11 1.4 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995-1998 The Apache Group. All rights reserved. + * Copyright (c) 1998 The Apache Group. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -62,5 +62,6 @@ API_EXPORT(char *) ap_escape_quotes(pool *, const char *); API_EXPORT(int) ap_snprintf(char *, size_t, const char *, ...); API_EXPORT(int) ap_vsnprintf(char *, size_t, const char *, va_list ap); - +int ap_execle(const char *, const char *, ...); +int ap_execve(const char *, const char *argv[], const char *envp[]); #endif /* !APACHE_AP_H */ 1.3 +38 -20apachen/src/ap/ap_execve.c Index: ap_execve.c === RCS file: /export/home/cvs/apachen/src/ap/ap_execve.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ap_execve.c 1998/01/25 02:04:30 1.2 +++ ap_execve.c 1998/01/25 16:13:12 1.3 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995-1998 The Apache Group. All rights reserved. + * Copyright (c) 1998 The Apache Group. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -74,7 +74,7 @@ * local argv[] array. The va_arg logic makes sure we do the right thing. * XXX: malloc() is used because we expect to be overlaid soon. */ -int ap_execle(const char *filename, const char *arg,...) +int ap_execle(const char *filename, const char *arg, ...) { va_list adummy; char **envp; @@ -83,16 +83,18 @@ /* First pass: Count arguments on stack */ va_start(adummy, arg); -for (argc = 0; va_arg(adummy, char *) != NULL; ++argc) +for (argc = 0; va_arg(adummy, char *) != NULL; ++argc) { continue; +} va_end(adummy); argv = (char **) malloc((argc + 2) * sizeof(*argv)); /* Pass two --- copy the argument strings into the result space */ va_start(adummy, arg); -for (argc = 0; (argv[argc] = va_arg(adummy, char *)) != NULL; ++argc) +for (argc = 0; (argv[argc] = va_arg(adummy, char *)) != NULL; ++argc) { continue; +} envp = va_arg(adummy, char **); va_end(adummy); @@ -103,13 +105,14 @@ } int ap_execve(const char *filename, const char *argv[], - const char *envp[]) + const char *envp[]) { const char *argv0 = argv[0]; extern char **environ; -if (envp == NULL) +if (envp == NULL) { envp = (const char **) environ; +} /* Try to execute the file directly first: */ execve(filename, argv, envp); @@ -120,7 +123,8 @@ * EACCES Execute permission is denied for the file. * EACCES Search permission is denied on a component of the path prefix. * EPERM The file system is mounted noexec. - * EPERM The file system is mounted nosuid and the file has an SUID or SGID bit set. + * EPERM The file system is mounted nosuid and the file has an SUID + *or SGID bit set. * E2BIG The argument list is too big. * ENOEXEC The magic number in the file is incorrect. * EFAULT filename points outside your accessible address space. @@ -141,14 +145,16 @@ && (argv = hashbang(filename, argv)) != NULL) { aplog_error(APLOG_MARK, APLOG_NOERRNO|APLOG_DEBUG, NULL, -"Script %s need
cvs commit: apache-devsite commitpolicies.html
fielding98/01/25 01:33:16 Removed: .commitpolicies.html Log: Obsoleted by guidelines.html
cvs commit: apache-devsite guidelines.html index.html
fielding98/01/25 01:08:34 Modified:.guidelines.html index.html Log: Completed draft of project guidelines. I would have added information about the role of release manager of a branch and how we decide when a release should be built, but I didn't want to start inventing policy until the stuff we already do is approved. Revision ChangesPath 1.7 +150 -160 apache-devsite/guidelines.html Index: guidelines.html === RCS file: /export/home/cvs/apache-devsite/guidelines.html,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- guidelines.html 1998/01/20 01:06:07 1.6 +++ guidelines.html 1998/01/25 09:08:33 1.7 @@ -13,13 +13,14 @@ -Apache Project Guidelines and Voting Rules +Apache Project Guidelines DRAFT: These guidelines are not yet approved. -This document defines the rules and guidelines for the Apache Project. +This document defines the guidelines for the +http://dev.apache.org/";>Apache Project. It includes definitions of how conflict is resolved by voting, who is able to vote, and the procedures to follow for proposing and making changes to the Apache products. @@ -32,9 +33,9 @@ to be resolved. - -The following define some common terms: - + +People, Places, and Things + Apache Group The group of volunteers who are responsible for managing the @@ -42,7 +43,7 @@ products of the Apache Project, maintaining the Project's shared resources, speaking on behalf of the Apache Project, resolving license disputes regarding Apache products, and establishing - these rules and guidelines. + these guidelines. Membership in the Apache Group is by invitation only and must be approved by consensus of the active Apache Group members. @@ -76,16 +77,15 @@ CVS All of the Apache products are maintained in shared information - repositories using CVS on + repositories using CVS on dev.apache.org. Only some of the Apache developers have write access to these repositories; everyone has read access via - anonymous CVS. Developers who want write + anonymous CVS. Developers who want write access need to ask for it on the mailing list and, if approved, need to ask the admin of dev.apache.org for a user account. - STATUS @@ -121,7 +121,7 @@ on that issue. All other votes are non-binding. All developers are encouraged to participate in decisions, but the decision itself is made by those who have been long-time contributors to the project. -In other words, the Apache Project is a meritocracy. +In other words, the Apache Project is a minimum-threshold meritocracy. @@ -160,12 +160,15 @@ -An action item requiring consensus must receive +An action item requiring consensus approval must receive at least 3 binding +1 votes and no vetos. -An action item requiring simple approval must receive +An action item requiring majority approval must receive at least 3 binding +1 votes and more +1 votes than -1 votes (i.e., a majority with a minimum -quorum of three positive votes). +quorum of three positive votes). All other action items are considered +to have lazy approval until someone votes -1, +after which point they are decided by either consensus or a majority vote, +depending upon the type of action item. @@ -178,38 +181,6 @@ Types of Action Items - Release Testing - Release Plan - Showstoppers - - Code Changes - Code changes require peer review and testing over a wide range - of server platforms. Therefore, all code changes must pass through - a formal "patch vote", as described below. - All those participating in a patch vote must be willing and able - to test the patched system. However, see the section on - "To Commit, or Not to Commit?" - below, which modifies this paragraph. - - Documentation Changes - Documentation changes are only voted on after (or during) the change. - The author of the changes must notify the mailing list, preferably - in advance of the work to avoid duplicate efforts, of where the - changes are being made. If the changes are to existing documents, - the existing documents should not be replaced until at least - 24 hours after notifying the list. Any group member may veto a - change, but must then provide real assistance to the author - in correcting the problem if it can be corrected, and must rescind - the veto once the problem has been corrected (this may be assumed - in good faith). - - Short Term Plans - Short term plans are announcements that a developer is worki
cvs commit: apachen STATUS
dgaudet 98/01/24 19:55:38 Modified:.STATUS Log: it's almost party time Revision ChangesPath 1.127 +1 -0 apachen/STATUS Index: STATUS === RCS file: /export/home/cvs/apachen/STATUS,v retrieving revision 1.126 retrieving revision 1.127 diff -u -r1.126 -r1.127 --- STATUS1998/01/25 01:40:38 1.126 +++ STATUS1998/01/25 03:55:37 1.127 @@ -132,6 +132,7 @@ * [PORT] Add function to emulate the execution of #! scripts for OS's which don't support starting them automatically (enable with #define NEED_HASHBANG_EMUL) +* more mod_mime_magic cleanup Available Patches:
cvs commit: apachen/htdocs/manual/mod mod_mime_magic.html
dgaudet 98/01/24 19:52:20 Modified:src CHANGES src/modules/standard mod_mime_magic.c htdocs/manual/mod mod_mime_magic.html Log: - no need to use stat() since r->finfo is already what we need - no need to play with atime/mtime crud, the web server doesn't preserve that info normally anyhow - deal with r->finfo.st_mode == 0 || !r->filename (i.e. not a disk file) - don't reference mime_module.type_checker, this should be controlled by the ordering within Configuration - work properly with multiple vhosts - doc update: even prior to this patch, the code was disabled if there was no MimeMagicFile directive. Revision ChangesPath 1.599 +6 -0 apachen/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apachen/src/CHANGES,v retrieving revision 1.598 retrieving revision 1.599 diff -u -r1.598 -r1.599 --- CHANGES 1998/01/25 01:40:53 1.598 +++ CHANGES 1998/01/25 03:52:15 1.599 @@ -1,5 +1,11 @@ Changes with Apache 1.3b4 + *) More mod_mime_magic cleanup: fewer syscalls; should handle "files" + which don't exist on disk more gracefully; handles vhosts properly. + Update documentation to reflect the code -- if there's no + MimeMagicFile directive then the module is not enabled. + [Dean Gaudet] + *) PORT: Some older *nix dialects cannot automatically start scripts which begin with a #! interpreter line (the shell starts the scripts appropriately on these platforms). Apache now supports starting of 1.24 +56 -95apachen/src/modules/standard/mod_mime_magic.c Index: mod_mime_magic.c === RCS file: /export/home/cvs/apachen/src/modules/standard/mod_mime_magic.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- mod_mime_magic.c 1998/01/07 16:46:53 1.23 +++ mod_mime_magic.c 1998/01/25 03:52:18 1.24 @@ -136,9 +136,6 @@ #define MODNAME"mod_mime_magic" #define MIME_MAGIC_DEBUG0 -#ifndef MAGIC -#define MAGIC "conf/magic" -#endif #define MIME_BINARY_UNKNOWN"application/octet-stream" #define MIME_TEXT_UNKNOWN"text/plain" @@ -258,7 +255,7 @@ static int uncompress(request_rec *, int, const unsigned char *, unsigned char **, int); static long from_oct(int, char *); -static int fsmagic(request_rec *r, const char *fn, struct stat *sb); +static int fsmagic(request_rec *r, const char *fn); /* * includes for ASCII substring recognition formerly "names.h" in file @@ -296,7 +293,8 @@ "message/rfc822",/* "mail text", */ "message/news", /* "news text", */ "application/binary",/* "can't happen error on names.h/types", */ -0}; +0 +}; static struct names { char *name; @@ -495,7 +493,6 @@ */ module mime_magic_module; -extern module mime_module; static void *create_magic_server_config(pool *p, server_rec *d) { @@ -511,17 +508,8 @@ palloc(p, sizeof(magic_server_config_rec)); new->magicfile = add->magicfile ? add->magicfile : base->magicfile; -if (add->magic && add->last) { - new->magic = add->magic; - new->last = add->last; -} -else if (base->magic && base->last) { - new->magic = base->magic; - new->last = base->last; -} -else { - new->magic = new->last = NULL; -} +new->magic = NULL; +new->last = NULL; return new; } @@ -545,7 +533,7 @@ static command_rec mime_magic_cmds[] = { {"MimeMagicFile", set_magicfile, NULL, RSRC_CONF, TAKE1, - "Path to MIME Magic file (in file(1) format, default " MAGIC ")"}, + "Path to MIME Magic file (in file(1) format)"}, {NULL} }; @@ -847,15 +835,13 @@ { int fd = 0; unsigned char buf[HOWMANY + 1]; /* one extra for terminating '\0' */ -struct utimbuf utbuf; -struct stat sb; int nbytes = 0; /* number of bytes read from a datafile */ int result; /* * first try judging the file based on its filesystem status */ -switch ((result = fsmagic(r, r->filename, &sb))) { +switch ((result = fsmagic(r, r->filename))) { case DONE: magic_rsl_putchar(r, '\n'); return result; @@ -868,10 +854,6 @@ if ((fd = popenf(r->pool, r->filename, O_RDONLY, 0)) < 0) { /* We can't open it, but we were able to stat it. */ - /* - * if (sb.st_mode & 0002) magic_rsl_puts(r,"writable, "); - * if (sb.st_mode & 0111) magic_rsl_puts(r,"executable, "); - */ aplog_error(APLOG_MARK, APLOG_ERR, r->server, MODNAME ": can't
cvs commit: apachen/src PORTING
dgaudet 98/01/24 18:07:43 Modified:src PORTING Log: note NEED_HASHBANG_EMUL Revision ChangesPath 1.20 +4 -0 apachen/src/PORTING Index: PORTING === RCS file: /export/home/cvs/apachen/src/PORTING,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- PORTING 1998/01/23 00:36:37 1.19 +++ PORTING 1998/01/25 02:07:43 1.20 @@ -334,6 +334,10 @@ an int *len on some architectures and a size_t *len on others. If left undefined apache will default it to int. + NEED_HASHBANG_EMUL: + The execve()/etc. functions on this platform do not deal with #!, + so it must be emulated by Apache. + --- Conclusion: ---
cvs commit: apachen/src/ap ap_execve.c
dgaudet 98/01/24 18:04:31 Modified:src/ap ap_execve.c Log: protect against broken linker/librarians Revision ChangesPath 1.2 +2 -0 apachen/src/ap/ap_execve.c Index: ap_execve.c === RCS file: /export/home/cvs/apachen/src/ap/ap_execve.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ap_execve.c 1998/01/25 01:40:55 1.1 +++ ap_execve.c 1998/01/25 02:04:30 1.2 @@ -281,4 +281,6 @@ } return NULL; } +#else +void ap_execve_is_not_here(void) {} #endif /* NEED_HASHBANG_EMUL */
cvs commit: apachen/src/main conf.h
martin 98/01/24 17:40:57 Modified:.STATUS src CHANGES src/ap Makefile.tmpl src/main conf.h Added: src/ap ap_execve.c Log: Add function to emulate the execution of #! scripts for OS's which don't support starting them automatically (enable with #define NEED_HASHBANG_EMUL) Obtained from: tcsh-6.07.05, written by [EMAIL PROTECTED] (Peter Wemm) Revision ChangesPath 1.126 +3 -0 apachen/STATUS Index: STATUS === RCS file: /home/cvs/apachen/STATUS,v retrieving revision 1.125 retrieving revision 1.126 diff -u -u -r1.125 -r1.126 --- STATUS1998/01/24 19:30:09 1.125 +++ STATUS1998/01/25 01:40:38 1.126 @@ -129,6 +129,9 @@ * Jim's [PATCH] force Unixware to use mmap() scoreboard (before was dependent on ordering of the #defines in http_main.c) * table api cleanup +* [PORT] Add function to emulate the execution of #! scripts + for OS's which don't support starting them automatically + (enable with #define NEED_HASHBANG_EMUL) Available Patches: 1.598 +7 -0 apachen/src/CHANGES Index: CHANGES === RCS file: /home/cvs/apachen/src/CHANGES,v retrieving revision 1.597 retrieving revision 1.598 diff -u -u -r1.597 -r1.598 --- CHANGES 1998/01/24 19:39:46 1.597 +++ CHANGES 1998/01/25 01:40:53 1.598 @@ -1,5 +1,12 @@ Changes with Apache 1.3b4 + *) PORT: Some older *nix dialects cannot automatically start scripts + which begin with a #! interpreter line (the shell starts the scripts + appropriately on these platforms). Apache now supports starting of + "hashbang-scripts" when the NEED_HASHBANG_EMUL define is set. + [Martin Kraemer, with code from [EMAIL PROTECTED] (Peter Wemm) + taken from tcsh] + *) "typedef array_header table" removed from alloc.h, folks should have been writing to use table as if it were an opaque type, but even some standard modules got this wrong. By changing the definition 1.7 +2 -1 apachen/src/ap/Makefile.tmpl Index: Makefile.tmpl === RCS file: /home/cvs/apachen/src/ap/Makefile.tmpl,v retrieving revision 1.6 retrieving revision 1.7 diff -u -u -r1.6 -r1.7 --- Makefile.tmpl 1997/12/30 15:10:42 1.6 +++ Makefile.tmpl 1998/01/25 01:40:55 1.7 @@ -6,7 +6,7 @@ LIB=libap.a -OBJS=ap_signal.o ap_slack.o ap_snprintf.o ap_strings.o ap_cpystrn.o +OBJS=ap_signal.o ap_slack.o ap_snprintf.o ap_strings.o ap_cpystrn.o ap_execve.o .c.o: $(CC) -c $(INCLUDES) $(CFLAGS) $(SPACER) $< @@ -29,3 +29,4 @@ ap_snprintf.o: $(INCDIR)/conf.h ap_strings.o: $(INCDIR)/httpd.h ap_cpystrn.o: $(INCDIR)/httpd.h +ap_execve.o: $(INCDIR)/httpd.h 1.1 apachen/src/ap/ap_execve.c Index: ap_execve.c === /* * Copyright (c) 1995-1998 The Apache Group. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright *notice, this list of conditions and the following disclaimer in *the documentation and/or other materials provided with the *distribution. * * 3. All advertising materials mentioning features or use of this *software must display the following acknowledgment: *"This product includes software developed by the Apache Group *for use in the Apache HTTP server project (http://www.apache.org/)." * * 4. The names "Apache Server" and "Apache Group" must not be used to *endorse or promote products derived from this software without *prior written permission. For written permission, please contact *[EMAIL PROTECTED] * * 5. Redistributions of any form whatsoever must retain the following *acknowledgment: *"This product includes software developed by the Apache Group *for use in the Apache HTTP server project (http://www.apache.org/)." * * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR * ITS CONTRIBUTORS BE LIAB