X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FProtocols%2FINet%2FINet4Address.cc;h=e162200355540708bccfc488b16636088fa06fd5;hb=a1fdb7bb122f0b05be809a922d4b7ef5e125fa67;hp=0c100fb2db55722c402543781305a093c7c96b04;hpb=294845be2d7bd75cd01d269d7fe4ab498f379d1c;p=senf.git diff --git a/Socket/Protocols/INet/INet4Address.cc b/Socket/Protocols/INet/INet4Address.cc index 0c100fb..e162200 100644 --- a/Socket/Protocols/INet/INet4Address.cc +++ b/Socket/Protocols/INet/INet4Address.cc @@ -89,15 +89,6 @@ prefix_ senf::INet4Address senf::INet4Address::from_string(std::string const & s reinterpret_cast(*(ent->h_addr_list))->s_addr); } -prefix_ std::string senf::INet4Address::toString() const { - char buffer[4*4]; - ::in_addr ina; - ina.s_addr = (*this).inaddr(); - ::inet_ntop(AF_INET, & ina , buffer, sizeof(buffer)); - buffer[sizeof(buffer)-1] = 0; - return buffer; -} - prefix_ bool senf::INet4Address::local() const { @@ -134,7 +125,7 @@ senf::INet4Address const senf::INet4Address::Broadcast (0xFFFFFFFFu); /////////////////////////////////////////////////////////////////////////// // senf::INet4Network -prefix_ senf::INet4Network::INet4Network(std::string s) +prefix_ senf::INet4Network::INet4Network(std::string const & s) { std::string::size_type i (s.find('/')); if (i == std::string::npos) @@ -161,6 +152,20 @@ prefix_ std::ostream & senf::operator<<(std::ostream & os, INet4Address const & return os; } +prefix_ std::istream & senf::operator>>(std::istream & is, INet4Address & addr) +{ + std::string s; + if (!(is >> s)) + return is; + try { + addr = INet4Address::from_string(s); + } + catch (AddressException &) { + is.setstate(std::ios::failbit); + } + return is; +} + ///////////////////////////////cc.e//////////////////////////////////////// #undef prefix_ //#include "INet4Address.mpp"