Avoid re-creating an IpClient if the network has already started am: de93b3eb05 am: e340642858
am: fdd22f0150
Change-Id: I74b63b47f4e79a2fb2aa27c5c4d8edd8c51ea63e
This commit is contained in:
@@ -280,11 +280,14 @@ public class EthernetNetworkFactory extends NetworkFactory {
|
||||
}
|
||||
|
||||
private void start() {
|
||||
if (mIpClient != null) {
|
||||
if (DBG) Log.d(TAG, "IpClient already started");
|
||||
return;
|
||||
}
|
||||
if (DBG) {
|
||||
Log.d(TAG, String.format("starting IpClient(%s): mNetworkInfo=%s", name,
|
||||
mNetworkInfo));
|
||||
}
|
||||
if (mIpClient != null) stop();
|
||||
|
||||
mNetworkInfo.setDetailedState(DetailedState.OBTAINING_IPADDR, null, mHwAddress);
|
||||
|
||||
@@ -325,6 +328,7 @@ public class EthernetNetworkFactory extends NetworkFactory {
|
||||
void onIpLayerStopped(LinkProperties linkProperties) {
|
||||
// This cannot happen due to provisioning timeout, because our timeout is 0. It can only
|
||||
// happen if we're provisioned and we lose provisioning.
|
||||
stop();
|
||||
start();
|
||||
}
|
||||
|
||||
@@ -338,12 +342,11 @@ public class EthernetNetworkFactory extends NetworkFactory {
|
||||
/** Returns true if state has been modified */
|
||||
boolean updateLinkState(boolean up) {
|
||||
if (mLinkUp == up) return false;
|
||||
|
||||
mLinkUp = up;
|
||||
|
||||
stop();
|
||||
if (up) {
|
||||
start();
|
||||
} else {
|
||||
stop();
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user