Strategic fix for infinite loop

Bug: 111326363
Test: Manual + atest frameworks-net
Change-Id: Id262df4e41de5c74784637ae4a5459c3fab9fb74
diff --git a/service-t/src/com/android/server/ethernet/EthernetNetworkFactory.java b/service-t/src/com/android/server/ethernet/EthernetNetworkFactory.java
index dc42d4b..dc94482 100644
--- a/service-t/src/com/android/server/ethernet/EthernetNetworkFactory.java
+++ b/service-t/src/com/android/server/ethernet/EthernetNetworkFactory.java
@@ -33,6 +33,7 @@
 import android.net.StringNetworkSpecifier;
 import android.net.ip.IpClient;
 import android.net.ip.IpClient.ProvisioningConfiguration;
+import android.net.util.InterfaceParams;
 import android.os.Handler;
 import android.text.TextUtils;
 import android.util.Log;
@@ -328,7 +329,11 @@
             // 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();
+            // If the interface has disappeared provisioning will fail over and over again, so
+            // there is no point in starting again
+            if (null != InterfaceParams.getByName(name)) {
+                start();
+            }
         }
 
         void updateLinkProperties(LinkProperties linkProperties) {