]> granicus.if.org Git - postgresql/commitdiff
Various patches for nextstep by GregorHoffleit
authorMarc G. Fournier <scrappy@hub.org>
Thu, 13 Feb 1997 08:32:20 +0000 (08:32 +0000)
committerMarc G. Fournier <scrappy@hub.org>
Thu, 13 Feb 1997 08:32:20 +0000 (08:32 +0000)
Replaced NEED_STRDUP by !HAVE_STRDUP

src/backend/postmaster/postmaster.c
src/bin/pg_dump/common.c
src/bin/pg_dump/pg_dump.c
src/bin/psql/psql.c
src/bin/psql/stringutils.c
src/interfaces/libpq/fe-connect.c
src/port/ultrix4.h

index b1a5aeb8c39c7e1ac97b72074b62ea1ea4709139..5168162d2a008a8444c73c27139fe349e4048bf4 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.38 1997/02/06 19:27:22 momjian Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.39 1997/02/13 08:31:09 scrappy Exp $
  *
  * NOTES
  *
@@ -420,12 +420,16 @@ pmdaemonize(void)
     
     if (fork())
         exit(0);
-    
+/* GH: If there's no setsid(), we hopefully don't need silent mode.
+ * Until there's a better solution.
+ */
+#ifdef HAVE_SETSID
     if (setsid() < 0) {
         fprintf(stderr, "%s: ", progname);
         perror("cannot disassociate from controlling TTY");
         exit(1);
     }
+#endif
     i = open(NULL_DEV, O_RDWR);
     (void) dup2(i, 0);
     (void) dup2(i, 1);
@@ -459,19 +463,30 @@ ServerLoop(void)
     fd_set      rmask, basemask;
     int         nSockets, nSelected, status, newFd;
     Dlelem   *next, *curr;
-/*    int orgsigmask = sigblock(0); */
+    /* GH: For !HAVE_SIGPROCMASK (NEXTSTEP), TRH implemented
+     * an alternative interface.
+     */
+#ifdef HAVE_SIGPROCMASK
     sigset_t oldsigmask, newsigmask;
+#else
+    int orgsigmask = sigblock(0);
+#endif
     
     nSockets = ServerSock + 1;
     FD_ZERO(&basemask);
     FD_SET(ServerSock, &basemask);
     
+#ifdef HAVE_SIGPROCMASK
     sigprocmask(0,0,&oldsigmask);
     sigemptyset(&newsigmask);
     sigaddset(&newsigmask,SIGCHLD);
