diff options
author | Jaehyun Kim <jeik01.kim@samsung.com> | 2018-02-20 15:37:40 +0900 |
---|---|---|
committer | Jaehyun Kim <jeik01.kim@samsung.com> | 2018-02-21 15:14:10 +0900 |
commit | 63d4f774d04c381000e45e7490bc838da9b36027 (patch) | |
tree | 37c181ca6916c3f926dec23c87e6ca91e95f21e4 /gsupplicant | |
parent | 45e07ac85c513f438bf4534b4a6abe36f0467248 (diff) | |
download | connman-63d4f774d04c381000e45e7490bc838da9b36027.tar.gz connman-63d4f774d04c381000e45e7490bc838da9b36027.tar.bz2 connman-63d4f774d04c381000e45e7490bc838da9b36027.zip |
Added new dbus method to support bssid based connection
Change-Id: I95d2a56c1d26db06cbdb5c85dc0e2b33b3c10da3
Signed-off-by: Jaehyun Kim <jeik01.kim@samsung.com>
Diffstat (limited to 'gsupplicant')
-rwxr-xr-x | gsupplicant/gsupplicant.h | 2 | ||||
-rw-r--r-- | gsupplicant/supplicant.c | 32 |
2 files changed, 25 insertions, 9 deletions
diff --git a/gsupplicant/gsupplicant.h b/gsupplicant/gsupplicant.h index 46d065bf..0476ff66 100755 --- a/gsupplicant/gsupplicant.h +++ b/gsupplicant/gsupplicant.h @@ -173,6 +173,8 @@ struct _GSupplicantSSID { int ignore_broadcast_ssid; #if defined TIZEN_EXT unsigned char *bssid; + unsigned int bssid_for_connect_len; + unsigned char bssid_for_connect[6]; #endif }; diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c index 724520e0..9b7a9349 100644 --- a/gsupplicant/supplicant.c +++ b/gsupplicant/supplicant.c @@ -4815,7 +4815,8 @@ static void interface_select_network_params(DBusMessageIter *iter, dbus_message_iter_append_basic(iter, DBUS_TYPE_OBJECT_PATH, &interface->network_path); #if defined TIZEN_EXT - dbus_message_iter_append_basic(iter, DBUS_TYPE_INT32, &ssid->freq); + if (!ssid->bssid_for_connect_len) + dbus_message_iter_append_basic(iter, DBUS_TYPE_INT32, &ssid->freq); #endif } @@ -4842,14 +4843,20 @@ static void interface_add_network_result(const char *error, #if defined TIZEN_EXT SUPPLICANT_DBG(".Interface.SelectNetworkFreq"); -#endif + GSupplicantSSID *ssid = data->ssid; -#if defined TIZEN_EXT - supplicant_dbus_method_call(data->interface->path, - SUPPLICANT_INTERFACE ".Interface", "SelectNetworkFreq", - interface_select_network_params, - interface_select_network_result, data, - interface); + if (!ssid->bssid_for_connect_len) + supplicant_dbus_method_call(data->interface->path, + SUPPLICANT_INTERFACE ".Interface", "SelectNetworkFreq", + interface_select_network_params, + interface_select_network_result, data, + interface); + else + supplicant_dbus_method_call(data->interface->path, + SUPPLICANT_INTERFACE ".Interface", "SelectNetwork", + interface_select_network_params, + interface_select_network_result, data, + interface); #else supplicant_dbus_method_call(data->interface->path, SUPPLICANT_INTERFACE ".Interface", "SelectNetwork", @@ -5401,9 +5408,16 @@ static void interface_add_network_params(DBusMessageIter *iter, void *user_data) supplicant_dbus_dict_close(iter, &dict); return; } - snprintf(bssid, 18, "%02x:%02x:%02x:%02x:%02x:%02x", + + if (ssid->bssid_for_connect_len) + snprintf(bssid, 18, "%02x:%02x:%02x:%02x:%02x:%02x", + ssid->bssid_for_connect[0], ssid->bssid_for_connect[1], ssid->bssid_for_connect[2], + ssid->bssid_for_connect[3], ssid->bssid_for_connect[4], ssid->bssid_for_connect[5]); + else + snprintf(bssid, 18, "%02x:%02x:%02x:%02x:%02x:%02x", ssid->bssid[0], ssid->bssid[1], ssid->bssid[2], ssid->bssid[3], ssid->bssid[4], ssid->bssid[5]); + supplicant_dbus_dict_append_basic(&dict, "bssid", DBUS_TYPE_STRING, &bssid); g_free(bssid); |