This is the mail archive of the
cygwin-patches
mailing list for the Cygwin project.
[PATCH] Return the correct value for getsockopt(SO_REUSEADDR) after setting setsockopt(SO_REUSEADDR, 1).
- From: Erik Bray <erik dot m dot bray at gmail dot com>
- To: cygwin-patches at cygwin dot com
- Cc: Erik Bray <erik dot m dot bray at gmail dot com>
- Date: Mon, 9 Jan 2017 17:36:47 +0100
- Subject: [PATCH] Return the correct value for getsockopt(SO_REUSEADDR) after setting setsockopt(SO_REUSEADDR, 1).
- Authentication-results: sourceware.org; auth=none
From: Erik M. Bray <erik.bray@lri.fr>
---
winsup/cygwin/net.cc | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/winsup/cygwin/net.cc b/winsup/cygwin/net.cc
index e4805d3..b02f9e3 100644
--- a/winsup/cygwin/net.cc
+++ b/winsup/cygwin/net.cc
@@ -925,6 +925,14 @@ cygwin_getsockopt (int fd, int level, int optname, void *optval,
res = fh->getpeereid (&cred->pid, &cred->uid, &cred->gid);
__leave;
}
+ else if (optname == SO_REUSEADDR && level == SOL_SOCKET)
+ {
+ unsigned int *reuseaddr = (unsigned int *) optval;
+ *reuseaddr = fh->saw_reuseaddr();
+ *optlen = sizeof(*reuseaddr);
+ res = 0;
+ __leave;
+ }
/* Old applications still use the old WinSock1 IPPROTO_IP values. */
if (level == IPPROTO_IP && CYGWIN_VERSION_CHECK_FOR_USING_WINSOCK1_VALUES)
optname = convert_ws1_ip_optname (optname);
--
2.8.3