1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- From: Matthias Schiffer <mschiffer@universe-factory.net>
- Date: Wed, 12 Apr 2017 02:31:12 +0200
- Subject: netifd: ubus: add interface method to trigger renew event
- diff --git a/package/network/config/netifd/patches/0001-ubus-add-interface-method-to-trigger-renew-event.patch b/package/network/config/netifd/patches/0001-ubus-add-interface-method-to-trigger-renew-event.patch
- new file mode 100644
- index 0000000000000000000000000000000000000000..1f59498d421b7e1d3e76a1a38f604181d11c4649
- --- /dev/null
- +++ b/package/network/config/netifd/patches/0001-ubus-add-interface-method-to-trigger-renew-event.patch
- @@ -0,0 +1,73 @@
- +From 8b39c2fce4c1da3f3dcd4c6fd305c124714839e8 Mon Sep 17 00:00:00 2001
- +Message-Id: <8b39c2fce4c1da3f3dcd4c6fd305c124714839e8.1491956920.git.mschiffer@universe-factory.net>
- +From: Matthias Schiffer <mschiffer@universe-factory.net>
- +Date: Wed, 12 Apr 2017 02:25:33 +0200
- +Subject: [PATCH] ubus: add interface method to trigger renew event
- +
- +proto-shell handlers may implement all kinds of renew handlers, there
- +should be a way to explicitly trigger such a renew.
- +
- +Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
- +---
- + interface.c | 8 ++++++++
- + interface.h | 1 +
- + ubus.c | 14 ++++++++++++++
- + 3 files changed, 23 insertions(+)
- +
- +--- a/interface.c
- ++++ b/interface.c
- +@@ -1076,6 +1076,14 @@ interface_set_down(struct interface *ifa
- + return 0;
- + }
- +
- ++int interface_renew(struct interface *iface)
- ++{
- ++ if (iface->state == IFS_TEARDOWN || iface->state == IFS_DOWN)
- ++ return -1;
- ++
- ++ return interface_proto_event(iface->proto, PROTO_CMD_RENEW, false);
- ++}
- ++
- + void
- + interface_start_pending(void)
- + {
- +--- a/interface.h
- ++++ b/interface.h
- +@@ -184,6 +184,7 @@ void interface_set_available(struct inte
- + int interface_set_up(struct interface *iface);
- + int interface_set_down(struct interface *iface);
- + void __interface_set_down(struct interface *iface, bool force);
- ++int interface_renew(struct interface *iface);
- +
- + void interface_set_main_dev(struct interface *iface, struct device *dev);
- + void interface_set_l3_dev(struct interface *iface, struct device *dev);
- +--- a/ubus.c
- ++++ b/ubus.c
- +@@ -376,6 +376,19 @@ netifd_handle_down(struct ubus_context *
- + 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)
- + {
- +@@ -912,6 +925,7 @@ netifd_handle_set_data(struct ubus_conte
- + 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 },
|