#include "packets.h"
#include "poll-loop.h"
#include "socket-util.h"
+#include "svec.h"
#define THIS_MODULE VLM_netdev
#include "vlog.h"
ifname) == 17
&& !strcmp(name, ifname))
{
+ fclose(file);
return;
}
}
}
return retval;
}
+
+/* Initializes 'svec' with a list of the names of all known network devices. */
+void
+netdev_enumerate(struct svec *svec)
+{
+ struct if_nameindex *names;
+
+ svec_init(svec);
+ names = if_nameindex();
+ if (names) {
+ size_t i;
+
+ for (i = 0; names[i].if_name != NULL; i++) {
+ svec_add(svec, names[i].if_name);
+ }
+ if_freenameindex(names);
+ } else {
+ VLOG_WARN("could not obtain list of network device names: %s",
+ strerror(errno));
+ }
+}
\f
static void restore_all_flags(void *aux);