add a flag to keep track of route metric overrides
[project/netifd.git] / interface-ip.c
index 3204cd9..56f3c0c 100644 (file)
@@ -64,6 +64,7 @@ interface_ip_add_route(struct interface *iface, struct blob_attr *attr, bool v6)
        if (!route)
                return;
 
+       route->flags = v6 ? DEVADDR_INET6 : DEVADDR_INET4;
        route->mask = v6 ? 128 : 32;
        if ((cur = tb[ROUTE_MASK]) != NULL) {
                route->mask = parse_netmask_string(blobmsg_data(cur), v6);
@@ -85,8 +86,10 @@ interface_ip_add_route(struct interface *iface, struct blob_attr *attr, bool v6)
                }
        }
 
-       if ((cur = tb[ROUTE_METRIC]) != NULL)
+       if ((cur = tb[ROUTE_METRIC]) != NULL) {
                route->metric = blobmsg_get_u32(cur);
+               route->flags |= DEVROUTE_METRIC;
+       }
 
        if ((cur = tb[ROUTE_MTU]) != NULL)
                route->mtu = blobmsg_get_u32(cur);