bgscan: Add new channel condition parameters to signal change events
[libeap.git] / wpa_supplicant / events.c
index dfded7d..602f992 100644 (file)
@@ -632,7 +632,10 @@ void wpa_supplicant_connect(struct wpa_supplicant *wpa_s,
                if (wpas_p2p_notif_pbc_overlap(wpa_s) == 1)
                        return;
 #endif /* CONFIG_P2P */
+
+#ifdef CONFIG_WPS
                wpas_wps_cancel(wpa_s);
+#endif /* CONFIG_WPS */
                return;
        }
 
@@ -1800,14 +1803,25 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
        case EVENT_SIGNAL_CHANGE:
                bgscan_notify_signal_change(
                        wpa_s, data->signal_change.above_threshold,
-                       data->signal_change.current_signal);
+                       data->signal_change.current_signal,
+                       data->signal_change.current_noise,
+                       data->signal_change.current_txrate);
                break;
        case EVENT_INTERFACE_ENABLED:
                wpa_printf(MSG_DEBUG, "Interface was enabled");
                if (wpa_s->wpa_state == WPA_INTERFACE_DISABLED) {
-                       wpa_supplicant_set_state(wpa_s,
-                                                WPA_DISCONNECTED);
+#ifdef CONFIG_AP
+                       if (!wpa_s->ap_iface) {
+                               wpa_supplicant_set_state(wpa_s,
+                                                        WPA_DISCONNECTED);
+                               wpa_supplicant_req_scan(wpa_s, 0, 0);
+                       } else
+                               wpa_supplicant_set_state(wpa_s,
+                                                        WPA_COMPLETED);
+#else /* CONFIG_AP */
+                       wpa_supplicant_set_state(wpa_s, WPA_DISCONNECTED);
                        wpa_supplicant_req_scan(wpa_s, 0, 0);
+#endif /* CONFIG_AP */
                }
                break;
        case EVENT_INTERFACE_DISABLED: