#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;
+ }
}