You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by bj...@hyperreal.org on 1999/05/01 07:15:54 UTC
cvs commit: apache-1.3/src/os/os2 os.h util_os2.c
bjh 99/04/30 22:15:53
Modified: src CHANGES
src/main alloc.c
src/os/os2 os.h util_os2.c
Log:
OS/2: Fix terminating CGIs that aren't compiled by EMX GCC when a connection is
aborted.
Revision Changes Path
1.1335 +3 -0 apache-1.3/src/CHANGES
Index: CHANGES
===================================================================
RCS file: /home/cvs/apache-1.3/src/CHANGES,v
retrieving revision 1.1334
retrieving revision 1.1335
diff -u -r1.1334 -r1.1335
--- CHANGES 1999/04/29 18:48:52 1.1334
+++ CHANGES 1999/05/01 05:15:49 1.1335
@@ -1,5 +1,8 @@
Changes with Apache 1.3.7
+ *) OS/2: Fix terminating CGIs that aren't compiled by EMX GCC when a
+ connection is aborted. [Brian Havard]
+
*) Force the LANG envariable to the known state of "C" so that we
have assurance about how string manipulators (e.g., tr) will
function. [Ken Coar] PR#1630
1.111 +5 -0 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.110
retrieving revision 1.111
diff -u -r1.110 -r1.111
--- alloc.c 1999/04/29 02:04:04 1.110
+++ alloc.c 1999/05/01 05:15:51 1.111
@@ -2673,8 +2673,13 @@
if ((p->kill_how == kill_after_timeout)
|| (p->kill_how == kill_only_once)) {
/* Subprocess may be dead already. Only need the timeout if not. */
+#ifdef OS2
+ if (ap_os_kill(p->pid, SIGTERM) != -1)
+ need_timeout = 1;
+#else
if (kill(p->pid, SIGTERM) != -1)
need_timeout = 1;
+#endif
}
else if (p->kill_how == kill_always) {
kill(p->pid, SIGKILL);
1.13 +3 -0 apache-1.3/src/os/os2/os.h
Index: os.h
===================================================================
RCS file: /home/cvs/apache-1.3/src/os/os2/os.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- os.h 1999/03/07 13:13:55 1.12
+++ os.h 1999/05/01 05:15:52 1.13
@@ -32,6 +32,9 @@
/* FIXME: the following should be implemented on this platform */
#define ap_os_is_filename_valid(f) (1)
+/* Use a specialized kill() function */
+int ap_os_kill(int pid, int sig);
+
/* OS/2 doesn't have symlinks so S_ISLNK is always false */
#define S_ISLNK(m) 0
1.3 +24 -0 apache-1.3/src/os/os2/util_os2.c
Index: util_os2.c
===================================================================
RCS file: /home/cvs/apache-1.3/src/os/os2/util_os2.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- util_os2.c 1999/02/20 17:57:53 1.2
+++ util_os2.c 1999/05/01 05:15:52 1.3
@@ -1,5 +1,6 @@
#define INCL_DOSFILEMGR
#define INCL_DOSERRORS
+#define INCL_DOSEXCEPTIONS
#include <os2.h>
#include "httpd.h"
#include "http_log.h"
@@ -38,4 +39,27 @@
*pos = '/';
return ap_pstrdup(pPool, buf2);
+}
+
+
+
+int ap_os_kill(pid_t pid, int sig)
+{
+/* SIGTERM's don't work too well in OS/2 (only affects other EMX programs).
+ CGIs may not be, esp. REXX scripts, so use a native call instead */
+
+ int rc;
+
+ if ( sig == SIGTERM ) {
+ rc = DosSendSignalException( pid, XCPT_SIGNAL_BREAK );
+
+ if ( rc ) {
+ errno = ESRCH;
+ rc = -1;
+ }
+ } else {
+ rc = kill(pid, sig);
+ }
+
+ return rc;
}
Re: cvs commit: apache-1.3/src/os/os2 os.h util_os2.c
Posted by Brian Havard <br...@kheldar.apana.org.au>.
On Sat, 1 May 1999 09:36:14 -0700 (PDT), Dean Gaudet wrote:
>You should probably create ap_kill, and #define it on the other
>platforms... gets rid of the #if/#endif.
Ok, I can do that.
--
______________________________________________________________________________
| Brian Havard | "He is not the messiah! |
| brianh@kheldar.apana.org.au | He's a very naughty boy!" - Life of Brian |
------------------------------------------------------------------------------
Re: cvs commit: apache-1.3/src/os/os2 os.h util_os2.c
Posted by Dean Gaudet <dg...@arctic.org>.
You should probably create ap_kill, and #define it on the other
platforms... gets rid of the #if/#endif.
Dean