X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FSocket%2FProtocols%2FINet%2FINetAddressing.cc;h=21d0d815568d771529497bde6e6290f46d97e3db;hb=cb50871835b7a5c37e4fd32d38de67fa12570ebc;hp=7ec3a714b07482533eacfe18b772f310b0bb3e7c;hpb=3fe2ed38b800bcb57afff676698462e763724245;p=senf.git diff --git a/senf/Socket/Protocols/INet/INetAddressing.cc b/senf/Socket/Protocols/INet/INetAddressing.cc index 7ec3a71..21d0d81 100644 --- a/senf/Socket/Protocols/INet/INetAddressing.cc +++ b/senf/Socket/Protocols/INet/INetAddressing.cc @@ -35,6 +35,7 @@ #include #include #include +#include //#include "INetAddressing.mpp" #define prefix_ @@ -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)) ); @@ -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); } }