Loading common/networkstackclient/aidl_api/networkstack-aidl-interfaces/current/android/net/dhcp/DhcpServingParamsParcel.aidl +1 −0 Original line number Original line Diff line number Diff line Loading @@ -26,4 +26,5 @@ parcelable DhcpServingParamsParcel { int linkMtu; int linkMtu; boolean metered; boolean metered; int clientAddr; int clientAddr; boolean changePrefixOnDecline; } } common/networkstackclient/src/android/net/dhcp/DhcpServingParamsParcel.aidl +1 −1 Original line number Original line Diff line number Diff line Loading @@ -27,5 +27,5 @@ parcelable DhcpServingParamsParcel { int linkMtu; int linkMtu; boolean metered; boolean metered; int clientAddr; int clientAddr; boolean changePrefixOnDecline; } } src/android/net/dhcp/DhcpServingParams.java +24 −2 Original line number Original line Diff line number Diff line Loading @@ -90,6 +90,13 @@ public class DhcpServingParams { @Nullable @Nullable public final Inet4Address clientAddr; public final Inet4Address clientAddr; /** * Indicates whether the DHCP server should request a new prefix from IpServer when receiving * DHCPDECLINE message in certain particular link (e.g. there is only one downstream USB * tethering client). If it's false, process DHCPDECLINE message as RFC2131#4.3.3 suggests. */ public final boolean changePrefixOnDecline; /** /** * Checked exception thrown when some parameters used to build {@link DhcpServingParams} are * Checked exception thrown when some parameters used to build {@link DhcpServingParams} are * missing or invalid. * missing or invalid. Loading @@ -103,7 +110,8 @@ public class DhcpServingParams { private DhcpServingParams(@NonNull LinkAddress serverAddr, private DhcpServingParams(@NonNull LinkAddress serverAddr, @NonNull Set<Inet4Address> defaultRouters, @NonNull Set<Inet4Address> defaultRouters, @NonNull Set<Inet4Address> dnsServers, @NonNull Set<Inet4Address> excludedAddrs, @NonNull Set<Inet4Address> dnsServers, @NonNull Set<Inet4Address> excludedAddrs, long dhcpLeaseTimeSecs, int linkMtu, boolean metered, Inet4Address clientAddr) { long dhcpLeaseTimeSecs, int linkMtu, boolean metered, Inet4Address clientAddr, boolean changePrefixOnDecline) { this.serverAddr = serverAddr; this.serverAddr = serverAddr; this.defaultRouters = defaultRouters; this.defaultRouters = defaultRouters; this.dnsServers = dnsServers; this.dnsServers = dnsServers; Loading @@ -112,6 +120,7 @@ public class DhcpServingParams { this.linkMtu = linkMtu; this.linkMtu = linkMtu; this.metered = metered; this.metered = metered; this.clientAddr = clientAddr; this.clientAddr = clientAddr; this.changePrefixOnDecline = changePrefixOnDecline; } } /** /** Loading Loading @@ -140,6 +149,7 @@ public class DhcpServingParams { .setLinkMtu(parcel.linkMtu) .setLinkMtu(parcel.linkMtu) .setMetered(parcel.metered) .setMetered(parcel.metered) .setClientAddr(clientAddr) .setClientAddr(clientAddr) .setChangePrefixOnDecline(parcel.changePrefixOnDecline) .build(); .build(); } } Loading Loading @@ -195,6 +205,7 @@ public class DhcpServingParams { private int mLinkMtu = MTU_UNSET; private int mLinkMtu = MTU_UNSET; private boolean mMetered; private boolean mMetered; private Inet4Address mClientAddr; private Inet4Address mClientAddr; private boolean mChangePrefixOnDecline; /** /** * Set the server address and served prefix for the DHCP server. * Set the server address and served prefix for the DHCP server. Loading Loading @@ -328,6 +339,17 @@ public class DhcpServingParams { return this; return this; } } /** * Set whether the DHCP server should request a new prefix from IpServer when receiving * DHCPDECLINE message in certain particular link. * * <p>If not set, the default value is false. */ public Builder setChangePrefixOnDecline(boolean changePrefixOnDecline) { this.mChangePrefixOnDecline = changePrefixOnDecline; return this; } /** /** * Create a new {@link DhcpServingParams} instance based on parameters set in the builder. * Create a new {@link DhcpServingParams} instance based on parameters set in the builder. * * Loading Loading @@ -382,7 +404,7 @@ public class DhcpServingParams { Collections.unmodifiableSet(new HashSet<>(mDefaultRouters)), Collections.unmodifiableSet(new HashSet<>(mDefaultRouters)), Collections.unmodifiableSet(new HashSet<>(mDnsServers)), Collections.unmodifiableSet(new HashSet<>(mDnsServers)), Collections.unmodifiableSet(excl), Collections.unmodifiableSet(excl), mDhcpLeaseTimeSecs, mLinkMtu, mMetered, mClientAddr); mDhcpLeaseTimeSecs, mLinkMtu, mMetered, mClientAddr, mChangePrefixOnDecline); } } } } Loading tests/unit/src/android/net/dhcp/DhcpServingParamsTest.java +7 −2 Original line number Original line Diff line number Diff line Loading @@ -63,6 +63,7 @@ public class DhcpServingParamsTest { private static final Set<Inet4Address> TEST_EXCLUDED_ADDRS = new HashSet<>( private static final Set<Inet4Address> TEST_EXCLUDED_ADDRS = new HashSet<>( Arrays.asList(parseAddr("192.168.0.200"), parseAddr("192.168.0.201"))); Arrays.asList(parseAddr("192.168.0.200"), parseAddr("192.168.0.201"))); private static final boolean TEST_METERED = true; private static final boolean TEST_METERED = true; private static final boolean TEST_CHANGE_PREFIX_ON_DECLINE = true; @Before @Before public void setUp() { public void setUp() { Loading @@ -74,7 +75,8 @@ public class DhcpServingParamsTest { .setLinkMtu(TEST_MTU) .setLinkMtu(TEST_MTU) .setExcludedAddrs(TEST_EXCLUDED_ADDRS) .setExcludedAddrs(TEST_EXCLUDED_ADDRS) .setMetered(TEST_METERED) .setMetered(TEST_METERED) .setClientAddr(TEST_CLIENT_ADDR); .setClientAddr(TEST_CLIENT_ADDR) .setChangePrefixOnDecline(TEST_CHANGE_PREFIX_ON_DECLINE); } } @Test @Test Loading @@ -101,6 +103,7 @@ public class DhcpServingParamsTest { assertEquals(TEST_LINKADDR, params.serverAddr); assertEquals(TEST_LINKADDR, params.serverAddr); assertEquals(TEST_MTU, params.linkMtu); assertEquals(TEST_MTU, params.linkMtu); assertEquals(TEST_METERED, params.metered); assertEquals(TEST_METERED, params.metered); assertEquals(TEST_CHANGE_PREFIX_ON_DECLINE, params.changePrefixOnDecline); assertContains(params.excludedAddrs, TEST_EXCLUDED_ADDRS); assertContains(params.excludedAddrs, TEST_EXCLUDED_ADDRS); assertContains(params.excludedAddrs, TEST_DEFAULT_ROUTERS); assertContains(params.excludedAddrs, TEST_DEFAULT_ROUTERS); Loading Loading @@ -182,6 +185,7 @@ public class DhcpServingParamsTest { parcel.excludedAddrs = toIntArray(TEST_EXCLUDED_ADDRS); parcel.excludedAddrs = toIntArray(TEST_EXCLUDED_ADDRS); parcel.metered = TEST_METERED; parcel.metered = TEST_METERED; parcel.clientAddr = inet4AddressToIntHTH(TEST_CLIENT_ADDR); parcel.clientAddr = inet4AddressToIntHTH(TEST_CLIENT_ADDR); parcel.changePrefixOnDecline = TEST_CHANGE_PREFIX_ON_DECLINE; final DhcpServingParams parceled = DhcpServingParams.fromParcelableObject(parcel); final DhcpServingParams parceled = DhcpServingParams.fromParcelableObject(parcel); assertEquals(params.defaultRouters, parceled.defaultRouters); assertEquals(params.defaultRouters, parceled.defaultRouters); Loading @@ -192,8 +196,9 @@ public class DhcpServingParamsTest { assertEquals(params.excludedAddrs, parceled.excludedAddrs); assertEquals(params.excludedAddrs, parceled.excludedAddrs); assertEquals(params.metered, parceled.metered); assertEquals(params.metered, parceled.metered); assertEquals(params.clientAddr, parceled.clientAddr); assertEquals(params.clientAddr, parceled.clientAddr); assertEquals(params.changePrefixOnDecline, parceled.changePrefixOnDecline); MiscAssertsKt.assertFieldCountEquals(9, DhcpServingParamsParcel.class); MiscAssertsKt.assertFieldCountEquals(10, DhcpServingParamsParcel.class); } } @Test(expected = InvalidParameterException.class) @Test(expected = InvalidParameterException.class) Loading Loading
common/networkstackclient/aidl_api/networkstack-aidl-interfaces/current/android/net/dhcp/DhcpServingParamsParcel.aidl +1 −0 Original line number Original line Diff line number Diff line Loading @@ -26,4 +26,5 @@ parcelable DhcpServingParamsParcel { int linkMtu; int linkMtu; boolean metered; boolean metered; int clientAddr; int clientAddr; boolean changePrefixOnDecline; } }
common/networkstackclient/src/android/net/dhcp/DhcpServingParamsParcel.aidl +1 −1 Original line number Original line Diff line number Diff line Loading @@ -27,5 +27,5 @@ parcelable DhcpServingParamsParcel { int linkMtu; int linkMtu; boolean metered; boolean metered; int clientAddr; int clientAddr; boolean changePrefixOnDecline; } }
src/android/net/dhcp/DhcpServingParams.java +24 −2 Original line number Original line Diff line number Diff line Loading @@ -90,6 +90,13 @@ public class DhcpServingParams { @Nullable @Nullable public final Inet4Address clientAddr; public final Inet4Address clientAddr; /** * Indicates whether the DHCP server should request a new prefix from IpServer when receiving * DHCPDECLINE message in certain particular link (e.g. there is only one downstream USB * tethering client). If it's false, process DHCPDECLINE message as RFC2131#4.3.3 suggests. */ public final boolean changePrefixOnDecline; /** /** * Checked exception thrown when some parameters used to build {@link DhcpServingParams} are * Checked exception thrown when some parameters used to build {@link DhcpServingParams} are * missing or invalid. * missing or invalid. Loading @@ -103,7 +110,8 @@ public class DhcpServingParams { private DhcpServingParams(@NonNull LinkAddress serverAddr, private DhcpServingParams(@NonNull LinkAddress serverAddr, @NonNull Set<Inet4Address> defaultRouters, @NonNull Set<Inet4Address> defaultRouters, @NonNull Set<Inet4Address> dnsServers, @NonNull Set<Inet4Address> excludedAddrs, @NonNull Set<Inet4Address> dnsServers, @NonNull Set<Inet4Address> excludedAddrs, long dhcpLeaseTimeSecs, int linkMtu, boolean metered, Inet4Address clientAddr) { long dhcpLeaseTimeSecs, int linkMtu, boolean metered, Inet4Address clientAddr, boolean changePrefixOnDecline) { this.serverAddr = serverAddr; this.serverAddr = serverAddr; this.defaultRouters = defaultRouters; this.defaultRouters = defaultRouters; this.dnsServers = dnsServers; this.dnsServers = dnsServers; Loading @@ -112,6 +120,7 @@ public class DhcpServingParams { this.linkMtu = linkMtu; this.linkMtu = linkMtu; this.metered = metered; this.metered = metered; this.clientAddr = clientAddr; this.clientAddr = clientAddr; this.changePrefixOnDecline = changePrefixOnDecline; } } /** /** Loading Loading @@ -140,6 +149,7 @@ public class DhcpServingParams { .setLinkMtu(parcel.linkMtu) .setLinkMtu(parcel.linkMtu) .setMetered(parcel.metered) .setMetered(parcel.metered) .setClientAddr(clientAddr) .setClientAddr(clientAddr) .setChangePrefixOnDecline(parcel.changePrefixOnDecline) .build(); .build(); } } Loading Loading @@ -195,6 +205,7 @@ public class DhcpServingParams { private int mLinkMtu = MTU_UNSET; private int mLinkMtu = MTU_UNSET; private boolean mMetered; private boolean mMetered; private Inet4Address mClientAddr; private Inet4Address mClientAddr; private boolean mChangePrefixOnDecline; /** /** * Set the server address and served prefix for the DHCP server. * Set the server address and served prefix for the DHCP server. Loading Loading @@ -328,6 +339,17 @@ public class DhcpServingParams { return this; return this; } } /** * Set whether the DHCP server should request a new prefix from IpServer when receiving * DHCPDECLINE message in certain particular link. * * <p>If not set, the default value is false. */ public Builder setChangePrefixOnDecline(boolean changePrefixOnDecline) { this.mChangePrefixOnDecline = changePrefixOnDecline; return this; } /** /** * Create a new {@link DhcpServingParams} instance based on parameters set in the builder. * Create a new {@link DhcpServingParams} instance based on parameters set in the builder. * * Loading Loading @@ -382,7 +404,7 @@ public class DhcpServingParams { Collections.unmodifiableSet(new HashSet<>(mDefaultRouters)), Collections.unmodifiableSet(new HashSet<>(mDefaultRouters)), Collections.unmodifiableSet(new HashSet<>(mDnsServers)), Collections.unmodifiableSet(new HashSet<>(mDnsServers)), Collections.unmodifiableSet(excl), Collections.unmodifiableSet(excl), mDhcpLeaseTimeSecs, mLinkMtu, mMetered, mClientAddr); mDhcpLeaseTimeSecs, mLinkMtu, mMetered, mClientAddr, mChangePrefixOnDecline); } } } } Loading
tests/unit/src/android/net/dhcp/DhcpServingParamsTest.java +7 −2 Original line number Original line Diff line number Diff line Loading @@ -63,6 +63,7 @@ public class DhcpServingParamsTest { private static final Set<Inet4Address> TEST_EXCLUDED_ADDRS = new HashSet<>( private static final Set<Inet4Address> TEST_EXCLUDED_ADDRS = new HashSet<>( Arrays.asList(parseAddr("192.168.0.200"), parseAddr("192.168.0.201"))); Arrays.asList(parseAddr("192.168.0.200"), parseAddr("192.168.0.201"))); private static final boolean TEST_METERED = true; private static final boolean TEST_METERED = true; private static final boolean TEST_CHANGE_PREFIX_ON_DECLINE = true; @Before @Before public void setUp() { public void setUp() { Loading @@ -74,7 +75,8 @@ public class DhcpServingParamsTest { .setLinkMtu(TEST_MTU) .setLinkMtu(TEST_MTU) .setExcludedAddrs(TEST_EXCLUDED_ADDRS) .setExcludedAddrs(TEST_EXCLUDED_ADDRS) .setMetered(TEST_METERED) .setMetered(TEST_METERED) .setClientAddr(TEST_CLIENT_ADDR); .setClientAddr(TEST_CLIENT_ADDR) .setChangePrefixOnDecline(TEST_CHANGE_PREFIX_ON_DECLINE); } } @Test @Test Loading @@ -101,6 +103,7 @@ public class DhcpServingParamsTest { assertEquals(TEST_LINKADDR, params.serverAddr); assertEquals(TEST_LINKADDR, params.serverAddr); assertEquals(TEST_MTU, params.linkMtu); assertEquals(TEST_MTU, params.linkMtu); assertEquals(TEST_METERED, params.metered); assertEquals(TEST_METERED, params.metered); assertEquals(TEST_CHANGE_PREFIX_ON_DECLINE, params.changePrefixOnDecline); assertContains(params.excludedAddrs, TEST_EXCLUDED_ADDRS); assertContains(params.excludedAddrs, TEST_EXCLUDED_ADDRS); assertContains(params.excludedAddrs, TEST_DEFAULT_ROUTERS); assertContains(params.excludedAddrs, TEST_DEFAULT_ROUTERS); Loading Loading @@ -182,6 +185,7 @@ public class DhcpServingParamsTest { parcel.excludedAddrs = toIntArray(TEST_EXCLUDED_ADDRS); parcel.excludedAddrs = toIntArray(TEST_EXCLUDED_ADDRS); parcel.metered = TEST_METERED; parcel.metered = TEST_METERED; parcel.clientAddr = inet4AddressToIntHTH(TEST_CLIENT_ADDR); parcel.clientAddr = inet4AddressToIntHTH(TEST_CLIENT_ADDR); parcel.changePrefixOnDecline = TEST_CHANGE_PREFIX_ON_DECLINE; final DhcpServingParams parceled = DhcpServingParams.fromParcelableObject(parcel); final DhcpServingParams parceled = DhcpServingParams.fromParcelableObject(parcel); assertEquals(params.defaultRouters, parceled.defaultRouters); assertEquals(params.defaultRouters, parceled.defaultRouters); Loading @@ -192,8 +196,9 @@ public class DhcpServingParamsTest { assertEquals(params.excludedAddrs, parceled.excludedAddrs); assertEquals(params.excludedAddrs, parceled.excludedAddrs); assertEquals(params.metered, parceled.metered); assertEquals(params.metered, parceled.metered); assertEquals(params.clientAddr, parceled.clientAddr); assertEquals(params.clientAddr, parceled.clientAddr); assertEquals(params.changePrefixOnDecline, parceled.changePrefixOnDecline); MiscAssertsKt.assertFieldCountEquals(9, DhcpServingParamsParcel.class); MiscAssertsKt.assertFieldCountEquals(10, DhcpServingParamsParcel.class); } } @Test(expected = InvalidParameterException.class) @Test(expected = InvalidParameterException.class) Loading