From aa27034db5d47f4630f464da53f63a0e62c34daa Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 24 Jan 2010 08:38:18 +0100 Subject: IPv6 patch - part V. (win32) --- src/ip.cpp | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) (limited to 'src/ip.cpp') diff --git a/src/ip.cpp b/src/ip.cpp index cc7c465..5e01c46 100644 --- a/src/ip.cpp +++ b/src/ip.cpp @@ -229,17 +229,6 @@ int zmq::resolve_ip_interface (sockaddr_storage* addr_, socklen_t *addr_len_, // There's no such interface name. Assume literal address. addrinfo *res = NULL; -#if defined ZMQ_HAVE_WINDOWS - // Old versions of Windows don't support inet_pton - // so let's rather use inet_addr instead. - // TODO: This code obviously doesn't work for IPv6 addresses... - ip4_addr.sin_addr.S_un.S_addr = inet_addr (iface.c_str ()); - if (ip4_addr.sin_addr.S_un.S_addr == INADDR_NONE) { - errno = ENODEV; - return -1; - } -#else - // Set up the query. addrinfo req; memset (&req, 0, sizeof (req)); @@ -263,13 +252,9 @@ int zmq::resolve_ip_interface (sockaddr_storage* addr_, socklen_t *addr_len_, } // Use the first result. - out_addr = res->ai_addr; - out_addrlen = res->ai_addrlen; -#endif - - zmq_assert (out_addrlen <= sizeof (*addr_)); - memcpy (addr_, out_addr, out_addrlen); - *addr_len_ = out_addrlen; + zmq_assert (res->ai_addrlen <= sizeof (*addr_)); + memcpy (addr_, res->ai_addr, res->ai_addrlen); + *addr_len_ = res->ai_addrlen; // Cleanup getaddrinfo after copying the possibly referenced result. if (res) -- cgit v1.2.3