Re: PCRE pcreposix.h header missing from Apache 2.2 downloads
On Feb 4, 2008 1:20 PM, William A. Rowe, Jr. <[EMAIL PROTECTED]> wrote: > Arfrever Frehtes Taifersar Arahesis wrote: > > 2008-02-04 20:41:47 David McCreedy napisał(a): > >> It seems that the pcreposix.h header file, which pcreposix.c includes, > isn't > >> in the Apache 2.2 source tree. > >> But I can find it in Apache 2.0 and that version appears to work OK > with 2.2's > >> pcreposix.c. > >> > >> Is the operating system now assumed to have a pcreposix.h header? > >> Or maybe pcreposix.h is auto-generated and I'm just not seeing it? > >> Or is it really missing? And can it be added back? > > See http://svn.apache.org/viewvc?view=rev&revision=153384 > > Thanks. I think I understand now. -David
PCRE pcreposix.h header missing from Apache 2.2 downloads
It seems that the pcreposix.h header file, which pcreposix.c includes, isn't in the Apache 2.2 source tree. But I can find it in Apache 2.0 and that version appears to work OK with 2.2's pcreposix.c. Is the operating system now assumed to have a pcreposix.h header? Or maybe pcreposix.h is auto-generated and I'm just not seeing it? Or is it really missing? And can it be added back? Thanks, -David McCreedy
Re: [VOTE] Apache HTTP Server 1.3.41, 2.0.63 and 2.2.8
+1 for Apache HTTP Server 1.3.41 on TPF -David
Re: [VOTE] Apache 2.2.6, 2.0.61 and 1.3.39 release candidate tarballs for review
Jim Jagielski wrote on Tuesday, September 04, 2007: > This vote will run through Sept 6, 2007 and close > Sept 7, unless otherwise noted... >+/-1 (x == +1) >[ ]apache_1.3.39 >[ ]httpd-2.0.61 >[ ]httpd-2.2.6 +1 for Apache_1.3.39 on TPF (TPF doesn't support Apache 2 yet so no vote on those.) -David
Re: svn commit: r543511 - /httpd/httpd/branches/1.3.x/src/main/http_main.c
>On June 05, 2007 1:45 AM Rüdiger wrote >> On June 04, 2007 5:51 PM David McCreedy wrote: >> I've figured out why some pids aren't being "unset" and I think it could >> affect other platforms besides TPF. >> They're hitting the else part of the "if (child_slot >= 0)" statement in >> http_main.c's standalone_main function. >> I think the unset_pid_table call should be moved before this "if". >> If we're in this section of code, don't we want to remove the pid from the >> table regardless of whether the slot is found in the scoreboard? > >Yes, we want to. Please have a look at r544218 >(http://svn.apache.org/viewvc?view=rev&revision=544218<http://svn.apache.org/viewvc?view=rev&revision=544218>) > > > Rüdiger Perfect. Thanks, -David - Original Message - From: Plüm<mailto:Plüm> ; Rüdiger<mailto:Rüdiger> ; VF-Group<mailto:[EMAIL PROTECTED]> To: dev@httpd.apache.org<mailto:dev@httpd.apache.org> Sent: Tuesday, June 05, 2007 1:45 AM Subject: AW: svn commit: r543511 - /httpd/httpd/branches/1.3.x/src/main/http_main.c -Ursprüngliche Nachricht- Von: David McCreedy Gesendet: Dienstag, 5. Juni 2007 04:29 An: dev@httpd.apache.org<mailto:dev@httpd.apache.org> Betreff: Re: svn commit: r543511 - /httpd/httpd/branches/1.3.x/src/main/http_main.c June 04, 2007 5:51 PM David McCreedy wrote: >On 06/01/2007 05:42 PM, [EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]> wrote: >> >>I think I squashed those. Could you check out >>trunk and try another test? Thanks! >> > >It fixes the "Bad pid" error but I'm not sure all is well... > >On TPF we're not calling unset_pid_table on SIG_IDLE_KILLs. >I'll have to track down why. > > I've figured out why some pids aren't being "unset" and I think it could affect other platforms besides TPF. > They're hitting the else part of the "if (child_slot >= 0)" statement in http_main.c's standalone_main function. > I think the unset_pid_table call should be moved before this "if". > If we're in this section of code, don't we want to remove the pid from the table regardless of whether the slot is found in the scoreboard? Yes, we want to. Please have a look at r544218 (http://svn.apache.org/viewvc?view=rev&revision=544218<http://svn.apache.org/viewvc?view=rev&revision=544218>) Regards Rüdiger
Re: svn commit: r543511 - /httpd/httpd/branches/1.3.x/src/main/http_main.c
June 04, 2007 5:51 PM David McCreedy wrote: >On 06/01/2007 05:42 PM, [EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]> wrote: >> >>I think I squashed those. Could you check out >>trunk and try another test? Thanks! >> > >It fixes the "Bad pid" error but I'm not sure all is well... > >On TPF we're not calling unset_pid_table on SIG_IDLE_KILLs. >I'll have to track down why. > I've figured out why some pids aren't being "unset" and I think it could affect other platforms besides TPF. They're hitting the else part of the "if (child_slot >= 0)" statement in http_main.c's standalone_main function. I think the unset_pid_table call should be moved before this "if". If we're in this section of code, don't we want to remove the pid from the table regardless of whether the slot is found in the scoreboard? -David McCreedy
Re: svn commit: r543511 - /httpd/httpd/branches/1.3.x/src/main/http_main.c
On 06/01/2007 05:42 PM, [EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]> wrote: > >I think I squashed those. Could you check out >trunk and try another test? Thanks! > It fixes the "Bad pid" error but I'm not sure all is well... On TPF we're not calling unset_pid_table on SIG_IDLE_KILLs. I'll have to track down why. It seems OK on Linux but I see SIG_IDLE_KILL being sent twice to the same PID before it calls unset_pid_table. That seems odd to me. -David McCreedy
Re: svn commit: r543511 - /httpd/httpd/branches/1.3.x/src/main/http_main.c
On 06/01/2007 05:42 PM, [EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]> wrote: > Author: jim > Date: Fri Jun 1 08:42:57 2007 > New Revision: 543511 > > URL: > http://svn.apache.org/viewvc?view=rev&rev=543511<http://svn.apache.org/viewvc?view=rev&rev=543511> > Log: > Add in parent process PID table, to provide for > a check against the pid values located in the > scoreboard. > > Modified: > httpd/httpd/branches/1.3.x/src/main/http_main.c > I tried out the code in apache-1.3_20070603161656.tar.gz on TPF because I thought the pid_table stuff might affect the platform. I found some problems in main/http_main.c on both Linux and TPF: 1) The new snprintf calls need to be changed to ap_snprintf for it to compile on TPF (and possibly other platforms without a native snprintf). 2) For both Linux and TPF, idle server maintenance can cause "Bad pid in scoreboard slot" errors: I tied up several children with requests and then let them time out so they'd become idle. (I lowered MinSpareServers to 1 and MaxSpareServers to 3 so it was easy to reach the limits.) This hit the kill(pid, SIG_TIMEOUT_KILL) and kill(pid, SIG_IDLE_KILL) code in perform_idle_server_maintenance. Those same pids showed up later in "Bad pid in scoreboard slot" errors. 3) For both Linux and TPF, "Bad pid in scoreboard slot" errors can loop: I hit this with issue #2 above but presumably you could get it on any in_pid_table error where that scoreboard slot is hit again at a later time... I got looping error messages if the idle child that initially cause the "Bad pid ..." error was the one that perform_idle_server_maintenance was trying to get rid of. An in_pid_table() error writes to the log but leaves the scoreboard slot as-is. So when we come through perform_idle_server_maintenance the next time, the same error is logged for the same slot and pid. Again, and again. Hopefully this is enough information to recreate the issues. If I left something out please let me know. -David McCreedy
Re: [VOTE] Apache HTTP Server 1.3.36 Candidate
+1 for IBM's TPF platform. David McCreedy - Original Message - From: Jim Jagielski To: dev@httpd.apache.org ; testers@httpd.apache.org Sent: Sunday, May 14, 2006 7:34 AM Subject: [VOTE] Apache HTTP Server 1.3.36 Candidate Please test and vote on releasing Apache httpd 1.3.36Download from: http://httpd.apache.org/dev/dist/Changes: http://httpd.apacheorg/dev/dist/CHANGES_1.3MD5s: MD5 (apache_1.3.36.tar.Z) = 2c310916fb97a9d4d700d8b8fad29423 MD5 (apache_1.3.36.tar.gz) = d6c0709fc1f20d6d93d30435fcfc4843(NOTE: http://people.apache.org/~jim/apache_1.3.36/ isalso a valid URL to use until httpd.apache.org syncswith people.apache.org)-- === Jim Jagielski [|] [EMAIL PROTECTED] [|] http:// www.jaguNET.com/ "If you can dodge a wrench, you can dodge a ball."
Re: [VOTE] Apache HTTP Server 1.3.35 Candidate
+1 on IBM's TPF platform. David McCreedy - Original Message - From: Jim Jagielski To: dev@httpd.apache.org ; testers@httpd.apache.org Sent: Monday, April 24, 2006 11:55 AM Subject: [VOTE] Apache HTTP Server 1.3.35 Candidate Please test and vote on releasing Apache httpd 1.3.35Download from: http://httpd.apache.org/dev/dist/Changes: http://httpd.apacheorg/dev/dist/CHANGES_1.3MD5s: MD5 (apache_1.3.35.tar.Z) = e05c80bd0bffcf90df6c66db88106274 MD5 (apache_1.3.35.tar.gz) = 31f99663028828a8b56633e255ee634e-- === Jim Jagielski [|] [EMAIL PROTECTED] [|] http:// www.jaguNET.com/ "If you can dodge a wrench, you can dodge a ball."
Re: Apache HTTP Server 1.3.34 prerelease tarballs
+1 for IBM's TPF operating system. David McCreedy Jim Jagielski wrote:> Look for the Apache HTTP Server 1.3.34 prerelease tarballs in:> > http://httpd.apache.org/dev/dist/> > Please test :)
Re: 1.3.33 RC tarballs available for review
+1 on IBM's TPF operating system. David McCreedy - Original Message - From: Jim Jagielski To: [EMAIL PROTECTED] Sent: Wednesday, October 27, 2004 5:15 PM Subject: 1.3.33 RC tarballs available for review Tarballs for Apache HTTP Server 1.3.33 are available for review.This does not constitute a release, but the opportunity toreview these tarballs in anticipation of one :) http://httpd.apache.org/dev/dist/-- === Jim Jagielski [|] [EMAIL PROTECTED] [|] http://www.jaguNET.com/ "There 10 types of people: those who read binary and everyone else."
Re: Apache HTTP Server 1.3.32 RC Tarballs available for test
+1 Checks out OK on IBM's TPF platform. -David McCreedy - Original Message - From: Jim Jagielski To: [EMAIL PROTECTED] Sent: Monday, October 18, 2004 8:15 PM Subject: Apache HTTP Server 1.3.32 RC Tarballs available for test The RC tarballs for 1.3.32 are available for review and feedback: http://httpd.apache.org/dev/dist/1.3.32 is *not* yet released; these are simply the releasecandidate tarballs.-- === Jim Jagielski [|] [EMAIL PROTECTED] [|] http://www.jaguNET.com/ "There 10 types of people: those who read binary and everyone else."
Re: Time to test...
Builds and tests OK on TPF -David McCreedy - Original Message - From: Jim Jagielski To: [EMAIL PROTECTED] Sent: Friday, October 01, 2004 10:05 AM Subject: Time to test... If you haven't already, please grab 1.3.32-dev HEAD andtest it out. I'd like some additional good feedbackbefore I commit to a T&R. As such, I'd like toimpose a on-hold policy for any more code commits.--=== Jim Jagielski [|] [EMAIL PROTECTED] [|] http://www.jaguNET.com/ "There 10 types of people: those who read binary and everyone else."
Re: cvs commit: apache-1.3/src/os/tpf/samples uri_delims.txt test_char.txt sample_env.txt sample_mak.txt linkhttp.jcl loadset.jcl
>> mccreedy 2004/09/15 16:45:18>>>> src/modules/proxy mod_proxy.h>> Index: mod_proxy.h>> ===>> RCS file: /home/cvs/apache-1.3/src/modules/proxy/mod_proxy.h,v>> retrieving revision 1.62>> retrieving revision 1.63>> diff -u -r1.62 -r1.63>> --- mod_proxy.h 17 Feb 2004 21:52:22 - 1.62>> +++ mod_proxy.h 15 Sep 2004 23:45:18 - 1.63>> @@ -213,7 +213,11 @@>>>> struct per_thread_data {>> struct hostent hpbuf;>> +#ifdef TPF>> + u_int ipaddr;>> +#else>> u_long ipaddr;>> +#endif>> char *charpbuf[2];>> };>64-bit fix for TPF? looks like u_long is a hold-over from the very>old days and we should use in_addr_t wherever it exists, and define>in_addr_t appropriately on other platforms Since I can't #ifdef for the typedef of in_add_t I can only think of three approaches to make this code generic: 1) Change the "u_int ipaddr;" line to "in_addr_t ipaddr;" and let other platforms with in_addr_t add their platforms to the #ifdef TPF. 2) Ditch the #ifdef TPF and change the original "u_long ipaddr;" line to "in_addr_t ipaddr;" for all platforms. This would force the ones that don't have in_addr_t to change (by either typedef'ing in_addr_t to a u_long or by adding an #ifdef fin mod_proxy.h or themselves). 3) Add a flag like "AP_HAVE_IN_ADDR_T to ap_config.h or some other header file and using that to determine if "in_addr_t ipaddr;" should be used in mod_proxy.h. I'd prefer #1, unless there's a 4th option. -David McCreedy
Re: Apache 1.3.30 release candidate tarball available for testing
Tests out OK on IBM's TPF platform. -David Jim Jagielski <[EMAIL PROTECTED]> To 04/12/2004 12:48 [EMAIL PROTECTED] PM cc [EMAIL PROTECTED] Subject Please respond to Apache 1.3.30 release candidate devtarball available for testing At: http://httpd.apache.org/dev/dist/ Please check it out in anticipation for a release tomorrow or so.
Re: 1.3.29 tarballs available for testing, Take II
+1 on IBM's TPF operating system -David Jim Jagielski <[EMAIL PROTECTED]>To: [EMAIL PROTECTED] cc: 10/26/2003 06:46 Subject: 1.3.29 tarballs available for testing, Take II AM Please respond to dev If you've rec'd 2 copies of this (the 1st on Friday), please ignore. The 1.3.29 tarballs are available for testing at: http://httpd.apache.org/dev/dist Feedback desired and welcomed. -- === Jim Jagielski [|] [EMAIL PROTECTED] [|] http://www.jaguNET.com/ "A society that will trade a little liberty for a little order will lose both and deserve neither" - T.Jefferson
Re: 1.3.28 tarballs...
+1 for IBM's TPF. -David Jim Jagielski <[EMAIL PROTECTED]>To: [EMAIL PROTECTED] cc: [EMAIL PROTECTED], [EMAIL PROTECTED], [EMAIL PROTECTED] 07/16/2003 03:04 Subject: 1.3.28 tarballs... PM Please respond to dev Are ready for testing... http://httpd.apache.org/dev/dist/ Looking to announce/release this Friday... We want to move the approved tarballs over as soon as feasible to give mirrors time to grab 'em.
Re: Release of 1.3.28 RSN
IBM's TPF looks good. -David Bill Stoddard <[EMAIL PROTECTED]To: [EMAIL PROTECTED] om> cc: Subject: Re: Release of 1.3.28 RSN 07/16/2003 08:42 AM Please respond to dev Jim Jagielski wrote: > In anticipation of a "very soon" T&R of 1.3.28, please try > out HEAD. All expected patches have been folded in. > Quick spin on Windows looks good. +1 on release. Bill
Re: 1.3.28
It tests out OK on IBM's TPF system. -David "Brad Nicholes" <[EMAIL PROTECTED]To: <[EMAIL PROTECTED]>, <[EMAIL PROTECTED]> .com>cc: Subject: Re: 1.3.28 06/19/2003 09:24 AM Please respond to dev A quick build and run on NetWare looks good. Brad Brad Nicholes Senior Software Engineer Novell, Inc., the leading provider of Net business solutions http://www.novell.com >>> [EMAIL PROTECTED] Thursday, June 19, 2003 9:14:54 AM >>> Jim Jagielski wrote: > OK, let's get 1.3.28 out the door. I'd like to hear some feedback > on whether there is stuff people want to see in this release. > I'd also like some feedback on some testing on the latest HEAD. > It is likely that 1.3.28 will be out there for quite awhile, > so let's get it out soon, but also get it out right. I did quite a bit of banging on HEAD of core code on AIX and Solaris when I tested some recent changes to http_main.c, but I'll bang some more today.
RE: cvs commit: httpd-dist/tools release.sh
I updated install-tpf.html in December but I don't know why this would interfere with your script. (I don't use CVS often and the document handling has always been a mystery for me.) Please let me know if I need to take any action to clear this error. -David McCreedy "Sander Striker" <[EMAIL PROTECTED]To: <[EMAIL PROTECTED]> rg> cc: Subject: RE: cvs commit: httpd-dist/tools release.sh 01/03/2003 02:46 AM Please respond to dev > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] > Sent: Friday, January 03, 2003 10:32 AM > striker 2003/01/03 01:32:17 > > Added: toolsrelease.sh > Log: > A new release script to make rolling releases easier. Derived from > apr-dist/tools/release.sh. > > Revision ChangesPath > 1.1 httpd-dist/tools/release.sh A new release script aimed to replace the in-tree roll release script. It needs some work to gain the same functionality*, but it's a start to make things even easier. Note: it currently fails for 1.3 due to: cvs export: move away apache-1.3.27/htdocs/manual/install-tpf.html; it is in the way I'm sure Jim is able to resolve this in the correct way ;) Jim, could you enlighten me about the 1.3 roll process? I can't seem to find the appropiate httpd_roll_release script. Sander *) So don't use it yet!
[PATCH] Have Makefile.tmpl use the platform's apache/src/os directory
Proposed change to Makefile.tmpl to replace the hardcoded os/unix/os.h dependencies with ones that use the platform's specific os directory. For example, Linux would continue to use os/unix/os.h while TPF would use os/tpf/os.h. -David Index: apache-1.3/src/Makefile.tmpl === RCS file: /home/cvs/apache-1.3/src/Makefile.tmpl,v retrieving revision 1.119 diff -u -d -b -r1.119 Makefile.tmpl --- apache-1.3/src/Makefile.tmpl13 May 2002 08:13:06 - 1.119 +++ apache-1.3/src/Makefile.tmpl27 Dec 2002 20:29:02 - @@ -125,10 +125,10 @@ # DO NOT REMOVE buildmark.o: buildmark.c include/ap_config.h include/ap_mmn.h \ - include/ap_config_auto.h os/unix/os.h include/ap_ctype.h \ + include/ap_config_auto.h $(OSDIR)/os.h include/ap_ctype.h \ include/hsregex.h include/httpd.h include/ap_alloc.h include/buff.h \ include/ap.h include/util_uri.h modules.o: modules.c include/httpd.h include/ap_config.h \ - include/ap_mmn.h include/ap_config_auto.h os/unix/os.h \ + include/ap_mmn.h include/ap_config_auto.h $(OSDIR)/os.h \ include/ap_ctype.h include/hsregex.h include/ap_alloc.h include/buff.h \ include/ap.h include/util_uri.h include/http_config.h
RE: cvs commit: apache-1.3/src/main alloc.c
Yes. Thanks. -David "Bill Stoddard" <[EMAIL PROTECTED]To: <[EMAIL PROTECTED]> om> cc: Subject: RE: cvs commit: apache-1.3/src/main alloc.c 12/16/2002 01:35 PM Please respond to dev Does this patch work for you? Index: alloc.c === RCS file: /home/cvs/apache-1.3/src/main/alloc.c,v retrieving revision 1.132 diff -u -r1.132 alloc.c --- alloc.c8 Dec 2002 20:51:43 - 1.132 +++ alloc.c16 Dec 2002 20:35:19 - @@ -2788,7 +2788,7 @@ timeout_interval = TIMEOUT_INTERVAL; tv.tv_sec = 0; tv.tv_usec = timeout_interval; -select(0, NULL, NULL, NULL, &tv); +ap_select(0, NULL, NULL, NULL, &tv); do { need_timeout = 0; @@ -2806,7 +2806,7 @@ } tv.tv_sec = timeout_interval / 100; tv.tv_usec = timeout_interval % 100; -select(0, NULL, NULL, NULL, &tv); +ap_select(0, NULL, NULL, NULL, &tv); timeout_interval *= 2; } } while (need_timeout); > Can these added "select" calls be changed to "ap_select"? > That way the ap_select #define's in ap_config.h will get applied. > > Sorry for the late feedback. > > -David > > > > > > [EMAIL PROTECTED] > > rg To: > [EMAIL PROTECTED] >cc: > > 11/12/2002 03:44 Subject: cvs commit: > apache-1.3/src/main alloc.c > PM > > Please respond to > > dev > > > > > > > > > > stoddard2002/11/12 14:44:07 > > Modified:src CHANGES >src/main alloc.c > Log: > Update timeout algorithm in free_proc_chain. Try polling the existing > subprocess > a few times before going into a 3 second sleep. Often we find that the > subprocess > will exit within milliseconds. > > Revision ChangesPath > 1.1861+8 -0 apache-1.3/src/CHANGES > > Index: CHANGES > === > RCS file: /home/cvs/apache-1.3/src/CHANGES,v > retrieving revision 1.1860 > retrieving revision 1.1861 > diff -u -r1.1860 -r1.1861 > --- CHANGES12 Nov 2002 19:59:15 - 1.1860 > +++ CHANGES12 Nov 2002 22:44:05 - 1.1861 > @@ -1,4 +1,12 @@ >Changes with Apache 1.3.28 > + *) Update timeout algorithm in free_proc_chain. If a subprocess > + did not exit immediately, the thread would sleep for 3 seconds > + before checking the subprocess exit status again. In a very > + common case when the subprocess was an HTTP server CGI script, > + the CGI script actually exited a fraction of a second into the 3 > + second sleep, which effectively limited the server to serving one > + CGI request every 3 seconds across a persistent connection. > + PRs 6961, 8664 [Bill Stoddard] > > *) mod_setenvif: Add SERVER_ADDR special keyword to allow > envariable setting according to the server IP address > > > > 1.129 +50 -7 apache-1.3/src/main/alloc.c > > Index: alloc.c > === > RCS file: /home/cvs/apache-1.3/src/main/alloc.c,v > retrieving revision 1.128 > retrieving revision 1.129 > diff -u -r1.128 -r1.129 > --- alloc.c7 Sep 2002 22:57:05 - 1.128 > +++ alloc.c12 Nov 2002 22:44:06 - 1.129 > @@ -2624
Re: cvs commit: apache-1.3/src/main alloc.c
Can these added "select" calls be changed to "ap_select"? That way the ap_select #define's in ap_config.h will get applied. Sorry for the late feedback. -David [EMAIL PROTECTED] rg To: [EMAIL PROTECTED] cc: 11/12/2002 03:44 Subject: cvs commit: apache-1.3/src/main alloc.c PM Please respond to dev stoddard2002/11/12 14:44:07 Modified:src CHANGES src/main alloc.c Log: Update timeout algorithm in free_proc_chain. Try polling the existing subprocess a few times before going into a 3 second sleep. Often we find that the subprocess will exit within milliseconds. Revision ChangesPath 1.1861+8 -0 apache-1.3/src/CHANGES Index: CHANGES === RCS file: /home/cvs/apache-1.3/src/CHANGES,v retrieving revision 1.1860 retrieving revision 1.1861 diff -u -r1.1860 -r1.1861 --- CHANGES12 Nov 2002 19:59:15 - 1.1860 +++ CHANGES12 Nov 2002 22:44:05 - 1.1861 @@ -1,4 +1,12 @@ Changes with Apache 1.3.28 + *) Update timeout algorithm in free_proc_chain. If a subprocess + did not exit immediately, the thread would sleep for 3 seconds + before checking the subprocess exit status again. In a very + common case when the subprocess was an HTTP server CGI script, + the CGI script actually exited a fraction of a second into the 3 + second sleep, which effectively limited the server to serving one + CGI request every 3 seconds across a persistent connection. + PRs 6961, 8664 [Bill Stoddard] *) mod_setenvif: Add SERVER_ADDR special keyword to allow envariable setting according to the server IP address 1.129 +50 -7 apache-1.3/src/main/alloc.c Index: alloc.c === RCS file: /home/cvs/apache-1.3/src/main/alloc.c,v retrieving revision 1.128 retrieving revision 1.129 diff -u -r1.128 -r1.129 --- alloc.c7 Sep 2002 22:57:05 - 1.128 +++ alloc.c12 Nov 2002 22:44:06 - 1.129 @@ -2624,15 +2624,28 @@ return pid; } + +/* + * Timing constants for killing subprocesses + * There is a total 3-second delay between sending a SIGINT + * and sending of the final SIGKILL. + * TIMEOUT_INTERVAL should be set to TIMEOUT_USECS / 64 + * for the exponetial timeout alogrithm. + */ +#define TIMEOUT_USECS300 +#define TIMEOUT_INTERVAL 46875 + static void free_proc_chain(struct process_chain *procs) { /* Dispose of the subprocesses we've spawned off in the course of * whatever it was we're cleaning up now. This may involve killing * some of them off... */ - +struct timeval tv; struct process_chain *p; int need_timeout = 0; +int timeout_interval; +int exit_int; int status; if (procs == NULL) @@ -2694,18 +2707,49 @@ if ((p->kill_how == kill_after_timeout) || (p->kill_how == kill_only_once)) { /* Subprocess may be dead already. Only need the timeout if not. */ - if (ap_os_kill(p->pid, SIGTERM) != -1) + if (ap_os_kill(p->pid, SIGTERM) == -1) { +p->kill_how = kill_never; +} +else { need_timeout = 1; +} } else if (p->kill_how == kill_always) { kill(p->pid, SIGKILL); } } -/* Sleep only if we have to... */ - -if (need_timeout) - sleep(3); +/* Sleep only if we have to. The sleep algorithm grows +
Apache 1.3 timeout processing question
I'm struggling with some Apache 1.3 logic and would like some advice in order to make changes specific to the TPF operating system. Various routines call ap_set_callback_and_alarm() to set a timeout value, such as ap_keepalive_timeout() and ap_hard_timeout() in http_main.c. The read in buff.c's ap_read(), which is called by buff_read(), presumably gets interrupted by the alarm if no data is received in the allotted time. On TPF, neither select() nor socket reads are interrupted by signals. So with the initial Apache port to TPF, code was put into buff_read() to do a select on the socket with a hardcoded time of one second. This works OK if the client is quick but otherwise it causes "500 unexpected EOF before status line seen" or "no data returned" errors on the client. It also bypasses the configurable httpd.conf timeout directives, in effect using "Timeout 1" and "KeepAliveTimeout 1". Win32 has special handling to set and retrieve timeout values. (The code is in ap_set_callback_and_alarm and ap_check_alarm respectively). I was thinking along these lines but would like to use more of the main line ap_set_callback_and_alarm processing. I could add this routine to http_main.c to determine the current timeout value: #ifdef TPF API_EXPORT(int) ap_check_alarm(void) { int i; /* determine time left */ /* the 2 seconds is just an arbitrary amount of time to keep the alarm from expiring before it is reset */ i = ap_set_callback_and_alarm(alarm_fn, 2); ap_set_callback_and_alarm(alarm_fn, i); /* restore time left */ return i; /* return time left */ } #endif And then use it in buff.c to control the select prior to the socket read in the TPF-specific code in buff_read: ... /* tv.tv_sec = 1; */ /* <=== old line */ tv.tv_sec = ap_check_alarm(); /* <=== new line */ tv.tv_usec = 0; rv = ap_select(fb->fd_in + 1, &fds, NULL, NULL, &tv); if (rv > 0) rv = ap_read(fb, buf, nbyte); } ... I'm not comfortable with my understanding of Apache timeout processing which is why I'm requesting feedback. Please let me know the pitfalls or merits of taking the above approach. Thank you, -David McCreedy
"[PATCH] EBCDIC fix to ap_strtol.c
This change makes ap_strtol( ) work with EBCDIC, where A-Z/a-z are not contiguous. I have NOT tested it on an ASCII machine to verify that I didn't inadvertently break ap_strtol( ) on ASCII machines. I need someone else to give that a try. Thank you, David McCreedy IBM Index: apache-1.3/src/ap/ap_strtol.c === RCS file: /home/cvs/apache-1.3/src/ap/ap_strtol.c,v retrieving revision 1.7 diff -u -d -b -r1.7 ap_strtol.c --- apache-1.3/src/ap/ap_strtol.c 18 Jun 2002 17:57:59 - 1.7 +++ apache-1.3/src/ap/ap_strtol.c 24 Jun 2002 21:19:02 - @@ -106,9 +106,8 @@ * * Assumes that the upper and lower case * alphabets and digits are each contiguous. - * As such, this will break on EBCDIC machines - * if base is >19. The highest we use is 16 - * so we're OK, but you are warned! + * (On EBCDIC machines it assumes that digits and + * upper/lower case A-I, J-R, and S-Z are contiguous.) */ API_EXPORT(long) ap_strtol(const char *nptr, char **endptr, int base) @@ -173,10 +172,25 @@ for ( ; ; c = *s++) { if (c >= '0' && c <= '9') c -= '0'; +#ifdef CHARSET_EBCDIC + else if (c >= 'A' && c <= 'I') + c -= 'A' - 10; + else if (c >= 'a' && c <= 'i') + c -= 'a' - 10; + else if (c >= 'J' && c <= 'R') + c -= 'J' - 19; + else if (c >= 'j' && c <= 'r') + c -= 'j' - 19; + else if (c >= 'S' && c <= 'Z') + c -= 'S' - 28; + else if (c >= 's' && c <= 'z') + c -= 's' - 28; +#else else if (c >= 'A' && c <= 'Z') c -= 'A' - 10; else if (c >= 'a' && c <= 'z') c -= 'a' - 10; +#endif /* CHARSET_EBCDIC */ else break; if (c >= base)
Re: [TEST PLEASE!!] apache 1.3 and 2.0 nearing release
Builds and runs OK on TPF. -David
Re: tarballs are up for testing
Are there tarballs for 1.3.25 or just 2.0.37? -David Cliff Woolley cc: Subject: tarballs are up for testing 06/11/2002 11:03 AM Please respond to dev ... in http://httpd.apache.org/dev/dist/ --Cliff
[PATCH] TPF InetD change to src/os/tpf/os.c
This patch reworks some of the checks in TPF's os_check_server function to better accommodate TPF's Internet Daemon processing. David McCreedy Index: apache-1.3/src/os/tpf/os.c === RCS file: /home/cvs/apache-1.3/src/os/tpf/os.c,v retrieving revision 1.17 diff -u -d -b -r1.17 os.c --- apache-1.3/src/os/tpf/os.c 19 May 2002 04:55:39 - 1.17 +++ apache-1.3/src/os/tpf/os.c 29 May 2002 14:59:53 - @@ -448,25 +448,25 @@ int os_check_server(char *server) { int *current_acn; -if (zinet_model == INETD_IDCF_MODEL_NOLISTEN) { -/* if NOLISTEN model, check with ZINET for status */ -if (inetd_getServerStatus(server) == INETD_SERVER_STATUS_INACTIVE) { -return 1; -} -/* and check that program activation number hasn't changed */ +/* check that the program activation number hasn't changed */ current_acn = (int *)cinfc_fast(CINFC_CMMACNUM); if (ecbp2()->ce2acn != *current_acn) { -return 1; +return 1; /* shutdown */ } -} else { -/* if DAEMON model, just make sure parent is still around */ +/* check our InetD status */ +if (inetd_getServerStatus(server) != INETD_SERVER_STATUS_ACTIVE) { +return 1; /* shutdown */ +} + +/* if DAEMON model, make sure parent is still around */ +if (zinet_model == INETD_IDCF_MODEL_DAEMON) { if (getppid() == 1) { -return 1; +return 1; /* shutdown */ } } -return 0; +return 0; /* keep on running... */ } void os_note_additional_cleanups(pool *p, int sd) {
[PATCH] TPF doc update of install-tpf.html
Update to the installation instructions for TPF to clarify how to exclude expat-lite from the Apache compilation. Submitted at a customer's request. David McCreedy [EMAIL PROTECTED] Index: httpd-docs-1.3/htdocs/manual/install-tpf.html === RCS file: /home/cvs/httpd-docs-1.3/htdocs/manual/install-tpf.html,v retrieving revision 1.16 diff -u -d -b -r1.16 install-tpf.html --- httpd-docs-1.3/htdocs/manual/install-tpf.html 29 Mar 2002 19:05:54 - 1.16 +++ httpd-docs-1.3/htdocs/manual/install-tpf.html 17 May 2002 15:10:08 - @@ -113,14 +113,14 @@ pax -rvzkf os390_unix_filename.tar.Z -o from=ISO8859-1,to=IBM-1047 "*/src" - + Remove unnecessary subdirectories: - - cd apache_1.3.xx/src/os - - - rm -r bs2000 cygwin mpeix netware os2 os390 win32 + cd apache_1.3.xx/src/lib + rm -r expat-lite sdbm + cd ../os + +rm -r bs2000 cygwin mpeix netware os2 os390 win32 + cd .. @@ -174,11 +174,6 @@ - adjust the rules and - EXTRA_CFLAGS|LIBS|LDFLAGS|INCLUDES if you feel - so inclined - - comment out (by preceding the line with a "#") lines corresponding to those modules you DO NOT wish to include @@ -189,6 +184,14 @@ or add new lines corresponding to any custom modules you have written (the readme-tpf.html document lists the modules that have been tested on TPF) + + if you did not delete the src/lib/expat-lite directory + as noted in the download instructions, + add "Rule EXPAT=no" to the src/Configuration file + + adjust the other rules, EXTRA_CFLAGS, EXTRA_LIBS, +EXTRA_LDFLAGS, + and EXTRA_INCLUDES settings if you feel so inclined + The modules placed in the Apache distribution are the @@ -328,7 +331,7 @@ TPF. - + Run the "Configure" script: Configure @@ -349,7 +352,6 @@ Creating Makefile in os/tpf Creating Makefile in ap Creating Makefile in main - Creating Makefile in lib/expat-lite Creating Makefile in modules/standard $ _ @@ -379,14 +381,12 @@ or find a line with a "\": /\\ - The end of line should display as "\$". If it is displayed as "\ $" (with a blank between \ and $) then you should revert to the distributed version of the file and make the site-specific changes again using a UNIX compatible editor such as vi or emacs. Then try the Configure command again. - close the file: :q (or :quit!) @@ -471,7 +471,6 @@ has been included as src/os/tpf/samples/linkhttp.jcl. You will need to modify this JCL: - Change the IDs, data set names, and libraries for your particular site. @@ -484,8 +483,18 @@ TIP: Do NOT include gen_test_char.o or gen_uri_delims.o in the link JCL since these files are only used during the -make step. +make step. + + +If you receive an "Unresolved references" error for "XML_ErrorString" +you probably need to remove the expat-lite +directory +and start back at the "Run the Configure script" +step + + +If you receive an "unable to open" error for +lib/expat-lite/hashtable.o" +you probably need to remove all of the expat-lite .o's from your link JCL + Create a loadset. Sample loadset JCL has been included as @@ -561,8 +570,6 @@ fopen error while running Apache: - - If you're running a PUT10 or higher version of TPF make the directory using the zfile mkdir /usr/local/apache/logs command. @@ -570,7 +577,7 @@ If you're running TPF version PUT09 TFTP an empty file into the logs subdirectory to create it. - + Make sure Apache can write into the logs subdirectory by doing a zfile chmod on it with the appropriate permission settings.
question about cvs doc trees
I'm trying to understand where the docs live so I can update them properly. Using install-tpf.html for the example... I'm guessing that httpd-docs-1.3/htdocs/manual/install-tpf.html is what shows up on the Apache website. And that apache-1.3/htdocs/manual/install-tpf.html is what shows up in the tarball. Is this correct? -David
[PATCH] resubmission of TPF specific changes for syslog & flags
This is a resubmission of my original patch with Jeff Trawick's suggestions now incorporated... This patch is specific to TPF code and therefore shouldn't affect other platforms. It does the following: 1) Allow the use of Apache's -f, -d, -D, & -X flags on IBM's TPF operating system 2) Allow syslog to be used by Apache on TPF 3) Remove unused expat-lite object files from the sample link JCL Please let me know if you have any concerns or comments. Thank you, David McCreedy [EMAIL PROTECTED] Index: apache-1.3/src/main/http_log.c === RCS file: /home/cvs/apache-1.3/src/main/http_log.c,v retrieving revision 1.93 diff -u -d -b -r1.93 http_log.c --- apache-1.3/src/main/http_log.c 13 Mar 2002 21:05:30 - 1.93 +++ apache-1.3/src/main/http_log.c 16 May 2002 04:39:38 - @@ -339,18 +339,6 @@ return; logf = s->error_log; } -#ifdef TPF -else if (tpf_child) { -/* - * If we are doing normal logging, don't log messages that are - * above the server log level unless it is a startup/shutdown notice - */ -if (((level & APLOG_LEVELMASK) != APLOG_NOTICE) && -((level & APLOG_LEVELMASK) > s->loglevel)) -return; -logf = stderr; -} -#endif /* TPF */ else { /* * If we are doing syslog logging, don't log messages that are Index: apache-1.3/src/main/http_main.c === RCS file: /home/cvs/apache-1.3/src/main/http_main.c,v retrieving revision 1.582 diff -u -d -b -r1.582 http_main.c --- apache-1.3/src/main/http_main.c 13 May 2002 23:12:02 - 1.582 +++ apache-1.3/src/main/http_main.c 16 May 2002 04:39:39 - @@ -5438,15 +5438,23 @@ tpf_server_name[INETD_SERVNAME_LENGTH + 1] = '\0'; ap_open_logs(server_conf, plog); ap_tpf_zinet_checks(ap_standalone, tpf_server_name, server_conf); +ap_tpf_save_argv(argc, argv);/* save argv parms for children */ } if (ap_standalone) { ap_set_version(); ap_init_modules(pconf, server_conf); version_locked++; if(tpf_child) { + server_conf->error_log = stderr; +#ifdef HAVE_SYSLOG +/* if ErrorLog is syslog call ap_open_logs from the child since + syslog isn't redirected to stderr by the Apache parent */ +if (strncasecmp(server_conf->error_fname, "syslog", 6) == 0) { + ap_open_logs(server_conf, plog); +} +#endif /* HAVE_SYSLOG */ copy_listeners(pconf); reset_tpf_listeners(&input_parms.child); -server_conf->error_log = NULL; #ifdef SCOREBOARD_FILE scoreboard_fd = input_parms.child.scoreboard_fd; ap_scoreboard_image = &_scoreboard_image; Index: apache-1.3/src/os/tpf/os.c === RCS file: /home/cvs/apache-1.3/src/os/tpf/os.c,v retrieving revision 1.16 diff -u -d -b -r1.16 os.c --- apache-1.3/src/os/tpf/os.c 13 Mar 2002 21:05:36 - 1.16 +++ apache-1.3/src/os/tpf/os.c 16 May 2002 04:39:39 - @@ -75,6 +75,7 @@ void *tpf_shm_static_ptr = NULL; unsigned short zinet_model; +char *argv_ptr = NULL; static FILE *sock_fp; @@ -394,7 +395,7 @@ fork_input.prog_type = TPF_FORK_NAME; fork_input.istream = TPF_FORK_IS_BALANCE; fork_input.ebw_data_length = sizeof(input_parms); -fork_input.parm_data = "-x"; +fork_input.parm_data = argv_ptr; #ifdef TPF_FORK_EXTENDED return tpf_fork(&fork_input, NULL, NULL); #else @@ -479,6 +480,23 @@ fcntl(sd,F_SETFD,FD_CLOEXEC); } +void ap_tpf_save_argv(int argc, char **argv) { + +int i, len = 3; /* 3 for "-x " */ + +for (i = 1; i < argc; i++) {/* find len for calloc */ + len += strlen (argv[i]); + ++len; /* 1 for blank */ +} + +argv_ptr = malloc(len + 1); +strcpy(argv_ptr, "-x"); +for (i = 1; i < argc; i++) { + strcat(argv_ptr, " "); + strcat(argv_ptr, argv[i]); +} +} + void os_tpf_child(APACHE_TPF_INPUT *input_parms) { tpf_child = 1; ap_my_generation = input_parms->generation; @@ -794,6 +812,10 @@ #ifdef TPF_HAVE_NSD printf(" -D TPF_HAVE_NSD\n"); +#endif + +#ifdef HAVE_SYSLOG +printf(" -D HAVE_SYSLOG\n"); #endif } Index: apache-1.3/src/os/tpf/os.h === RCS file: /home/cvs/apache-1.3/src/os/tpf/os.h,v retrieving revision 1.14 diff -u -d -b -r1.14 os.h --- apache-1.3/src/os/tpf/os.h 22 Jun 2001 12:43:55 - 1.14 +++ apache-1.3/src/os/tpf/os.h 16 May 2002 04:39:39 - @@ -76,6 +76,10 @@ #undef HAVE_ISNAN #endif +#ifdef HAVE_ISINF +#und
[PATCH] TPF specific changes for syslog & flags
This patch is specific to TPF code and therefore shouldn't affect other platforms. It does the following: 1) Allow the use of Apache's -f, -d, -D, & -X flags on IBM's TPF operating system 2) Allow syslog to be used by Apache on TPF 3) Remove unused expat-lite object files from the sample link JCL Please let me know if you have any concerns or comments. Thank you, David McCreedy [EMAIL PROTECTED] Index: apache-1.3/src/main/http_log.c === RCS file: /home/cvs/apache-1.3/src/main/http_log.c,v retrieving revision 1.93 diff -u -d -b -r1.93 http_log.c --- apache-1.3/src/main/http_log.c 13 Mar 2002 21:05:30 - 1.93 +++ apache-1.3/src/main/http_log.c 15 May 2002 17:48:09 - @@ -339,18 +339,6 @@ return; logf = s->error_log; } -#ifdef TPF -else if (tpf_child) { -/* - * If we are doing normal logging, don't log messages that are - * above the server log level unless it is a startup/shutdown notice - */ -if (((level & APLOG_LEVELMASK) != APLOG_NOTICE) && -((level & APLOG_LEVELMASK) > s->loglevel)) -return; -logf = stderr; -} -#endif /* TPF */ else { /* * If we are doing syslog logging, don't log messages that are Index: apache-1.3/src/main/http_main.c === RCS file: /home/cvs/apache-1.3/src/main/http_main.c,v retrieving revision 1.582 diff -u -d -b -r1.582 http_main.c --- apache-1.3/src/main/http_main.c 13 May 2002 23:12:02 - 1.582 +++ apache-1.3/src/main/http_main.c 15 May 2002 17:48:10 - @@ -5438,15 +5438,23 @@ tpf_server_name[INETD_SERVNAME_LENGTH + 1] = '\0'; ap_open_logs(server_conf, plog); ap_tpf_zinet_checks(ap_standalone, tpf_server_name, server_conf); +ap_tpf_save_argv(argc, argv);/* save argv parms for children */ } if (ap_standalone) { ap_set_version(); ap_init_modules(pconf, server_conf); version_locked++; if(tpf_child) { + server_conf->error_log = stderr; +#ifdef HAVE_SYSLOG +/* if ErrorLog is syslog call ap_open_logs from the child since + syslog isn't redirected to stderr by the Apache parent */ +if (strncasecmp(server_conf->error_fname, "syslog", 6) == 0) { + ap_open_logs(server_conf, plog); +} +#endif /* HAVE_SYSLOG */ copy_listeners(pconf); reset_tpf_listeners(&input_parms.child); -server_conf->error_log = NULL; #ifdef SCOREBOARD_FILE scoreboard_fd = input_parms.child.scoreboard_fd; ap_scoreboard_image = &_scoreboard_image; Index: apache-1.3/src/os/tpf/os.c === RCS file: /home/cvs/apache-1.3/src/os/tpf/os.c,v retrieving revision 1.16 diff -u -d -b -r1.16 os.c --- apache-1.3/src/os/tpf/os.c 13 Mar 2002 21:05:36 - 1.16 +++ apache-1.3/src/os/tpf/os.c 15 May 2002 17:48:10 - @@ -75,6 +75,7 @@ void *tpf_shm_static_ptr = NULL; unsigned short zinet_model; +char *argv_ptr = NULL; static FILE *sock_fp; @@ -394,7 +395,7 @@ fork_input.prog_type = TPF_FORK_NAME; fork_input.istream = TPF_FORK_IS_BALANCE; fork_input.ebw_data_length = sizeof(input_parms); -fork_input.parm_data = "-x"; +fork_input.parm_data = argv_ptr; #ifdef TPF_FORK_EXTENDED return tpf_fork(&fork_input, NULL, NULL); #else @@ -479,6 +480,23 @@ fcntl(sd,F_SETFD,FD_CLOEXEC); } +void ap_tpf_save_argv(int argc, char **argv) { + +int i, len=3; /* 3 for "-x " */ + +for (i= 1; i < argc; i++) { /* find len for calloc */ + len += strlen (argv[i]); + ++len; /* 1 for blank */ +} + +argv_ptr = calloc (1, len + 1); +strcpy(argv_ptr, "-x"); +for (i= 1; i < argc; i++) { + strcat(argv_ptr, " "); + strcat(argv_ptr, argv[i]); +} +} + void os_tpf_child(APACHE_TPF_INPUT *input_parms) { tpf_child = 1; ap_my_generation = input_parms->generation; @@ -794,6 +812,10 @@ #ifdef TPF_HAVE_NSD printf(" -D TPF_HAVE_NSD\n"); +#endif + +#ifdef HAVE_SYSLOG +printf(" -D HAVE_SYSLOG\n"); #endif } Index: apache-1.3/src/os/tpf/os.h === RCS file: /home/cvs/apache-1.3/src/os/tpf/os.h,v retrieving revision 1.14 diff -u -d -b -r1.14 os.h --- apache-1.3/src/os/tpf/os.h 22 Jun 2001 12:43:55 - 1.14 +++ apache-1.3/src/os/tpf/os.h 15 May 2002 17:48:10 - @@ -76,6 +76,10 @@ #undef HAVE_ISNAN #endif +#ifdef HAVE_ISINF +#undef HAVE_ISINF +#endif + #if !defined(INLINE) && defined(USE_GNU_INLINE) /* Compiler
[PATCH] TPF Docs: install-tpf.html and readme-tpf.html
This patch updates the readme and install files for TPF. Minor updates to the latest version of the TPF operating system are now reflected in the documents. Also, changes to the documents were made so that they now pass W3C validation for xhtml 1.0 transitional. David McCreedy Title: The Apache TPF Port Index: httpd-docs-1.3/htdocs/manual/readme-tpf.html === RCS file: /home/cvs/httpd-docs-1.3/htdocs/manual/readme-tpf.html,v retrieving revision 1.11 diff -u -d -b -r1.11 readme-tpf.html --- httpd-docs-1.3/htdocs/manual/readme-tpf.html 2 Oct 2001 11:02:58 - 1.11 +++ httpd-docs-1.3/htdocs/manual/readme-tpf.html 29 Mar 2002 17:39:08 - @@ -3,7 +3,7 @@ - Installing the Apache 1.3 HTTP - Server on TPF + Installing the Apache 1.3 HTTP + Server on TPF @@ -81,9 +83,8 @@ FTP the tarball to your OS/390 UNIX machine using binary - mode: + mode: - activate FTP in an MSDOS window: ftp your.os390.unix.machine.com @@ -108,22 +109,18 @@ Decompress and extract the archived files necessary for compiling - Apache: + Apache: pax -rvzkf os390_unix_filename.tar.Z -o from=ISO8859-1,to=IBM-1047 "*/src" Remove unnecessary subdirectories: - cd apache_1.3.xx/src/os rm -r bs2000 cygwin mpeix netware os2 os390 win32 - - - @@ -174,26 +171,24 @@ Edit src/Configuration. It contains the list and settings of various "Rules" and an additional section at the bottom that determines which modules to compile: - + - - Adjust the Rules and + adjust the rules and EXTRA_CFLAGS|LIBS|LDFLAGS|INCLUDES if you feel - so inclined. + so inclined - Comment out (by preceding the line with a "#") lines + comment out (by preceding the line with a "#") lines corresponding to those modules you DO NOT wish to - include. + include - Uncomment (by removing the initial "#", if present) + uncomment (by removing the initial "#", if present) lines corresponding to those modules you wish to include or add new lines corresponding to any custom modules you - have written. The readme-tpf.html document lists - the modules that have been tested on TPF. + have written (the readme-tpf.html document lists + the modules that have been tested on TPF) The modules placed in the Apache distribution are the @@ -230,8 +225,6 @@ _C89_OPTIONS export in src/os/tpf/TPFExport - - Otherwise: @@ -245,8 +238,6 @@ _C89_OPTIONS export in src/os/tpf/TPFExport - - Without non_socket_select CGI output is buffered and only sent to the browser when the CGI program @@ -276,8 +267,6 @@ _C89_OPTIONS export in src/os/tpf/TPFExport - - Otherwise: @@ -290,17 +279,37 @@ _C89_OPTIONS export in src/os/tpf/TPFExport - - The use of tpf_sawnc allows for a cleaner shutdown of Apache. - + +Indicate if you would like to use the TCP/IP network services database. +(This only applies if you are using TCP/IP native stack.) - Set the TPF environment variables: +If you are on a PUT16 or higher system, or have PJ28195 installed, + you can use the TCP/IP network services database. + To do so, you must do one of the following: + + + + add "#define TPF_HAVE_NSD" to + src/os/tpf/os.h or + + add "-DTPF_HAVE_NSD" to the + _C89_OPTIONS export in src/os/tpf/TPFExport + + + + +See TPF Transmission Control Protocol/Internet Protocol for more information + about the TCP/IP network services database: + http://www.ibm.com/tpf/pubs/tpfpubs.htm. + + + + Set the TPF environment variables: . os/tpf/TPFExport TIP: The @@ -427,11 +436,10 @@ - util_uri.c: Function argument assignment between types "unsigned char*" and "const unsigned char*" is not allowed. - + @@ -494,10 +502,10 @@ Ensure that the program name you are using for Apache has RESTRICT and KEY0 authorization
Re: 1.3.24 tarballs...
Apache 1.3.24 checks out OK on TPF. David McCreedy Jim Jagielski <[EMAIL PROTECTED]>To: [EMAIL PROTECTED] cc: 03/21/2002 11:15 Subject: 1.3.24 tarballs... AM Please respond to dev ... are available on http://httpd.apache.org/dev/dist/ -- === Jim Jagielski [|] [EMAIL PROTECTED] [|] http://www.jaguNET.com/ "A society that will trade a little liberty for a little order will lose both and deserve neither" - T.Jefferson
[PATCH] TPF-specific addition to main/http_main.c and modification to os/tpf/os.c
This patch adds a small, TPF-specific section to http_main.c to interface with a new TPF operating system feature. (I used "diff -ru9" because the normal "diff -ru3" would not uniquely identify the code being changed in http_main.c.) Please let me know if you have any questions or concerns. Thank you, David McCreedy [EMAIL PROTECTED] diff -ru9 before/src/main/http_main.c after/src/main/http_main.c --- before/src/main/http_main.c Mon Feb 25 11:53:47 2002 +++ after/src/main/http_main.c Mon Feb 25 11:53:36 2002 @@ -4561,18 +4561,29 @@ /* process the request if it was read without error */ if (r->status == HTTP_OK) ap_process_request(r); if(ap_extended_status) increment_counts(my_child_num, r); +#ifdef TPF_HAVE_NSD +/* Update the TPF Network Services Database message counters */ +tpf_tcpip_message_cnt(NSDB_INPUT_CNT, +((struct sockaddr_in *)&sa_server)->sin_port, +NSDB_TCP_S, 1); + +tpf_tcpip_message_cnt(NSDB_OUTPUT_CNT, +((struct sockaddr_in *)&sa_server)->sin_port, +NSDB_TCP_S, 1); +#endif /* TPF_HAVE_NSD */ + if (!current_conn->keepalive || current_conn->aborted) break; ap_destroy_pool(r->pool); (void) ap_update_child_status(my_child_num, SERVER_BUSY_KEEPALIVE, (request_rec *) NULL); ap_sync_scoreboard_image(); if (ap_scoreboard_image->global.running_generation != ap_my_generation) { diff -ru9 before/src/os/tpf/os.c after/src/os/tpf/os.c --- before/src/os/tpf/os.c Mon Feb 25 11:59:05 2002 +++ after/src/os/tpf/os.c Mon Feb 25 11:59:09 2002 @@ -786,10 +786,14 @@ #ifdef TPF_HAVE_SAWNC printf(" -D TPF_HAVE_SAWNC\n"); #endif #ifdef TPF_NO_SAWNC printf(" -D TPF_NO_SAWNC\n"); #endif +#ifdef TPF_HAVE_NSD +printf(" -D TPF_HAVE_NSD\n"); +#endif + }
[PATCH] TPF-Specific section of http_main.c
This patch changes a TPF-specific section of http_main.c to use the correct subpool when initially opening the error log. This makes TPF's ap_open_logs call the same as other platforms and prevents a possible SIGPIPE in standalone_main on TPF. Please let me know if you have any questions or concerns. Thank you, David McCreedy [EMAIL PROTECTED] diff -ru3 before/main/http_main.c after/main/http_main.c --- before/main/http_main.c Thu Feb 21 13:51:19 2002 +++ after/main/http_main.c Thu Feb 21 13:51:02 2002 @@ -5405,7 +5405,7 @@ memcpy(tpf_server_name, input_parms.parent.servname, INETD_SERVNAME_LENGTH); tpf_server_name[INETD_SERVNAME_LENGTH + 1] = '\0'; -ap_open_logs(server_conf, pconf); +ap_open_logs(server_conf, plog); ap_tpf_zinet_checks(ap_standalone, tpf_server_name, server_conf); } if (ap_standalone) {
[PATCH] TPF changes for rotatelogs
These two patches allow rotatelogs to function properly on TPF. They are TPF-specific and will not affect other platforms. The os/tpf/os.c change is required for arguments to be properly passed to rotatelogs (or any other piped log program). The support/rotatlogs.c change is due to a quirk in TPF signal handling. Please let me know if you have any questions or concerns. Thank you, David McCreedy [EMAIL PROTECTED] diff -ru3 before/src/os/tpf/os.c after/src/os/tpf/os.c --- before/src/os/tpf/os.c Thu Dec 20 17:05:19 2001 +++ after/src/os/tpf/os.c Thu Dec 20 17:11:41 2001 @@ -203,7 +203,10 @@ array_header *env_arr = ap_table_elts ((array_header *) cld->subprocess_env); table_entry *elts = (table_entry *) env_arr->elts; #ifdef TPF_FORK_EXTENDED - char *args[2]; +#define WHITE " \t\n" +#define MAXARGC 49 + char *arguments; + char *args[MAXARGC + 1]; char **envp = NULL; pool *subpool = NULL; @@ -267,8 +270,15 @@ fork_input.parm_data = NULL; #ifdef TPF_FORK_EXTENDED - args[0] = cld->filename; - args[1] = NULL; + /* use a copy of cld->filename because strtok is destructive */ + arguments = ap_pstrdup(p, cld->filename); + args[0] = strtok(arguments, WHITE); + args[MAXARGC + 1] = NULL; + + for (i = 0; i < MAXARGC && args[i] ; i++) { + args[i + 1] = strtok(NULL, WHITE); + } + if ((pid = tpf_fork(&fork_input, (const char **)args, (const char **)envp)) < 0) { diff -ru3 before/src/support/rotatelogs.c after/src/support/rotatelogs.c --- before/src/support/rotatelogs.c Thu Dec 20 17:05:22 2001 +++ after/src/support/rotatelogs.c Thu Dec 20 17:05:33 2001 @@ -28,6 +28,12 @@ time_t now; char *szLogRoot; +#ifdef TPF +/* set up signal handling to avoid default OPR-I00 dump */ +signal(SIGPIPE, exit); +signal(SIGTERM, exit); +#endif + if (argc < 3) { fprintf(stderr, "Usage: %s "
[PATCH] TPF additional fix in http_main.c
In testing the 1.3.21 tarball I found another fix required in a TPF-specific block of http_main.c due to mutex processing changes. I don't want to nix 1.3.21 but if 1.3.22 is going to happen anyway this change should be incorporated before it's rolled. As I said above, the patch is in a TPF-specific block of code so it won't affect other platforms. Sorry to be a pest... David McCreedy diff -ru3 before/src/main/http_main.c after/src/main/http_main.c --- before/src/main/http_main.c Fri Oct 5 21:04:12 2001 +++ after/src/main/http_main.c Fri Oct 5 21:06:54 2001 @@ -5323,6 +5323,7 @@ ap_scoreboard_image = (scoreboard *)input_parms.child.scoreboard_heap; #endif +ap_init_mutex_method(ap_default_mutex_method()); child_main(input_parms.child.slot); } else
[PATCH] TPF http_main.c change for 1.3.21
Here is the http_main.c change to fix the compilation error on TPF. This change is within an "#if defined(HAVE_TPF_CORE_SERIALIZED_ACCEPT)" block of code so it should not affect any other platforms. Thank you, David McCreedy diff -ru3 before/src/main/http_main.c after/src/main/http_main.c --- before/src/main/http_main.c Wed Oct 3 19:30:29 2001 +++ after/src/main/http_main.c Wed Oct 3 19:28:44 2001 @@ -1074,7 +1074,9 @@ coruc(RESOURCE_KEY); } -#define accept_mutex_init_tpfcore(x) +static void accept_mutex_init_tpfcore(pool *foo) +{ +} static void accept_mutex_child_init_tpfcore(pool *p) {
Re: cvs commit: apache-1.3/src/main http_main.c
That should be fine... It's one of the options I tested when I was working up my patch. Thanks, -David Jim Jagielski <[EMAIL PROTECTED] To: [EMAIL PROTECTED] om> cc: Subject: Re: cvs commit: apache-1.3/src/main http_main.c 10/04/2001 06:19 AM Please respond to dev [EMAIL PROTECTED] wrote: > > -static void accept_mutex_init_tpfcore(pool *foo) > -{ > -} > +#define accept_mutex_init_tpfcore(x) > >static void accept_mutex_child_init_tpfcore(pool *p) >{ > @@ -1100,7 +1098,7 @@ > >accept_mutex_methods_s accept_mutex_tpfcore_s = { >accept_mutex_child_init_tpfcore, > -accept_mutex_init_tpfcore, > +NULL, >accept_mutex_on_tpfcore, >accept_mutex_off_tpfcore, >"tpfcore" > Ideally, what I should have done in the 1st place is: #define accept_mutex_foo_bar NULL for those nop's that way we would have avoided the above, and all the structures would be semi-consistant, rather than a mix of real functions and NULLs... I never documented that those mutex functions that were null defines mapped to NULL entries in the struct... Worth holding off 1.3.21 for this?? -- === Jim Jagielski [|] [EMAIL PROTECTED] [|] http://www.jaguNET.com/ "A society that will trade a little liberty for a little order will lose both and deserve neither"
Re: Tagging 1.3.21 now
Stupid question... where do I pull APACHE_1_3_21 from? -David "Bill Stoddard"To: <[EMAIL PROTECTED]> Subject: Re: Tagging 1.3.21 now 10/04/2001 07:47 AM Please respond to dev Tagged. Please test APACHE_1_3_21 tag. Plan to roll the tarball in 24 hours. Bill > Hold on commits. > > Bill, > Let's save the usertrack patch for 1.3.22. I did a bit of testing/compiling last night and > I would prefer not to redo that work. > > > Bill >
[PATCH (again)] TPF http_main.c change for 1.3.21
Here is the http_main.c change to fix the compilation error on TPF. (I omitted the actual patch on my first note.) It's change is within an "#if defined(HAVE_TPF_CORE_SERIALIZED_ACCEPT)" block of code so it should not affect any other platforms. Thank you, David McCreedy diff -ru3 before/src/main/http_main.c after/src/main/http_main.c --- before/src/main/http_main.c Wed Oct 3 19:30:29 2001 +++ after/src/main/http_main.c Wed Oct 3 19:28:44 2001 @@ -1074,7 +1074,9 @@ coruc(RESOURCE_KEY); } -#define accept_mutex_init_tpfcore(x) +static void accept_mutex_init_tpfcore(pool *foo) +{ +} static void accept_mutex_child_init_tpfcore(pool *p) {
[PATCH] TPF http_main.c change for 1.3.21
Here is the http_main.c change to fix the compilation error on TPF. It's change is within an "#if defined(HAVE_TPF_CORE_SERIALIZED_ACCEPT)" block of code so it should not affect any other platforms. Thank you, David McCreedy
Re: 1.3 src/Configure
Yes... src/Configure is used on TPF. And it still works. -David Rodent of Unusual Size To: Apache Developers <[EMAIL PROTECTED]> Subject: 1.3 src/Configure 10/03/2001 05:53 PM Please respond to dev I know I was one of the last holdouts that used the old src/Configure method, before being converted to APACI. Which suddenly makes me wonder.. is there *anyone* that still uses src/Configure? Does anyone know if it still works? :-) -- #ken P-)} Ken Coar, Sanagendamgagwedweinini http://Golux.Com/coar/ Author, developer, opinionist http://Apache-Server.Com/ "All right everyone! Step away from the glowing hamburger!"
RE: Apache 1.3.21 tag this evening....
I'm hitting a fatal compilation error on TPF with some "accept mutex" code what was added. I was unaware of these changes but believe it was part of the "make-accept-mutex-method-runtime patch". (I didn't realize the changes affected TPF-specific code until today.) I think I have a fix but won't be able to test it for several hours (7pm Eastern Time). Can the tag wait until I've tested and submitted this fix? -David
[PATCH] new readme and install pages for TPF
Attached are the updated install-tpf.html and readme-tpf.html pages. Due to the number of updates, and since they're just documents, I've included the entire files for a replacement versus a patch. (But I will produce a diff file if needed.) It would be nice to have these updated in 1.3.21's apache/htdocs/manual directory as well as at http://httpd.apache.org/docs/ once 1.3.21 goes out. Thank you, David McCreedy (See attached file: readme-tpf.html)(See attached file: install-tpf.html) Title: The Apache TPF Port Overview of the Apache TPF Port [ Configuration Files | What's Available | CGI Scripts | Options | Porting Notes ] This version of Apache includes changes allowing it to run on IBM's EBCDIC-based TPF (Transaction Processing Facility) operating system. Unless otherwise noted TPF version 4.1 PUT09 is required. Refer to install-tpf.html for step-by-step installation instructions. This port builds upon the EBCDIC changes previously made to Apache. Apache Configuration Files The distributed configuration files (httpd.conf-dist and mime.types, both located in the conf subdirectory) work on TPF. Performance considerations may dictate setting KeepAlive to "Off" (the default is "On") or lowering the Timeout value from the default 300 seconds (5 minutes) in order to reduce the number of active ECBs on your system. What's Available in this Version The Apache organization provides online documentation describing the various modules and components of the server. Components/modules tested on TPF: alloc.c ap_base64.c ap_checkpass.c ap_cpystrn.c ap_ebcdic.c ap_fnmatch.c ap_md5c.c ap_sha1.c ap_signal.c ap_slack.c ap_snprintf.c buff.c buildmark.c gen_test.char.c gen_uri_delims.c htpasswd.c (requires PUT10) http_config.c http_core.c http_log.c http_main.c http_protocol.c http_request.c http_vhost.c logresolve.c (requires PUT10) mod_access.c (Use of mod_access directives "allow from" & "deny from" with host names (verses ip addresses) requires PUT10) mod_actions.c mod_alias.c mod_asis.c mod_auth.c mod_auth_anon.c mod_autoindex.c mod_cern_meta.c mod_cgi.c (requires PUT10) mod_digest.c mod_dir.c mod_env.c mod_example.c mod_expires.c mod_headers.c mod_imap.c mod_include.c (CGI execution requires TPF version 4.1 PUT10) mod_info.c mod_log_agent.c mod_log_config.c mod_log_referer.c mod_mime.c mod_mime_magic.c mod_negotiation.c mod_put.c (third party module) mod_proxy.c mod_setenvif.c mod_speling.c mod_status.c mod_tpf_shm_static.c (third party module, requires PUT10) mod_unique_id.c (requires PUT10) mod_userdir.c mod_usertrack.c os.c os-inline.c proxy_cache.c proxy_connect.c proxy_ftp.c proxy_http.c proxy_util.c regular expression parser regular expression test tool (requires PUT10) rfc1413.c rotatelogs.c (requires PUT10) util.c util_date.c util_md5.c util_script.c util_uri.c Components/modules not yet supported on TPF: htdigest.c lib/expat-lite mod_auth_digest.c mod_rewrite.c mod_vhost_alias.c Components/modules that don't apply or that probably won't ever be available on TPF: ab.c ap_getpass.c mod_auth_db.c mod_auth_dbm.c mod_auth_db.module mod_mmap_static.c mod_so.c suexec.c How to Use CGI Scripts The following is a very simple example of a CGI script ("Hello World") and the necessary steps to run it. Refer to the mod_cgi module for additional information. Add necessary directives to httpd.conf: Example: ScriptLog logs/script_log ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/ A request for http://myserver/cgi-bin/filename.cgi would cause the server to run the script /usr/local/apache/cgi-bin/filename.cgi Create the CGI script: For this example QZZ1 is the name of the TPF program that will be executed by the CGI script. The directory path must match what is in the httpd.conf file for ScriptAlias directive. zfile echo "#!QZZ1" > /usr/local/apache/cgi-bin/filename.cgi zfile cat /usr/local/apache/cgi-bin/filename.cgi (this should display #!QZZ1) Mark the script as executable: zfile chmod 755 /usr/local/apache/cgi-bin/filename.cgi Create, load, and activate a loadset containing the CGI program (QZZ1xx): /** QZZ1-- simple "Hello world" program to demonstrate basic CGI output **/ #include void main() { /** Print the CGI response header, required for all HTML output.**/ /** No