aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/platform/windows/win_tcpdial.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/platform/windows/win_tcpdial.c b/src/platform/windows/win_tcpdial.c
index e295bd8d..3d470ca1 100644
--- a/src/platform/windows/win_tcpdial.c
+++ b/src/platform/windows/win_tcpdial.c
@@ -153,6 +153,8 @@ tcp_dial_cb(nni_win_io *io, int rv, size_t cnt)
nni_aio_finish_error(aio, rv);
} else {
DWORD yes = 1;
+ int len;
+
(void) setsockopt(c->s, SOL_SOCKET, SO_UPDATE_CONNECT_CONTEXT,
(char *) &yes, sizeof(yes));
@@ -162,6 +164,9 @@ tcp_dial_cb(nni_win_io *io, int rv, size_t cnt)
(void) setsockopt(
c->s, IPPROTO_TCP, TCP_NODELAY, (char *) &nd, sizeof(nd));
+ len = sizeof (SOCKADDR_STORAGE);
+ (void) getsockname(c->s, (SOCKADDR *) &c->sockname, &len);
+
nni_aio_set_output(aio, 0, c);
nni_aio_finish(aio, 0, 0);
}