#define prefix_ inline
///////////////////////////////cci.p///////////////////////////////////////
+prefix_ void senf::LLSocketAddress::address(MACAddress const & addr)
+{
+ std::copy(addr.begin(), addr.end(),&addr_.sll_addr[0]);
+}
+
prefix_ senf::LLSocketAddress::LLSocketAddress()
+ : BSDSocketAddress (sizeof(sockaddr_ll), AF_PACKET)
+{}
+
+prefix_ void senf::LLSocketAddress::protocol(unsigned prot)
{
- clear();
+ addr_.sll_protocol = htons(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_ void senf::LLSocketAddress::clear()
+prefix_ senf::LLSocketAddress::LLSocketAddress(const LLSocketAddress& other)
+ : BSDSocketAddress (other)
+{}
+
+prefix_ senf::LLSocketAddress& senf::LLSocketAddress::operator=(const LLSocketAddress& other)
{
- ::memset(&addr_,0,sizeof(addr_));
- addr_.sll_family = AF_PACKET;
+ BSDSocketAddress::operator=(other);
+ return *this;
}
prefix_ unsigned senf::LLSocketAddress::protocol()
return MACAddress::from_data(&addr_.sll_addr[0]);
}
-prefix_ void senf::LLSocketAddress::address(MACAddress const & addr)
-{
- std::copy(addr.begin(), addr.end(),&addr_.sll_addr[0]);
-}
-
-prefix_ void senf::LLSocketAddress::protocol(unsigned prot)
-{
- addr_.sll_protocol = htons(prot);
-}
-
-prefix_ struct sockaddr * senf::LLSocketAddress::sockaddr_p()
-{
- return reinterpret_cast<struct sockaddr *>(&addr_);
-}
-
-prefix_ struct sockaddr const * senf::LLSocketAddress::sockaddr_p()
- const
-{
- return reinterpret_cast<struct sockaddr const *>(&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_