X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FProtocols%2FRaw%2FLLAddressing.cc;h=71addad08a07eba5e41b91c346743fe5f4e33ea5;hb=81f84badf27b66dbadec9890646ca1193e998505;hp=97316c97db152e59858825b6d8f3ae3d0de0b1be;hpb=51c2aabf6c125ff09177fc2fa742755b6c5a74c6;p=senf.git diff --git a/Socket/Protocols/Raw/LLAddressing.cc b/Socket/Protocols/Raw/LLAddressing.cc index 97316c9..71addad 100644 --- a/Socket/Protocols/Raw/LLAddressing.cc +++ b/Socket/Protocols/Raw/LLAddressing.cc @@ -47,6 +47,7 @@ prefix_ std::string senf::LLSocketAddress::interface() if (addr_.sll_ifindex == 0) return std::string(); char name[IFNAMSIZ]; + ::bzero(name, IFNAMSIZ); if (! ::if_indextoname(addr_.sll_ifindex, name)) throw AddressSyntaxException(); return std::string(name); @@ -63,6 +64,22 @@ prefix_ void senf::LLSocketAddress::interface(std::string const & iface) } } +prefix_ std::ostream & senf::operator<<(std::ostream & os, LLSocketAddress const & llAddr) +{ + os << "[" << llAddr.address() + << '%' << llAddr.interface() + << ' ' << llAddr.protocol() + << ' ' << llAddr.arptype() + << ( llAddr.pkttype() == senf::LLSocketAddress::Host ? " Host" : + llAddr.pkttype() == senf::LLSocketAddress::Broadcast ? " Broadcast" : + llAddr.pkttype() == senf::LLSocketAddress::Multicast ? " Multicast" : + llAddr.pkttype() == senf::LLSocketAddress::OtherHost ? " OtherHost" : + llAddr.pkttype() == senf::LLSocketAddress::Outgoing ? " Outgoing" : + llAddr.pkttype() == senf::LLSocketAddress::Broadcast ? "Broadcast" : "" ) + << "]"; + return os; +} + ///////////////////////////////cc.e//////////////////////////////////////// #undef prefix_ //#include "LLAddressing.mpp"