Merge changes If28f0be6,If0f80067 am: 96529ad7fc am: 21dd220d3e
Change-Id: I3d554c7ac0cf77aa2a80655d77c0e5bfb737dbdc
This commit is contained in:
@@ -63,6 +63,7 @@ public final class LinkProperties implements Parcelable {
|
|||||||
private String mPrivateDnsServerName;
|
private String mPrivateDnsServerName;
|
||||||
private String mDomains;
|
private String mDomains;
|
||||||
private ArrayList<RouteInfo> mRoutes = new ArrayList<>();
|
private ArrayList<RouteInfo> mRoutes = new ArrayList<>();
|
||||||
|
private Inet4Address mDhcpServerAddress;
|
||||||
private ProxyInfo mHttpProxy;
|
private ProxyInfo mHttpProxy;
|
||||||
private int mMtu;
|
private int mMtu;
|
||||||
// in the format "rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max"
|
// in the format "rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max"
|
||||||
@@ -196,6 +197,7 @@ public final class LinkProperties implements Parcelable {
|
|||||||
addStackedLink(l);
|
addStackedLink(l);
|
||||||
}
|
}
|
||||||
setMtu(source.mMtu);
|
setMtu(source.mMtu);
|
||||||
|
setDhcpServerAddress(source.getDhcpServerAddress());
|
||||||
mTcpBufferSizes = source.mTcpBufferSizes;
|
mTcpBufferSizes = source.mTcpBufferSizes;
|
||||||
mNat64Prefix = source.mNat64Prefix;
|
mNat64Prefix = source.mNat64Prefix;
|
||||||
mWakeOnLanSupported = source.mWakeOnLanSupported;
|
mWakeOnLanSupported = source.mWakeOnLanSupported;
|
||||||
@@ -459,6 +461,24 @@ public final class LinkProperties implements Parcelable {
|
|||||||
mPrivateDnsServerName = privateDnsServerName;
|
mPrivateDnsServerName = privateDnsServerName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set DHCP server address.
|
||||||
|
*
|
||||||
|
* @param serverAddress the server address to set.
|
||||||
|
*/
|
||||||
|
public void setDhcpServerAddress(@Nullable Inet4Address serverAddress) {
|
||||||
|
mDhcpServerAddress = serverAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get DHCP server address
|
||||||
|
*
|
||||||
|
* @return The current DHCP server address.
|
||||||
|
*/
|
||||||
|
public @Nullable Inet4Address getDhcpServerAddress() {
|
||||||
|
return mDhcpServerAddress;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the private DNS server name that is in use. If not {@code null},
|
* Returns the private DNS server name that is in use. If not {@code null},
|
||||||
* private DNS is in strict mode. In this mode, applications should ensure
|
* private DNS is in strict mode. In this mode, applications should ensure
|
||||||
@@ -851,6 +871,7 @@ public final class LinkProperties implements Parcelable {
|
|||||||
mHttpProxy = null;
|
mHttpProxy = null;
|
||||||
mStackedLinks.clear();
|
mStackedLinks.clear();
|
||||||
mMtu = 0;
|
mMtu = 0;
|
||||||
|
mDhcpServerAddress = null;
|
||||||
mTcpBufferSizes = null;
|
mTcpBufferSizes = null;
|
||||||
mNat64Prefix = null;
|
mNat64Prefix = null;
|
||||||
mWakeOnLanSupported = false;
|
mWakeOnLanSupported = false;
|
||||||
@@ -919,6 +940,11 @@ public final class LinkProperties implements Parcelable {
|
|||||||
resultJoiner.add("WakeOnLanSupported: true");
|
resultJoiner.add("WakeOnLanSupported: true");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mDhcpServerAddress != null) {
|
||||||
|
resultJoiner.add("ServerAddress:");
|
||||||
|
resultJoiner.add(mDhcpServerAddress.toString());
|
||||||
|
}
|
||||||
|
|
||||||
if (mTcpBufferSizes != null) {
|
if (mTcpBufferSizes != null) {
|
||||||
resultJoiner.add("TcpBufferSizes:");
|
resultJoiner.add("TcpBufferSizes:");
|
||||||
resultJoiner.add(mTcpBufferSizes);
|
resultJoiner.add(mTcpBufferSizes);
|
||||||
@@ -1272,6 +1298,17 @@ public final class LinkProperties implements Parcelable {
|
|||||||
return TextUtils.equals(getInterfaceName(), target.getInterfaceName());
|
return TextUtils.equals(getInterfaceName(), target.getInterfaceName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares this {@code LinkProperties} DHCP server address against the target
|
||||||
|
*
|
||||||
|
* @param target LinkProperties to compare.
|
||||||
|
* @return {@code true} if both are identical, {@code false} otherwise.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public boolean isIdenticalDhcpServerAddress(@NonNull LinkProperties target) {
|
||||||
|
return Objects.equals(mDhcpServerAddress, target.mDhcpServerAddress);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Compares this {@code LinkProperties} interface addresses against the target
|
* Compares this {@code LinkProperties} interface addresses against the target
|
||||||
*
|
*
|
||||||
@@ -1489,6 +1526,7 @@ public final class LinkProperties implements Parcelable {
|
|||||||
*/
|
*/
|
||||||
return isIdenticalInterfaceName(target)
|
return isIdenticalInterfaceName(target)
|
||||||
&& isIdenticalAddresses(target)
|
&& isIdenticalAddresses(target)
|
||||||
|
&& isIdenticalDhcpServerAddress(target)
|
||||||
&& isIdenticalDnses(target)
|
&& isIdenticalDnses(target)
|
||||||
&& isIdenticalPrivateDns(target)
|
&& isIdenticalPrivateDns(target)
|
||||||
&& isIdenticalValidatedPrivateDnses(target)
|
&& isIdenticalValidatedPrivateDnses(target)
|
||||||
@@ -1613,6 +1651,7 @@ public final class LinkProperties implements Parcelable {
|
|||||||
+ mMtu * 51
|
+ mMtu * 51
|
||||||
+ ((null == mTcpBufferSizes) ? 0 : mTcpBufferSizes.hashCode())
|
+ ((null == mTcpBufferSizes) ? 0 : mTcpBufferSizes.hashCode())
|
||||||
+ (mUsePrivateDns ? 57 : 0)
|
+ (mUsePrivateDns ? 57 : 0)
|
||||||
|
+ ((null == mDhcpServerAddress) ? 0 : mDhcpServerAddress.hashCode())
|
||||||
+ mPcscfs.size() * 67
|
+ mPcscfs.size() * 67
|
||||||
+ ((null == mPrivateDnsServerName) ? 0 : mPrivateDnsServerName.hashCode())
|
+ ((null == mPrivateDnsServerName) ? 0 : mPrivateDnsServerName.hashCode())
|
||||||
+ Objects.hash(mNat64Prefix)
|
+ Objects.hash(mNat64Prefix)
|
||||||
@@ -1635,6 +1674,7 @@ public final class LinkProperties implements Parcelable {
|
|||||||
dest.writeString(mPrivateDnsServerName);
|
dest.writeString(mPrivateDnsServerName);
|
||||||
writeAddresses(dest, mPcscfs);
|
writeAddresses(dest, mPcscfs);
|
||||||
dest.writeString(mDomains);
|
dest.writeString(mDomains);
|
||||||
|
writeAddress(dest, mDhcpServerAddress);
|
||||||
dest.writeInt(mMtu);
|
dest.writeInt(mMtu);
|
||||||
dest.writeString(mTcpBufferSizes);
|
dest.writeString(mTcpBufferSizes);
|
||||||
dest.writeInt(mRoutes.size());
|
dest.writeInt(mRoutes.size());
|
||||||
@@ -1663,8 +1703,9 @@ public final class LinkProperties implements Parcelable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void writeAddress(@NonNull Parcel dest, @NonNull InetAddress addr) {
|
private static void writeAddress(@NonNull Parcel dest, @Nullable InetAddress addr) {
|
||||||
dest.writeByteArray(addr.getAddress());
|
byte[] addressBytes = (addr == null ? null : addr.getAddress());
|
||||||
|
dest.writeByteArray(addressBytes);
|
||||||
if (addr instanceof Inet6Address) {
|
if (addr instanceof Inet6Address) {
|
||||||
final Inet6Address v6Addr = (Inet6Address) addr;
|
final Inet6Address v6Addr = (Inet6Address) addr;
|
||||||
final boolean hasScopeId = v6Addr.getScopeId() != 0;
|
final boolean hasScopeId = v6Addr.getScopeId() != 0;
|
||||||
@@ -1673,9 +1714,11 @@ public final class LinkProperties implements Parcelable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@NonNull
|
@Nullable
|
||||||
private static InetAddress readAddress(@NonNull Parcel p) throws UnknownHostException {
|
private static InetAddress readAddress(@NonNull Parcel p) throws UnknownHostException {
|
||||||
final byte[] addr = p.createByteArray();
|
final byte[] addr = p.createByteArray();
|
||||||
|
if (addr == null) return null;
|
||||||
|
|
||||||
if (addr.length == INET6_ADDR_LENGTH) {
|
if (addr.length == INET6_ADDR_LENGTH) {
|
||||||
final boolean hasScopeId = p.readBoolean();
|
final boolean hasScopeId = p.readBoolean();
|
||||||
final int scopeId = hasScopeId ? p.readInt() : 0;
|
final int scopeId = hasScopeId ? p.readInt() : 0;
|
||||||
@@ -1722,6 +1765,10 @@ public final class LinkProperties implements Parcelable {
|
|||||||
} catch (UnknownHostException e) { }
|
} catch (UnknownHostException e) { }
|
||||||
}
|
}
|
||||||
netProp.setDomains(in.readString());
|
netProp.setDomains(in.readString());
|
||||||
|
try {
|
||||||
|
netProp.setDhcpServerAddress((Inet4Address) InetAddress
|
||||||
|
.getByAddress(in.createByteArray()));
|
||||||
|
} catch (UnknownHostException e) { }
|
||||||
netProp.setMtu(in.readInt());
|
netProp.setMtu(in.readInt());
|
||||||
netProp.setTcpBufferSizes(in.readString());
|
netProp.setTcpBufferSizes(in.readString());
|
||||||
addressCount = in.readInt();
|
addressCount = in.readInt();
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ import androidx.test.runner.AndroidJUnit4;
|
|||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
|
import java.net.Inet4Address;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -65,6 +66,7 @@ public class LinkPropertiesTest {
|
|||||||
private static final InetAddress GATEWAY62 = address("fe80::6:22%lo");
|
private static final InetAddress GATEWAY62 = address("fe80::6:22%lo");
|
||||||
private static final InetAddress TESTIPV4ADDR = address("192.168.47.42");
|
private static final InetAddress TESTIPV4ADDR = address("192.168.47.42");
|
||||||
private static final InetAddress TESTIPV6ADDR = address("fe80::7:33%43");
|
private static final InetAddress TESTIPV6ADDR = address("fe80::7:33%43");
|
||||||
|
private static final Inet4Address DHCPSERVER = (Inet4Address) address("192.0.2.1");
|
||||||
private static final String NAME = "qmi0";
|
private static final String NAME = "qmi0";
|
||||||
private static final String DOMAINS = "google.com";
|
private static final String DOMAINS = "google.com";
|
||||||
private static final String PRIV_DNS_SERVER_NAME = "private.dns.com";
|
private static final String PRIV_DNS_SERVER_NAME = "private.dns.com";
|
||||||
@@ -93,6 +95,7 @@ public class LinkPropertiesTest {
|
|||||||
assertNull(lp.getHttpProxy());
|
assertNull(lp.getHttpProxy());
|
||||||
assertNull(lp.getTcpBufferSizes());
|
assertNull(lp.getTcpBufferSizes());
|
||||||
assertNull(lp.getNat64Prefix());
|
assertNull(lp.getNat64Prefix());
|
||||||
|
assertNull(lp.getDhcpServerAddress());
|
||||||
assertFalse(lp.isProvisioned());
|
assertFalse(lp.isProvisioned());
|
||||||
assertFalse(lp.isIpv4Provisioned());
|
assertFalse(lp.isIpv4Provisioned());
|
||||||
assertFalse(lp.isIpv6Provisioned());
|
assertFalse(lp.isIpv6Provisioned());
|
||||||
@@ -119,6 +122,7 @@ public class LinkPropertiesTest {
|
|||||||
lp.setMtu(MTU);
|
lp.setMtu(MTU);
|
||||||
lp.setTcpBufferSizes(TCP_BUFFER_SIZES);
|
lp.setTcpBufferSizes(TCP_BUFFER_SIZES);
|
||||||
lp.setNat64Prefix(new IpPrefix("2001:db8:0:64::/96"));
|
lp.setNat64Prefix(new IpPrefix("2001:db8:0:64::/96"));
|
||||||
|
lp.setDhcpServerAddress(DHCPSERVER);
|
||||||
lp.setWakeOnLanSupported(true);
|
lp.setWakeOnLanSupported(true);
|
||||||
return lp;
|
return lp;
|
||||||
}
|
}
|
||||||
@@ -960,11 +964,13 @@ public class LinkPropertiesTest {
|
|||||||
|
|
||||||
source.setWakeOnLanSupported(true);
|
source.setWakeOnLanSupported(true);
|
||||||
|
|
||||||
|
source.setDhcpServerAddress((Inet4Address) GATEWAY1);
|
||||||
|
|
||||||
final LinkProperties stacked = new LinkProperties();
|
final LinkProperties stacked = new LinkProperties();
|
||||||
stacked.setInterfaceName("test-stacked");
|
stacked.setInterfaceName("test-stacked");
|
||||||
source.addStackedLink(stacked);
|
source.addStackedLink(stacked);
|
||||||
|
|
||||||
assertParcelSane(source, 15 /* fieldCount */);
|
assertParcelSane(source, 16 /* fieldCount */);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -1090,6 +1096,15 @@ public class LinkPropertiesTest {
|
|||||||
assertFalse(lp.isPrivateDnsActive());
|
assertFalse(lp.isPrivateDnsActive());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDhcpServerAddress() {
|
||||||
|
final LinkProperties lp = makeTestObject();
|
||||||
|
assertEquals(DHCPSERVER, lp.getDhcpServerAddress());
|
||||||
|
|
||||||
|
lp.clear();
|
||||||
|
assertNull(lp.getDhcpServerAddress());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testWakeOnLanSupported() {
|
public void testWakeOnLanSupported() {
|
||||||
final LinkProperties lp = makeTestObject();
|
final LinkProperties lp = makeTestObject();
|
||||||
|
|||||||
Reference in New Issue
Block a user