diff options
author | Marc G. Fournier <scrappy@hub.org> | 1997-02-13 08:32:20 +0000 |
---|---|---|
committer | Marc G. Fournier <scrappy@hub.org> | 1997-02-13 08:32:20 +0000 |
commit | a5494a2d92a2752c610b8b668a7d33478e90c160 (patch) | |
tree | 769c8680eb5ef423ba5af6a6af6efb3a70692f6b /src | |
parent | 809ae06ab2fa2c8c442582b06e459bcf63554310 (diff) | |
download | postgresql-a5494a2d92a2752c610b8b668a7d33478e90c160.tar.gz postgresql-a5494a2d92a2752c610b8b668a7d33478e90c160.zip |
Various patches for nextstep by GregorHoffleit
Replaced NEED_STRDUP by !HAVE_STRDUP
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/postmaster/postmaster.c | 38 | ||||
-rw-r--r-- | src/bin/pg_dump/common.c | 4 | ||||
-rw-r--r-- | src/bin/pg_dump/pg_dump.c | 4 | ||||
-rw-r--r-- | src/bin/psql/psql.c | 4 | ||||
-rw-r--r-- | src/bin/psql/stringutils.c | 4 | ||||
-rw-r--r-- | src/interfaces/libpq/fe-connect.c | 12 | ||||
-rw-r--r-- | src/port/ultrix4.h | 1 |
7 files changed, 51 insertions, 16 deletions
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index b1a5aeb8c39..5168162d2a0 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -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 */ } diff --git a/src/bin/pg_dump/common.c b/src/bin/pg_dump/common.c index 47272f6f113..ee68680a69a 100644 --- a/src/bin/pg_dump/common.c +++ b/src/bin/pg_dump/common.c @@ -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 diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 52f8baa4b75..641711948eb 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -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 diff --git a/src/bin/psql/psql.c b/src/bin/psql/psql.c index 7f24005ce1c..4330c19fd8f 100644 --- a/src/bin/psql/psql.c +++ b/src/bin/psql/psql.c @@ -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 diff --git a/src/bin/psql/stringutils.c b/src/bin/psql/stringutils.c index 6ea00dd50ba..4f7a510784a 100644 --- a/src/bin/psql/stringutils.c +++ b/src/bin/psql/stringutils.c @@ -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 diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c index f0c76f6513c..cb2d06c0aba 100644 --- a/src/interfaces/libpq/fe-connect.c +++ b/src/interfaces/libpq/fe-connect.c @@ -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); diff --git a/src/port/ultrix4.h b/src/port/ultrix4.h index ae501302742..0dbac44dffd 100644 --- a/src/port/ultrix4.h +++ b/src/port/ultrix4.h @@ -1,2 +1 @@ # define USE_POSIX_TIME -# define NEED_STRDUP |