Remove disconnected APs from BSS table if likely out-of-range
[mech_eap.git] / wpa_supplicant / dbus / dbus_old.c
index 2899132..88227af 100644 (file)
@@ -292,13 +292,13 @@ static DBusHandlerResult wpas_iface_message_handler(DBusConnection *connection,
        }
 
        /* If the message was handled, send back the reply */
+out:
        if (reply) {
                if (!dbus_message_get_no_reply(message))
                        dbus_connection_send(connection, reply, NULL);
                dbus_message_unref(reply);
        }
 
-out:
        os_free(iface_obj_path);
        os_free(network);
        os_free(bssid);
@@ -383,7 +383,7 @@ void wpa_supplicant_dbus_notify_scan_results(struct wpa_supplicant *wpa_s)
        DBusMessage *_signal;
 
        /* Do nothing if the control interface is not turned on */
-       if (iface == NULL)
+       if (iface == NULL || !wpa_s->dbus_path)
                return;
 
        _signal = dbus_message_new_signal(wpa_s->dbus_path,
@@ -474,7 +474,7 @@ void wpa_supplicant_dbus_notify_scanning(struct wpa_supplicant *wpa_s)
        dbus_bool_t scanning = wpa_s->scanning ? TRUE : FALSE;
 
        /* Do nothing if the control interface is not turned on */
-       if (iface == NULL)
+       if (iface == NULL || !wpa_s->dbus_path)
                return;
 
        _signal = dbus_message_new_signal(wpa_s->dbus_path,
@@ -509,7 +509,7 @@ void wpa_supplicant_dbus_notify_wps_cred(struct wpa_supplicant *wpa_s,
        if (wpa_s->global == NULL)
                return;
        iface = wpa_s->global->dbus;
-       if (iface == NULL)
+       if (iface == NULL || !wpa_s->dbus_path)
                return;
 
        _signal = dbus_message_new_signal(wpa_s->dbus_path,
@@ -559,7 +559,7 @@ void wpa_supplicant_dbus_notify_certification(struct wpa_supplicant *wpa_s,
        if (wpa_s->global == NULL)
                return;
        iface = wpa_s->global->dbus;
-       if (iface == NULL)
+       if (iface == NULL || !wpa_s->dbus_path)
                return;
 
        _signal = dbus_message_new_signal(wpa_s->dbus_path,
@@ -712,7 +712,7 @@ int wpas_dbus_unregister_iface(struct wpa_supplicant *wpa_s)
        if (wpa_s == NULL || wpa_s->global == NULL)
                return 0;
        ctrl_iface = wpa_s->global->dbus;
-       if (ctrl_iface == NULL)
+       if (ctrl_iface == NULL || wpa_s->dbus_path == NULL)
                return 0;
 
        con = ctrl_iface->con;
@@ -738,7 +738,7 @@ struct wpa_supplicant * wpa_supplicant_get_iface_by_dbus_path(
        struct wpa_supplicant *wpa_s;
 
        for (wpa_s = global->ifaces; wpa_s; wpa_s = wpa_s->next) {
-               if (strcmp(wpa_s->dbus_path, path) == 0)
+               if (wpa_s->dbus_path && strcmp(wpa_s->dbus_path, path) == 0)
                        return wpa_s;
        }
        return NULL;