aboutsummaryrefslogtreecommitdiff
path: root/src/platform
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2019-12-28 12:00:22 -0800
committerGarrett D'Amore <garrett@damore.org>2019-12-28 12:41:38 -0800
commit3af07a9cca37a7487593c5aa7efe2aee56353159 (patch)
tree6dbbf4e539925f548d83485dcdb8505d92837600 /src/platform
parent255a85d10f68a898c671f9387da61e0ba62a61c7 (diff)
downloadnng-3af07a9cca37a7487593c5aa7efe2aee56353159.tar.gz
nng-3af07a9cca37a7487593c5aa7efe2aee56353159.tar.bz2
nng-3af07a9cca37a7487593c5aa7efe2aee56353159.zip
fixes #1062 Windows client connections cannot get NNG_OPT_LOCADDR
Diffstat (limited to 'src/platform')
-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);
}