diff options
author | Martin Sustrik <sustrik@fastmq.commkdir> | 2010-01-22 13:13:52 +0100 |
---|---|---|
committer | Martin Sustrik <sustrik@fastmq.commkdir> | 2010-01-22 13:13:52 +0100 |
commit | 34d65e22c557671c74d6c51026b2434912966319 (patch) | |
tree | 40ab3deb545cce189544e7b64d26f784f1d6f6c8 /src/tcp_listener.cpp | |
parent | 6edec4fe93c60693a5faee7e4e8821eac4f43d4d (diff) |
Tero Marttila's Ipv6 patch - part I.
Diffstat (limited to 'src/tcp_listener.cpp')
-rw-r--r-- | src/tcp_listener.cpp | 16 |
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; |