Remove calls to getprotobyname(), which we now know leaks memory on
authorTom Lane
Sun, 21 May 2000 21:19:53 +0000 (21:19 +0000)
committerTom Lane
Sun, 21 May 2000 21:19:53 +0000 (21:19 +0000)
some platforms --- and I also see that it is documented as not thread-
safe on HPUX and possibly other platforms.  No good reason not to just
use IPPROTO_TCP constant from  instead.

src/backend/libpq/pqcomm.c
src/interfaces/libpq/fe-connect.c

index 7d2f7eb7d68a287b955023dff112017575bf9f26..aec4f34c7d20d9a333a506ec0e083b7e7dac0916 100644 (file)
@@ -29,7 +29,7 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pqcomm.c,v 1.90 2000/05/20 13:10:54 ishii Exp $
+ * $Id: pqcomm.c,v 1.91 2000/05/21 21:19:53 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -360,19 +360,12 @@ StreamConnection(int server_fd, Port *port)
        return STATUS_ERROR;
    }
 
-   /* select TCP_NODELAY option if it's a TCP connection */
+   /* select NODELAY and KEEPALIVE options if it's a TCP connection */
    if (port->laddr.sa.sa_family == AF_INET)
    {
-       struct protoent *pe;
        int         on = 1;
 
-       pe = getprotobyname("TCP");
-       if (pe == NULL)
-       {
-           perror("postmaster: StreamConnection: getprotobyname");
-           return STATUS_ERROR;
-       }
-       if (setsockopt(port->sock, pe->p_proto, TCP_NODELAY,
+       if (setsockopt(port->sock, IPPROTO_TCP, TCP_NODELAY,
                       &on, sizeof(on)) < 0)
        {
            perror("postmaster: StreamConnection: setsockopt(TCP_NODELAY)");
index c400a7ebb1604c9aa9915975188fc5479fd33510..400bab2f7d5990a174c26a940c949cbf5861a9f0 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.126 2000/04/12 17:17:14 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.127 2000/05/21 21:19:53 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -29,6 +29,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #endif
@@ -625,19 +626,9 @@ connectMakeNonblocking(PGconn *conn)
 static int
 connectNoDelay(PGconn *conn)
 {
-   struct protoent *pe;
    int         on = 1;
 
-   pe = getprotobyname("TCP");
-   if (pe == NULL)
-   {
-       printfPQExpBuffer(&conn->errorMessage,
-                         "connectNoDelay() -- "
-                         "getprotobyname failed: errno=%d\n%s\n",
-                         errno, strerror(errno));
-       return 0;
-   }
-   if (setsockopt(conn->sock, pe->p_proto, TCP_NODELAY,
+   if (setsockopt(conn->sock, IPPROTO_TCP, TCP_NODELAY,
 #ifdef WIN32
                   (char *)
 #endif