X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FProtocols%2FINet%2FINetAddressing.cci;h=556193846280c9463bb26f77cd6c1e86a84e603e;hb=5443435c4c2b6e4386c5334b5b8358273f2bae93;hp=a9987e90b48548c7adf3997a1f932a4904ad2d44;hpb=2452ac2af5863afb6cfb74e6d2c6e35fc75d1f9a;p=senf.git diff --git a/Socket/Protocols/INet/INetAddressing.cci b/Socket/Protocols/INet/INetAddressing.cci index a9987e9..5561938 100644 --- a/Socket/Protocols/INet/INetAddressing.cci +++ b/Socket/Protocols/INet/INetAddressing.cci @@ -1,9 +1,9 @@ // $Id$ // // Copyright (C) 2006 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) -// Stefan Bund +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY +// Stefan Bund // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -34,15 +34,18 @@ // senf::INet4Address prefix_ senf::INet4SocketAddress::INet4SocketAddress() -{ - clear(); -} + : BSDSocketAddress (sizeof(sockaddr_in), AF_INET) +{} -prefix_ bool senf::INet4SocketAddress::operator==(INet4SocketAddress const & other) - const +prefix_ senf::INet4SocketAddress::INet4SocketAddress(const INet4SocketAddress& other) + : BSDSocketAddress(other) +{} + +prefix_ senf::INet4SocketAddress& +senf::INet4SocketAddress::operator=(const INet4SocketAddress& other) { - return addr_.sin_port == other.addr_.sin_port && - addr_.sin_addr.s_addr == other.addr_.sin_addr.s_addr; + BSDSocketAddress::operator=(other); + return *this; } prefix_ senf::INet4Address senf::INet4SocketAddress::address() @@ -57,12 +60,6 @@ prefix_ unsigned senf::INet4SocketAddress::port() return ntohs(addr_.sin_port); } -prefix_ bool senf::INet4SocketAddress::boolean_test() - const -{ - return port() || address(); -} - prefix_ void senf::INet4SocketAddress::address(INet4Address const & addr) { addr_.sin_addr.s_addr = addr.inaddr(); @@ -73,53 +70,46 @@ prefix_ void senf::INet4SocketAddress::port(unsigned p) addr_.sin_port = htons(p); } -prefix_ struct sockaddr * senf::INet4SocketAddress::sockaddr_p() -{ - return reinterpret_cast(&addr_); -} - -prefix_ struct sockaddr const * senf::INet4SocketAddress::sockaddr_p() - const -{ - return reinterpret_cast(&addr_); -} - -prefix_ unsigned senf::INet4SocketAddress::sockaddr_len() - const -{ - return sizeof(addr_); -} - -prefix_ std::ostream & senf::operator<<(std::ostream & os, INet4SocketAddress const & addr) -{ - os << addr.address() << ":" << addr.port(); - return os; -} - /////////////////////////////////////////////////////////////////////////// // senf::INet6SocketAddress prefix_ senf::INet6SocketAddress::INet6SocketAddress() -{ - clear(); -} + : BSDSocketAddress (sizeof(sockaddr_in6), AF_INET6) +{} prefix_ senf::INet6SocketAddress::INet6SocketAddress(INet6Address const & addr, unsigned port) + : BSDSocketAddress (sizeof(sockaddr_in6), AF_INET6) { - clear(); std::copy(addr.begin(), addr.end(), &sockaddr_.sin6_addr.s6_addr[0]); sockaddr_.sin6_port = htons(port); } prefix_ senf::INet6SocketAddress::INet6SocketAddress(INet6Address const & addr, unsigned port, std::string const & iface) + : BSDSocketAddress (sizeof(sockaddr_in6), AF_INET6) { - clear(); std::copy(addr.begin(), addr.end(), &sockaddr_.sin6_addr.s6_addr[0]); sockaddr_.sin6_port = htons(port); assignIface(iface); } +prefix_ senf::INet6SocketAddress::INet6SocketAddress(unsigned port) + : BSDSocketAddress (sizeof(sockaddr_in6), AF_INET6) +{ + sockaddr_.sin6_port = htons(port); +} + +prefix_ senf::INet6SocketAddress::INet6SocketAddress(const INet6SocketAddress& other) + : BSDSocketAddress (other) +{} + +prefix_ senf::INet6SocketAddress& +senf::INet6SocketAddress::operator=(const INet6SocketAddress& other) +{ + BSDSocketAddress::operator=(other); + return *this; +} + prefix_ senf::INet6Address senf::INet6SocketAddress::address() const { @@ -147,33 +137,6 @@ prefix_ void senf::INet6SocketAddress::iface(std::string const & iface) assignIface(iface); } -prefix_ struct sockaddr * senf::INet6SocketAddress::sockaddr_p() -{ - return reinterpret_cast(&sockaddr_); -} - -prefix_ struct sockaddr const * senf::INet6SocketAddress::sockaddr_p() - const -{ - return reinterpret_cast(&sockaddr_); -} - -prefix_ unsigned senf::INet6SocketAddress::sockaddr_len() - const -{ - return sizeof(sockaddr_); -} - -prefix_ std::ostream & senf::operator<<(std::ostream & os, INet6SocketAddress const & addr) -{ - os << '[' << addr.address(); - std::string iface (addr.iface()); - if (! iface.empty()) - os << '%' << iface; - os << "]:" << addr.port(); - return os; -} - ///////////////////////////////cci.e/////////////////////////////////////// #undef prefix_