Use closesocket() for all socket/pipe closing, because Win32 requires
authorBruce Momjian
Fri, 25 Apr 2003 01:24:00 +0000 (01:24 +0000)
committerBruce Momjian
Fri, 25 Apr 2003 01:24:00 +0000 (01:24 +0000)
it, and map that to close() on Unix.

src/backend/libpq/hba.c
src/backend/libpq/pqcomm.c
src/backend/postmaster/pgstat.c
src/include/c.h
src/interfaces/libpq/fe-connect.c
src/interfaces/libpq/fe-exec.c
src/interfaces/libpq/fe-misc.c
src/interfaces/python/pgmodule.c

index f607167b6e82faf54cfe9c09066b294a3d8968d5..f722bb52716199853055a05393916935ca0beb59 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/libpq/hba.c,v 1.99 2003/04/17 22:26:01 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/libpq/hba.c,v 1.100 2003/04/25 01:24:00 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1212,7 +1212,7 @@ ident_inet(const struct in_addr remote_ip_addr,
                                                            ident_user);
                }
            }
-           close(sock_fd);
+           closesocket(sock_fd);
        }
    }
    return ident_return;
index 2cf2a36b7b3ca6dd86f78f9403af9a339785c041..bebff3653770083e18698f6ce1d2f9d7a269af75 100644 (file)
@@ -30,7 +30,7 @@
  * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Header: /cvsroot/pgsql/src/backend/libpq/pqcomm.c,v 1.151 2003/04/22 00:08:06 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/libpq/pqcomm.c,v 1.152 2003/04/25 01:24:00 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -150,7 +150,7 @@ pq_close(void)
    if (MyProcPort != NULL)
    {
        secure_close(MyProcPort);
-       close(MyProcPort->sock);
+       closesocket(MyProcPort->sock);
        /* make sure any subsequent attempts to do I/O fail cleanly */
        MyProcPort->sock = -1;
    }
@@ -228,7 +228,7 @@ StreamServerPort(int family, char *hostName, unsigned short portNumber,
        snprintf(portNumberStr, sizeof(portNumberStr), "%d", portNumber);
        service = portNumberStr;
    }
-   
+
    ret = getaddrinfo2(hostName, service, &hint, &addrs);
    if (ret || addrs == NULL)
    {
@@ -470,7 +470,7 @@ StreamConnection(int server_fd, Port *port)
 void
 StreamClose(int sock)
 {
-   close(sock);
+   closesocket(sock);
 }
 
 /*
index 86d47db9efd14f7d83c45d95f906d63ec6930006..c5835226e64021cba6f4b976b73184dcbe88e467 100644 (file)
@@ -16,7 +16,7 @@
  *
  * Copyright (c) 2001, PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/backend/postmaster/pgstat.c,v 1.32 2003/03/20 03:34:56 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/postmaster/pgstat.c,v 1.33 2003/04/25 01:24:00 momjian Exp $
  * ----------
  */
 #include "postgres.h"
@@ -235,7 +235,7 @@ pgstat_init(void)
 
 startup_failed:
    if (pgStatSock >= 0)
-       close(pgStatSock);
+       closesocket(pgStatSock);
    pgStatSock = -1;
 
    /* Adjust GUC variables to suppress useless activity */
@@ -359,10 +359,10 @@ void
 pgstat_close_sockets(void)
 {
    if (pgStatPmPipe[0] >= 0)
-       close(pgStatPmPipe[0]);
+       closesocket(pgStatPmPipe[0]);
    pgStatPmPipe[0] = -1;
    if (pgStatPmPipe[1] >= 0)
-       close(pgStatPmPipe[1]);
+       closesocket(pgStatPmPipe[1]);
    pgStatPmPipe[1] = -1;
 }
 
@@ -1120,7 +1120,7 @@ pgstat_main(void)
     * Close the writing end of the postmaster pipe, so we'll see it
     * closing when the postmaster terminates and can terminate as well.
     */
-   close(pgStatPmPipe[1]);
+   closesocket(pgStatPmPipe[1]);
    pgStatPmPipe[1] = -1;
 
    /*
@@ -1167,13 +1167,13 @@ pgstat_main(void)
 
        case 0:
            /* child becomes collector process */
-           close(pgStatPipe[1]);
-           close(pgStatSock);
+           closesocket(pgStatPipe[1]);
+           closesocket(pgStatSock);
            break;
 
        default:
            /* parent becomes buffer process */
-           close(pgStatPipe[0]);
+           closesocket(pgStatPipe[0]);
            pgstat_recvbuffer();
            exit(0);
    }
index 833312b9d6a756d30b0d7a2b4ad3ed27fd9cfdfb..8352ebac2a44320dae4d10ac2bb34e5658653c74 100644 (file)
@@ -12,7 +12,7 @@
  * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: c.h,v 1.139 2003/04/22 02:18:09 momjian Exp $
+ * $Id: c.h,v 1.140 2003/04/25 01:24:00 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -721,6 +721,13 @@ int pgunlink(const char *path);
 #define unlink(from, to)   pgunlink(from, to)
 #endif
 
+/*
+ * Win32 requires a special close for sockets and pipes, while on Unix
+ * close() does them all.
+ */
+#ifndef WIN32
+#define    closesocket close
+#endif
   
 /* These are for things that are one way on Unix and another on NT */
 #define NULL_DEV       "/dev/null"
