X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FProtocols%2FRaw%2FLLAddressing.cci;h=374840bbf3af7d0338c1214352afd7dd9d9ceefa;hb=bd9f9d3fd6fbcff0112a7bf48ab9284da9576b11;hp=dc04deaa0dadb47563167e8ecf39c5851ff8ff6f;hpb=10985d71f77b627bc4da543d7114feb7c4529329;p=senf.git diff --git a/Socket/Protocols/Raw/LLAddressing.cci b/Socket/Protocols/Raw/LLAddressing.cci index dc04dea..374840b 100644 --- a/Socket/Protocols/Raw/LLAddressing.cci +++ b/Socket/Protocols/Raw/LLAddressing.cci @@ -31,21 +31,14 @@ #define prefix_ inline ///////////////////////////////cci.p/////////////////////////////////////// -prefix_ void senf::LLSocketAddress::clear() -{ - ::memset(&addr_,0,sizeof(addr_)); - addr_.sll_family = AF_PACKET; -} - prefix_ void senf::LLSocketAddress::address(MACAddress const & addr) { std::copy(addr.begin(), addr.end(),&addr_.sll_addr[0]); } prefix_ senf::LLSocketAddress::LLSocketAddress() -{ - clear(); -} + : BSDSocketAddress (sizeof(sockaddr_ll), AF_PACKET) +{} prefix_ void senf::LLSocketAddress::protocol(unsigned prot) { @@ -53,26 +46,36 @@ prefix_ void senf::LLSocketAddress::protocol(unsigned prot) } prefix_ senf::LLSocketAddress::LLSocketAddress(unsigned prot, std::string const & iface) + : BSDSocketAddress (sizeof(sockaddr_ll), AF_PACKET) { - clear(); protocol(prot); interface(iface); } prefix_ senf::LLSocketAddress::LLSocketAddress(std::string const &iface) + : BSDSocketAddress (sizeof(sockaddr_ll), AF_PACKET) { - clear(); interface(iface); } prefix_ senf::LLSocketAddress::LLSocketAddress(MACAddress const & addr, std::string const & iface) + : BSDSocketAddress (sizeof(sockaddr_ll), AF_PACKET) { - clear(); address(addr); interface(iface); } +prefix_ senf::LLSocketAddress::LLSocketAddress(const LLSocketAddress& other) + : BSDSocketAddress (other) +{} + +prefix_ senf::LLSocketAddress& senf::LLSocketAddress::operator=(const LLSocketAddress& other) +{ + BSDSocketAddress::operator=(other); + return *this; +} + prefix_ unsigned senf::LLSocketAddress::protocol() const { @@ -97,30 +100,6 @@ prefix_ senf::MACAddress senf::LLSocketAddress::address() return MACAddress::from_data(&addr_.sll_addr[0]); } -prefix_ struct sockaddr * senf::LLSocketAddress::sockaddr_p() -{ - return reinterpret_cast(&addr_); -} - -prefix_ struct sockaddr const * senf::LLSocketAddress::sockaddr_p() - const -{ - return reinterpret_cast(&addr_); -} - -prefix_ unsigned senf::LLSocketAddress::sockaddr_len() - const -{ - return sizeof(addr_); -} - -prefix_ std::ostream & senf::operator<<(std::ostream & os, LLSocketAddress const & llAddr) -{ - // TODO: expose more bytes from sockaddr_ll addr_ - os << "[some LLSocketAddress]"; - return os; -} - ///////////////////////////////cci.e/////////////////////////////////////// #undef prefix_