13 #ifndef ZMQ_HAVE_WINDOWS
14 #include <sys/types.h>
15 #include <arpa/inet.h>
16 #include <netinet/tcp.h>
35 memset (&_address, 0,
sizeof (_address));
36 if (sa_->sa_family == AF_INET
37 && sa_len_ >=
static_cast<socklen_t
> (sizeof (_address.ipv4)))
38 memcpy (&_address.ipv4, sa_, sizeof (_address.ipv4));
39 else if (sa_->sa_family == AF_INET6
40 && sa_len_ >=
static_cast<socklen_t
> (sizeof (_address.ipv6)))
41 memcpy (&_address.ipv6, sa_, sizeof (_address.ipv6));
46 const int rc = getnameinfo (addr (), addrlen (), hbuf,
sizeof (hbuf),
NULL,
53 std::ostringstream os;
55 if (_address.family () == AF_INET6)
60 if (_address.family () == AF_INET6)
70 const char *delim = strrchr (
name_,
':');
78 delim = strrchr (
name_,
'/');
99 return resolver.
resolve (&_address, host_name.c_str ());
104 std::ostringstream os;
106 << _address.port () << _path;
114 return _address.as_sockaddr ();
119 return _address.sockaddr_len ();
124 return _host.c_str ();
129 return _path.c_str ();
132 #if defined ZMQ_HAVE_WINDOWS
138 return _address.family ();