+#endif
     for (;;) {
-/*      sigsetmask(orgsigmask); */
+#ifdef HAVE_SIGPROCMASK
         sigprocmask(SIG_SETMASK,&oldsigmask,0);
+#else
+        sigsetmask(orgsigmask); 
+#endif
         newFd = -1;
         memmove((char *) &rmask, (char *) &basemask, sizeof(fd_set));
         if ((nSelected = select(nSockets, &rmask,
@@ -490,8 +505,11 @@ ServerLoop(void)
          * manipulate the BackEnd list, and reaper() calls free() which is
          * usually non-reentrant.)
          */
+#ifdef HAVE_SIGPROCMASK
         sigprocmask(SIG_BLOCK, &newsigmask, &oldsigmask);
-/*      sigblock(sigmask(SIGCHLD));     */      /* XXX[TRH] portability */
+#else
+        sigblock(sigmask(SIGCHLD));           /* XXX[TRH] portability */
+#endif
         if (DebugLvl > 1) {
             fprintf(stderr, "%s: ServerLoop: %d sockets pending\n",
                     progname, nSelected);
@@ -816,15 +834,25 @@ pmdie(SIGNAL_ARGS)
 static void
 reaper(SIGNAL_ARGS)
 {
+/* GH: replace waitpid for !HAVE_WAITPID. Does this work ? */
+#ifdef HAVE_WAITPID
     int status;         /* backend exit status */
+#else
+    union wait statusp;         /* backend exit status */
+#endif
     int pid;            /* process id of dead backend */
     
     if (DebugLvl)
         fprintf(stderr, "%s: reaping dead processes...\n",
                 progname);
 #ifndef WIN32
+#ifdef HAVE_WAITPID
     while((pid = waitpid(-1, &status, WNOHANG)) > 0)
         CleanupProc(pid, status);
+#else
+    while((pid = wait3(&statusp, WNOHANG, NULL)) > 0)
+        CleanupProc(pid, statusp.w_status);
+#endif
 #endif /* WIN32 */
 }
 
index 47272f6f113ad04bc549fe162b99c3526c4ce783..ee68680a69a1a871c1045f66a8631eb0bb164d0c 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/bin/pg_dump/common.c,v 1.9 1996/11/26 07:38:18 bryanh Exp $
+ *    $Header: /cvsroot/pgsql/src/bin/pg_dump/common.c,v 1.10 1997/02/13 08:31:17 scrappy Exp $
  *
  * Modifications - 6/12/96 - dave@bensoft.com - version 1.13.dhb.2
  *
@@ -29,7 +29,7 @@
 
 #include "postgres.h"
 #include "libpq-fe.h"
-#ifdef NEED_STRDUP
+#ifndef HAVE_STRDUP
 #include "strdup.h"
 #endif
 
index 52f8baa4b753477ef93762ef62e7768592ea4ea2..641711948eb51683bad4348702bea3b9a0249979 100644 (file)
@@ -20,7 +20,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.23 1997/02/09 03:00:09 scrappy Exp $
+ *    $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.24 1997/02/13 08:31:27 scrappy Exp $
  *
  * Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb
  *
@@ -54,7 +54,7 @@
 #include "postgres.h"
 #include "access/htup.h"
 #include "libpq-fe.h"
-#ifdef NEED_STRDUP
+#ifndef HAVE_STRDUP
 #include "strdup.h"
 #endif
 
index 7f24005ce1c252633b802270f79fe7b948cc721e..4330c19fd8fcf131262fe06cd5e97001d641fbce 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.56 1997/02/11 03:11:33 momjian Exp $
+ *    $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.57 1997/02/13 08:31:48 scrappy Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -26,7 +26,7 @@
 #include "pqsignal.h"
 #include "stringutils.h"
 #include "psqlHelp.h"
-#ifdef NEED_STRDUP
+#ifndef HAVE_STRDUP
 #include "strdup.h"
 #endif
 
index 6ea00dd50bab4a83d316d182cc85185f26bd9e63..4f7a510784a704ae03d048ea9ac3847c472987e1 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/bin/psql/stringutils.c,v 1.7 1996/11/26 07:38:36 bryanh Exp $
+ *    $Header: /cvsroot/pgsql/src/bin/psql/stringutils.c,v 1.8 1997/02/13 08:31:57 scrappy Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -16,7 +16,7 @@
 #include <ctype.h>
 #include <stdlib.h>
 
-#ifdef NEED_STRDUP
+#ifndef HAVE_STRDUP
 #include "strdup.h"
 #endif
 
index f0c76f6513c94b0d062ae483eaec6fa36a0b3831..cb2d06c0aba40c5f995bda88d426ba828c729311 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.22 1996/11/28 03:32:12 bryanh Exp $
+ *    $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.23 1997/02/13 08:32:08 scrappy Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -30,7 +30,7 @@
 #include "fe-auth.h"
 #include "libpq-fe.h"
 
-#ifdef NEED_STRDUP
+#ifndef HAVE_STRDUP
 #include "strdup.h"
 #endif
 
@@ -518,6 +518,8 @@ freePGconn(PGconn *conn)
 static void
 closePGconn(PGconn *conn)
 {
+/* GH: What to do for !USE_POSIX_SIGNALS ? */
+#if defined(USE_POSIX_SIGNALS)
     struct sigaction ignore_action;
       /* This is used as a constant, but not declared as such because the
          sigaction structure is defined differently on different systems */
@@ -534,6 +536,12 @@ closePGconn(PGconn *conn)
     fputs("X\0", conn->Pfout);
     fflush(conn->Pfout);
     sigaction(SIGPIPE, &oldaction, NULL);
+#else
+    signal(SIGPIPE, SIG_IGN);
+    fputs("X\0", conn->Pfout);
+    fflush(conn->Pfout);
+    signal(SIGPIPE, SIG_DFL);
+#endif
     if (conn->Pfout) fclose(conn->Pfout);
     if (conn->Pfin)  fclose(conn->Pfin);
     if (conn->Pfdebug) fclose(conn->Pfdebug);
index ae50130274225b8b2c4cc769336dceb3068002a2..0dbac44dffdab2ffb7e6ddfc1f65c11da90b7ca8 100644 (file)
@@ -1,2 +1 @@
 #  define USE_POSIX_TIME
-#  define NEED_STRDUP