Various patches for nextstep by GregorHoffleit

Replaced NEED_STRDUP by !HAVE_STRDUP
This commit is contained in:
Marc G. Fournier 1997-02-13 08:32:20 +00:00
parent 809ae06ab2
commit a5494a2d92
7 changed files with 51 additions and 16 deletions

View File

@ -10,7 +10,7 @@
* *
* *
* IDENTIFICATION * 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 * NOTES
* *
@ -420,12 +420,16 @@ pmdaemonize(void)
if (fork()) if (fork())
exit(0); 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) { if (setsid() < 0) {
fprintf(stderr, "%s: ", progname); fprintf(stderr, "%s: ", progname);
perror("cannot disassociate from controlling TTY"); perror("cannot disassociate from controlling TTY");
exit(1); exit(1);
} }
#endif
i = open(NULL_DEV, O_RDWR); i = open(NULL_DEV, O_RDWR);
(void) dup2(i, 0); (void) dup2(i, 0);
(void) dup2(i, 1); (void) dup2(i, 1);
@ -459,19 +463,30 @@ ServerLoop(void)
fd_set rmask, basemask; fd_set rmask, basemask;
int nSockets, nSelected, status, newFd; int nSockets, nSelected, status, newFd;
Dlelem *next, *curr; Dlelem *next, *curr;
/* int orgsigmask = sigblock(0); */ /* GH: For !HAVE_SIGPROCMASK (NEXTSTEP), TRH implemented
* an alternative interface.
*/
#ifdef HAVE_SIGPROCMASK
sigset_t oldsigmask, newsigmask; sigset_t oldsigmask, newsigmask;
#else
int orgsigmask = sigblock(0);
#endif
nSockets = ServerSock + 1; nSockets = ServerSock + 1;
FD_ZERO(&basemask); FD_ZERO(&basemask);
FD_SET(ServerSock, &basemask); FD_SET(ServerSock, &basemask);
#ifdef HAVE_SIGPROCMASK
sigprocmask(0,0,&oldsigmask); sigprocmask(0,0,&oldsigmask);
sigemptyset(&newsigmask); sigemptyset(&newsigmask);
sigaddset(&newsigmask,SIGCHLD); sigaddset(&newsigmask,SIGCHLD);
#endif
for (;;) { for (;;) {
/* sigsetmask(orgsigmask); */ #ifdef HAVE_SIGPROCMASK
sigprocmask(SIG_SETMASK,&oldsigmask,0); sigprocmask(SIG_SETMASK,&oldsigmask,0);
#else
sigsetmask(orgsigmask);
#endif
newFd = -1; newFd = -1;
memmove((char *) &rmask, (char *) &basemask, sizeof(fd_set)); memmove((char *) &rmask, (char *) &basemask, sizeof(fd_set));
if ((nSelected = select(nSockets, &rmask, if ((nSelected = select(nSockets, &rmask,
@ -490,8 +505,11 @@ ServerLoop(void)
* manipulate the BackEnd list, and reaper() calls free() which is * manipulate the BackEnd list, and reaper() calls free() which is
* usually non-reentrant.) * usually non-reentrant.)
*/ */
#ifdef HAVE_SIGPROCMASK
sigprocmask(SIG_BLOCK, &newsigmask, &oldsigmask); sigprocmask(SIG_BLOCK, &newsigmask, &oldsigmask);
/* sigblock(sigmask(SIGCHLD)); */ /* XXX[TRH] portability */ #else
sigblock(sigmask(SIGCHLD)); /* XXX[TRH] portability */
#endif
if (DebugLvl > 1) { if (DebugLvl > 1) {
fprintf(stderr, "%s: ServerLoop: %d sockets pending\n", fprintf(stderr, "%s: ServerLoop: %d sockets pending\n",
progname, nSelected); progname, nSelected);
@ -816,15 +834,25 @@ pmdie(SIGNAL_ARGS)
static void static void
reaper(SIGNAL_ARGS) reaper(SIGNAL_ARGS)
{ {
/* GH: replace waitpid for !HAVE_WAITPID. Does this work ? */
#ifdef HAVE_WAITPID
int status; /* backend exit status */ int status; /* backend exit status */
#else
union wait statusp; /* backend exit status */
#endif
int pid; /* process id of dead backend */ int pid; /* process id of dead backend */
if (DebugLvl) if (DebugLvl)
fprintf(stderr, "%s: reaping dead processes...\n", fprintf(stderr, "%s: reaping dead processes...\n",
progname); progname);
#ifndef WIN32 #ifndef WIN32
#ifdef HAVE_WAITPID
while((pid = waitpid(-1, &status, WNOHANG)) > 0) while((pid = waitpid(-1, &status, WNOHANG)) > 0)
CleanupProc(pid, status); CleanupProc(pid, status);
#else
while((pid = wait3(&statusp, WNOHANG, NULL)) > 0)
CleanupProc(pid, statusp.w_status);
#endif
#endif /* WIN32 */ #endif /* WIN32 */
} }

View File

@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * 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 * Modifications - 6/12/96 - dave@bensoft.com - version 1.13.dhb.2
* *
@ -29,7 +29,7 @@
#include "postgres.h" #include "postgres.h"
#include "libpq-fe.h" #include "libpq-fe.h"
#ifdef NEED_STRDUP #ifndef HAVE_STRDUP
#include "strdup.h" #include "strdup.h"
#endif #endif

View File

@ -20,7 +20,7 @@
* *
* *
* IDENTIFICATION * 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 * Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb
* *
@ -54,7 +54,7 @@
#include "postgres.h" #include "postgres.h"
#include "access/htup.h" #include "access/htup.h"
#include "libpq-fe.h" #include "libpq-fe.h"
#ifdef NEED_STRDUP #ifndef HAVE_STRDUP
#include "strdup.h" #include "strdup.h"
#endif #endif

View File

@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * 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 "pqsignal.h"
#include "stringutils.h" #include "stringutils.h"
#include "psqlHelp.h" #include "psqlHelp.h"
#ifdef NEED_STRDUP #ifndef HAVE_STRDUP
#include "strdup.h" #include "strdup.h"
#endif #endif

View File

@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * 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 <ctype.h>
#include <stdlib.h> #include <stdlib.h>
#ifdef NEED_STRDUP #ifndef HAVE_STRDUP
#include "strdup.h" #include "strdup.h"
#endif #endif

View File

@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * 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 "fe-auth.h"
#include "libpq-fe.h" #include "libpq-fe.h"
#ifdef NEED_STRDUP #ifndef HAVE_STRDUP
#include "strdup.h" #include "strdup.h"
#endif #endif
@ -518,6 +518,8 @@ freePGconn(PGconn *conn)
static void static void
closePGconn(PGconn *conn) closePGconn(PGconn *conn)
{ {
/* GH: What to do for !USE_POSIX_SIGNALS ? */
#if defined(USE_POSIX_SIGNALS)
struct sigaction ignore_action; struct sigaction ignore_action;
/* This is used as a constant, but not declared as such because the /* This is used as a constant, but not declared as such because the
sigaction structure is defined differently on different systems */ sigaction structure is defined differently on different systems */
@ -534,6 +536,12 @@ closePGconn(PGconn *conn)
fputs("X\0", conn->Pfout); fputs("X\0", conn->Pfout);
fflush(conn->Pfout); fflush(conn->Pfout);
sigaction(SIGPIPE, &oldaction, NULL); 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->Pfout) fclose(conn->Pfout);
if (conn->Pfin) fclose(conn->Pfin); if (conn->Pfin) fclose(conn->Pfin);
if (conn->Pfdebug) fclose(conn->Pfdebug); if (conn->Pfdebug) fclose(conn->Pfdebug);

View File

@ -1,2 +1 @@
# define USE_POSIX_TIME # define USE_POSIX_TIME
# define NEED_STRDUP