X-Git-Url: https://git.librecmc.org/?p=oweals%2Fnetifd.git;a=blobdiff_plain;f=interface-ip.c;h=83f1dfa69c28d0d4f9775d26f9c18a8bb305d7e9;hp=1a6c28d45b62d66657556423cd934f8acd8d9f92;hb=81ac3bce0157f96fbc31cf6e965eecb170e48c88;hpb=5cd7215a09ad440f0d1b1d05df8deb403f945898 diff --git a/interface-ip.c b/interface-ip.c index 1a6c28d..83f1dfa 100644 --- a/interface-ip.c +++ b/interface-ip.c @@ -1053,6 +1053,20 @@ void interface_refresh_assignments(bool hint) refresh = hint; } +void interface_update_prefix_delegation(struct interface_ip_settings *ip) +{ + struct device_prefix *prefix; + + vlist_for_each_element(&ip->prefix, prefix, node) { + interface_update_prefix_assignments(prefix, !ip->no_delegation); + + if (ip->no_delegation) { + if (prefix->head.next) + list_del(&prefix->head); + } else + list_add(&prefix->head, &prefixes); + } +} static void interface_update_prefix(struct vlist_tree *tree,