g_list_foreach(il, search_for_if_cb, &user_data);
if (user_data.if_info != NULL) {
if_info_add_address(user_data.if_info, &ifr->ifr_addr);
+ if (user_data.if_info->addrs) {
+ g_slist_reverse(user_data.if_info->addrs);
+ }
goto next;
}
strncmp(ifr->ifr_name, "lo", 2) == 0);
if_info = if_info_new(ifr->ifr_name, NULL, loopback);
if_info_add_address(if_info, &ifr->ifr_addr);
+ if (if_info->addrs) {
+ g_slist_reverse(if_info->addrs);
+ }
if (loopback)
il = g_list_append(il, if_info);
else {
if_addr->ifat_type = IF_AT_IPv4;
if_addr->addr.ip4_addr =
*((guint32 *)&(ai->sin_addr.s_addr));
- if_info->addrs = g_slist_append(if_info->addrs, if_addr);
+ if_info->addrs = g_slist_prepend(if_info->addrs, if_addr);
break;
case AF_INET6:
memcpy((void *)&if_addr->addr.ip6_addr,
(void *)&ai6->sin6_addr.s6_addr,
sizeof if_addr->addr.ip6_addr);
- if_info->addrs = g_slist_append(if_info->addrs, if_addr);
+ if_info->addrs = g_slist_prepend(if_info->addrs, if_addr);
break;
}
}
if (a->addr != NULL)
if_info_add_address(if_info, a->addr);
}
+
+ if(if_info->addrs){
+ if_info->addrs = g_slist_reverse(if_info->addrs);
+ }
}
#ifdef HAVE_PCAP_REMOTE