X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fnetifd.git;a=blobdiff_plain;f=ubus.c;h=c8f178ccf015a3b57ddd8409266e6f529b6a81f0;hp=2c4e4e6823ad6d8c009cf9c8c79dfb8bc9d9b40d;hb=a323f3adf275954727f32895eea37bfcf0aa9fb7;hpb=f5bb1c61228b7900e69eaea0788ee9d5fb304691 diff --git a/ubus.c b/ubus.c index 2c4e4e6..c8f178c 100644 --- a/ubus.c +++ b/ubus.c @@ -47,9 +47,19 @@ netifd_handle_device(struct ubus_context *ctx, struct ubus_object *obj, return 0; } +static int +netifd_handle_restart(struct ubus_context *ctx, struct ubus_object *obj, + struct ubus_request_data *req, const char *method, + struct blob_attr *msg) +{ + netifd_restart(); + return 0; +} + static struct ubus_method main_object_methods[] = { UBUS_METHOD("add_device", netifd_handle_device, dev_policy), UBUS_METHOD("remove_device", netifd_handle_device, dev_policy), + { .name = "restart", .handler = netifd_handle_restart }, }; static struct ubus_object_type main_object_type = @@ -147,19 +157,14 @@ netifd_handle_status(struct ubus_context *ctx, struct ubus_object *obj, struct ubus_request_data *req, const char *method, struct blob_attr *msg) { - static const char *iface_state[] = { - [IFS_SETUP] = "setup", - [IFS_UP] = "up", - [IFS_TEARDOWN] = "teardown", - [IFS_DOWN] = "down", - }; struct interface *iface; iface = container_of(obj, struct interface, ubus); blob_buf_init(&b, 0); - blobmsg_add_string(&b, "state", iface_state[iface->state]); - blobmsg_add_u8(&b, "active", iface->active); + blobmsg_add_u8(&b, "up", iface->state == IFS_UP); + blobmsg_add_u8(&b, "pending", iface->state == IFS_SETUP); + blobmsg_add_u8(&b, "available", iface->available); blobmsg_add_u8(&b, "autostart", iface->autostart); if (iface->main_dev.dev) { struct device *dev = iface->main_dev.dev;