}
}
-#ifdef HAVE_IF_NAMEINDEX
+#ifdef HAVE_IF_NAMETOINDEX
bool ctdb_sys_check_iface_exists(const char *iface)
{
- struct if_nameindex *ifnis, *ifni;
- bool found = false;
+ unsigned int index = 0;
- ifnis = if_nameindex();
- if (ifnis == NULL) {
- DBG_ERR("Failed to retrieve interface list\n");
- return false;
- }
-
- for (ifni = ifnis;
- ifni->if_index != 0 || ifni->if_name != NULL;
- ifni++) {
- int cmp = strcmp(iface, ifni->if_name);
- if (cmp == 0) {
- found = true;
- goto done;
- }
- }
-
-done:
- if_freenameindex(ifnis);
+ index = if_nametoindex(iface);
- return found;
+ return index != 0;
}
-#else /* HAVE_IF_NAMEINDEX */
+#else /* HAVE_IF_NAMETOINDEX */
bool ctdb_sys_check_iface_exists(const char *iface)
{
return true;
}
-#endif /* HAVE_IF_NAMEINDEX */
+#endif /* HAVE_IF_NAMETOINDEX */
#ifdef HAVE_PEERCRED