summaryrefslogtreecommitdiff
path: root/src/ip.cpp
diff options
context:
space:
mode:
authorunknown <bundra@.(none)>2010-01-24 08:38:18 +0100
committerunknown <bundra@.(none)>2010-01-24 08:38:18 +0100
commitaa27034db5d47f4630f464da53f63a0e62c34daa (patch)
treecb833f666114606bb7c7f6abfbfb26a68efc8a56 /src/ip.cpp
parentadc5d7693d9279134c0494210b9d2b885e95d950 (diff)
IPv6 patch - part V. (win32)
Diffstat (limited to 'src/ip.cpp')
-rw-r--r--src/ip.cpp21
1 files changed, 3 insertions, 18 deletions
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)