Loading services/net/java/android/net/dhcp/DhcpServer.java +7 −8 Original line number Diff line number Diff line Loading @@ -39,7 +39,6 @@ import android.annotation.Nullable; import android.net.MacAddress; import android.net.NetworkUtils; import android.net.TrafficStats; import android.net.util.InterfaceParams; import android.net.util.SharedLog; import android.os.Handler; import android.os.Looper; Loading Loading @@ -85,7 +84,7 @@ public class DhcpServer { @NonNull private final ServerHandler mHandler; @NonNull private final InterfaceParams mIface; private final String mIfName; @NonNull private final DhcpLeaseRepository mLeaseRepo; @NonNull Loading Loading @@ -161,20 +160,20 @@ public class DhcpServer { } } public DhcpServer(@NonNull Looper looper, @NonNull InterfaceParams iface, public DhcpServer(@NonNull Looper looper, @NonNull String ifName, @NonNull DhcpServingParams params, @NonNull SharedLog log) { this(looper, iface, params, log, null); this(looper, ifName, params, log, null); } @VisibleForTesting DhcpServer(@NonNull Looper looper, @NonNull InterfaceParams iface, DhcpServer(@NonNull Looper looper, @NonNull String ifName, @NonNull DhcpServingParams params, @NonNull SharedLog log, @Nullable Dependencies deps) { if (deps == null) { deps = new DependenciesImpl(); } mHandler = new ServerHandler(looper); mIface = iface; mIfName = ifName; mServingParams = params; mLog = log; mDeps = deps; Loading Loading @@ -444,7 +443,7 @@ public class DhcpServer { private boolean addArpEntry(@NonNull MacAddress macAddr, @NonNull Inet4Address inetAddr) { try { mDeps.addArpEntry(inetAddr, macAddr, mIface.name, mSocket); mDeps.addArpEntry(inetAddr, macAddr, mIfName, mSocket); return true; } catch (IOException e) { mLog.e("Error adding client to ARP table", e); Loading Loading @@ -526,7 +525,7 @@ public class DhcpServer { // SO_BINDTODEVICE actually takes a string. This works because the first member // of struct ifreq is a NULL-terminated interface name. // TODO: add a setsockoptString() Os.setsockoptIfreq(mSocket, SOL_SOCKET, SO_BINDTODEVICE, mIface.name); Os.setsockoptIfreq(mSocket, SOL_SOCKET, SO_BINDTODEVICE, mIfName); Os.setsockoptInt(mSocket, SOL_SOCKET, SO_BROADCAST, 1); Os.bind(mSocket, Inet4Address.ANY, DHCP_SERVER); NetworkUtils.protectFromVpn(mSocket); Loading services/net/java/android/net/ip/IpServer.java +3 −9 Original line number Diff line number Diff line Loading @@ -138,9 +138,9 @@ public class IpServer extends StateMachine { return NetdService.getInstance(); } public DhcpServer makeDhcpServer(Looper looper, InterfaceParams iface, public DhcpServer makeDhcpServer(Looper looper, String ifName, DhcpServingParams params, SharedLog log) { return new DhcpServer(looper, iface, params, log); return new DhcpServer(looper, ifName, params, log); } } Loading Loading @@ -256,12 +256,6 @@ public class IpServer extends StateMachine { if (mUsingLegacyDhcp) { return true; } final InterfaceParams ifaceParams = mDeps.getInterfaceParams(mIfaceName); if (ifaceParams == null) { Log.e(TAG, "Failed to find interface params for DHCPv4"); return false; } final DhcpServingParams params; try { params = new DhcpServingParams.Builder() Loading @@ -277,7 +271,7 @@ public class IpServer extends StateMachine { return false; } mDhcpServer = mDeps.makeDhcpServer(getHandler().getLooper(), ifaceParams, params, mDhcpServer = mDeps.makeDhcpServer(getHandler().getLooper(), mIfaceName, params, mLog.forSubComponent("DHCP")); mDhcpServer.start(); return true; Loading tests/net/java/android/net/dhcp/DhcpServerTest.java +1 −6 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ import static android.net.dhcp.DhcpPacket.INADDR_BROADCAST; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.assertNull; import static junit.framework.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; Loading @@ -48,7 +47,6 @@ import android.net.dhcp.DhcpLeaseRepository.InvalidAddressException; import android.net.dhcp.DhcpLeaseRepository.OutOfAddressesException; import android.net.dhcp.DhcpServer.Clock; import android.net.dhcp.DhcpServer.Dependencies; import android.net.util.InterfaceParams; import android.net.util.SharedLog; import android.os.test.TestLooper; import android.support.test.filters.SmallTest; Loading @@ -74,9 +72,6 @@ import java.util.Set; public class DhcpServerTest { private static final String PROP_DEXMAKER_SHARE_CLASSLOADER = "dexmaker.share_classloader"; private static final String TEST_IFACE = "testiface"; private static final MacAddress TEST_IFACE_MAC = MacAddress.fromString("11:22:33:44:55:66"); private static final InterfaceParams TEST_IFACEPARAMS = new InterfaceParams(TEST_IFACE, 1, TEST_IFACE_MAC); private static final Inet4Address TEST_SERVER_ADDR = parseAddr("192.168.0.2"); private static final LinkAddress TEST_SERVER_LINKADDR = new LinkAddress(TEST_SERVER_ADDR, 20); Loading Loading @@ -149,7 +144,7 @@ public class DhcpServerTest { .build(); mLooper = new TestLooper(); mServer = new DhcpServer(mLooper.getLooper(), TEST_IFACEPARAMS, servingParams, mServer = new DhcpServer(mLooper.getLooper(), TEST_IFACE, servingParams, new SharedLog(DhcpServerTest.class.getSimpleName()), mDeps); mServer.start(); Loading tests/net/java/android/net/ip/IpServerTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -404,7 +404,7 @@ public class IpServerTest { private void assertDhcpStarted(IpPrefix expectedPrefix) { verify(mDependencies, times(1)).makeDhcpServer( eq(mLooper.getLooper()), eq(TEST_IFACE_PARAMS), any(), eq(mSharedLog)); eq(mLooper.getLooper()), eq(IFACE_NAME), any(), eq(mSharedLog)); verify(mDhcpServer, times(1)).start(); final DhcpServingParams params = mDhcpParamsCaptor.getValue(); // Last address byte is random Loading tests/net/java/com/android/server/connectivity/TetheringTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -240,7 +240,7 @@ public class TetheringTest { } @Override public DhcpServer makeDhcpServer(Looper looper, InterfaceParams iface, public DhcpServer makeDhcpServer(Looper looper, String ifName, DhcpServingParams params, SharedLog log) { return mDhcpServer; } Loading Loading
services/net/java/android/net/dhcp/DhcpServer.java +7 −8 Original line number Diff line number Diff line Loading @@ -39,7 +39,6 @@ import android.annotation.Nullable; import android.net.MacAddress; import android.net.NetworkUtils; import android.net.TrafficStats; import android.net.util.InterfaceParams; import android.net.util.SharedLog; import android.os.Handler; import android.os.Looper; Loading Loading @@ -85,7 +84,7 @@ public class DhcpServer { @NonNull private final ServerHandler mHandler; @NonNull private final InterfaceParams mIface; private final String mIfName; @NonNull private final DhcpLeaseRepository mLeaseRepo; @NonNull Loading Loading @@ -161,20 +160,20 @@ public class DhcpServer { } } public DhcpServer(@NonNull Looper looper, @NonNull InterfaceParams iface, public DhcpServer(@NonNull Looper looper, @NonNull String ifName, @NonNull DhcpServingParams params, @NonNull SharedLog log) { this(looper, iface, params, log, null); this(looper, ifName, params, log, null); } @VisibleForTesting DhcpServer(@NonNull Looper looper, @NonNull InterfaceParams iface, DhcpServer(@NonNull Looper looper, @NonNull String ifName, @NonNull DhcpServingParams params, @NonNull SharedLog log, @Nullable Dependencies deps) { if (deps == null) { deps = new DependenciesImpl(); } mHandler = new ServerHandler(looper); mIface = iface; mIfName = ifName; mServingParams = params; mLog = log; mDeps = deps; Loading Loading @@ -444,7 +443,7 @@ public class DhcpServer { private boolean addArpEntry(@NonNull MacAddress macAddr, @NonNull Inet4Address inetAddr) { try { mDeps.addArpEntry(inetAddr, macAddr, mIface.name, mSocket); mDeps.addArpEntry(inetAddr, macAddr, mIfName, mSocket); return true; } catch (IOException e) { mLog.e("Error adding client to ARP table", e); Loading Loading @@ -526,7 +525,7 @@ public class DhcpServer { // SO_BINDTODEVICE actually takes a string. This works because the first member // of struct ifreq is a NULL-terminated interface name. // TODO: add a setsockoptString() Os.setsockoptIfreq(mSocket, SOL_SOCKET, SO_BINDTODEVICE, mIface.name); Os.setsockoptIfreq(mSocket, SOL_SOCKET, SO_BINDTODEVICE, mIfName); Os.setsockoptInt(mSocket, SOL_SOCKET, SO_BROADCAST, 1); Os.bind(mSocket, Inet4Address.ANY, DHCP_SERVER); NetworkUtils.protectFromVpn(mSocket); Loading
services/net/java/android/net/ip/IpServer.java +3 −9 Original line number Diff line number Diff line Loading @@ -138,9 +138,9 @@ public class IpServer extends StateMachine { return NetdService.getInstance(); } public DhcpServer makeDhcpServer(Looper looper, InterfaceParams iface, public DhcpServer makeDhcpServer(Looper looper, String ifName, DhcpServingParams params, SharedLog log) { return new DhcpServer(looper, iface, params, log); return new DhcpServer(looper, ifName, params, log); } } Loading Loading @@ -256,12 +256,6 @@ public class IpServer extends StateMachine { if (mUsingLegacyDhcp) { return true; } final InterfaceParams ifaceParams = mDeps.getInterfaceParams(mIfaceName); if (ifaceParams == null) { Log.e(TAG, "Failed to find interface params for DHCPv4"); return false; } final DhcpServingParams params; try { params = new DhcpServingParams.Builder() Loading @@ -277,7 +271,7 @@ public class IpServer extends StateMachine { return false; } mDhcpServer = mDeps.makeDhcpServer(getHandler().getLooper(), ifaceParams, params, mDhcpServer = mDeps.makeDhcpServer(getHandler().getLooper(), mIfaceName, params, mLog.forSubComponent("DHCP")); mDhcpServer.start(); return true; Loading
tests/net/java/android/net/dhcp/DhcpServerTest.java +1 −6 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ import static android.net.dhcp.DhcpPacket.INADDR_BROADCAST; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.assertNull; import static junit.framework.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; Loading @@ -48,7 +47,6 @@ import android.net.dhcp.DhcpLeaseRepository.InvalidAddressException; import android.net.dhcp.DhcpLeaseRepository.OutOfAddressesException; import android.net.dhcp.DhcpServer.Clock; import android.net.dhcp.DhcpServer.Dependencies; import android.net.util.InterfaceParams; import android.net.util.SharedLog; import android.os.test.TestLooper; import android.support.test.filters.SmallTest; Loading @@ -74,9 +72,6 @@ import java.util.Set; public class DhcpServerTest { private static final String PROP_DEXMAKER_SHARE_CLASSLOADER = "dexmaker.share_classloader"; private static final String TEST_IFACE = "testiface"; private static final MacAddress TEST_IFACE_MAC = MacAddress.fromString("11:22:33:44:55:66"); private static final InterfaceParams TEST_IFACEPARAMS = new InterfaceParams(TEST_IFACE, 1, TEST_IFACE_MAC); private static final Inet4Address TEST_SERVER_ADDR = parseAddr("192.168.0.2"); private static final LinkAddress TEST_SERVER_LINKADDR = new LinkAddress(TEST_SERVER_ADDR, 20); Loading Loading @@ -149,7 +144,7 @@ public class DhcpServerTest { .build(); mLooper = new TestLooper(); mServer = new DhcpServer(mLooper.getLooper(), TEST_IFACEPARAMS, servingParams, mServer = new DhcpServer(mLooper.getLooper(), TEST_IFACE, servingParams, new SharedLog(DhcpServerTest.class.getSimpleName()), mDeps); mServer.start(); Loading
tests/net/java/android/net/ip/IpServerTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -404,7 +404,7 @@ public class IpServerTest { private void assertDhcpStarted(IpPrefix expectedPrefix) { verify(mDependencies, times(1)).makeDhcpServer( eq(mLooper.getLooper()), eq(TEST_IFACE_PARAMS), any(), eq(mSharedLog)); eq(mLooper.getLooper()), eq(IFACE_NAME), any(), eq(mSharedLog)); verify(mDhcpServer, times(1)).start(); final DhcpServingParams params = mDhcpParamsCaptor.getValue(); // Last address byte is random Loading
tests/net/java/com/android/server/connectivity/TetheringTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -240,7 +240,7 @@ public class TetheringTest { } @Override public DhcpServer makeDhcpServer(Looper looper, InterfaceParams iface, public DhcpServer makeDhcpServer(Looper looper, String ifName, DhcpServingParams params, SharedLog log) { return mDhcpServer; } Loading