summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane1999-09-08 22:57:12 +0000
committerTom Lane1999-09-08 22:57:12 +0000
commit45500964f61b0ec671b84b1fdb988bad78f35473 (patch)
tree82544c0bc52abb1df59971c30f14592b42ab3ab7
parentb1134e369f8b31a47d0310bf4a1c45a504e90680 (diff)
StreamConnection() mustn't call elog().
-rw-r--r--src/backend/libpq/pqcomm.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c
index 1d574158604..60b2f2e32b5 100644
--- a/src/backend/libpq/pqcomm.c
+++ b/src/backend/libpq/pqcomm.c
@@ -28,7 +28,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: pqcomm.c,v 1.82 1999/08/31 04:26:37 tgl Exp $
+ * $Id: pqcomm.c,v 1.83 1999/09/08 22:57:12 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -335,6 +335,10 @@ StreamServerPort(char *hostName, unsigned short portName, int *fdP)
* the Postmaster uses select() to tell when the server master
* socket is ready for accept().
*
+ * NB: this can NOT call elog() because it is invoked in the postmaster,
+ * not in standard backend context. If we get an error, the best we can do
+ * is log it to stderr.
+ *
* RETURNS: STATUS_OK or STATUS_ERROR
*/
int
@@ -348,7 +352,7 @@ StreamConnection(int server_fd, Port *port)
(struct sockaddr *) & port->raddr,
&addrlen)) < 0)
{
- elog(ERROR, "postmaster: StreamConnection: accept: %m");
+ perror("postmaster: StreamConnection: accept");
return STATUS_ERROR;
}
@@ -357,7 +361,7 @@ StreamConnection(int server_fd, Port *port)
if (getsockname(port->sock, (struct sockaddr *) & port->laddr,
&addrlen) < 0)
{
- elog(ERROR, "postmaster: StreamConnection: getsockname: %m");
+ perror("postmaster: StreamConnection: getsockname");
return STATUS_ERROR;
}
@@ -370,13 +374,13 @@ StreamConnection(int server_fd, Port *port)
pe = getprotobyname("TCP");
if (pe == NULL)
{
- elog(ERROR, "postmaster: getprotobyname failed");
+ perror("postmaster: StreamConnection: getprotobyname");
return STATUS_ERROR;
}
if (setsockopt(port->sock, pe->p_proto, TCP_NODELAY,
&on, sizeof(on)) < 0)
{
- elog(ERROR, "postmaster: setsockopt failed: %m");
+ perror("postmaster: StreamConnection: setsockopt");
return STATUS_ERROR;
}
}