summaryrefslogtreecommitdiffstats
path: root/core/jni/android_net_NetUtils.cpp
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2009-07-10 17:24:07 -0400
committerMike Lockwood <lockwood@android.com>2009-07-10 17:24:07 -0400
commit0900f3657664d9046e6723825fd32b244eef2b6c (patch)
tree770dae272d11945320396c00b5cd0df763e18698 /core/jni/android_net_NetUtils.cpp
parentf1a43bbc32ad4450e4af3a5488f889ce095cf503 (diff)
downloadframeworks_base-0900f3657664d9046e6723825fd32b244eef2b6c.zip
frameworks_base-0900f3657664d9046e6723825fd32b244eef2b6c.tar.gz
frameworks_base-0900f3657664d9046e6723825fd32b244eef2b6c.tar.bz2
wifi: Keep the WLAN network interface up whenever wifi is enabled.
We now only bring it down briefly and bring it back up again when we want to reset the interface. Signed-off-by: Mike Lockwood <lockwood@android.com>
Diffstat (limited to 'core/jni/android_net_NetUtils.cpp')
-rw-r--r--core/jni/android_net_NetUtils.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/core/jni/android_net_NetUtils.cpp b/core/jni/android_net_NetUtils.cpp
index 8383deb..feb0dad 100644
--- a/core/jni/android_net_NetUtils.cpp
+++ b/core/jni/android_net_NetUtils.cpp
@@ -23,6 +23,7 @@
#include <arpa/inet.h>
extern "C" {
+int ifc_enable(const char *ifname);
int ifc_disable(const char *ifname);
int ifc_add_host_route(const char *ifname, uint32_t addr);
int ifc_remove_host_routes(const char *ifname);
@@ -66,6 +67,16 @@ static struct fieldIds {
jfieldID leaseDuration;
} dhcpInfoFieldIds;
+static jint android_net_utils_enableInterface(JNIEnv* env, jobject clazz, jstring ifname)
+{
+ int result;
+
+ const char *nameStr = env->GetStringUTFChars(ifname, NULL);
+ result = ::ifc_enable(nameStr);
+ env->ReleaseStringUTFChars(ifname, nameStr);
+ return (jint)result;
+}
+
static jint android_net_utils_disableInterface(JNIEnv* env, jobject clazz, jstring ifname)
{
int result;
@@ -209,6 +220,7 @@ static jboolean android_net_utils_configureInterface(JNIEnv* env,
static JNINativeMethod gNetworkUtilMethods[] = {
/* name, signature, funcPtr */
+ { "enableInterface", "(Ljava/lang/String;)I", (void *)android_net_utils_enableInterface },
{ "disableInterface", "(Ljava/lang/String;)I", (void *)android_net_utils_disableInterface },
{ "addHostRoute", "(Ljava/lang/String;I)I", (void *)android_net_utils_addHostRoute },
{ "removeHostRoutes", "(Ljava/lang/String;)I", (void *)android_net_utils_removeHostRoutes },