summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLorenzo Colitti <lorenzo@google.com>2020-03-20 00:44:42 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-03-20 00:44:42 +0000
commitb9a2ef98d97ad4b8256657f181d80ff487e8cff3 (patch)
tree0a2fec897425377986fe2e17fa9d6aac054a0a28
parent372bbdb61ea5b53d7972d1bad3be0c778f58797b (diff)
parentbbb550ceb7e22bbfb730cc83011ec2498eb08b6c (diff)
downloadethernet-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.java24
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();