From 676ee1e4d249010c9f5c37089120cf544d208399 Mon Sep 17 00:00:00 2001 From: James Prestwood Date: Mon, 1 Feb 2021 15:52:17 -0800 Subject: [PATCH] ap: tie diagnostic interface to AP Start/Stop The diagnostic interface serves no purpose until the AP has been started. Any calls on it will return an error so instead it makes more sense to bring it up when the AP is started, and down when the AP is stopped. --- src/ap.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/ap.c b/src/ap.c index f33d73e1..8ea26a0d 100644 --- a/src/ap.c +++ b/src/ap.c @@ -2966,6 +2966,11 @@ static void ap_if_event_func(enum ap_event_type type, const void *event_data, if (L_WARN_ON(!ap_if->pending)) break; + l_dbus_object_add_interface(dbus_get_bus(), + netdev_get_path(ap_if->netdev), + IWD_AP_DIAGNOSTIC_INTERFACE, + ap_if); + reply = l_dbus_message_new_method_return(ap_if->pending); dbus_pending_reply(&ap_if->pending, reply); l_dbus_property_changed(dbus_get_bus(), @@ -2977,6 +2982,10 @@ static void ap_if_event_func(enum ap_event_type type, const void *event_data, break; case AP_EVENT_STOPPING: + l_dbus_object_remove_interface(dbus_get_bus(), + netdev_get_path(ap_if->netdev), + IWD_AP_DIAGNOSTIC_INTERFACE); + l_dbus_property_changed(dbus_get_bus(), netdev_get_path(ap_if->netdev), IWD_AP_INTERFACE, "Started"); @@ -3265,16 +3274,12 @@ static void ap_add_interface(struct netdev *netdev) /* setup ap dbus interface */ l_dbus_object_add_interface(dbus_get_bus(), netdev_get_path(netdev), IWD_AP_INTERFACE, ap_if); - l_dbus_object_add_interface(dbus_get_bus(), netdev_get_path(netdev), - IWD_AP_DIAGNOSTIC_INTERFACE, ap_if); } static void ap_remove_interface(struct netdev *netdev) { l_dbus_object_remove_interface(dbus_get_bus(), netdev_get_path(netdev), IWD_AP_INTERFACE); - l_dbus_object_remove_interface(dbus_get_bus(), netdev_get_path(netdev), - IWD_AP_DIAGNOSTIC_INTERFACE); } static void ap_netdev_watch(struct netdev *netdev,