OSDN Git Service

Use closesocket() for all socket/pipe closing, because Win32 requires
authorBruce Momjian <bruce@momjian.us>
Fri, 25 Apr 2003 01:24:00 +0000 (01:24 +0000)
committerBruce Momjian <bruce@momjian.us>
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 f607167..f722bb5 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 2cf2a36..bebff36 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 86d47db..c583522 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 833312b..8352eba 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 6ee2716..a31f34d 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 3fe0ddc..8452098 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 76de4a8..042ef20 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 b659c99..2e81e1c 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);