diff options
-rw-r--r-- | doc/dbus.doxygen | 25 | ||||
-rw-r--r-- | wpa_supplicant/ctrl_iface.c | 5 | ||||
-rw-r--r-- | wpa_supplicant/dbus/dbus_new.c | 4 | ||||
-rw-r--r-- | wpa_supplicant/dbus/dbus_new_handlers.c | 50 | ||||
-rw-r--r-- | wpa_supplicant/dbus/dbus_new_handlers.h | 8 | ||||
-rw-r--r-- | wpa_supplicant/wpa_supplicant.c | 23 | ||||
-rw-r--r-- | wpa_supplicant/wpa_supplicant_i.h | 2 |
7 files changed, 113 insertions, 4 deletions
diff --git a/doc/dbus.doxygen b/doc/dbus.doxygen index eeea200..b298dd8 100644 --- a/doc/dbus.doxygen +++ b/doc/dbus.doxygen @@ -352,6 +352,21 @@ fi.w1.wpa_supplicant1.CreateInterface. </li> <li> + <h3>BSSExpireAge - u - (read/write)</h3> + <p>Identical to bss_expiration_age entry in %wpa_supplicant configuration file.</p> + </li> + + <li> + <h3>BSSExpireCount - u - (read/write)</h3> + <p>Identical to bss_expiration_scan_count entry in %wpa_supplicant configuration file.</p> + </li> + + <li> + <h3>Country - s - (read/write)</h3> + <p>Identical to country entry in %wpa_supplicant configuration file.</p> + </li> + + <li> <h3>Ifname - s - (read)</h3> <p>Name of network interface controlled by the interface, e.g., wlan0.</p> </li> @@ -390,6 +405,16 @@ fi.w1.wpa_supplicant1.CreateInterface. <h3>Networks - ao - (read)</h3> <p>List of D-Bus objects paths representing configured networks.</p> </li> + + <li> + <h3>FastReauth - b - (read/write)</h3> + <p>Identical to fast_reauth entry in %wpa_supplicant configuration file.</p> + </li> + + <li> + <h3>ScanInterval - i - (read/write)</h3> + <p>Time (in seconds) between scans for a suitable AP. Must be >= 0.</p> + </li> </ul> \subsection dbus_interface_signals Signals diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c index 270bf8c..b2939a7 100644 --- a/wpa_supplicant/ctrl_iface.c +++ b/wpa_supplicant/ctrl_iface.c @@ -2581,10 +2581,7 @@ static int wpa_supplicant_ctrl_iface_scan_interval( struct wpa_supplicant *wpa_s, char *cmd) { int scan_int = atoi(cmd); - if (scan_int < 0) - return -1; - wpa_s->scan_interval = scan_int; - return 0; + return wpa_supplicant_set_scan_interval(wpa_s, scan_int); } diff --git a/wpa_supplicant/dbus/dbus_new.c b/wpa_supplicant/dbus/dbus_new.c index 138b76f..5f94897 100644 --- a/wpa_supplicant/dbus/dbus_new.c +++ b/wpa_supplicant/dbus/dbus_new.c @@ -2559,6 +2559,10 @@ static const struct wpa_dbus_property_desc wpas_dbus_interface_properties[] = { wpas_dbus_getter_fast_reauth, wpas_dbus_setter_fast_reauth }, + { "ScanInterval", WPAS_DBUS_NEW_IFACE_INTERFACE, "i", + wpas_dbus_getter_scan_interval, + wpas_dbus_setter_scan_interval + }, #ifdef CONFIG_WPS { "ProcessCredentials", WPAS_DBUS_NEW_IFACE_WPS, "b", wpas_dbus_getter_process_credentials, diff --git a/wpa_supplicant/dbus/dbus_new_handlers.c b/wpa_supplicant/dbus/dbus_new_handlers.c index c950e20..b5d02d1 100644 --- a/wpa_supplicant/dbus/dbus_new_handlers.c +++ b/wpa_supplicant/dbus/dbus_new_handlers.c @@ -2462,6 +2462,56 @@ dbus_bool_t wpas_dbus_setter_country(DBusMessageIter *iter, DBusError *error, /** + * wpas_dbus_getter_scan_interval - Get scan interval + * @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 "ScanInterval" property. + */ +dbus_bool_t wpas_dbus_getter_scan_interval(DBusMessageIter *iter, + DBusError *error, + void *user_data) +{ + struct wpa_supplicant *wpa_s = user_data; + dbus_int32_t scan_interval = wpa_s->scan_interval; + + return wpas_dbus_simple_property_getter(iter, DBUS_TYPE_INT32, + &scan_interval, error); +} + + +/** + * wpas_dbus_setter_scan_interval - Control scan interval + * @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 + * + * Setter function for "ScanInterval" property. + */ +dbus_bool_t wpas_dbus_setter_scan_interval(DBusMessageIter *iter, + DBusError *error, + void *user_data) +{ + struct wpa_supplicant *wpa_s = user_data; + dbus_int32_t scan_interval; + + if (!wpas_dbus_simple_property_setter(iter, error, DBUS_TYPE_INT32, + &scan_interval)) + return FALSE; + + if (wpa_supplicant_set_scan_interval(wpa_s, scan_interval)) { + dbus_set_error_const(error, DBUS_ERROR_FAILED, + "scan_interval must be >= 0"); + return FALSE; + } + return TRUE; +} + + +/** * wpas_dbus_getter_ifname - Get interface name * @iter: Pointer to incoming dbus message iter * @error: Location to store error on failure diff --git a/wpa_supplicant/dbus/dbus_new_handlers.h b/wpa_supplicant/dbus/dbus_new_handlers.h index b46658f..6383d98 100644 --- a/wpa_supplicant/dbus/dbus_new_handlers.h +++ b/wpa_supplicant/dbus/dbus_new_handlers.h @@ -168,6 +168,14 @@ dbus_bool_t wpas_dbus_getter_country(DBusMessageIter *iter, DBusError *error, dbus_bool_t wpas_dbus_setter_country(DBusMessageIter *iter, DBusError *error, void *user_data); +dbus_bool_t wpas_dbus_getter_scan_interval(DBusMessageIter *iter, + DBusError *error, + void *user_data); + +dbus_bool_t wpas_dbus_setter_scan_interval(DBusMessageIter *iter, + DBusError *error, + void *user_data); + dbus_bool_t wpas_dbus_getter_ifname(DBusMessageIter *iter, DBusError *error, void *user_data); diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c index e9c42d3..c5a7115 100644 --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c @@ -1783,6 +1783,29 @@ int wpa_supplicant_set_bss_expiration_count(struct wpa_supplicant *wpa_s, /** + * wpa_supplicant_set_scan_interval - Set scan interval + * @wpa_s: wpa_supplicant structure for a network interface + * @scan_interval: scan interval in seconds + * Returns: 0 if succeed or -1 if scan_interval has an invalid value + * + */ +int wpa_supplicant_set_scan_interval(struct wpa_supplicant *wpa_s, + int scan_interval) +{ + if (scan_interval < 0) { + wpa_msg(wpa_s, MSG_ERROR, "Invalid scan interval %d", + scan_interval); + return -1; + } + wpa_msg(wpa_s, MSG_DEBUG, "Setting scan interval: %d sec", + scan_interval); + wpa_s->scan_interval = scan_interval; + + return 0; +} + + +/** * wpa_supplicant_set_debug_params - Set global debug params * @global: wpa_global structure * @debug_level: debug level diff --git a/wpa_supplicant/wpa_supplicant_i.h b/wpa_supplicant/wpa_supplicant_i.h index e2e0aed..d31538f 100644 --- a/wpa_supplicant/wpa_supplicant_i.h +++ b/wpa_supplicant/wpa_supplicant_i.h @@ -588,6 +588,8 @@ int wpa_supplicant_set_bss_expiration_age(struct wpa_supplicant *wpa_s, unsigned int expire_age); int wpa_supplicant_set_bss_expiration_count(struct wpa_supplicant *wpa_s, unsigned int expire_count); +int wpa_supplicant_set_scan_interval(struct wpa_supplicant *wpa_s, + int scan_interval); int wpa_supplicant_set_debug_params(struct wpa_global *global, int debug_level, int debug_timestamp, int debug_show_keys); |