From 3b3f6d33fe52fe85ec73a26c55fce558e7878193 Mon Sep 17 00:00:00 2001 From: James Prestwood Date: Wed, 28 Apr 2021 12:27:00 -0700 Subject: [PATCH] station: tie diagnostic interface cleanup to DISCONNECTING Prior to this the diagnostic interface was taken down when station transitioned to DISCONNECTED. This worked but once station is in a DISCONNECTING state it then calls netdev_disconnect(). Trying to get any diagnostic data during this time may not work as its unknown what state exactly the kernel is in. To be safe take the interface down when station is DISCONNECTING. --- src/station.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/station.c b/src/station.c index 617a9fc0..ed2dcd61 100644 --- a/src/station.c +++ b/src/station.c @@ -1229,9 +1229,6 @@ static void station_enter_state(struct station *station, periodic_scan_stop(station); break; case STATION_STATE_DISCONNECTED: - l_dbus_object_remove_interface(dbus_get_bus(), - netdev_get_path(station->netdev), - IWD_STATION_DIAGNOSTIC_INTERFACE); periodic_scan_stop(station); break; case STATION_STATE_CONNECTED: @@ -1242,6 +1239,10 @@ static void station_enter_state(struct station *station, periodic_scan_stop(station); break; case STATION_STATE_DISCONNECTING: + l_dbus_object_remove_interface(dbus_get_bus(), + netdev_get_path(station->netdev), + IWD_STATION_DIAGNOSTIC_INTERFACE); + break; case STATION_STATE_ROAMING: break; }