diff options
| -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); } |
