summaryrefslogtreecommitdiff
path: root/src/tcp_listener.cpp
diff options
context:
space:
mode:
authorMartin Sustrik <sustrik@fastmq.commkdir>2010-01-22 13:13:52 +0100
committerMartin Sustrik <sustrik@fastmq.commkdir>2010-01-22 13:13:52 +0100
commit34d65e22c557671c74d6c51026b2434912966319 (patch)
tree40ab3deb545cce189544e7b64d26f784f1d6f6c8 /src/tcp_listener.cpp
parent6edec4fe93c60693a5faee7e4e8821eac4f43d4d (diff)
Tero Marttila's Ipv6 patch - part I.
Diffstat (limited to 'src/tcp_listener.cpp')
-rw-r--r--src/tcp_listener.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/tcp_listener.cpp b/src/tcp_listener.cpp
index 2323e31..c26201c 100644
--- a/src/tcp_listener.cpp
+++ b/src/tcp_listener.cpp
@@ -50,12 +50,12 @@ 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 ((sockaddr_in*) &addr, addr_);
+ int rc = resolve_ip_interface (&addr, addr_);
if (rc != 0)
return rc;
// Create a listening socket.
- s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);
+ s = socket (addr.ss_family, SOCK_STREAM, IPPROTO_TCP);
if (s == INVALID_SOCKET) {
wsa_error_to_errno ();
return -1;
@@ -73,7 +73,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 (sockaddr_in));
+ rc = bind (s, (struct sockaddr*) &addr, sizeof (addr));
if (rc == SOCKET_ERROR) {
wsa_error_to_errno ();
return -1;
@@ -157,13 +157,13 @@ int zmq::tcp_listener_t::set_address (const char *protocol_, const char *addr_)
{
if (strcmp (protocol_, "tcp") == 0 ) {
- // Convert the interface into sockaddr_in structure.
- int rc = resolve_ip_interface ((struct sockaddr_in*) &addr, addr_);
+ // Resolve the sockaddr to bind to.
+ int rc = resolve_ip_interface (&addr, addr_);
if (rc != 0)
return -1;
// Create a listening socket.
- s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);
+ s = socket (addr.ss_family, SOCK_STREAM, IPPROTO_TCP);
if (s == -1)
return -1;
@@ -180,7 +180,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 (sockaddr_in));
+ rc = bind (s, (struct sockaddr*) &addr, sizeof (addr));
if (rc != 0) {
close ();
return -1;
@@ -305,7 +305,7 @@ zmq::fd_t zmq::tcp_listener_t::accept ()
errno_assert (rc != -1);
struct sockaddr *sa = (struct sockaddr*) &addr;
- if (AF_INET == sa->sa_family) {
+ if (AF_UNIX != sa->sa_family) {
// Disable Nagle's algorithm.
int flag = 1;