From 28cdf1dc222e27b11902bfb15a49331fd800cd87 Mon Sep 17 00:00:00 2001 From: Robert Greenwalt Date: Fri, 15 Mar 2013 10:48:46 -0700 Subject: [PATCH] Don't update routes if Dhcp fails. bug:8377625 Change-Id: I11d2c29728078813bfb1245cc46e8cce2b307a2c --- core/java/android/net/DhcpStateMachine.java | 2 +- core/jni/android_net_NetUtils.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/core/java/android/net/DhcpStateMachine.java b/core/java/android/net/DhcpStateMachine.java index 518dd4b7bcca3..0906c81d16eda 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 f5f22b2d2aae5..faae11ec3bb6b 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);