diff options
| author | Garrett D'Amore <garrett@damore.org> | 2019-12-28 12:00:22 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2019-12-28 12:41:38 -0800 |
| commit | 3af07a9cca37a7487593c5aa7efe2aee56353159 (patch) | |
| tree | 6dbbf4e539925f548d83485dcdb8505d92837600 /src/platform | |
| parent | 255a85d10f68a898c671f9387da61e0ba62a61c7 (diff) | |
| download | nng-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.c | 5 |
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); } |
