<p>The most recent roam success or failure.</p>
</li>
+ <li>
+ <h3>ScanInProgress6GHz - b - (read)</h3>
+ <p>Whether a 6GHz scan is currently in progress.</p>
+ </li>
+
<li>
<h3>SessionLength - u - (read)</h3>
<p>The most recent BSS session length in milliseconds.</p>
case WPAS_DBUS_PROP_ROAM_COMPLETE:
prop = "RoamComplete";
break;
+ case WPAS_DBUS_PROP_SCAN_IN_PROGRESS_6GHZ:
+ prop = "ScanInProgress6GHz";
+ flush = TRUE;
+ break;
case WPAS_DBUS_PROP_SESSION_LENGTH:
prop = "SessionLength";
break;
NULL,
NULL
},
+ {
+ "ScanInProgress6GHz", WPAS_DBUS_NEW_IFACE_INTERFACE, "b",
+ wpas_dbus_getter_scan_in_progress_6ghz,
+ NULL,
+ NULL
+ },
{
"SessionLength", WPAS_DBUS_NEW_IFACE_INTERFACE, "u",
wpas_dbus_getter_session_length,
WPAS_DBUS_PROP_ASSOC_STATUS_CODE,
WPAS_DBUS_PROP_ROAM_TIME,
WPAS_DBUS_PROP_ROAM_COMPLETE,
+ WPAS_DBUS_PROP_SCAN_IN_PROGRESS_6GHZ,
WPAS_DBUS_PROP_SESSION_LENGTH,
WPAS_DBUS_PROP_BSS_TM_STATUS,
WPAS_DBUS_PROP_MAC_ADDRESS,
}
+/**
+ * wpas_dbus_getter_scan_in_progress_6ghz - Get whether a 6 GHz scan is in
+ * progress
+ * @iter: Pointer to incoming dbus message iter
+ * @error: Location to store error on failure
+ * @user_data: Function specific data
+ * Returns: TRUE on success, FALSE on failure
+ *
+ * Getter function for "ScanInProgress6GHz" property.
+ */
+dbus_bool_t wpas_dbus_getter_scan_in_progress_6ghz(
+ const struct wpa_dbus_property_desc *property_desc,
+ DBusMessageIter *iter, DBusError *error, void *user_data)
+{
+ struct wpa_supplicant *wpa_s = user_data;
+ dbus_bool_t scan_in_progress_6ghz = wpa_s->scan_in_progress_6ghz ?
+ TRUE : FALSE;
+
+ return wpas_dbus_simple_property_getter(iter, DBUS_TYPE_BOOLEAN,
+ &scan_in_progress_6ghz, error);
+}
+
+
/**
* wpas_dbus_getter_session_length - Get most recent BSS session length
* @iter: Pointer to incoming dbus message iter
DECLARE_ACCESSOR(wpas_dbus_getter_assoc_status_code);
DECLARE_ACCESSOR(wpas_dbus_getter_roam_time);
DECLARE_ACCESSOR(wpas_dbus_getter_roam_complete);
+DECLARE_ACCESSOR(wpas_dbus_getter_scan_in_progress_6ghz);
DECLARE_ACCESSOR(wpas_dbus_getter_session_length);
DECLARE_ACCESSOR(wpas_dbus_getter_bss_tm_status);
DECLARE_ACCESSOR(wpas_dbus_getter_bss_expire_age);
scan_res = wpa_supplicant_get_scan_results(wpa_s,
data ? &data->scan_info :
NULL, 1, NULL);
+
+ if (wpa_s->scan_in_progress_6ghz) {
+ wpa_s->scan_in_progress_6ghz = false;
+ wpas_notify_scan_in_progress_6ghz(wpa_s);
+ }
+
if (scan_res == NULL) {
if (wpa_s->conf->ap_scan == 2 || ap ||
wpa_s->scan_res_handler == scan_only_handler)
wpa_add_scan_freqs_list(wpa_s, HOSTAPD_MODE_IEEE80211A, ¶ms,
true, false, false);
if (!wpa_supplicant_trigger_scan(wpa_s, ¶ms, true, true)) {
+ wpa_s->scan_in_progress_6ghz = true;
+ wpas_notify_scan_in_progress_6ghz(wpa_s);
os_free(params.freqs);
return 1;
}
}
+void wpas_notify_scan_in_progress_6ghz(struct wpa_supplicant *wpa_s)
+{
+ if (wpa_s->p2p_mgmt)
+ return;
+
+ wpas_dbus_signal_prop_changed(wpa_s,
+ WPAS_DBUS_PROP_SCAN_IN_PROGRESS_6GHZ);
+}
+
+
void wpas_notify_session_length(struct wpa_supplicant *wpa_s)
{
if (wpa_s->p2p_mgmt)
void wpas_notify_assoc_status_code(struct wpa_supplicant *wpa_s);
void wpas_notify_roam_time(struct wpa_supplicant *wpa_s);
void wpas_notify_roam_complete(struct wpa_supplicant *wpa_s);
+void wpas_notify_scan_in_progress_6ghz(struct wpa_supplicant *wpa_s);
void wpas_notify_session_length(struct wpa_supplicant *wpa_s);
void wpas_notify_bss_tm_status(struct wpa_supplicant *wpa_s);
void wpas_notify_network_changed(struct wpa_supplicant *wpa_s);
bool wps_scan_done; /* Set upon receiving scan results event */
bool supp_pbc_active; /* Set for interface when PBC is triggered */
bool wps_overlap;
+ bool scan_in_progress_6ghz; /* Set upon a 6 GHz scan being triggered */
#ifdef CONFIG_PASN
struct pasn_data pasn;