struct interface* odhcpd_get_interface_by_index(int ifindex)
{
struct interface *iface;
- list_for_each_entry(iface, &interfaces, head)
- if (iface->ifindex == ifindex)
- return iface;
- return NULL;
-}
-
-
-struct interface* odhcpd_get_interface_by_name(const char *name)
-{
- struct interface *iface;
- list_for_each_entry(iface, &interfaces, head)
- if (!strcmp(iface->ifname, name))
+ avl_for_each_element(&interfaces, iface, avl) {
+ if (iface->ifindex == ifindex)
return iface;
+ }
return NULL;
}
-
struct interface* odhcpd_get_master_interface(void)
{
struct interface *iface;
- list_for_each_entry(iface, &interfaces, head)
+
+ avl_for_each_element(&interfaces, iface, avl) {
if (iface->master)
return iface;
+ }
return NULL;
}
return;
} else if (destiface != 0) {
struct interface *iface;
- list_for_each_entry(iface, &interfaces, head) {
+
+ avl_for_each_element(&interfaces, iface, avl) {
if (iface->ifindex != destiface)
continue;