From a199735a88ae703c5d24cbad1540a1694811466a Mon Sep 17 00:00:00 2001 From: James Mattis Date: Tue, 19 Jul 2022 14:50:28 -0700 Subject: [PATCH] Sendcallback when setting eth interface up Fix so callbacks are sent when changing the interface link state for an ethernet interface from down -> up. Bug: 235605892 Test: atest FrameworksNetTests :com.android.server.ethernet.EthernetNetworkFactoryTest Change-Id: If13254d4882aa2f0021f6443f31ef173b3867727 --- .../server/ethernet/EthernetNetworkFactory.java | 3 +-- .../ethernet/EthernetNetworkFactoryTest.java | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/service-t/src/com/android/server/ethernet/EthernetNetworkFactory.java b/service-t/src/com/android/server/ethernet/EthernetNetworkFactory.java index 604afc3ba0..e5bddf64fe 100644 --- a/service-t/src/com/android/server/ethernet/EthernetNetworkFactory.java +++ b/service-t/src/com/android/server/ethernet/EthernetNetworkFactory.java @@ -649,13 +649,12 @@ public class EthernetNetworkFactory { if (!up) { // was up, goes down // retract network offer and stop IpClient. unregisterNetworkOfferAndStop(); - // If only setting the interface down, send a callback to signal completion. - EthernetNetworkFactory.maybeSendNetworkManagementCallback(listener, name, null); } else { // was down, goes up // register network offer registerNetworkOffer(); } + EthernetNetworkFactory.maybeSendNetworkManagementCallback(listener, name, null); return true; } diff --git a/tests/unit/java/com/android/server/ethernet/EthernetNetworkFactoryTest.java b/tests/unit/java/com/android/server/ethernet/EthernetNetworkFactoryTest.java index 8a18ee75ee..b42058f8a3 100644 --- a/tests/unit/java/com/android/server/ethernet/EthernetNetworkFactoryTest.java +++ b/tests/unit/java/com/android/server/ethernet/EthernetNetworkFactoryTest.java @@ -320,14 +320,21 @@ public class EthernetNetworkFactoryTest { public void testUpdateInterfaceLinkStateForProvisionedInterface() throws Exception { initEthernetNetworkFactory(); createAndVerifyProvisionedInterface(TEST_IFACE); - final TestNetworkManagementListener listener = new TestNetworkManagementListener(); + final TestNetworkManagementListener listenerDown = new TestNetworkManagementListener(); + final TestNetworkManagementListener listenerUp = new TestNetworkManagementListener(); - final boolean ret = - mNetFactory.updateInterfaceLinkState(TEST_IFACE, false /* up */, listener); + final boolean retDown = + mNetFactory.updateInterfaceLinkState(TEST_IFACE, false /* up */, listenerDown); - assertTrue(ret); + assertTrue(retDown); verifyStop(); - assertEquals(listener.expectOnResult(), TEST_IFACE); + assertEquals(listenerDown.expectOnResult(), TEST_IFACE); + + final boolean retUp = + mNetFactory.updateInterfaceLinkState(TEST_IFACE, true /* up */, listenerUp); + + assertTrue(retUp); + assertEquals(listenerUp.expectOnResult(), TEST_IFACE); } @Test