// we use gettimeofday() now to determine the packet rcv time, since on some boxes...
[senf.git] / senf / Socket / Protocols / INet / INetAddressing.cc
index 23f372e..21d0d81 100644 (file)
@@ -53,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)) );
@@ -112,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]);
@@ -133,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);
 }
 
@@ -148,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);
     }
 }