Socket/Protocols/INet: Fix address class documentation
[senf.git] / Socket / Protocols / INet / INetAddressing.cci
index f0e039d..320e8ee 100644 (file)
@@ -97,53 +97,6 @@ prefix_ std::ostream & senf::operator<<(std::ostream & os, INet4SocketAddress co
 }
 
 ///////////////////////////////////////////////////////////////////////////
-// senf::INet6Address
-
-prefix_ senf::INet6Address::INet6Address()
-{
-    clear();
-}
-
-prefix_ senf::INet6Address::INet6Address(struct in6_addr const & addr)
-{
-    addr_ = addr;
-}
-
-prefix_ struct in6_addr & senf::INet6Address::addr()
-{
-    return addr_;
-}
-
-prefix_ struct in6_addr const & senf::INet6Address::addr()
-    const
-{
-    return addr_;
-}
-
-prefix_ struct in6_addr * senf::INet6Address::addr_p()
-{
-    return & addr_;
-}
-
-prefix_ struct in6_addr const * senf::INet6Address::addr_p()
-    const
-{
-    return & addr_;
-}
-
-prefix_ unsigned senf::INet6Address::addr_len()
-    const
-{
-    return sizeof(addr_);
-}
-
-prefix_ std::ostream & senf::operator<<(std::ostream & os, INet6Address const & addr)
-{
-    os << addr.address();
-    return os;
-}
-
-///////////////////////////////////////////////////////////////////////////
 // senf::INet6SocketAddress
 
 prefix_ senf::INet6SocketAddress::INet6SocketAddress()
@@ -157,16 +110,10 @@ prefix_ senf::INet6SocketAddress::INet6SocketAddress(std::string const & addr)
     assignAddr(addr);
 }
 
-prefix_ senf::INet6SocketAddress::INet6SocketAddress(char const * addr)
-{
-    clear();
-    assignAddr(addr);
-}
-
 prefix_ senf::INet6SocketAddress::INet6SocketAddress(INet6Address const & addr, unsigned port)
 {
     clear();
-    sockaddr_.sin6_addr = addr.addr();
+    std::copy(addr.begin(), addr.end(), &sockaddr_.sin6_addr.s6_addr[0]);
     sockaddr_.sin6_port = htons(port);
 }
 
@@ -174,7 +121,7 @@ prefix_ senf::INet6SocketAddress::INet6SocketAddress(INet6Address const & addr,
                                                      std::string const & iface)
 {
     clear();
-    sockaddr_.sin6_addr = addr.addr();
+    std::copy(addr.begin(), addr.end(), &sockaddr_.sin6_addr.s6_addr[0]);
     sockaddr_.sin6_port = htons(port);
     assignIface(iface);
 }
@@ -187,15 +134,15 @@ prefix_ senf::INet6SocketAddress::INet6SocketAddress(std::string const & addr,
     assignIface(iface);
 }
 
-prefix_ senf::INet6Address senf::INet6SocketAddress::host()
+prefix_ senf::INet6Address senf::INet6SocketAddress::address()
     const
 {
-    return INet6Address(sockaddr_.sin6_addr);
+    return INet6Address::from_data(&sockaddr_.sin6_addr.s6_addr[0]);
 }
 
-prefix_ void senf::INet6SocketAddress::host(INet6Address const & addr)
+prefix_ void senf::INet6SocketAddress::address(INet6Address const & addr)
 {
-    sockaddr_.sin6_addr = addr.addr();
+    std::copy(addr.begin(), addr.end(), &sockaddr_.sin6_addr.s6_addr[0]);
 }
 
 prefix_ unsigned senf::INet6SocketAddress::port()
@@ -233,7 +180,11 @@ prefix_ unsigned senf::INet6SocketAddress::sockaddr_len()
 
 prefix_ std::ostream & senf::operator<<(std::ostream & os, INet6SocketAddress const & addr)
 {
-    os << addr.address();
+    os << '[' << addr.address();
+    std::string iface (addr.iface());
+    if (! iface.empty())
+        os << '%' << iface;
+    os << "]:" << addr.port();
     return os;
 }