summaryrefslogtreecommitdiff
path: root/gsupplicant
diff options
context:
space:
mode:
authorJaehyun Kim <jeik01.kim@samsung.com>2018-02-20 15:37:40 +0900
committerJaehyun Kim <jeik01.kim@samsung.com>2018-02-21 15:14:10 +0900
commit63d4f774d04c381000e45e7490bc838da9b36027 (patch)
tree37c181ca6916c3f926dec23c87e6ca91e95f21e4 /gsupplicant
parent45e07ac85c513f438bf4534b4a6abe36f0467248 (diff)
downloadconnman-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-xgsupplicant/gsupplicant.h2
-rw-r--r--gsupplicant/supplicant.c32
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);