From 57f87ad89b38d1ea574c39a2d720747120dcc5fb Mon Sep 17 00:00:00 2001 From: Alexander Couzens Date: Fri, 29 Jun 2018 05:23:14 +0200 Subject: Introduce new interface event "create" (IFEV_CREATE) "create" will be called before the proto handlers initialised. Acked-by: Hans Dedecker Signed-off-by: Alexander Couzens --- interface-event.c | 1 + interface.c | 1 + interface.h | 2 ++ 3 files changed, 4 insertions(+) diff --git a/interface-event.c b/interface-event.c index 86e8f54..a40f6dc 100644 --- a/interface-event.c +++ b/interface-event.c @@ -38,6 +38,7 @@ static const char * const eventnames[] = { [IFEV_FREE] = "free", [IFEV_RELOAD] = "reload", [IFEV_LINK_UP] = "iflink", + [IFEV_CREATE] = "create", }; static void diff --git a/interface.c b/interface.c index 2a23984..400c605 100644 --- a/interface.c +++ b/interface.c @@ -1275,6 +1275,7 @@ interface_update(struct vlist_tree *tree, struct vlist_node *node_new, set_config_state(if_old, IFC_REMOVE); } else if (node_new) { D(INTERFACE, "Create interface '%s'\n", if_new->name); + interface_event(if_new, IFEV_CREATE); proto_init_interface(if_new, if_new->config); interface_claim_device(if_new); netifd_ubus_add_interface(if_new); diff --git a/interface.h b/interface.h index 0e58f69..e5639eb 100644 --- a/interface.h +++ b/interface.h @@ -28,6 +28,8 @@ enum interface_event { IFEV_FREE, IFEV_RELOAD, IFEV_LINK_UP, + /* send when a new interface created. This is before proto handlers has been attached. */ + IFEV_CREATE, }; enum interface_state { -- cgit v1.2.1