diff options
author | Lorenzo Colitti <lorenzo@google.com> | 2020-03-20 00:44:42 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-03-20 00:44:42 +0000 |
commit | b9a2ef98d97ad4b8256657f181d80ff487e8cff3 (patch) | |
tree | 0a2fec897425377986fe2e17fa9d6aac054a0a28 | |
parent | 372bbdb61ea5b53d7972d1bad3be0c778f58797b (diff) | |
parent | bbb550ceb7e22bbfb730cc83011ec2498eb08b6c (diff) | |
download | ethernet-b9a2ef98d97ad4b8256657f181d80ff487e8cff3.tar.gz |
Support setting the default interface to null again. am: bbb550ceb7
Change-Id: I88a98acb57b48fb9eedf104ed783a7d27b12e47f
-rw-r--r-- | java/com/android/server/ethernet/EthernetTracker.java | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/java/com/android/server/ethernet/EthernetTracker.java b/java/com/android/server/ethernet/EthernetTracker.java index 91453ab..d1f1402 100644 --- a/java/com/android/server/ethernet/EthernetTracker.java +++ b/java/com/android/server/ethernet/EthernetTracker.java @@ -240,17 +240,17 @@ final class EthernetTracker { private void maybeUntetherDefaultInterface() { if (mTetheredInterfaceRequests.getRegisteredCallbackCount() > 0) return; - // mDefaultInterface null means that there never was a default interface (it is never set - // to null). - if (mDefaultInterfaceMode == INTERFACE_MODE_CLIENT || mDefaultInterface == null) return; - + if (mDefaultInterfaceMode == INTERFACE_MODE_CLIENT) return; setDefaultInterfaceMode(INTERFACE_MODE_CLIENT); } private void setDefaultInterfaceMode(int mode) { + Log.d(TAG, "Setting default interface mode to " + mode); mDefaultInterfaceMode = mode; - removeInterface(mDefaultInterface); - addInterface(mDefaultInterface); + if (mDefaultInterface != null) { + removeInterface(mDefaultInterface); + addInterface(mDefaultInterface); + } } private int getInterfaceMode(final String iface) { @@ -264,6 +264,13 @@ final class EthernetTracker { mFactory.removeInterface(iface); } + private void stopTrackingInterface(String iface) { + removeInterface(iface); + if (iface.equals(mDefaultInterface)) { + mDefaultInterface = null; + } + } + private void addInterface(String iface) { InterfaceConfiguration config = null; // Bring up the interface so we get link status indications. @@ -406,7 +413,7 @@ final class EthernetTracker { @Override public void interfaceRemoved(String iface) { - mHandler.post(() -> removeInterface(iface)); + mHandler.post(() -> stopTrackingInterface(iface)); } } @@ -585,7 +592,6 @@ final class EthernetTracker { } private void updateIfaceMatchRegexp() { - final String testInterfaceMatch = TEST_TAP_PREFIX + ".*"; final String match = mContext.getResources().getString( com.android.internal.R.string.config_ethernet_iface_regex); mIfaceMatch = mIncludeTestInterfaces @@ -604,6 +610,8 @@ final class EthernetTracker { pw.println("Ethernet interface name filter: " + mIfaceMatch); pw.println("Default interface: " + mDefaultInterface); pw.println("Default interface mode: " + mDefaultInterfaceMode); + pw.println("Tethered interface requests: " + + mTetheredInterfaceRequests.getRegisteredCallbackCount()); pw.println("Listeners: " + mListeners.getRegisteredCallbackCount()); pw.println("IP Configurations:"); pw.increaseIndent(); |