interface-ip: fix delegate config update on reload (FS#2087)
[oweals/netifd.git] / interface-ip.c
index 1a6c28d45b62d66657556423cd934f8acd8d9f92..83f1dfa69c28d0d4f9775d26f9c18a8bb305d7e9 100644 (file)
@@ -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,