summaryrefslogtreecommitdiffstats
path: root/src/imports/wifi
diff options
context:
space:
mode:
authorGatis Paeglis <gatis.paeglis@digia.com>2014-05-08 17:36:52 +0200
committerGatis Paeglis <gatis.paeglis@digia.com>2014-06-13 09:39:35 +0300
commite30a8e704c129315225368de6cf41bd31df62d64 (patch)
treec2f1e69abb9c642499585470d2cbcf290992b71d /src/imports/wifi
parent84cb69dd5af6d2e44cce7bbef2536706d781f799 (diff)
Fix Wifi issues on Android 4.4.2
- Reload Wi-Fi firmware on a device startup (initializes wlan0 interface). - Android version 4.4 (and above) requires IFNAME=wlan0 prefix to the wpa_supplicant calls, without this all calls to the wpa_supplicant fail. - Fix "broken pipe" issue - a message in the logcat when trying to access a broken network. This seems to be a generic message whenever something is wrong with a network configuration (broken routing table, firewall issues, DNS issues etc.). Android uses Connectivity and NetworkManagement JAVA services to handle network configuration - we can use qconnectivity daemon for this. Task-number: QTEE-562 Change-Id: Ib5a93c677439a0e9bf92ede532667542d2bc4bed Reviewed-by: Eirik Aavitsland <eirik.aavitsland@digia.com>
Diffstat (limited to 'src/imports/wifi')
-rw-r--r--src/imports/wifi/qwifimanager.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/imports/wifi/qwifimanager.cpp b/src/imports/wifi/qwifimanager.cpp
index 65073f1..dd395c0 100644
--- a/src/imports/wifi/qwifimanager.cpp
+++ b/src/imports/wifi/qwifimanager.cpp
@@ -618,8 +618,13 @@ QByteArray QWifiManager::call(const char *command) const
{
char data[2048];
size_t len = sizeof(data) - 1; // -1: room to add a 0-terminator
- if (q_wifi_command(m_interface.constData(), command, data, &len) < 0) {
- qWarning("QWifiManager: call failed: %s", command);
+ QByteArray cmd;
+#if !(Q_ANDROID_VERSION_MAJOR == 4 && Q_ANDROID_VERSION_MINOR < 4)
+ cmd.append("IFNAME=").append(m_interface).append(" ");
+#endif
+ cmd.append(command);
+ if (q_wifi_command(m_interface.constData(), cmd.constData(), data, &len) < 0) {
+ qWarning("QWifiManager: call failed: %s", cmd.constData());
return QByteArray();
}
if (len < sizeof(data))