summaryrefslogtreecommitdiff
path: root/src/tcp_listener.cpp
diff options
context:
space:
mode:
authorMartin Sustrik <sustrik@fastmq.commkdir>2010-01-23 08:19:30 +0100
committerMartin Sustrik <sustrik@fastmq.commkdir>2010-01-23 08:19:30 +0100
commit2634934999408124837afceaf577b75ed58116d7 (patch)
tree907785b2b21fd5768b2d042d336667c88e15c66f /src/tcp_listener.cpp
parent6aaf095dd259dc42d78cc7bd8c5a7f867eb23166 (diff)
IPv6 patch part 2/2
Diffstat (limited to 'src/tcp_listener.cpp')
-rw-r--r--src/tcp_listener.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/tcp_listener.cpp b/src/tcp_listener.cpp
index c26201c..3d15abe 100644
--- a/src/tcp_listener.cpp
+++ b/src/tcp_listener.cpp
@@ -33,6 +33,7 @@ zmq::tcp_listener_t::tcp_listener_t () :
s (retired_fd)
{
memset (&addr, 0, sizeof (addr));
+ addr_len = 0;
}
zmq::tcp_listener_t::~tcp_listener_t ()
@@ -50,7 +51,7 @@ int zmq::tcp_listener_t::set_address (const char *protocol_, const char *addr_)
}
// Convert the interface into sockaddr_in structure.
- int rc = resolve_ip_interface (&addr, addr_);
+ int rc = resolve_ip_interface (&addr, &addr_len, addr_);
if (rc != 0)
return rc;
@@ -73,7 +74,7 @@ int zmq::tcp_listener_t::set_address (const char *protocol_, const char *addr_)
wsa_assert (rc != SOCKET_ERROR);
// Bind the socket to the network interface and port.
- rc = bind (s, (struct sockaddr*) &addr, sizeof (addr));
+ rc = bind (s, (struct sockaddr*) &addr, addr_len);
if (rc == SOCKET_ERROR) {
wsa_error_to_errno ();
return -1;
@@ -158,7 +159,7 @@ int zmq::tcp_listener_t::set_address (const char *protocol_, const char *addr_)
if (strcmp (protocol_, "tcp") == 0 ) {
// Resolve the sockaddr to bind to.
- int rc = resolve_ip_interface (&addr, addr_);
+ int rc = resolve_ip_interface (&addr, &addr_len, addr_);
if (rc != 0)
return -1;
@@ -180,7 +181,7 @@ int zmq::tcp_listener_t::set_address (const char *protocol_, const char *addr_)
errno_assert (rc != -1);
// Bind the socket to the network interface and port.
- rc = bind (s, (struct sockaddr*) &addr, sizeof (addr));
+ rc = bind (s, (struct sockaddr*) &addr, addr_len);
if (rc != 0) {
close ();
return -1;
@@ -202,7 +203,7 @@ int zmq::tcp_listener_t::set_address (const char *protocol_, const char *addr_)
::unlink (addr_);
// Convert the address into sockaddr_un structure.
- int rc = resolve_local_path ((struct sockaddr_un*) &addr, addr_);
+ int rc = resolve_local_path (&addr, &addr_len, addr_);
if (rc != 0)
return -1;