netifd: ubus: add interface method to trigger renew event
This commit is contained in:
parent
872784cf15
commit
d967d58abc
@ -0,0 +1,83 @@
|
||||
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 },
|
Loading…
Reference in New Issue
Block a user