summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorTom Lane2016-04-12 23:52:21 +0000
committerTom Lane2016-04-12 23:52:21 +0000
commitd1b7d4877b9a71f476e8e5adea3b6afe419896ba (patch)
treea8b1f9d5189efc4a59137048f0b847e1ba38045c /src/include
parentdeb71fa9713dfe374a74fc58a5d298b5f25da3f5 (diff)
Provide errno-translation wrappers around bind() and listen() on Windows.
I've seen one too many "could not bind IPv4 socket: No error" log entries from the Windows buildfarm members. Per previous discussion, this is likely caused by the fact that we're doing nothing to translate WSAGetLastError() to errno. Put in a wrapper layer to do that. If this works as expected, it should get back-patched, but let's see what happens in the buildfarm first. Discussion: <4065.1452450340@sss.pgh.pa.us>
Diffstat (limited to 'src/include')
-rw-r--r--src/include/port/win32.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/include/port/win32.h b/src/include/port/win32.h
index 69cd1c41e15..9810a835401 100644
--- a/src/include/port/win32.h
+++ b/src/include/port/win32.h
@@ -364,6 +364,8 @@ void pg_queue_signal(int signum);
/* In backend/port/win32/socket.c */
#ifndef FRONTEND
#define socket(af, type, protocol) pgwin32_socket(af, type, protocol)
+#define bind(s, addr, addrlen) pgwin32_bind(s, addr, addrlen)
+#define listen(s, backlog) pgwin32_listen(s, backlog)
#define accept(s, addr, addrlen) pgwin32_accept(s, addr, addrlen)
#define connect(s, name, namelen) pgwin32_connect(s, name, namelen)
#define select(n, r, w, e, timeout) pgwin32_select(n, r, w, e, timeout)
@@ -371,6 +373,8 @@ void pg_queue_signal(int signum);
#define send(s, buf, len, flags) pgwin32_send(s, buf, len, flags)
SOCKET pgwin32_socket(int af, int type, int protocol);
+int pgwin32_bind(SOCKET s, struct sockaddr * addr, int *addrlen);
+int pgwin32_listen(SOCKET s, int backlog);
SOCKET pgwin32_accept(SOCKET s, struct sockaddr * addr, int *addrlen);
int pgwin32_connect(SOCKET s, const struct sockaddr * name, int namelen);
int pgwin32_select(int nfds, fd_set *readfs, fd_set *writefds, fd_set *exceptfds, const struct timeval * timeout);