aboutsummaryrefslogtreecommitdiff
path: root/src/backend/port/win32/socket.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2016-04-21 15:44:18 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2016-04-21 15:44:18 -0400
commit6848827b43dc654ec609b7922d48f348d5ebc6b3 (patch)
tree120d26954151ee6bd4ea9566c5333c17790f74d6 /src/backend/port/win32/socket.c
parentc7c145e4fb8f38c2c6b7a3b239e4c33f1aa0ae87 (diff)
downloadpostgresql-6848827b43dc654ec609b7922d48f348d5ebc6b3.tar.gz
postgresql-6848827b43dc654ec609b7922d48f348d5ebc6b3.zip
Provide errno-translation wrappers around bind() and listen() on Windows.
Fix Windows builds to report something useful rather than "could not bind IPv4 socket: No error" when bind() fails. Back-patch of commits d1b7d4877b9a71f4 and 22989a8e34168f57. Discussion: <4065.1452450340@sss.pgh.pa.us>
Diffstat (limited to 'src/backend/port/win32/socket.c')
-rw-r--r--src/backend/port/win32/socket.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/backend/port/win32/socket.c b/src/backend/port/win32/socket.c
index 64212c73707..f82553fca64 100644
--- a/src/backend/port/win32/socket.c
+++ b/src/backend/port/win32/socket.c
@@ -27,7 +27,10 @@
*/
int pgwin32_noblock = 0;
+/* Undef the macros defined in win32.h, so we can access system functions */
#undef socket
+#undef bind
+#undef listen
#undef accept
#undef connect
#undef select
@@ -261,6 +264,27 @@ pgwin32_socket(int af, int type, int protocol)
return s;
}
+int
+pgwin32_bind(SOCKET s, struct sockaddr * addr, int addrlen)
+{
+ int res;
+
+ res = bind(s, addr, addrlen);
+ if (res < 0)
+ TranslateSocketError();
+ return res;
+}
+
+int
+pgwin32_listen(SOCKET s, int backlog)
+{
+ int res;
+
+ res = listen(s, backlog);
+ if (res < 0)
+ TranslateSocketError();
+ return res;
+}
SOCKET
pgwin32_accept(SOCKET s, struct sockaddr * addr, int *addrlen)