diff options
author | Alexander Couzens <lynxis@fe80.eu> | 2018-06-29 05:23:14 +0200 |
---|---|---|
committer | Alexander Couzens <lynxis@fe80.eu> | 2018-07-05 02:45:20 +0200 |
commit | 57f87ad89b38d1ea574c39a2d720747120dcc5fb (patch) | |
tree | d1a8265d7180b26177466a975ed8413023e0bbef | |
parent | 03785fb09734be05a721318d2b5378ae1656f64c (diff) |
Introduce new interface event "create" (IFEV_CREATE)
"create" will be called before the proto handlers initialised.
Acked-by: Hans Dedecker <dedeckeh@gmail.com>
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
-rw-r--r-- | interface-event.c | 1 | ||||
-rw-r--r-- | interface.c | 1 | ||||
-rw-r--r-- | interface.h | 2 |
3 files changed, 4 insertions, 0 deletions
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 { |