diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2016-04-21 15:44:18 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2016-04-21 15:44:18 -0400 |
commit | b2bb59bd51849d4eec777171f6e402581e00d654 (patch) | |
tree | 93dbfc29b5c1544495ab48befbed03ad783cd27b /src/backend/port/win32/socket.c | |
parent | 663624e60bd679ef7d4abeca1e68aceb5f2f5bbe (diff) | |
download | postgresql-b2bb59bd51849d4eec777171f6e402581e00d654.tar.gz postgresql-b2bb59bd51849d4eec777171f6e402581e00d654.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.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/backend/port/win32/socket.c b/src/backend/port/win32/socket.c index 658463000fb..32b885bb4d4 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 @@ -260,6 +263,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) |