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);
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:
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);
}