#include <boost/assert.hpp>
 
+#include <logfunc.hpp>
+
 using namespace std;
+using I2n::Logger::GlobalLogger;
 
 //-----------------------------------------------------------------------------
 // NetworkInterfaceList
     const ifaddrs_t *ifa_current = IfaFirst;
     while ( ifa_current != NULL )
     {
-        if ( ifa_current->ifa_addr->sa_data != NULL )
-        {
-            const char *nic_name_current = ifa_current->ifa_name;
-            bool name_match = ( nic_name == nic_name_current );
+        const char *nic_name_current = ifa_current->ifa_name;
+        bool name_match = ( nic_name == nic_name_current );
 
-            const sa_family_t family_current = ifa_current->ifa_addr->sa_family;
-            bool family_match = ( family == family_current );
+        const sa_family_t family_current = ifa_current->ifa_addr->sa_family;
+        bool family_match = ( family == family_current );
 
-            if ( name_match && family_match )
-            {
-                return ifa_current;
-            }
+        if ( name_match && family_match )
+        {
+            return ifa_current;
         }
 
         ifa_current = ifa_current->ifa_next;
 {
     BOOST_ASSERT( IfaFirst != NULL );
 
-    // The freeifaddrs() must release the linked list allocated by getifaddrs()
-    freeifaddrs( IfaFirst );
-    IfaFirst = NULL;
+    try {
+        // The freeifaddrs() must release the linked list allocated by getifaddrs()
+        freeifaddrs( IfaFirst );
+        IfaFirst = NULL;
+    }
+    catch ( ... )
+    {
+        GlobalLogger.error() << "Error: could not destroy network interface list."
+                << endl;
+    }
 }