X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FSocket%2FProtocols%2FINet%2FINetAddressing.cc;h=fe9d648fb38fd30fd9f0c041d113fb9e3a040c37;hb=99c145da3884f5c20a74337927ef2cbc073d80d7;hp=640970cb24791b80e06f464ed39233e70bed4825;hpb=26610f603ebdd465307b9621f532c1fe19fd5571;p=senf.git diff --git a/senf/Socket/Protocols/INet/INetAddressing.cc b/senf/Socket/Protocols/INet/INetAddressing.cc index 640970c..fe9d648 100644 --- a/senf/Socket/Protocols/INet/INetAddressing.cc +++ b/senf/Socket/Protocols/INet/INetAddressing.cc @@ -35,12 +35,13 @@ #include #include #include +#include //#include "INetAddressing.mpp" #define prefix_ -///////////////////////////////cc.p//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// // senf::INet4SocketAddress prefix_ senf::INet4SocketAddress::INet4SocketAddress(std::string const & addr) @@ -52,7 +53,7 @@ prefix_ senf::INet4SocketAddress::INet4SocketAddress(std::string const & addr) ? addr : std::string(addr,portIx+1)) ); } catch (boost::bad_lexical_cast const &) { - throw AddressSyntaxException() << "invalid port number"; + throw AddressSyntaxException(addr) << ": invalid port number"; } if (portIx != std::string::npos) address( INet4Address::from_string(std::string(addr,0,portIx)) ); @@ -91,7 +92,7 @@ prefix_ std::istream & senf::operator>>(std::istream & is, INet4SocketAddress & return is; } -/////////////////////////////////////////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// // senf::INet6SocketAddress prefix_ senf::INet6SocketAddress::INet6SocketAddress(std::string const & addr, @@ -111,7 +112,7 @@ prefix_ senf::INet6SocketAddress::INet6SocketAddress(std::string const & addr, boost::smatch match; if (! regex_match(addr, match, addressRx)) - throw AddressSyntaxException(); + throw AddressSyntaxException(addr); if (match[ZoneId].matched) assignIface(match[ZoneId]); @@ -132,11 +133,8 @@ prefix_ std::string senf::INet6SocketAddress::iface() if (sockaddr_.sin6_scope_id == 0) return ""; char buffer[IFNAMSIZ]; -#ifdef SENF_DEBUG - SENF_ASSERT( if_indextoname(sockaddr_.sin6_scope_id,buffer) ); -#else - if_indextoname(sockaddr_.sin6_scope_id,buffer); -#endif + SENF_ASSERT_EXPRESSION(if_indextoname(sockaddr_.sin6_scope_id,buffer), + "Internal failure: Invalid interface index (how does it get here?)"); return std::string(buffer); } @@ -147,7 +145,7 @@ prefix_ void senf::INet6SocketAddress::assignIface(std::string const & iface) else { sockaddr_.sin6_scope_id = if_nametoindex(iface.c_str()); if (sockaddr_.sin6_scope_id == 0) - throw AddressSyntaxException(); + throw AddressSyntaxException(iface); } } @@ -175,11 +173,11 @@ prefix_ std::istream & senf::operator>>(std::istream & is, INet6SocketAddress & return is; } -///////////////////////////////cc.e//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// #undef prefix_ //#include "INetAddressing.mpp" - + // Local Variables: // mode: c++ // fill-column: 100