index 6ee2716ec0912e0329c23c6916759b1166cba271..a31f34d7a98fa8d33f32a5039c41d3dd1bed9cb9 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.235 2003/04/24 21:16:44 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.236 2003/04/25 01:24:00 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -956,7 +956,7 @@ retry1:
        /* ignore connect() failure if we have more addrs to try */
        if (addr_cur->ai_next != NULL)
        {
-           close(conn->sock);
+           closesocket(conn->sock);
            conn->sock = -1;
            continue;
        }
@@ -1015,11 +1015,7 @@ retry2:
            if (conn->Pfdebug)
                fprintf(conn->Pfdebug, "Postmaster reports error, attempting fallback to pre-7.0.\n");
            pqsecure_close(conn);
-#ifdef WIN32
            closesocket(conn->sock);
-#else
-           close(conn->sock);
-#endif
            conn->sock = -1;
            conn->allow_ssl_try = FALSE;
            return connectDBStart(conn);
@@ -1056,11 +1052,7 @@ connect_errReturn:
    if (conn->sock >= 0)
    {
        pqsecure_close(conn);
-#ifdef WIN32
        closesocket(conn->sock);
-#else
-       close(conn->sock);
-#endif
        conn->sock = -1;
    }
    conn->status = CONNECTION_BAD;
@@ -1928,11 +1920,7 @@ freePGconn(PGconn *conn)
    if (conn->sock >= 0)
    {
        pqsecure_close(conn);
-#ifdef WIN32
        closesocket(conn->sock);
-#else
-       close(conn->sock);
-#endif
    }
    if (conn->pghost)
        free(conn->pghost);
@@ -2003,11 +1991,7 @@ closePGconn(PGconn *conn)
    if (conn->sock >= 0)
    {
        pqsecure_close(conn);
-#ifdef WIN32
        closesocket(conn->sock);
-#else
-       close(conn->sock);
-#endif
    }
    conn->sock = -1;
    conn->status = CONNECTION_BAD;      /* Well, not really _bad_ - just
@@ -2187,11 +2171,10 @@ retry4:
    }
 
    /* Sent it, done */
-#ifdef WIN32
    closesocket(tmpsock);
+#ifdef WIN32
    WSASetLastError(save_errno);
 #else
-   close(tmpsock);
    errno = save_errno;
 #endif
 
@@ -2203,11 +2186,10 @@ cancel_errReturn:
    conn->errorMessage.len = strlen(conn->errorMessage.data);
    if (tmpsock >= 0)
    {
-#ifdef WIN32
        closesocket(tmpsock);
+#ifdef WIN32
        WSASetLastError(save_errno);
 #else
-       close(tmpsock);
        errno = save_errno;
 #endif
    }
index 3fe0ddc4920551b8ca073afd5317af64d99c378d..84520987812e6e87147f0c49259028572850e139 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.131 2003/04/24 21:16:44 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.132 2003/04/25 01:24:00 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1161,11 +1161,7 @@ handleSyncLoss(PGconn *conn, char id, int msgLength)
                      id, msgLength);
    conn->status = CONNECTION_BAD;      /* No more connection to backend */
    pqsecure_close(conn);
-#ifdef WIN32
    closesocket(conn->sock);
-#else
-   close(conn->sock);
-#endif
    conn->sock = -1;
 }
 
index 76de4a8708628468a7696477744bb58a20e77fee..042ef204aba1921ec7fe387d7890eee05457bbc0 100644 (file)
@@ -23,7 +23,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-misc.c,v 1.90 2003/04/22 00:08:07 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-misc.c,v 1.91 2003/04/25 01:24:00 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -681,11 +681,7 @@ definitelyFailed:
                         "\tbefore or while processing the request.\n"));
    conn->status = CONNECTION_BAD;      /* No more connection to backend */
    pqsecure_close(conn);
-#ifdef WIN32
    closesocket(conn->sock);
-#else
-   close(conn->sock);
-#endif
    conn->sock = -1;
 
    return -1;
index b659c99759e97738ad705e914a51d727a3ad2d0d..2e81e1c51a5739b14882a3de9ced12de175ddca3 100644 (file)
@@ -2405,10 +2405,10 @@ pg_inserttable(pgobject * self, PyObject * args)
                n = j;      /* never used before this assignment */
        }
        if (n)
-       {   
+       {
            /* allocate buffer */
            if (!(buffer = malloc(MAX_BUFFER_SIZE)))
-           {       
+           {
                PyErr_SetString(PyExc_MemoryError,
                    "can't allocate insert buffer.");
                return NULL;
@@ -2438,7 +2438,7 @@ pg_inserttable(pgobject * self, PyObject * args)
                    getsubitem = PyTuple_GetItem;
                else
                    getsubitem = PyList_GetItem;
-   
+
                /* builds insert line */
                bufpt=buffer;
                bufsiz = MAX_BUFFER_SIZE - 1;
@@ -2527,7 +2527,7 @@ pg_inserttable(pgobject * self, PyObject * args)
                    {
                        *bufpt++ = '\t'; --bufsiz;
                    }
-           
+
                    if (bufsiz <= 0)
                    {
                        free(buffer);
@@ -2543,7 +2543,7 @@ pg_inserttable(pgobject * self, PyObject * args)
                /* sends data */
                PQputline(self->cnx, buffer);
            }
-   
+
            /* ends query */
            PQputline(self->cnx, "\\.\n");
            PQendcopy(self->cnx);