From 3af07a9cca37a7487593c5aa7efe2aee56353159 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Sat, 28 Dec 2019 12:00:22 -0800 Subject: fixes #1062 Windows client connections cannot get NNG_OPT_LOCADDR --- src/platform/windows/win_tcpdial.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/platform') 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); } -- cgit v1.2.3-70-g09d2