X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fnetifd.git;a=blobdiff_plain;f=ubus.c;h=4d43b5756f337821245b14def18f3f4a305c46f9;hp=56f7bddd06c56048b539b2b7ddfe68ccbca4bc2d;hb=6cf66bb0a02f3993394c0408c2865bfaf2756f21;hpb=8795f9ef89626cd658f615c78c6a17e990c0dcaa diff --git a/ubus.c b/ubus.c index 56f7bdd..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; @@ -649,6 +649,7 @@ netifd_dump_status(struct interface *iface) blobmsg_add_u8(&b, "pending", iface->state == IFS_SETUP); blobmsg_add_u8(&b, "available", iface->available); blobmsg_add_u8(&b, "autostart", iface->autostart); + blobmsg_add_u8(&b, "dynamic", iface->dynamic); if (iface->state == IFS_UP) { time_t cur = system_get_rtime(); @@ -684,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); @@ -817,7 +819,7 @@ netifd_iface_handle_device(struct ubus_context *ctx, struct ubus_object *obj, cur = tb[DEV_LINK_EXT]; if (cur) - link_ext = !!blobmsg_get_u8(cur); + link_ext = blobmsg_get_bool(cur); return interface_handle_link(iface, blobmsg_data(tb[DEV_LINK_NAME]), add, link_ext); } @@ -890,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[] = { @@ -976,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;