Clear all Ethernet state when our interface goes away.

Previously we did not stop DHCP or try to force a disconnect.
This made it impossible to reconnect by unplugging and
replugging an USB Ethernet adapter.

Bug: 17736828
Change-Id: Idd8576a96b063b5ca726ee9149800bdcb0f62bd1
diff --git a/java/com/android/server/ethernet/EthernetNetworkFactory.java b/java/com/android/server/ethernet/EthernetNetworkFactory.java
index a471154..2d0a957 100644
--- a/java/com/android/server/ethernet/EthernetNetworkFactory.java
+++ b/java/com/android/server/ethernet/EthernetNetworkFactory.java
@@ -208,13 +208,18 @@
             return;
 
         Log.d(TAG, "Stopped tracking interface " + iface);
+        // TODO: Unify this codepath with stop().
         synchronized (this) {
+            NetworkUtils.stopDhcp(mIface);
             mIface = "";
             mHwAddr = null;
             mNetworkInfo.setExtraInfo(null);
+            mLinkUp = false;
+            mNetworkInfo.setDetailedState(DetailedState.DISCONNECTED, null, mHwAddr);
+            updateAgent();
+            mNetworkAgent = null;
             mNetworkInfo = new NetworkInfo(ConnectivityManager.TYPE_ETHERNET, 0, NETWORK_TYPE, "");
             mLinkProperties = new LinkProperties();
-            updateAgent();
         }
     }