X-Git-Url: https://git.archive.openwrt.org/?a=blobdiff_plain;f=ubus.c;h=4d43b5756f337821245b14def18f3f4a305c46f9;hb=96c53518ffdd470768a224fbdb697294639a8370;hp=90ee79592cbc048ebd484fea25121f2f53b84291;hpb=48c0fbee548206058c399a73a80178cdcfec3fc7;p=project%2Fnetifd.git diff --git a/ubus.c b/ubus.c index 90ee795..4d43b57 100644 --- a/ubus.c +++ b/ubus.c @@ -290,7 +290,7 @@ netifd_handle_set_state(struct ubus_context *ctx, struct ubus_object *obj, if (!cur) return UBUS_STATUS_INVALID_ARGUMENT; - dev = device_get(blobmsg_data(cur), false); + dev = device_find(blobmsg_data(cur)); if (!dev) return UBUS_STATUS_NOT_FOUND; @@ -685,8 +685,9 @@ netifd_dump_status(struct interface *iface) if (iface->ip4table) blobmsg_add_u32(&b, "ip4table", iface->ip4table); if (iface->ip6table) - blobmsg_add_u32(&b, "ip6table", iface->ip6table); + blobmsg_add_u32(&b, "ip6table", iface->ip6table); blobmsg_add_u32(&b, "metric", iface->metric); + blobmsg_add_u32(&b, "dns_metric", iface->dns_metric); blobmsg_add_u8(&b, "delegation", !iface->proto_ip.no_delegation); a = blobmsg_open_array(&b, "ipv4-address"); interface_ip_dump_address_list(&iface->config_ip, false, true); @@ -891,18 +892,10 @@ netifd_handle_set_data(struct ubus_context *ctx, struct ubus_object *obj, struct blob_attr *msg) { struct interface *iface; - struct blob_attr *cur; - int rem, ret; iface = container_of(obj, struct interface, ubus); - blob_for_each_attr(cur, msg, rem) { - ret = interface_add_data(iface, cur); - if (ret) - return ret; - } - - return 0; + return interface_parse_data(iface, msg); } static struct ubus_method iface_object_methods[] = { @@ -977,6 +970,9 @@ static void netifd_add_iface_object(void) int i; methods = calloc(1, sizeof(iface_object_methods)); + if (!methods) + return; + memcpy(methods, iface_object_methods, sizeof(iface_object_methods)); iface_object.methods = methods;