Re: cvs commit: apache-1.3/src/modules/standard mod_rewrite.c
On 3 Jun 1998 [EMAIL PROTECTED] wrote: rse 98/06/03 05:12:12 Modified:src CHANGES src/modules/standard mod_rewrite.c Log: Fix recently introduced Win32 child spawning code in mod_rewrite.c which was broken because of invalid ap_pstrcat() - strcat() transformation. I'm a little bit confused: Seems like no one has actually compiled Apache with all modules under Win32 just before Jim rolled the 1.3.0 tarball. Because else someone had received a compile error. Hmmm... I knew why I hates to put code into mod_rewrite I couldn't test myself... :-( Why is it using sprintf? No. Code. Should. Use. sprintf. Almost. We have an ap_snprintf. Use it. I don't care if it isn't necessary or you think it isn't necessary or it may not be necessary or you hope it isn't necessary. Always unless you shouldn't. And I see no reason why you shouldn't here. +++ mod_rewrite.c 1998/06/03 12:12:11 1.114 @@ -3190,11 +3190,11 @@ #if defined(WIN32) /* MS Windows */ { -char *pCommand; +char pCommand[MAX_STRING_LEN]; STARTUPINFO si; PROCESS_INFORMATION pi; -pCommand = strcat(SHELL_PATH, /C , cmd, NULL); +sprintf(pCommand, %s /C %s, SHELL_PATH, cmd); memset(si, 0, sizeof(si)); memset(pi, 0, sizeof(pi));
cvs commit: apache-1.3/src/modules/standard mod_unique_id.c
dgaudet 98/06/07 22:32:24 Modified:src CHANGES src/modules/standard mod_unique_id.c Log: fix mod_unique_id to work with 64-bit time_t Submitted by: Alvaro Martinez Echevarria [EMAIL PROTECTED] Revision ChangesPath 1.894 +4 -0 apache-1.3/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v retrieving revision 1.893 retrieving revision 1.894 diff -u -r1.893 -r1.894 --- CHANGES 1998/06/07 13:16:40 1.893 +++ CHANGES 1998/06/08 05:32:22 1.894 @@ -1,5 +1,9 @@ Changes with Apache 1.3.1 + *) mod_unique_id did not work on alpha linux (in general on any + architecture that has 64-bit time_t). + [Alvaro Martinez Echevarria [EMAIL PROTECTED]] + *) PORT: Make SCO 5 (and probably 3) compile again. [Ben Laurie] *) PORT: NCR MPRAS systems have the same bug with SIGHUP restart that 1.16 +88 -45apache-1.3/src/modules/standard/mod_unique_id.c Index: mod_unique_id.c === RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_unique_id.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- mod_unique_id.c 1998/04/11 12:00:53 1.15 +++ mod_unique_id.c 1998/06/08 05:32:24 1.16 @@ -59,6 +59,7 @@ * mod_unique_id.c: generate a unique identifier for each request * * Original author: Dean Gaudet [EMAIL PROTECTED] + * UUencoding modified by: Alvaro Martinez Echevarria [EMAIL PROTECTED] */ #include httpd.h @@ -71,11 +72,11 @@ #endif typedef struct { -time_t stamp; +unsigned int stamp; unsigned int in_addr; unsigned int pid; unsigned short counter; -} unique_id_rec; +} unique_id_rec; /* Comments: * @@ -125,11 +126,35 @@ * procedure will ensure that the new space of identifiers is completely unique * from the old space. (Since the first four unencoded bytes always differ.) */ +/* + * Sun Jun 7 05:43:49 CEST 1998 -- Alvaro + * More comments: + * 1) The UUencoding prodecure is now done in a general way, avoiding the problems + * with sizes and paddings that can arise depending on the architecture. Now the + * offsets and sizes of the elements of the unique_id_rec structure are calculated + * in unique_id_global_init; and then used to duplicate the structure without the + * paddings that might exist. The multithreaded server fix should be now very easy: + * just add a new tid field to the unique_id_rec structure, and increase by one + * UNIQUE_ID_REC_MAX. + * 2) unique_id_rec.stamp has been changed from time_t to unsigned int, because + * its size is 64bits on some platforms (linux/alpha), and this caused problems with + * htonl/ntohl. Well, this shouldn't be a problem till year 2106. + */ static unsigned global_in_addr; static APACHE_TLS unique_id_rec cur_unique_id; +/* + * Number of elements in the structure unique_id_rec. + */ +#define UNIQUE_ID_REC_MAX 4 + +static unsigned short unique_id_rec_offset[UNIQUE_ID_REC_MAX], + unique_id_rec_size[UNIQUE_ID_REC_MAX], + unique_id_rec_total_size, + unique_id_rec_size_uu; + static void unique_id_global_init(server_rec *s, pool *p) { #ifndef MAXHOSTNAMELEN @@ -142,18 +167,23 @@ #endif /* - * First of all, verify some assumptions that have been made about the - * contents of unique_id_rec. We do it this way because it isn't - * affected by trailing padding. + * Calculate the sizes and offsets in cur_unique_id. */ -if (XtOffsetOf(unique_id_rec, counter) + sizeof(cur_unique_id.counter) -!= 14) { -ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_ALERT, s, -mod_unique_id: sorry the size assumptions are wrong -in mod_unique_id.c, please remove it from your server -or fix the code!); -exit(1); -} +unique_id_rec_offset[0] = XtOffsetOf(unique_id_rec, stamp); +unique_id_rec_size[0] = sizeof(cur_unique_id.stamp); +unique_id_rec_offset[1] = XtOffsetOf(unique_id_rec, in_addr); +unique_id_rec_size[1] = sizeof(cur_unique_id.in_addr); +unique_id_rec_offset[2] = XtOffsetOf(unique_id_rec, pid); +unique_id_rec_size[2] = sizeof(cur_unique_id.pid); +unique_id_rec_offset[3] = XtOffsetOf(unique_id_rec, counter); +unique_id_rec_size[3] = sizeof(cur_unique_id.counter); +unique_id_rec_total_size = unique_id_rec_size[0] + unique_id_rec_size[1] + + unique_id_rec_size[2] + unique_id_rec_size[3]; + +/* + * Calculate the size of the structure when uuencoded. +
cvs commit: apache-1.3/src/main alloc.c
dgaudet 98/06/07 22:39:56 Modified:src CHANGES src/main alloc.c Log: fix typo Submitted by: Alvaro Martinez Echevarria Revision ChangesPath 1.895 +2 -0 apache-1.3/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v retrieving revision 1.894 retrieving revision 1.895 diff -u -r1.894 -r1.895 --- CHANGES 1998/06/08 05:32:22 1.894 +++ CHANGES 1998/06/08 05:39:53 1.895 @@ -1,5 +1,7 @@ Changes with Apache 1.3.1 + *) Fix a typo in pool debugging code. [Alvaro Martinez Echevarria] + *) mod_unique_id did not work on alpha linux (in general on any architecture that has 64-bit time_t). [Alvaro Martinez Echevarria [EMAIL PROTECTED]] 1.95 +1 -1 apache-1.3/src/main/alloc.c Index: alloc.c === RCS file: /export/home/cvs/apache-1.3/src/main/alloc.c,v retrieving revision 1.94 retrieving revision 1.95 diff -u -r1.94 -r1.95 --- alloc.c 1998/05/28 22:09:50 1.94 +++ alloc.c 1998/06/08 05:39:55 1.95 @@ -1178,7 +1178,7 @@ abort(); } if (!ap_pool_is_ancestor(ap_find_pool(val), t-a.pool)) { - fprintf(stderr, table_set: key not in ancestor pool of t\n); + fprintf(stderr, table_set: val not in ancestor pool of t\n); abort(); } }
cvs commit: apache-1.3/src/modules/standard mod_usertrack.c
dgaudet 98/06/07 23:09:53 Modified:src CHANGES src/modules/standard mod_usertrack.c Log: don't hammer the hostname... it's a constant string... note I changed the cookie format to include the FQDN, I don't see why it doesn't include the FQDN. PR: 2366 Revision ChangesPath 1.896 +4 -0 apache-1.3/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v retrieving revision 1.895 retrieving revision 1.896 diff -u -r1.895 -r1.896 --- CHANGES 1998/06/08 05:39:53 1.895 +++ CHANGES 1998/06/08 06:09:51 1.896 @@ -1,5 +1,9 @@ Changes with Apache 1.3.1 + *) mod_usertrack was corrupting the client hostname. As part of the + fix, the cookie values were slightly extended to include the + fully qualified hostname of the client. [Dean Gaudet] PR#2366 + *) Fix a typo in pool debugging code. [Alvaro Martinez Echevarria] *) mod_unique_id did not work on alpha linux (in general on any 1.35 +3 -7 apache-1.3/src/modules/standard/mod_usertrack.c Index: mod_usertrack.c === RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_usertrack.c,v retrieving revision 1.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- mod_usertrack.c 1998/04/11 12:00:53 1.34 +++ mod_usertrack.c 1998/06/08 06:09:52 1.35 @@ -137,13 +137,9 @@ /* 1024 == hardcoded constant */ char cookiebuf[1024]; char *new_cookie; -char *dot; const char *rname = ap_get_remote_host(r-connection, r-per_dir_config, REMOTE_NAME); -if ((dot = strchr(rname, '.'))) -*dot = '\0';/* First bit of hostname */ - #if defined(NO_GETTIMEOFDAY) !defined(NO_TIMES) /* We lack gettimeofday(), so we must use time() to obtain the epoch seconds, and then times() to obtain CPU clock ticks (milliseconds). @@ -151,7 +147,7 @@ mpe_times = times(mpe_tms); -ap_snprintf(cookiebuf, sizeof(cookiebuf), %s%d%ld%ld, rname, (int) getpid(), +ap_snprintf(cookiebuf, sizeof(cookiebuf), %s.%d%ld%ld, rname, (int) getpid(), (long) r-request_time, (long) mpe_tms.tms_utime); #elif defined(WIN32) /* @@ -160,13 +156,13 @@ * was started. It should be relatively unique. */ -ap_snprintf(cookiebuf, sizeof(cookiebuf), %s%d%ld%ld, rname, (int) getpid(), +ap_snprintf(cookiebuf, sizeof(cookiebuf), %s.%d%ld%ld, rname, (int) getpid(), (long) r-request_time, (long) GetTickCount()); #else gettimeofday(tv, tz); -ap_snprintf(cookiebuf, sizeof(cookiebuf), %s%d%ld%d, rname, (int) getpid(), +ap_snprintf(cookiebuf, sizeof(cookiebuf), %s.%d%ld%d, rname, (int) getpid(), (long) tv.tv_sec, (int) tv.tv_usec / 1000); #endif
cvs commit: apache-1.3/src CHANGES
dgaudet 98/06/07 23:26:15 Modified:src CHANGES Log: PR#2229 same problem as 2366 Revision ChangesPath 1.897 +1 -1 apache-1.3/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v retrieving revision 1.896 retrieving revision 1.897 diff -u -r1.896 -r1.897 --- CHANGES 1998/06/08 06:09:51 1.896 +++ CHANGES 1998/06/08 06:26:14 1.897 @@ -2,7 +2,7 @@ *) mod_usertrack was corrupting the client hostname. As part of the fix, the cookie values were slightly extended to include the - fully qualified hostname of the client. [Dean Gaudet] PR#2366 + fully qualified hostname of the client. [Dean Gaudet] PR#2229, 2366 *) Fix a typo in pool debugging code. [Alvaro Martinez Echevarria]
cvs commit: apache-1.3/src/modules/proxy proxy_connect.c proxy_ftp.c proxy_http.c
martin 98/06/08 07:23:51 Modified:src/modules/proxy proxy_connect.c proxy_ftp.c proxy_http.c Log: Globally replaced HTTP/1.0 return codes by HTTP/1.1 ones. (proxy only) Revision ChangesPath 1.29 +2 -2 apache-1.3/src/modules/proxy/proxy_connect.c Index: proxy_connect.c === RCS file: /home/cvs/apache-1.3/src/modules/proxy/proxy_connect.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -u -r1.28 -r1.29 --- proxy_connect.c 1998/05/27 22:56:04 1.28 +++ proxy_connect.c 1998/06/08 14:23:50 1.29 @@ -162,7 +162,7 @@ if (sock == -1) { ap_log_error(APLOG_MARK, APLOG_ERR, r-server, proxy: error creating socket); - return SERVER_ERROR; + return HTTP_INTERNAL_SERVER_ERROR; } #ifndef WIN32 @@ -173,7 +173,7 @@ found, you probably need to rebuild Apache with a larger FD_SETSIZE, sock, FD_SETSIZE); ap_pclosesocket(r-pool, sock); - return SERVER_ERROR; + return HTTP_INTERNAL_SERVER_ERROR; } #endif 1.61 +22 -22apache-1.3/src/modules/proxy/proxy_ftp.c Index: proxy_ftp.c === RCS file: /home/cvs/apache-1.3/src/modules/proxy/proxy_ftp.c,v retrieving revision 1.60 retrieving revision 1.61 diff -u -u -r1.60 -r1.61 --- proxy_ftp.c 1998/05/27 22:56:05 1.60 +++ proxy_ftp.c 1998/06/08 14:23:50 1.61 @@ -499,7 +499,7 @@ /* we only support GET and HEAD */ if (r-method_number != M_GET) - return NOT_IMPLEMENTED; + return HTTP_NOT_IMPLEMENTED; /* allocate a buffer for the response message */ resplen = MAX_STRING_LEN; @@ -572,7 +572,7 @@ if (sock == -1) { ap_log_error(APLOG_MARK, APLOG_ERR, r-server, proxy: error creating socket); - return SERVER_ERROR; + return HTTP_INTERNAL_SERVER_ERROR; } if (conf-recv_buffer_size) { @@ -590,7 +590,7 @@ ap_log_error(APLOG_MARK, APLOG_ERR, r-server, proxy: error setting reuseaddr option: setsockopt(SO_REUSEADDR)); ap_pclosesocket(p, sock); - return SERVER_ERROR; + return HTTP_INTERNAL_SERVER_ERROR; #endif /*_OSD_POSIX*/ } @@ -641,7 +641,7 @@ } if (i != 220) { ap_kill_timeout(r); - return BAD_GATEWAY; + return HTTP_BAD_GATEWAY; } Explain0(FTP: connected.); @@ -666,12 +666,12 @@ } if (i != 230 i != 331) { ap_kill_timeout(r); - return BAD_GATEWAY; + return HTTP_BAD_GATEWAY; } if (i == 331) { /* send password */ if (password == NULL) - return FORBIDDEN; + return HTTP_FORBIDDEN; ap_bputs(PASS , f); ap_bwrite(f, password, passlen); ap_bputs(CRLF, f); @@ -694,7 +694,7 @@ } if (i != 230 i != 202) { ap_kill_timeout(r); - return BAD_GATEWAY; + return HTTP_BAD_GATEWAY; } } @@ -724,11 +724,11 @@ } if (i == 550) { ap_kill_timeout(r); - return NOT_FOUND; + return HTTP_NOT_FOUND; } if (i != 250) { ap_kill_timeout(r); - return BAD_GATEWAY; + return HTTP_BAD_GATEWAY; } path = strp + 1; @@ -761,7 +761,7 @@ } if (i != 200 i != 504) { ap_kill_timeout(r); - return BAD_GATEWAY; + return HTTP_BAD_GATEWAY; } /* Allow not implemented */ if (i == 504) @@ -775,7 +775,7 @@ proxy: error creating PASV socket); ap_bclose(f); ap_kill_timeout(r); - return SERVER_ERROR; + return HTTP_INTERNAL_SERVER_ERROR; } if (conf-recv_buffer_size) { @@ -798,7 +798,7 @@ ap_pclosesocket(p, dsock); ap_bclose(f); ap_kill_timeout(r); - return SERVER_ERROR; + return HTTP_INTERNAL_SERVER_ERROR; } else { pasv[i - 1] = '\0'; @@ -852,7 +852,7 @@ proxy: error getting socket address); ap_bclose(f); ap_kill_timeout(r); - return SERVER_ERROR; + return HTTP_INTERNAL_SERVER_ERROR; } dsock = ap_psocket(p, PF_INET, SOCK_STREAM, IPPROTO_TCP); @@ -861,7 +861,7 @@ proxy: error creating socket); ap_bclose(f); ap_kill_timeout(r); - return SERVER_ERROR; + return HTTP_INTERNAL_SERVER_ERROR; } if (setsockopt(dsock, SOL_SOCKET, SO_REUSEADDR, (void *) one, @@ -872,7 +872,7 @@ ap_pclosesocket(p, dsock); ap_bclose(f); ap_kill_timeout(r); - return
cvs commit: apache-1.3/htdocs/manual/mod core.html
brian 98/06/08 09:25:37 Modified:htdocs/manual/mod core.html Log: D'oh! Revision ChangesPath 1.123 +1 -1 apache-1.3/htdocs/manual/mod/core.html Index: core.html === RCS file: /export/home/cvs/apache-1.3/htdocs/manual/mod/core.html,v retrieving revision 1.122 retrieving revision 1.123 diff -u -r1.122 -r1.123 --- core.html 1998/06/06 02:30:12 1.122 +++ core.html 1998/06/08 16:25:36 1.123 @@ -914,7 +914,7 @@ HREF=directive-dict.html#Syntax REL=Help STRONGSyntax:/STRONG/A lt;FilesMatch EMregex/EMgt; -... lt;/Filesgt;BR +... lt;/FilesMatchgt;BR A HREF=directive-dict.html#Context REL=Help
cvs commit: apache-1.3/htdocs/manual/vhosts host.html
brian 98/06/08 09:28:37 Modified:htdocs/manual/vhosts host.html Log: Fix link. Revision ChangesPath 1.5 +1 -1 apache-1.3/htdocs/manual/vhosts/host.html Index: host.html === RCS file: /export/home/cvs/apache-1.3/htdocs/manual/vhosts/host.html,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- host.html 1998/05/20 14:22:47 1.4 +++ host.html 1998/06/08 16:28:37 1.5 @@ -123,7 +123,7 @@ private.foo.com/CODE header. It is important to note that this condition exists only if you only implement this policy at the IP layer - all security controls used by Apache (i.e., A -HREF=mod/mod_access.htmlallow, deny from,/A etc.) are consistently +HREF=../mod/mod_access.htmlallow, deny from,/A etc.) are consistently respected. H2Compatibility with Older Browsers/H2
cvs commit: apache-1.3/src/helpers GuessOS
brian 98/06/08 10:04:03 Modified:src/helpers GuessOS Log: Based on private mail with [EMAIL PROTECTED] (Bill Houle), where he said (quoting me) On Jun 7, 11:52am, Brian Behlendorf wrote: } I can't see why you'd ever want $MACHINE to be variable since } all NCR boxes are generic SVR4. I don't see why you couldn't } just move the 'library' test to the list of i486-ncr-sysv4 } above } } Hmm, true. Or at least move them next to each other so it's obvious. I } don't want to break something if there's a reason they're separate like that. } } PS: Should I be anal-retentive and point out that most systems } these days are Pentium based rather than 486, or is 'i486' simply } a convention with no real CPU significance? 'intel' might be a } better (more generic) designation, and I'm sure this applies to } non-NCR systems as well. } } I don't think it has any significance in the code - what does uname -m } result in on your systems? You ready for a good laugh? On the machine I am on this moment, it returns '3435'. On the machine I compiled Apache on Fri night, it returned '5648'. NCR MP-RAS stupidly reports the *model number* of the machine it is running on; ditto for `arch`. Thus, `uname -m` is going to be all over the map depending on the class of box. That is why I said all NCR tests -- including the library test -- should probably result in i486 rather than the machine 'type'(sic). Or, better yet, intel if there's no significance to 'i486' other than as a generic x86 label. Revision ChangesPath 1.40 +2 -6 apache-1.3/src/helpers/GuessOS Index: GuessOS === RCS file: /export/home/cvs/apache-1.3/src/helpers/GuessOS,v retrieving revision 1.39 retrieving revision 1.40 diff -u -r1.39 -r1.40 --- GuessOS 1998/06/07 18:44:22 1.39 +++ GuessOS 1998/06/08 17:04:02 1.40 @@ -189,12 +189,8 @@ echo ${MACHINE}-whatever-sysv4; exit 0 ;; -*:4.0:3.0:[345][0-9]?? | *:4.0:3.0:3[34]??[/,]*) - echo i486-ncr-sysv4; exit 0 - ;; - -library:*) - echo ${MACHINE}-ncr-sysv4; exit 0 +*:4.0:3.0:[345][0-9]?? | *:4.0:3.0:3[34]??[/,]* | library:*) + echo intel-ncr-sysv4; exit 0 ;; ULTRIX:*)
cvs commit: apache-1.3/src Configure
dgaudet 98/06/08 11:06:47 Modified:src Configure Log: tsk tsk brian. update to take into account brian's latest change to ncr. Revision ChangesPath 1.265 +1 -1 apache-1.3/src/Configure Index: Configure === RCS file: /export/home/cvs/apache-1.3/src/Configure,v retrieving revision 1.264 retrieving revision 1.265 diff -u -r1.264 -r1.265 --- Configure 1998/06/06 20:48:52 1.264 +++ Configure 1998/06/08 18:06:43 1.265 @@ -616,7 +616,7 @@ LIBS=$LIBS -lsocket -lnsl DEF_WANTHSREGEX=yes ;; -i486-ncr-sysv4) +*-ncr-sysv4) OS='NCR MP/RAS' CFLAGS=$CFLAGS -DSVR4 -DMPRAS LIBS=$LIBS -lsocket -lnsl -lc -L/usr/ucblib -lucb
cvs commit: apache-1.3/htdocs/manual/mod mod_proxy.html
martin 98/06/08 12:05:15 Modified:htdocs/manual/mod mod_proxy.html Log: Add some more background info about mod_proxy's behaviour; e.g., that CacheRoot effectively enables cacheing Revision ChangesPath 1.39 +18 -4 apache-1.3/htdocs/manual/mod/mod_proxy.html Index: mod_proxy.html === RCS file: /export/home/cvs/apache-1.3/htdocs/manual/mod/mod_proxy.html,v retrieving revision 1.38 retrieving revision 1.39 diff -u -u -r1.38 -r1.39 --- mod_proxy.html1998/03/20 11:11:04 1.38 +++ mod_proxy.html1998/06/08 19:05:15 1.39 @@ -583,8 +583,11 @@ Apache 1.1 and later.P Sets the name of the directory to contain cache files; this must be -writable -by the httpd server. +writable by the httpd server.BR +Setting CODECacheRoot/CODE enables proxy cacheing; without defining +a CODECacheRoot/CODE, proxy functionality will be available +if CODEProxyRequests/CODE are set to CODEOn/CODE, but no +cacheing will be available. HR @@ -621,7 +624,9 @@ Sets the desired space usage of the cache, in KB (1024-byte units). Although usage may grow above this setting, the garbage collection will delete files -until the usage is at or below this setting. +until the usage is at or below this setting.BR +Depending on the expected proxy traffic volume and CODECacheGcInterval/CODE, +use a value which is at least 20 to 40 % lower than the available space. HR @@ -657,7 +662,16 @@ Apache 1.1 and later.P Check the cache every lt;timegt; hours, and delete files if the space -usage is greater than that set by CacheSize. +usage is greater than that set by CacheSize. Note that lt;timegt; accepts a +float value, you could for example use CODECacheGcInterval 1.5/CODE to +check the cache every 90 minutes. (If unset, no garbage collection will +be performed, and the cache will grow indefinitely.) +Note also that the larger the CODECacheGcInterval/CODE, the more +extra space beyond the configured CODECacheSize/CODE will be +needed for the cache between garbage collections.BR !-- +Note that due to a design flaw, Apache does not automatically force a +garbage collection when the available space on the file system where +the cache resides is exhausted. -- HR
cvs commit: apache-1.3/htdocs/manual/misc custom_errordocs.html
martin 98/06/08 12:47:12 Modified:htdocs/manual/misc custom_errordocs.html Log: Update the document to include information about the new ERROR_NOTES variable Revision ChangesPath 1.5 +52 -15apache-1.3/htdocs/manual/misc/custom_errordocs.html Index: custom_errordocs.html === RCS file: /export/home/cvs/apache-1.3/htdocs/manual/misc/custom_errordocs.html,v retrieving revision 1.4 retrieving revision 1.5 diff -u -u -r1.4 -r1.5 --- custom_errordocs.html 1998/05/20 14:22:40 1.4 +++ custom_errordocs.html 1998/06/08 19:47:11 1.5 @@ -25,6 +25,7 @@ LIA HREF=#headfootThe common header and footer files/A LIA HREF=#createdocsCreating ErrorDocuments in different languages/A LIA HREF=#fallbackThe fallback language/A + LIA HREF=#proxyCustomizing Proxy Error Messages/A LIA HREF=#listingsHTML listing of the discussed example/A /UL HR @@ -130,11 +131,11 @@ a .htaccess file in the /errordocs directory: a minor speed optimization. /OL -The resulting SAMPhttpd.conf/SAMP configuration would the look -similar to this: SMALL(Note that you can defrine your own error +The resulting SAMPhttpd.conf/SAMP configuration would then look +similar to this: SMALL(Note that you can define your own error messages using this method for only part of the document tree, e.g., a /~user/ subtree. In this case, the configuration could as well -be put into the .htaccess file at the root of the subtree. In this case, +be put into the .htaccess file at the root of the subtree, and the lt;Directorygt; and lt;/Directorygt; directives -but not the contained directives- must be omitted.)/SMALL PRE @@ -177,10 +178,10 @@ LINo file errordocs/403 should exist. Otherwise, it would be found and served (with the DefaultType, usually text/plain), all negotiation would be bypassed. - LIFor each language for which we have a translation (note that this need not - be the same set of languages for each error code - you can get by - with a single language version until you actually EMhave/EM - translated versions), a document + LIFor each language for which we have an internationalized version + (note that this need not be the same set of languages for each + error code - you can get by with a single language version until + you actually EMhave/EM translated versions), a document SAMPerrordocs/403.shtml.EMlang/EM/SAMP is created and filled with the error text in that language (A HREF=#createdocssee below/A). @@ -222,7 +223,7 @@ CODEfoot.shtml.fr/CODE,BR CODEfoot.shtml.de/CODE,BR CODEfoot.shtml/CODE symlink to CODEfoot.shtml.en/CODEP -Both files are then simply included into the error document by using the +Both files are included into the error document by using the directives CODElt;!--#include virtual=head --gt;/CODE andCODElt;!--#include virtual=foot --gt;/CODE respectively: the rest of the magic occurs in mod_negotiation and @@ -281,6 +282,45 @@ P /P +H2A NAME=proxyCustomizing Proxy Error Messages/A/H2 + +P + As of Apache-1.3, it is possible to use the CODEErrorDocument/CODE + mechanism for proxy error messages as well (previous versions always + returned fixed predefined error messages). +/P +P + Most proxy errors return an error code of [500 Internal Server Error]. + To find out whether a particular error document was invoked on behalf + of a proxy error or because of some other server error, and what the reason + for the failure was, you can check the contents of the new + CODEERROR_NOTES/CODE CGI environment variable: + if invoked for a proxy error, this variable will contain the actual proxy + error message text in HTML form. +/P +P + The following excerpt demonstrates how to exploit the CODEERROR_NOTES/CODE + variable within an error document: +/P +PRE + lt;!--#if expr=\$REDIRECT_ERROR_NOTES\ = \\ --gt; + lt;pgt; + The server encountered an unexpected condition + which prevented it from fulfilling the request. + lt;/pgt; + lt;pgt; + lt;A HREF=mailto:lt;!--#echo var=SERVER_ADMIN --gt; +SUBJECT=Error message [lt;!--#echo var=REDIRECT_STATUS --gt;] lt;!--#echo var=title --gt; for lt;!--#echo var=REQUEST_URI --gt;gt; + Please forward this error screen to lt;!--#echo var=SERVER_NAME --gt;'s + WebMasterlt;/Agt;; it includes useful debugging information about + the Request which caused the error. + lt;pregt;lt;!--#printenv --gt;lt;/pregt; + lt;/pgt; + lt;!--#else --gt; + lt;!--#echo var=REDIRECT_ERROR_NOTES --gt; + lt;!--#endif --gt; +/PRE + H2A NAME=listingsHTML listing of the discussed example/A/H2 So, to summarize our example, here's the complete listing of the @@ -383,12 +423,9 @@ H3More welcome!/H3
cvs commit: apache-1.3/src/main http_main.c
dgaudet 98/06/08 13:32:18 Modified:src/main http_main.c Log: another tiny bit of fallout from the int - ap_wait_t change. Submitted by: Dave Dykstra [EMAIL PROTECTED] Revision ChangesPath 1.362 +1 -1 apache-1.3/src/main/http_main.c Index: http_main.c === RCS file: /export/home/cvs/apache-1.3/src/main/http_main.c,v retrieving revision 1.361 retrieving revision 1.362 diff -u -r1.361 -r1.362 --- http_main.c 1998/06/07 13:16:41 1.361 +++ http_main.c 1998/06/08 20:32:16 1.362 @@ -2144,7 +2144,7 @@ kill((pid = ap_scoreboard_image-parent[n].pid), 0) == -1) { ap_update_child_status(n, SERVER_DEAD, NULL); /* just mark it as having a successful exit status */ - *status = 0; + bzero((char *) status, sizeof(ap_wait_t)); return(pid); } }
cvs commit: apache-1.3/src/helpers findprg.sh
dgaudet 98/06/08 13:36:17 Modified:src/helpers findprg.sh Log: tweak to ralf's recent change which looks for gawk/nawk... it did things in the wrong order -- so it would still use awk if it was in an earlier path rather than preferring gawk/nawk. PR: 2319 Submitted by: Dave Dykstra [EMAIL PROTECTED] Revision ChangesPath 1.2 +9 -8 apache-1.3/src/helpers/findprg.sh Index: findprg.sh === RCS file: /export/home/cvs/apache-1.3/src/helpers/findprg.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- findprg.sh1998/06/05 07:15:19 1.1 +++ findprg.sh1998/06/08 20:36:16 1.2 @@ -43,14 +43,15 @@ fi rm -f $testfile -# iterate over paths -for path in `echo $pathlist |\ - sed -e 's/^:/.:/' \ - -e 's/::/:.:/g' \ - -e 's/:$/:./' \ - -e 's/:/ /g'`; do -# iterate over names -for name in $namelist; do +paths=`echo $pathlist |\ + sed -e 's/^:/.:/' \ + -e 's/::/:.:/g' \ + -e 's/:$/:./' \ + -e 's/:/ /g'` +# iterate over names +for name in $namelist; do +# iterate over paths +for path in $paths; do if [ $minusx $path/$name ] [ ! -d $path/$name ]; then if [ $silent != yes ]; then echo $path/$name