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;
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();
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);
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[] = {
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;