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