X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=interface-ip.c;h=140ef3441ea50fcf0d9a3dde71a7731e9e25f4e9;hb=6e0acecbacdb5bf1ce0b71d4c2512eae4606be57;hp=ddca5d2e8dfc27564f8486d9908e2fcf934c89e9;hpb=cdc0e80300a465d507aba8e8d11be56366ebb6cd;p=project%2Fnetifd.git diff --git a/interface-ip.c b/interface-ip.c index ddca5d2..140ef34 100644 --- a/interface-ip.c +++ b/interface-ip.c @@ -1047,6 +1047,10 @@ interface_update_prefix(struct vlist_tree *tree, list_for_each_entry(c, &prefix_new->assignments, head) if ((iface = vlist_find(&interfaces, c->name, iface, node))) interface_set_prefix_address(c, prefix_new, iface, true); + + if (prefix_new->preferred_until != prefix_old->preferred_until || + prefix_new->valid_until != prefix_old->valid_until) + ip->iface->updated |= IUF_PREFIX; } else if (node_new) { // Set null-route to avoid routing loops system_add_route(NULL, &route); @@ -1283,13 +1287,14 @@ __interface_write_dns_entries(FILE *f) avl_for_each_element(&resolv_conf_iface_entries, entry, node) { iface = (struct interface *)entry->node.key; + struct device *dev = iface->l3_dev.dev; fprintf(f, "# Interface %s\n", iface->name); - write_resolv_conf_entries(f, &iface->config_ip, iface->ifname); + write_resolv_conf_entries(f, &iface->config_ip, dev->ifname); if (!iface->proto_ip.no_dns) - write_resolv_conf_entries(f, &iface->proto_ip, iface->ifname); + write_resolv_conf_entries(f, &iface->proto_ip, dev->ifname); } avl_remove_all_elements(&resolv_conf_iface_entries, entry, node, n_entry)