X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fnetifd.git;a=blobdiff_plain;f=ubus.c;h=96bc2479e4a9eb01dceb2aa7db620f1cf3f572d6;hp=1b1a4cd0c9a048ff313b81e6a7aa4527d77bf70f;hb=1e2cf67ef36eaaed9a7f18898066df5c2366fd0d;hpb=cdc0e80300a465d507aba8e8d11be56366ebb6cd diff --git a/ubus.c b/ubus.c index 1b1a4cd..96bc247 100644 --- a/ubus.c +++ b/ubus.c @@ -44,8 +44,10 @@ netifd_handle_reload(struct ubus_context *ctx, struct ubus_object *obj, struct ubus_request_data *req, const char *method, struct blob_attr *msg) { - netifd_reload(); - return 0; + if (netifd_reload()) + return UBUS_STATUS_NOT_FOUND; + + return UBUS_STATUS_OK; } enum { @@ -127,7 +129,6 @@ netifd_add_dynamic(struct ubus_context *ctx, struct ubus_object *obj, struct blob_attr *tb[__DI_MAX]; struct interface *iface; struct blob_attr *config; - struct device *dev; blobmsg_parse(dynamic_policy, __DI_MAX, tb, blob_data(msg), blob_len(msg)); @@ -155,10 +156,6 @@ netifd_add_dynamic(struct ubus_context *ctx, struct ubus_object *obj, // Set interface as dynamic interface_set_dynamic(iface); - dev = iface->main_dev.dev; - if (!dev || !dev->default_config) - return UBUS_STATUS_UNKNOWN_ERROR; - return UBUS_STATUS_OK; error: @@ -376,6 +373,19 @@ netifd_handle_down(struct ubus_context *ctx, struct ubus_object *obj, return 0; } +static int +netifd_handle_renew(struct ubus_context *ctx, struct ubus_object *obj, + struct ubus_request_data *req, const char *method, + struct blob_attr *msg) +{ + struct interface *iface; + + iface = container_of(obj, struct interface, ubus); + interface_renew(iface); + + return 0; +} + static void netifd_add_interface_errors(struct blob_buf *b, struct interface *iface) { @@ -431,6 +441,12 @@ interface_ip_dump_address_list(struct interface_ip_settings *ip, bool v6, bool e blobmsg_add_u32(&b, "mask", addr->mask); + if (addr->point_to_point) { + buf = blobmsg_alloc_string_buffer(&b, "ptpaddress", buflen); + inet_ntop(af, &addr->point_to_point, buf, buflen); + blobmsg_add_string_buffer(&b); + } + if (addr->preferred_until) { int preferred = addr->preferred_until - now; if (preferred < 0) @@ -912,6 +928,7 @@ netifd_handle_set_data(struct ubus_context *ctx, struct ubus_object *obj, static struct ubus_method iface_object_methods[] = { { .name = "up", .handler = netifd_handle_up }, { .name = "down", .handler = netifd_handle_down }, + { .name = "renew", .handler = netifd_handle_renew }, { .name = "status", .handler = netifd_handle_status }, { .name = "prepare", .handler = netifd_handle_iface_prepare }, { .name = "dump", .handler = netifd_handle_dump },