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
This commit is contained in:
James Mattis
2022-07-19 14:50:28 -07:00
parent 41998d678d
commit a199735a88
2 changed files with 13 additions and 7 deletions

View File

@@ -649,13 +649,12 @@ public class EthernetNetworkFactory {
if (!up) { // was up, goes down if (!up) { // was up, goes down
// retract network offer and stop IpClient. // retract network offer and stop IpClient.
unregisterNetworkOfferAndStop(); unregisterNetworkOfferAndStop();
// If only setting the interface down, send a callback to signal completion.
EthernetNetworkFactory.maybeSendNetworkManagementCallback(listener, name, null);
} else { // was down, goes up } else { // was down, goes up
// register network offer // register network offer
registerNetworkOffer(); registerNetworkOffer();
} }
EthernetNetworkFactory.maybeSendNetworkManagementCallback(listener, name, null);
return true; return true;
} }

View File

@@ -320,14 +320,21 @@ public class EthernetNetworkFactoryTest {
public void testUpdateInterfaceLinkStateForProvisionedInterface() throws Exception { public void testUpdateInterfaceLinkStateForProvisionedInterface() throws Exception {
initEthernetNetworkFactory(); initEthernetNetworkFactory();
createAndVerifyProvisionedInterface(TEST_IFACE); createAndVerifyProvisionedInterface(TEST_IFACE);
final TestNetworkManagementListener listener = new TestNetworkManagementListener(); final TestNetworkManagementListener listenerDown = new TestNetworkManagementListener();
final TestNetworkManagementListener listenerUp = new TestNetworkManagementListener();
final boolean ret = final boolean retDown =
mNetFactory.updateInterfaceLinkState(TEST_IFACE, false /* up */, listener); mNetFactory.updateInterfaceLinkState(TEST_IFACE, false /* up */, listenerDown);
assertTrue(ret); assertTrue(retDown);
verifyStop(); 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 @Test