summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorNingyuan Wang <nywang@google.com>2016-03-24 01:10:22 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2016-03-24 01:10:22 +0000
commit8e66cfa1668921d9ef0f385879a7cffa54a3f5a8 (patch)
tree49524396764797f151b4fc397327de5e2ca8b10f /service
parent3b479405c66fd65c2ac9d88dcdae936cf8477e3a (diff)
parent3b51fd1bb8356b284822f4f677ad941524e616eb (diff)
Merge "Revert "Remove hardcoded 'wlan0' from native WiFi code"" into nyc-dev
Diffstat (limited to 'service')
-rw-r--r--service/java/com/android/server/wifi/WifiNative.java11
-rw-r--r--service/jni/com_android_server_wifi_WifiNative.cpp17
2 files changed, 13 insertions, 15 deletions
diff --git a/service/java/com/android/server/wifi/WifiNative.java b/service/java/com/android/server/wifi/WifiNative.java
index dc8447355..9b28a4f14 100644
--- a/service/java/com/android/server/wifi/WifiNative.java
+++ b/service/java/com/android/server/wifi/WifiNative.java
@@ -1736,10 +1736,6 @@ public class WifiNative {
synchronized (sLock) {
if (startHalNative()) {
- if (!setInterfaceUp(true)) {
- sLocalLog.log("Could not bring up interface: " + mInterfaceName);
- return false;
- }
int wlan0Index = queryInterfaceIndex(mInterfaceName);
if (wlan0Index == -1) {
if (DBG) sLocalLog.log("Could not find interface with name: " + mInterfaceName);
@@ -1764,9 +1760,6 @@ public class WifiNative {
try {
sThread.join(STOP_HAL_TIMEOUT_MS);
Log.d(TAG, "HAL event thread stopped successfully");
- if (!setInterfaceUp(false)) {
- if (DBG) sLocalLog.log("Could not bring down interface: " + mInterfaceName);
- }
} catch (InterruptedException e) {
Log.e(TAG, "Could not stop HAL cleanly");
}
@@ -2475,11 +2468,11 @@ public class WifiNative {
}
}
- private static native boolean setInterfaceUpNative(String interfaceName, boolean up);
+ private static native boolean setInterfaceUpNative(boolean up);
public boolean setInterfaceUp(boolean up) {
synchronized (sLock) {
if (isHalStarted()) {
- return setInterfaceUpNative(mInterfaceName, up);
+ return setInterfaceUpNative(up);
} else {
return false;
}
diff --git a/service/jni/com_android_server_wifi_WifiNative.cpp b/service/jni/com_android_server_wifi_WifiNative.cpp
index 35b0be7af..db09c7727 100644
--- a/service/jni/com_android_server_wifi_WifiNative.cpp
+++ b/service/jni/com_android_server_wifi_WifiNative.cpp
@@ -283,10 +283,8 @@ int set_iface_flags(const char *ifname, bool dev_up) {
return 0;
}
-static jboolean android_net_wifi_set_interface_up(JNIEnv* env,
- jclass cls, jstring if_name, jboolean up) {
- ScopedUtfChars chars(env, if_name);
- return (set_iface_flags(chars.c_str(), (bool)up) == 0);
+static jboolean android_net_wifi_set_interface_up(JNIEnv* env, jclass cls, jboolean up) {
+ return (set_iface_flags("wlan0", (bool)up) == 0);
}
static jboolean android_net_wifi_startHal(JNIEnv* env, jclass cls) {
@@ -305,6 +303,11 @@ static jboolean android_net_wifi_startHal(JNIEnv* env, jclass cls) {
return false;
}
+ int ret = set_iface_flags("wlan0", true);
+ if(ret != 0) {
+ return false;
+ }
+
res = hal_fn.wifi_initialize(&halHandle);
if (res == WIFI_SUCCESS) {
helper.setStaticLongField(cls, WifiHandleVarName, (jlong)halHandle);
@@ -314,8 +317,9 @@ static jboolean android_net_wifi_startHal(JNIEnv* env, jclass cls) {
mCls = (jclass) env->NewGlobalRef(cls);
ALOGD("halHandle = %p, mVM = %p, mCls = %p", halHandle, mVM, mCls);
return res == WIFI_SUCCESS;
+ } else {
+ return (set_iface_flags("wlan0", true) == 0);
}
- return JNI_TRUE;
}
void android_net_wifi_hal_cleaned_up_handler(wifi_handle handle) {
@@ -348,6 +352,7 @@ static void android_net_wifi_waitForHalEvents(JNIEnv* env, jclass cls) {
JNIHelper helper(env);
wifi_handle halHandle = getWifiHandle(helper, cls);
hal_fn.wifi_event_loop(halHandle);
+ set_iface_flags("wlan0", false);
}
static int android_net_wifi_getInterfaces(JNIEnv *env, jclass cls) {
@@ -2311,7 +2316,7 @@ static JNINativeMethod gWifiMethods[] = {
{ "setScanningMacOuiNative", "(I[B)Z", (void*) android_net_wifi_setScanningMacOui},
{ "getChannelsForBandNative", "(II)[I", (void*) android_net_wifi_getValidChannels},
{ "setDfsFlagNative", "(IZ)Z", (void*) android_net_wifi_setDfsFlag},
- { "setInterfaceUpNative", "(Ljava/lang/String;Z)Z", (void*) android_net_wifi_set_interface_up},
+ { "setInterfaceUpNative", "(Z)Z", (void*) android_net_wifi_set_interface_up},
{ "getRttCapabilitiesNative", "(I)Landroid/net/wifi/RttManager$RttCapabilities;",
(void*) android_net_wifi_get_rtt_capabilities},
{ "getPacketFilterCapabilitiesNative", "(I)Lcom/android/server/wifi/WifiNative$PacketFilterCapabilities;",