diff options
| -rw-r--r-- | src/tcp_connecter.cpp | 18 | 
1 files changed, 18 insertions, 0 deletions
diff --git a/src/tcp_connecter.cpp b/src/tcp_connecter.cpp index 6badaea..f950896 100644 --- a/src/tcp_connecter.cpp +++ b/src/tcp_connecter.cpp @@ -198,6 +198,24 @@ int zmq::tcp_connecter_t::open ()          return -1;  #endif +    //  Enable IPv4-mapping of addresses in case it is disabled by default. +#ifdef IPV6_V6ONLY +    if (addr.ss_family == AF_INET6) { +#if ZMQ_HAVE_WINDOWS +        DWORD flag = 0; +#else +        int flag = 0; +#endif +        int rc = setsockopt (s, IPPROTO_IPV6, IPV6_V6ONLY, +            (const char*) &flag, sizeof (flag)); +#ifdef ZMQ_HAVE_WINDOWS +        wsa_assert (rc != SOCKET_ERROR); +#else +        errno_assert (rc == 0); +#endif +    } +#endif +      // Set the socket to non-blocking mode so that we get async connect().      unblock_socket (s);  | 
