X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fnetifd.git;a=blobdiff_plain;f=interface-ip.c;h=170b03b089d7b8214513bfe9362b24d333d468c6;hp=7f10120f878617900ef87f5ae576b8ce343684b4;hb=395199fcd4a1dbf8f52f13ec3e19ff568958e8e7;hpb=73a32ab092ae32ec97e20b61512998c8411b8bd5 diff --git a/interface-ip.c b/interface-ip.c index 7f10120..170b03b 100644 --- a/interface-ip.c +++ b/interface-ip.c @@ -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); @@ -83,19 +84,15 @@ interface_ip_add_route(struct interface *iface, struct blob_attr *attr, bool v6) DPRINTF("Failed to parse route gateway: %s\n", (char *) blobmsg_data(cur)); goto error; } - } else { - route->flags |= DEVADDR_DEVICE; } if ((cur = tb[ROUTE_METRIC]) != NULL) route->metric = blobmsg_get_u32(cur); - else - route->metric = -1; if ((cur = tb[ROUTE_MTU]) != NULL) route->mtu = blobmsg_get_u32(cur); - vlist_add(&ip->route, &route->node); + vlist_add(&ip->route, &route->node, &route->mask); return; error: @@ -420,8 +417,6 @@ interface_ip_init(struct interface_ip_settings *ip, struct interface *iface) ip->enabled = true; vlist_simple_init(&ip->dns_search, struct dns_search_domain, node); vlist_simple_init(&ip->dns_servers, struct dns_server, node); - vlist_init(&ip->route, route_cmp, interface_update_proto_route, - struct device_route, node, mask); - vlist_init(&ip->addr, addr_cmp, interface_update_proto_addr, - struct device_addr, node, mask); + vlist_init(&ip->route, route_cmp, interface_update_proto_route); + vlist_init(&ip->addr, addr_cmp, interface_update_proto_addr); }