From 4f31c21787951ff28645f9e4354702584be74b32 Mon Sep 17 00:00:00 2001 From: Erik Kline Date: Mon, 7 Aug 2017 18:11:22 -0700 Subject: Always note the state of RNDIS from USB broadcasts. Test: as follows - built - flashed - booted - runtest frameworks-net passes Bug: 63970368 Merged-In: I53115deda25ca83a00bd9de12891a72028647d12 Merged-In: I317b694c3a8c76077c031c4410d5b97ed79c1bbc Merged-In: Ie226534011d6439c24cfe1957c5cf47ba171b0c0 Change-Id: I273edbe21fea586f1353ff378515401efc6bb15e (cherry picked from commit 3897dc179f23dfbaf10f0139160aa29a232144f5) --- .../java/com/android/server/connectivity/Tethering.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/services/core/java/com/android/server/connectivity/Tethering.java b/services/core/java/com/android/server/connectivity/Tethering.java index 4574fba76624..0288eb676419 100644 --- a/services/core/java/com/android/server/connectivity/Tethering.java +++ b/services/core/java/com/android/server/connectivity/Tethering.java @@ -838,20 +838,23 @@ public class Tethering extends BaseNetworkObserver { // functions are ready to use. // // For more explanation, see b/62552150 . - if (usbConnected && !usbConfigured) { - // Nothing for us to do here. - // TODO: consider ignoring DISCONNECTED broadcasts as well. - return; - } - synchronized (Tethering.this.mPublicSync) { + // Always record the state of RNDIS. mRndisEnabled = rndisEnabled; + + if (usbConnected && !usbConfigured) { + // Nothing to do here (only CONNECTED, not yet CONFIGURED). + return; + } + // start tethering if we have a request pending if (usbConfigured && mRndisEnabled && mUsbTetherRequested) { tetherMatchingInterfaces( IControlsTethering.STATE_TETHERED, ConnectivityManager.TETHERING_USB); } + + // TODO: Figure out how to remove the need for this variable. mUsbTetherRequested = false; } } -- cgit v1.2.3-59-g8ed1b