src/Network/Address.cc
changeset 379 2a8e780844d2
parent 378 5589abf5e61b
child 380 d193dd1d8a7e
equal deleted inserted replaced
378:5589abf5e61b 379:2a8e780844d2
    20 {
    20 {
    21 
    21 
    22 }
    22 }
    23         
    23         
    24 NetworkAddress::NetworkAddress (const sockaddr *addr, socklen_t len) :
    24 NetworkAddress::NetworkAddress (const sockaddr *addr, socklen_t len) :
    25     hostname(hostname), service(service), address_length(0)
    25     hostname(), service(), address_length(0)
    26 {
    26 {
    27     // proxy to set_sockaddr
    27     // proxy to set_sockaddr
    28     set_sockaddr(addr, len);
    28     set_sockaddr(addr, len);
    29 }
    29 }
    30         
    30         
    77     if ((err = getnameinfo(addr, len, host_buf, NI_MAXHOST, serv_buf, NI_MAXSERV, NI_NUMERICHOST | NI_NUMERICSERV)))
    77     if ((err = getnameinfo(addr, len, host_buf, NI_MAXHOST, serv_buf, NI_MAXSERV, NI_NUMERICHOST | NI_NUMERICSERV)))
    78         throw NetworkAddressError(*this, "getnameinfo", gai_strerror(err));
    78         throw NetworkAddressError(*this, "getnameinfo", gai_strerror(err));
    79     
    79     
    80     // copy over to address
    80     // copy over to address
    81     memcpy(&this->address, addr, len);
    81     memcpy(&this->address, addr, len);
       
    82 
       
    83     // and the hostname + service
       
    84     hostname = host_buf;
       
    85     service = serv_buf;
    82 }
    86 }
    83 
    87 
    84 std::ostream& operator<< (std::ostream &s, const NetworkAddress &addr) {
    88 std::ostream& operator<< (std::ostream &s, const NetworkAddress &addr) {
    85     s << "[" << addr.get_hostname() << ":" << addr.get_service() << "]";
    89     s << "[" << addr.get_hostname() << ":" << addr.get_service() << "]";
    86 
    90