proto: add point-to-point IPv4 address config support (FS#1037)
[project/netifd.git] / interface-ip.c
index dd4e01c15b62757ebc0ca4411223a1b182173f89..45ffc6611ef8e238fa088964e23bdef25617bb76 100644 (file)
@@ -566,8 +566,9 @@ interface_update_proto_addr(struct vlist_tree *tree,
                                a_old->preferred_until != a_new->preferred_until)
                        replace = true;
 
-               if ((a_new->flags & DEVADDR_FAMILY) == DEVADDR_INET4 &&
-                   a_new->broadcast != a_old->broadcast)
+               if (((a_new->flags & DEVADDR_FAMILY) == DEVADDR_INET4) &&
+                    (a_new->broadcast != a_old->broadcast ||
+                     a_new->point_to_point != a_old->point_to_point))
                        keep = false;
        }
 
@@ -1287,13 +1288,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)