src/Network/Address.cc
changeset 381 9b35bc329d23
parent 380 d193dd1d8a7e
--- a/src/Network/Address.cc	Tue Dec 16 23:21:26 2008 +0000
+++ b/src/Network/Address.cc	Wed Dec 17 00:40:22 2008 +0000
@@ -3,32 +3,25 @@
 
 #include <sstream>
 
-NetworkAddress::NetworkAddress (void) :
-    hostname(), service(), address_length(0)
+NetworkEndpoint::NetworkEndpoint (void) :
+    hostname(), service()
 {
 
 }
 
-NetworkAddress::NetworkAddress (std::string service) :
-    hostname(), service(service), address_length(0)
+NetworkEndpoint::NetworkEndpoint (std::string service) :
+    hostname(), service(service)
 {
 
 }
         
-NetworkAddress::NetworkAddress (std::string hostname, std::string service) :
-    hostname(hostname), service(service), address_length(0)
+NetworkEndpoint::NetworkEndpoint (std::string hostname, std::string service) :
+    hostname(hostname), service(service)
 {
 
 }
-        
-NetworkAddress::NetworkAddress (const sockaddr *addr, socklen_t len) :
-    hostname(), service(), address_length(0)
-{
-    // proxy to set_sockaddr
-    set_sockaddr(addr, len);
-}
-        
-addrinfo* NetworkAddress::get_addrinfo (int family, int socktype, int protocol, int flags) const {
+       
+addrinfo* NetworkEndpoint::get_addrinfo (int family, int socktype, int protocol, int flags) const {
     addrinfo hints, *results;
     int err;
     
@@ -53,49 +46,18 @@
     return results;
 }
         
-const sockaddr* NetworkAddress::get_sockaddr (socklen_t &len_ref) const {
-    // we can't figure this out ourselves...
-    if (address_length == 0)
-        throw Error("NetworkAddress::get_sockaddr called without a valid sockaddr set");
-    
-    // update len
-    len_ref = address_length;
-    
-    // and return a pointer to our internal address
-    return (const sockaddr*) &address;
+void NetworkEndpoint::free_addrinfo (addrinfo *info) const {
+    freeaddrinfo(info);
 }
 
-void NetworkAddress::set_sockaddr (const sockaddr *addr, socklen_t len) {
-    char host_buf[NI_MAXHOST], serv_buf[NI_MAXSERV];
-    int err;
-
-    // invalid length?
-    if (len > sizeof(this->address))
-        throw NetworkAddressError(*this, "set_sockaddr", "invalid sockaddr length");
-
-    // do getnameinfo()
-    if ((err = getnameinfo(addr, len, host_buf, NI_MAXHOST, serv_buf, NI_MAXSERV, NI_NUMERICHOST | NI_NUMERICSERV)))
-        throw NetworkAddressError(*this, "getnameinfo", gai_strerror(err));
-    
-    // copy over to address
-    memcpy(&this->address, addr, len);
-
-    // and update address_length
-    this->address_length = len;
-
-    // and the hostname + service
-    hostname = host_buf;
-    service = serv_buf;
-}
-
-std::ostream& operator<< (std::ostream &s, const NetworkAddress &addr) {
+std::ostream& operator<< (std::ostream &s, const NetworkEndpoint &addr) {
     s << "[" << addr.get_hostname() << ":" << addr.get_service() << "]";
 
     return s;
 
 }
  
-std::string NetworkAddressError::build_str (const NetworkAddress &addr, const char *op, const char *msg) {
+std::string NetworkAddressError::build_str (const NetworkEndpoint &addr, const char *op, const char *msg) {
     std::stringstream ss;
 
     ss << op << ": " << addr << ": " << msg;
@@ -103,11 +65,9 @@
     return ss.str();
 }
 
-NetworkAddressError::NetworkAddressError (const NetworkAddress &addr, const char *op, const char *msg) :
+NetworkAddressError::NetworkAddressError (const NetworkEndpoint &addr, const char *op, const char *msg) :
     Error(build_str(addr, op, msg))
 {
 
 }
 
-
-