diff options
author | Bruce Momjian | 2003-04-25 01:24:00 +0000 |
---|---|---|
committer | Bruce Momjian | 2003-04-25 01:24:00 +0000 |
commit | 5b4eda3a4a02623477498c2d3ef4679096db32f1 (patch) | |
tree | 79f300f4a82cc27fc32a5c51220184d780716630 | |
parent | 5d9bd4b9900e24e3a9625b2d1afd57ab7779159b (diff) |
Use closesocket() for all socket/pipe closing, because Win32 requires
it, and map that to close() on Unix.
-rw-r--r-- | src/backend/libpq/hba.c | 2 | ||||
-rw-r--r-- | src/backend/libpq/pqcomm.c | 6 | ||||
-rw-r--r-- | src/backend/postmaster/pgstat.c | 14 | ||||
-rw-r--r-- | src/include/c.h | 7 | ||||
-rw-r--r-- | src/interfaces/libpq/fe-connect.c | 24 | ||||
-rw-r--r-- | src/interfaces/libpq/fe-exec.c | 4 | ||||
-rw-r--r-- | src/interfaces/libpq/fe-misc.c | 4 | ||||
-rw-r--r-- | src/interfaces/python/pgmodule.c | 10 |
8 files changed, 26 insertions, 45 deletions
diff --git a/src/backend/libpq/hba.c b/src/backend/libpq/hba.c index 761a819167..d3e60582e8 100644 --- a/src/backend/libpq/hba.c +++ b/src/backend/libpq/hba.c @@ -1212,7 +1212,7 @@ ident_inet(const struct in_addr remote_ip_addr, ident_user); } } - close(sock_fd); + closesocket(sock_fd); } } return ident_return; diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c index 4cdac5c463..0bce87c730 100644 --- a/src/backend/libpq/pqcomm.c +++ b/src/backend/libpq/pqcomm.c @@ -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); } /* diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c index 46a7108dfc..a9507e5d46 100644 --- a/src/backend/postmaster/pgstat.c +++ b/src/backend/postmaster/pgstat.c @@ -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); } diff --git a/src/include/c.h b/src/include/c.h index 6f231fc327..9b91d68c1f 100644 --- a/src/include/c.h +++ b/src/include/c.h @@ -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" diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c index 34a2909f55..8df4c0e140 100644 --- a/src/interfaces/libpq/fe-connect.c +++ b/src/interfaces/libpq/fe-connect.c @@ -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 } diff --git a/src/interfaces/libpq/fe-exec.c b/src/interfaces/libpq/fe-exec.c index b8daa1068d..0d23d499d7 100644 --- a/src/interfaces/libpq/fe-exec.c +++ b/src/interfaces/libpq/fe-exec.c @@ -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; } diff --git a/src/interfaces/libpq/fe-misc.c b/src/interfaces/libpq/fe-misc.c index f3963a6e9f..8d2c30708f 100644 --- a/src/interfaces/libpq/fe-misc.c +++ b/src/interfaces/libpq/fe-misc.c @@ -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; diff --git a/src/interfaces/python/pgmodule.c b/src/interfaces/python/pgmodule.c index b659c99759..2e81e1c51a 100644 --- a/src/interfaces/python/pgmodule.c +++ b/src/interfaces/python/pgmodule.c @@ -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); |