X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FProtocols%2FINet%2FINet4Address.cti;h=d731ce3ba081fd59d7222fae7b429b7d75d1a265;hb=81ffa1c459b96dd44472bcef37e1e373934ee138;hp=e13fdbbc3ac245bd28a0f74c60be72604b14067b;hpb=9c67039f2a8d9c445ce21912ed814743f61b104c;p=senf.git diff --git a/Socket/Protocols/INet/INet4Address.cti b/Socket/Protocols/INet/INet4Address.cti index e13fdbb..d731ce3 100644 --- a/Socket/Protocols/INet/INet4Address.cti +++ b/Socket/Protocols/INet/INet4Address.cti @@ -1,3 +1,5 @@ +// $Id$ +// // Copyright (C) 2007 // Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) // Kompetenzzentrum fuer Satelitenkommunikation (SatCom) @@ -24,21 +26,19 @@ //#include "INet4Address.ih" // Custom includes +#include #define prefix_ inline ///////////////////////////////cti.p/////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// -// senf::INet4Address +// senf::CheckINet4Network -template -prefix_ senf::INet4Address senf::INet4Address::from_data(InputIterator i) +template +prefix_ bool senf::CheckINet4Network::match(INet4Address const & addr) { - address_type v ((address_type(*i)&0xFF) << 24); - v |= (address_type(*++i)&0xFF) << 16; - v |= (address_type(*++i)&0xFF) << 8; - v |= (address_type(*++i)&0xFF); - return senf::INet4Address(v); + return (addr.address() & ~boost::uint32_t(boost::low_bits_mask_t<32-prefix_len>::sig_bits)) == + (address & ~boost::uint32_t(boost::low_bits_mask_t<32-prefix_len>::sig_bits)); } ///////////////////////////////cti.e///////////////////////////////////////