summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Greenwalt <rgreenwalt@google.com>2013-03-15 10:48:46 -0700
committerRobert Greenwalt <rgreenwalt@google.com>2013-03-15 10:48:46 -0700
commit28cdf1dc222e27b11902bfb15a49331fd800cd87 (patch)
tree61c19cda8c11a941cd93e4ff336bb7dc3e4b0778
parente78aa8964766e5e2a9684de13176b08b7bd09e06 (diff)
downloadframeworks_base-28cdf1dc222e27b11902bfb15a49331fd800cd87.zip
frameworks_base-28cdf1dc222e27b11902bfb15a49331fd800cd87.tar.gz
frameworks_base-28cdf1dc222e27b11902bfb15a49331fd800cd87.tar.bz2
Don't update routes if Dhcp fails.
bug:8377625 Change-Id: I11d2c29728078813bfb1245cc46e8cce2b307a2c
-rw-r--r--core/java/android/net/DhcpStateMachine.java2
-rw-r--r--core/jni/android_net_NetUtils.cpp4
2 files changed, 5 insertions, 1 deletions
diff --git a/core/java/android/net/DhcpStateMachine.java b/core/java/android/net/DhcpStateMachine.java
index 518dd4b..0906c81 100644
--- a/core/java/android/net/DhcpStateMachine.java
+++ b/core/java/android/net/DhcpStateMachine.java
@@ -359,7 +359,7 @@ public class DhcpStateMachine extends StateMachine {
} else if (dhcpAction == DhcpAction.RENEW) {
if (DBG) Log.d(TAG, "DHCP renewal on " + mInterfaceName);
success = NetworkUtils.runDhcpRenew(mInterfaceName, dhcpResults);
- dhcpResults.updateFromDhcpRequest(mDhcpResults);
+ if (success) dhcpResults.updateFromDhcpRequest(mDhcpResults);
}
if (success) {
if (DBG) Log.d(TAG, "DHCP succeeded on " + mInterfaceName);
diff --git a/core/jni/android_net_NetUtils.cpp b/core/jni/android_net_NetUtils.cpp
index f5f22b2..faae11e 100644
--- a/core/jni/android_net_NetUtils.cpp
+++ b/core/jni/android_net_NetUtils.cpp
@@ -136,6 +136,10 @@ static jboolean android_net_utils_runDhcpCommon(JNIEnv* env, jobject clazz, jstr
result = ::dhcp_do_request(nameStr, ipaddr, gateway, &prefixLength,
dns, server, &lease, vendorInfo, domains);
}
+ if (result != 0) {
+ ALOGD("dhcp_do_request failed");
+ }
+
env->ReleaseStringUTFChars(ifname, nameStr);
if (result == 0) {
env->CallVoidMethod(dhcpResults, dhcpResultsFieldIds.clear);