diff options
-rwxr-xr-x | include/technology.h | 2 | ||||
-rw-r--r-- | plugins/wifi.c | 3 | ||||
-rw-r--r-- | src/connman.conf | 1 | ||||
-rw-r--r-- | src/technology.c | 35 |
4 files changed, 41 insertions, 0 deletions
diff --git a/include/technology.h b/include/technology.h index 29cdddf9..729d7aac 100755 --- a/include/technology.h +++ b/include/technology.h @@ -86,6 +86,8 @@ void connman_technology_driver_unregister(struct connman_technology_driver *driv #if defined TIZEN_EXT void connman_techonology_wifi_set_5ghz_supported(struct connman_technology *technology, bool is_5_0_Ghz_supported); +void connman_techonology_set_max_scan_ssids(struct connman_technology *technology, + int max_scan_ssids); #endif #ifdef __cplusplus diff --git a/plugins/wifi.c b/plugins/wifi.c index dfcff59c..f1766534 100644 --- a/plugins/wifi.c +++ b/plugins/wifi.c @@ -3633,6 +3633,9 @@ static void interface_added(GSupplicantInterface *interface) connman_device_set_powered(wifi->device, true); #if defined TIZEN_EXT connman_techonology_wifi_set_5ghz_supported(wifi_technology, is_5_0_ghz_supported); + /* Max number of SSIDs supported by wlan chipset that can be scanned */ + int max_scan_ssids = g_supplicant_interface_get_max_scan_ssids(interface); + connman_techonology_set_max_scan_ssids(wifi_technology, max_scan_ssids); #endif } diff --git a/src/connman.conf b/src/connman.conf index cd9eefb1..c1417ebc 100644 --- a/src/connman.conf +++ b/src/connman.conf @@ -15,6 +15,7 @@ <allow send_destination="net.connman" send_type="signal"/> <allow send_destination="net.connman" send_interface="net.connman.Technology" send_member="GetScanState" /> <allow send_destination="net.connman" send_interface="net.connman.Technology" send_member="Get5GhzSupported" /> + <allow send_destination="net.connman" send_interface="net.connman.Technology" send_member="GetMaxScanSsid" /> <check send_destination="net.connman" send_interface="net.connman.Manager" send_member="GetTechnologies" privilege="http://tizen.org/privilege/network.get" /> <check send_destination="net.connman" send_interface="net.connman.Manager" send_member="GetProperties" privilege="http://tizen.org/privilege/network.get" /> diff --git a/src/technology.c b/src/technology.c index 05ec0c0c..2f14d57d 100644 --- a/src/technology.c +++ b/src/technology.c @@ -100,6 +100,7 @@ struct connman_technology { #endif #if defined TIZEN_EXT bool is_5_0_ghz_supported; + int max_scan_ssids; #endif }; @@ -1483,6 +1484,38 @@ static DBusMessage *get_scan_state(DBusConnection *conn, DBusMessage *msg, void return reply; } + +void connman_techonology_set_max_scan_ssids(struct connman_technology *technology, + int max_scan_ssids) +{ + DBG(""); + technology->max_scan_ssids = max_scan_ssids; +} + +static DBusMessage *get_max_scan_ssid(DBusConnection *conn, DBusMessage *msg, void *data) +{ + DBusMessage *reply; + DBusMessageIter iter, dict; + struct connman_technology *technology = data; + dbus_int32_t max_scan_ssids = technology->max_scan_ssids; + + DBG("technology %p", technology); + + reply = dbus_message_new_method_return(msg); + if (!reply) + return NULL; + + dbus_message_iter_init_append(reply, &iter); + + connman_dbus_dict_open(&iter, &dict); + connman_dbus_dict_append_basic(&dict, "MaxScanSSID", + DBUS_TYPE_INT32, + &max_scan_ssids); + + connman_dbus_dict_close(&iter, &dict); + + return reply; +} #endif #if defined TIZEN_EXT_WIFI_MESH @@ -1965,6 +1998,8 @@ static const GDBusMethodTable technology_methods[] = { get_scan_state) }, { GDBUS_METHOD("Get5GhzSupported", NULL, GDBUS_ARGS({ "supported", "a{sv}" }), get_5ghz_supported) }, + { GDBUS_METHOD("GetMaxScanSsid", NULL, GDBUS_ARGS({ "maxscanssid", "a{sv}" }), + get_max_scan_ssid) }, #endif #if defined TIZEN_EXT_WIFI_MESH { GDBUS_ASYNC_METHOD("MeshCommands", |