Loading api/system-current.txt +59 −0 Original line number Diff line number Diff line Loading @@ -3218,6 +3218,24 @@ package android.net { field public final android.net.RssiCurve rssiCurve; } public final class StaticIpConfiguration implements android.os.Parcelable { ctor public StaticIpConfiguration(); ctor public StaticIpConfiguration(android.net.StaticIpConfiguration); method public void addDnsServer(java.net.InetAddress); method public void clear(); method public int describeContents(); method public java.util.List<java.net.InetAddress> getDnsServers(); method public String getDomains(); method public java.net.InetAddress getGateway(); method public android.net.LinkAddress getIpAddress(); method public java.util.List<android.net.RouteInfo> getRoutes(String); method public void setDomains(String); method public void setGateway(java.net.InetAddress); method public void setIpAddress(android.net.LinkAddress); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.StaticIpConfiguration> CREATOR; } public class TrafficStats { method public static void setThreadStatsTagApp(); method public static void setThreadStatsTagBackup(); Loading @@ -3243,6 +3261,47 @@ package android.net { } package android.net.apf { public class ApfCapabilities { ctor public ApfCapabilities(int, int, int); method public boolean hasDataAccess(); field public final int apfPacketFormat; field public final int apfVersionSupported; field public final int maximumApfProgramSize; } } package android.net.captiveportal { public final class CaptivePortalProbeResult { ctor public CaptivePortalProbeResult(int); ctor public CaptivePortalProbeResult(int, String, String); ctor public CaptivePortalProbeResult(int, String, String, android.net.captiveportal.CaptivePortalProbeSpec); method public boolean isFailed(); method public boolean isPortal(); method public boolean isSuccessful(); field public static final android.net.captiveportal.CaptivePortalProbeResult FAILED; field public static final int FAILED_CODE = 599; // 0x257 field public static final int PORTAL_CODE = 302; // 0x12e field public static final android.net.captiveportal.CaptivePortalProbeResult SUCCESS; field public static final int SUCCESS_CODE = 204; // 0xcc field public final String detectUrl; field @Nullable public final android.net.captiveportal.CaptivePortalProbeSpec probeSpec; field public final String redirectUrl; } public abstract class CaptivePortalProbeSpec { method public String getEncodedSpec(); method public abstract android.net.captiveportal.CaptivePortalProbeResult getResult(int, @Nullable String); method public java.net.URL getUrl(); method public static java.util.Collection<android.net.captiveportal.CaptivePortalProbeSpec> parseCaptivePortalProbeSpecs(String); method @Nullable public static android.net.captiveportal.CaptivePortalProbeSpec parseSpecOrNull(@Nullable String); } } package android.net.metrics { public final class ApfProgramEvent implements android.net.metrics.IpConnectivityLog.Event { Loading api/test-current.txt +59 −0 Original line number Diff line number Diff line Loading @@ -669,6 +669,24 @@ package android.net { field public static final int RTN_UNREACHABLE = 7; // 0x7 } public final class StaticIpConfiguration implements android.os.Parcelable { ctor public StaticIpConfiguration(); ctor public StaticIpConfiguration(android.net.StaticIpConfiguration); method public void addDnsServer(java.net.InetAddress); method public void clear(); method public int describeContents(); method public java.util.List<java.net.InetAddress> getDnsServers(); method public String getDomains(); method public java.net.InetAddress getGateway(); method public android.net.LinkAddress getIpAddress(); method public java.util.List<android.net.RouteInfo> getRoutes(String); method public void setDomains(String); method public void setGateway(java.net.InetAddress); method public void setIpAddress(android.net.LinkAddress); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.StaticIpConfiguration> CREATOR; } public class TrafficStats { method public static long getLoopbackRxBytes(); method public static long getLoopbackRxPackets(); Loading @@ -678,6 +696,47 @@ package android.net { } package android.net.apf { public class ApfCapabilities { ctor public ApfCapabilities(int, int, int); method public boolean hasDataAccess(); field public final int apfPacketFormat; field public final int apfVersionSupported; field public final int maximumApfProgramSize; } } package android.net.captiveportal { public final class CaptivePortalProbeResult { ctor public CaptivePortalProbeResult(int); ctor public CaptivePortalProbeResult(int, String, String); ctor public CaptivePortalProbeResult(int, String, String, android.net.captiveportal.CaptivePortalProbeSpec); method public boolean isFailed(); method public boolean isPortal(); method public boolean isSuccessful(); field public static final android.net.captiveportal.CaptivePortalProbeResult FAILED; field public static final int FAILED_CODE = 599; // 0x257 field public static final int PORTAL_CODE = 302; // 0x12e field public static final android.net.captiveportal.CaptivePortalProbeResult SUCCESS; field public static final int SUCCESS_CODE = 204; // 0xcc field public final String detectUrl; field @Nullable public final android.net.captiveportal.CaptivePortalProbeSpec probeSpec; field public final String redirectUrl; } public abstract class CaptivePortalProbeSpec { method public String getEncodedSpec(); method public abstract android.net.captiveportal.CaptivePortalProbeResult getResult(int, @Nullable String); method public java.net.URL getUrl(); method public static java.util.Collection<android.net.captiveportal.CaptivePortalProbeSpec> parseCaptivePortalProbeSpecs(String); method @Nullable public static android.net.captiveportal.CaptivePortalProbeSpec parseSpecOrNull(@Nullable String); } } package android.net.metrics { public final class ApfProgramEvent implements android.net.metrics.IpConnectivityLog.Event { Loading core/java/android/net/DhcpResults.java +125 −33 Original line number Diff line number Diff line Loading @@ -17,23 +17,38 @@ package android.net; import android.annotation.UnsupportedAppUsage; import android.net.NetworkUtils; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; import android.util.Log; import java.net.Inet4Address; import java.net.InetAddress; import java.util.ArrayList; import java.util.List; import java.util.Objects; /** * A simple object for retrieving the results of a DHCP request. * Optimized (attempted) for that jni interface * TODO - remove when DhcpInfo is deprecated. Move the remaining api to LinkProperties. * TODO: remove this class and replace with other existing constructs * @hide */ public class DhcpResults extends StaticIpConfiguration { public final class DhcpResults implements Parcelable { private static final String TAG = "DhcpResults"; @UnsupportedAppUsage public LinkAddress ipAddress; @UnsupportedAppUsage public InetAddress gateway; @UnsupportedAppUsage public final ArrayList<InetAddress> dnsServers = new ArrayList<>(); @UnsupportedAppUsage public String domains; @UnsupportedAppUsage public Inet4Address serverAddress; Loading @@ -48,23 +63,36 @@ public class DhcpResults extends StaticIpConfiguration { @UnsupportedAppUsage public int mtu; @UnsupportedAppUsage public DhcpResults() { super(); } @UnsupportedAppUsage /** * Create a {@link StaticIpConfiguration} based on the DhcpResults. */ public StaticIpConfiguration toStaticIpConfiguration() { final StaticIpConfiguration s = new StaticIpConfiguration(); // All these except dnsServers are immutable, so no need to make copies. s.ipAddress = ipAddress; s.gateway = gateway; s.dnsServers.addAll(dnsServers); s.domains = domains; return s; } public DhcpResults(StaticIpConfiguration source) { super(source); if (source != null) { ipAddress = source.ipAddress; gateway = source.gateway; dnsServers.addAll(source.dnsServers); domains = source.domains; } } /** copy constructor */ @UnsupportedAppUsage public DhcpResults(DhcpResults source) { super(source); this(source == null ? null : source.toStaticIpConfiguration()); if (source != null) { // All these are immutable, so no need to make copies. serverAddress = source.serverAddress; vendorInfo = source.vendorInfo; leaseDuration = source.leaseDuration; Loading @@ -72,6 +100,14 @@ public class DhcpResults extends StaticIpConfiguration { } } /** * @see StaticIpConfiguration#getRoutes(String) * @hide */ public List<RouteInfo> getRoutes(String iface) { return toStaticIpConfiguration().getRoutes(iface); } /** * Test if this DHCP lease includes vendor hint that network link is * metered, and sensitive to heavy data transfers. Loading @@ -85,7 +121,11 @@ public class DhcpResults extends StaticIpConfiguration { } public void clear() { super.clear(); ipAddress = null; gateway = null; dnsServers.clear(); domains = null; serverAddress = null; vendorInfo = null; leaseDuration = 0; mtu = 0; Loading @@ -111,20 +151,20 @@ public class DhcpResults extends StaticIpConfiguration { DhcpResults target = (DhcpResults)obj; return super.equals((StaticIpConfiguration) obj) && Objects.equals(serverAddress, target.serverAddress) && Objects.equals(vendorInfo, target.vendorInfo) && leaseDuration == target.leaseDuration && mtu == target.mtu; return toStaticIpConfiguration().equals(target.toStaticIpConfiguration()) && Objects.equals(serverAddress, target.serverAddress) && Objects.equals(vendorInfo, target.vendorInfo) && leaseDuration == target.leaseDuration && mtu == target.mtu; } /** Implement the Parcelable interface */ /** * Implement the Parcelable interface */ public static final Creator<DhcpResults> CREATOR = new Creator<DhcpResults>() { public DhcpResults createFromParcel(Parcel in) { DhcpResults dhcpResults = new DhcpResults(); readFromParcel(dhcpResults, in); return dhcpResults; return readFromParcel(in); } public DhcpResults[] newArray(int size) { Loading @@ -134,19 +174,26 @@ public class DhcpResults extends StaticIpConfiguration { /** Implement the Parcelable interface */ public void writeToParcel(Parcel dest, int flags) { super.writeToParcel(dest, flags); toStaticIpConfiguration().writeToParcel(dest, flags); dest.writeInt(leaseDuration); dest.writeInt(mtu); NetworkUtils.parcelInetAddress(dest, serverAddress, flags); dest.writeString(vendorInfo); } private static void readFromParcel(DhcpResults dhcpResults, Parcel in) { StaticIpConfiguration.readFromParcel(dhcpResults, in); @Override public int describeContents() { return 0; } private static DhcpResults readFromParcel(Parcel in) { final StaticIpConfiguration s = StaticIpConfiguration.CREATOR.createFromParcel(in); final DhcpResults dhcpResults = new DhcpResults(s); dhcpResults.leaseDuration = in.readInt(); dhcpResults.mtu = in.readInt(); dhcpResults.serverAddress = (Inet4Address) NetworkUtils.unparcelInetAddress(in); dhcpResults.vendorInfo = in.readString(); return dhcpResults; } // Utils for jni population - false on success Loading Loading @@ -184,25 +231,70 @@ public class DhcpResults extends StaticIpConfiguration { return false; } public boolean setServerAddress(String addrString) { try { serverAddress = (Inet4Address) NetworkUtils.numericToInetAddress(addrString); } catch (IllegalArgumentException|ClassCastException e) { Log.e(TAG, "setServerAddress failed with addrString " + addrString); return true; public LinkAddress getIpAddress() { return ipAddress; } return false; public void setIpAddress(LinkAddress ipAddress) { this.ipAddress = ipAddress; } public InetAddress getGateway() { return gateway; } public void setGateway(InetAddress gateway) { this.gateway = gateway; } public List<InetAddress> getDnsServers() { return dnsServers; } /** * Add a DNS server to this configuration. */ public void addDnsServer(InetAddress server) { dnsServers.add(server); } public String getDomains() { return domains; } public void setDomains(String domains) { this.domains = domains; } public Inet4Address getServerAddress() { return serverAddress; } public void setServerAddress(Inet4Address addr) { serverAddress = addr; } public int getLeaseDuration() { return leaseDuration; } public void setLeaseDuration(int duration) { leaseDuration = duration; } public String getVendorInfo() { return vendorInfo; } public void setVendorInfo(String info) { vendorInfo = info; } public void setDomains(String newDomains) { domains = newDomains; public int getMtu() { return mtu; } public void setMtu(int mtu) { this.mtu = mtu; } } core/java/android/net/StaticIpConfiguration.java +56 −10 Original line number Diff line number Diff line Loading @@ -16,10 +16,11 @@ package android.net; import android.annotation.SystemApi; import android.annotation.TestApi; import android.annotation.UnsupportedAppUsage; import android.net.LinkAddress; import android.os.Parcelable; import android.os.Parcel; import android.os.Parcelable; import java.net.InetAddress; import java.util.ArrayList; Loading @@ -46,17 +47,22 @@ import java.util.Objects; * * @hide */ public class StaticIpConfiguration implements Parcelable { @SystemApi @TestApi public final class StaticIpConfiguration implements Parcelable { /** @hide */ @UnsupportedAppUsage public LinkAddress ipAddress; /** @hide */ @UnsupportedAppUsage public InetAddress gateway; /** @hide */ @UnsupportedAppUsage public final ArrayList<InetAddress> dnsServers; /** @hide */ @UnsupportedAppUsage public String domains; @UnsupportedAppUsage public StaticIpConfiguration() { dnsServers = new ArrayList<InetAddress>(); } Loading @@ -79,6 +85,41 @@ public class StaticIpConfiguration implements Parcelable { domains = null; } public LinkAddress getIpAddress() { return ipAddress; } public void setIpAddress(LinkAddress ipAddress) { this.ipAddress = ipAddress; } public InetAddress getGateway() { return gateway; } public void setGateway(InetAddress gateway) { this.gateway = gateway; } public List<InetAddress> getDnsServers() { return dnsServers; } public String getDomains() { return domains; } public void setDomains(String newDomains) { domains = newDomains; } /** * Add a DNS server to this configuration. */ public void addDnsServer(InetAddress server) { dnsServers.add(server); } /** * Returns the network routes specified by this object. Will typically include a * directly-connected route for the IP address's local subnet and a default route. If the Loading @@ -86,7 +127,6 @@ public class StaticIpConfiguration implements Parcelable { * route to the gateway as well. This configuration is arguably invalid, but it used to work * in K and earlier, and other OSes appear to accept it. */ @UnsupportedAppUsage public List<RouteInfo> getRoutes(String iface) { List<RouteInfo> routes = new ArrayList<RouteInfo>(3); if (ipAddress != null) { Loading @@ -107,6 +147,7 @@ public class StaticIpConfiguration implements Parcelable { * contained in the LinkProperties will not be a complete picture of the link's configuration, * because any configuration information that is obtained dynamically by the network (e.g., * IPv6 configuration) will not be included. * @hide */ public LinkProperties toLinkProperties(String iface) { LinkProperties lp = new LinkProperties(); Loading @@ -124,6 +165,7 @@ public class StaticIpConfiguration implements Parcelable { return lp; } @Override public String toString() { StringBuffer str = new StringBuffer(); Loading @@ -143,6 +185,7 @@ public class StaticIpConfiguration implements Parcelable { return str.toString(); } @Override public int hashCode() { int result = 13; result = 47 * result + (ipAddress == null ? 0 : ipAddress.hashCode()); Loading @@ -168,12 +211,10 @@ public class StaticIpConfiguration implements Parcelable { } /** Implement the Parcelable interface */ public static Creator<StaticIpConfiguration> CREATOR = public static final Creator<StaticIpConfiguration> CREATOR = new Creator<StaticIpConfiguration>() { public StaticIpConfiguration createFromParcel(Parcel in) { StaticIpConfiguration s = new StaticIpConfiguration(); readFromParcel(s, in); return s; return readFromParcel(in); } public StaticIpConfiguration[] newArray(int size) { Loading @@ -182,11 +223,13 @@ public class StaticIpConfiguration implements Parcelable { }; /** Implement the Parcelable interface */ @Override public int describeContents() { return 0; } /** Implement the Parcelable interface */ @Override public void writeToParcel(Parcel dest, int flags) { dest.writeParcelable(ipAddress, flags); NetworkUtils.parcelInetAddress(dest, gateway, flags); Loading @@ -197,7 +240,9 @@ public class StaticIpConfiguration implements Parcelable { dest.writeString(domains); } protected static void readFromParcel(StaticIpConfiguration s, Parcel in) { /** @hide */ public static StaticIpConfiguration readFromParcel(Parcel in) { final StaticIpConfiguration s = new StaticIpConfiguration(); s.ipAddress = in.readParcelable(null); s.gateway = NetworkUtils.unparcelInetAddress(in); s.dnsServers.clear(); Loading @@ -206,5 +251,6 @@ public class StaticIpConfiguration implements Parcelable { s.dnsServers.add(NetworkUtils.unparcelInetAddress(in)); } s.domains = in.readString(); return s; } } core/java/android/net/apf/ApfCapabilities.java +5 −0 Original line number Diff line number Diff line Loading @@ -16,11 +16,16 @@ package android.net.apf; import android.annotation.SystemApi; import android.annotation.TestApi; /** * APF program support capabilities. * * @hide */ @SystemApi @TestApi public class ApfCapabilities { /** * Version of APF instruction set supported for packet filtering. 0 indicates no support for Loading Loading
api/system-current.txt +59 −0 Original line number Diff line number Diff line Loading @@ -3218,6 +3218,24 @@ package android.net { field public final android.net.RssiCurve rssiCurve; } public final class StaticIpConfiguration implements android.os.Parcelable { ctor public StaticIpConfiguration(); ctor public StaticIpConfiguration(android.net.StaticIpConfiguration); method public void addDnsServer(java.net.InetAddress); method public void clear(); method public int describeContents(); method public java.util.List<java.net.InetAddress> getDnsServers(); method public String getDomains(); method public java.net.InetAddress getGateway(); method public android.net.LinkAddress getIpAddress(); method public java.util.List<android.net.RouteInfo> getRoutes(String); method public void setDomains(String); method public void setGateway(java.net.InetAddress); method public void setIpAddress(android.net.LinkAddress); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.StaticIpConfiguration> CREATOR; } public class TrafficStats { method public static void setThreadStatsTagApp(); method public static void setThreadStatsTagBackup(); Loading @@ -3243,6 +3261,47 @@ package android.net { } package android.net.apf { public class ApfCapabilities { ctor public ApfCapabilities(int, int, int); method public boolean hasDataAccess(); field public final int apfPacketFormat; field public final int apfVersionSupported; field public final int maximumApfProgramSize; } } package android.net.captiveportal { public final class CaptivePortalProbeResult { ctor public CaptivePortalProbeResult(int); ctor public CaptivePortalProbeResult(int, String, String); ctor public CaptivePortalProbeResult(int, String, String, android.net.captiveportal.CaptivePortalProbeSpec); method public boolean isFailed(); method public boolean isPortal(); method public boolean isSuccessful(); field public static final android.net.captiveportal.CaptivePortalProbeResult FAILED; field public static final int FAILED_CODE = 599; // 0x257 field public static final int PORTAL_CODE = 302; // 0x12e field public static final android.net.captiveportal.CaptivePortalProbeResult SUCCESS; field public static final int SUCCESS_CODE = 204; // 0xcc field public final String detectUrl; field @Nullable public final android.net.captiveportal.CaptivePortalProbeSpec probeSpec; field public final String redirectUrl; } public abstract class CaptivePortalProbeSpec { method public String getEncodedSpec(); method public abstract android.net.captiveportal.CaptivePortalProbeResult getResult(int, @Nullable String); method public java.net.URL getUrl(); method public static java.util.Collection<android.net.captiveportal.CaptivePortalProbeSpec> parseCaptivePortalProbeSpecs(String); method @Nullable public static android.net.captiveportal.CaptivePortalProbeSpec parseSpecOrNull(@Nullable String); } } package android.net.metrics { public final class ApfProgramEvent implements android.net.metrics.IpConnectivityLog.Event { Loading
api/test-current.txt +59 −0 Original line number Diff line number Diff line Loading @@ -669,6 +669,24 @@ package android.net { field public static final int RTN_UNREACHABLE = 7; // 0x7 } public final class StaticIpConfiguration implements android.os.Parcelable { ctor public StaticIpConfiguration(); ctor public StaticIpConfiguration(android.net.StaticIpConfiguration); method public void addDnsServer(java.net.InetAddress); method public void clear(); method public int describeContents(); method public java.util.List<java.net.InetAddress> getDnsServers(); method public String getDomains(); method public java.net.InetAddress getGateway(); method public android.net.LinkAddress getIpAddress(); method public java.util.List<android.net.RouteInfo> getRoutes(String); method public void setDomains(String); method public void setGateway(java.net.InetAddress); method public void setIpAddress(android.net.LinkAddress); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.StaticIpConfiguration> CREATOR; } public class TrafficStats { method public static long getLoopbackRxBytes(); method public static long getLoopbackRxPackets(); Loading @@ -678,6 +696,47 @@ package android.net { } package android.net.apf { public class ApfCapabilities { ctor public ApfCapabilities(int, int, int); method public boolean hasDataAccess(); field public final int apfPacketFormat; field public final int apfVersionSupported; field public final int maximumApfProgramSize; } } package android.net.captiveportal { public final class CaptivePortalProbeResult { ctor public CaptivePortalProbeResult(int); ctor public CaptivePortalProbeResult(int, String, String); ctor public CaptivePortalProbeResult(int, String, String, android.net.captiveportal.CaptivePortalProbeSpec); method public boolean isFailed(); method public boolean isPortal(); method public boolean isSuccessful(); field public static final android.net.captiveportal.CaptivePortalProbeResult FAILED; field public static final int FAILED_CODE = 599; // 0x257 field public static final int PORTAL_CODE = 302; // 0x12e field public static final android.net.captiveportal.CaptivePortalProbeResult SUCCESS; field public static final int SUCCESS_CODE = 204; // 0xcc field public final String detectUrl; field @Nullable public final android.net.captiveportal.CaptivePortalProbeSpec probeSpec; field public final String redirectUrl; } public abstract class CaptivePortalProbeSpec { method public String getEncodedSpec(); method public abstract android.net.captiveportal.CaptivePortalProbeResult getResult(int, @Nullable String); method public java.net.URL getUrl(); method public static java.util.Collection<android.net.captiveportal.CaptivePortalProbeSpec> parseCaptivePortalProbeSpecs(String); method @Nullable public static android.net.captiveportal.CaptivePortalProbeSpec parseSpecOrNull(@Nullable String); } } package android.net.metrics { public final class ApfProgramEvent implements android.net.metrics.IpConnectivityLog.Event { Loading
core/java/android/net/DhcpResults.java +125 −33 Original line number Diff line number Diff line Loading @@ -17,23 +17,38 @@ package android.net; import android.annotation.UnsupportedAppUsage; import android.net.NetworkUtils; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; import android.util.Log; import java.net.Inet4Address; import java.net.InetAddress; import java.util.ArrayList; import java.util.List; import java.util.Objects; /** * A simple object for retrieving the results of a DHCP request. * Optimized (attempted) for that jni interface * TODO - remove when DhcpInfo is deprecated. Move the remaining api to LinkProperties. * TODO: remove this class and replace with other existing constructs * @hide */ public class DhcpResults extends StaticIpConfiguration { public final class DhcpResults implements Parcelable { private static final String TAG = "DhcpResults"; @UnsupportedAppUsage public LinkAddress ipAddress; @UnsupportedAppUsage public InetAddress gateway; @UnsupportedAppUsage public final ArrayList<InetAddress> dnsServers = new ArrayList<>(); @UnsupportedAppUsage public String domains; @UnsupportedAppUsage public Inet4Address serverAddress; Loading @@ -48,23 +63,36 @@ public class DhcpResults extends StaticIpConfiguration { @UnsupportedAppUsage public int mtu; @UnsupportedAppUsage public DhcpResults() { super(); } @UnsupportedAppUsage /** * Create a {@link StaticIpConfiguration} based on the DhcpResults. */ public StaticIpConfiguration toStaticIpConfiguration() { final StaticIpConfiguration s = new StaticIpConfiguration(); // All these except dnsServers are immutable, so no need to make copies. s.ipAddress = ipAddress; s.gateway = gateway; s.dnsServers.addAll(dnsServers); s.domains = domains; return s; } public DhcpResults(StaticIpConfiguration source) { super(source); if (source != null) { ipAddress = source.ipAddress; gateway = source.gateway; dnsServers.addAll(source.dnsServers); domains = source.domains; } } /** copy constructor */ @UnsupportedAppUsage public DhcpResults(DhcpResults source) { super(source); this(source == null ? null : source.toStaticIpConfiguration()); if (source != null) { // All these are immutable, so no need to make copies. serverAddress = source.serverAddress; vendorInfo = source.vendorInfo; leaseDuration = source.leaseDuration; Loading @@ -72,6 +100,14 @@ public class DhcpResults extends StaticIpConfiguration { } } /** * @see StaticIpConfiguration#getRoutes(String) * @hide */ public List<RouteInfo> getRoutes(String iface) { return toStaticIpConfiguration().getRoutes(iface); } /** * Test if this DHCP lease includes vendor hint that network link is * metered, and sensitive to heavy data transfers. Loading @@ -85,7 +121,11 @@ public class DhcpResults extends StaticIpConfiguration { } public void clear() { super.clear(); ipAddress = null; gateway = null; dnsServers.clear(); domains = null; serverAddress = null; vendorInfo = null; leaseDuration = 0; mtu = 0; Loading @@ -111,20 +151,20 @@ public class DhcpResults extends StaticIpConfiguration { DhcpResults target = (DhcpResults)obj; return super.equals((StaticIpConfiguration) obj) && Objects.equals(serverAddress, target.serverAddress) && Objects.equals(vendorInfo, target.vendorInfo) && leaseDuration == target.leaseDuration && mtu == target.mtu; return toStaticIpConfiguration().equals(target.toStaticIpConfiguration()) && Objects.equals(serverAddress, target.serverAddress) && Objects.equals(vendorInfo, target.vendorInfo) && leaseDuration == target.leaseDuration && mtu == target.mtu; } /** Implement the Parcelable interface */ /** * Implement the Parcelable interface */ public static final Creator<DhcpResults> CREATOR = new Creator<DhcpResults>() { public DhcpResults createFromParcel(Parcel in) { DhcpResults dhcpResults = new DhcpResults(); readFromParcel(dhcpResults, in); return dhcpResults; return readFromParcel(in); } public DhcpResults[] newArray(int size) { Loading @@ -134,19 +174,26 @@ public class DhcpResults extends StaticIpConfiguration { /** Implement the Parcelable interface */ public void writeToParcel(Parcel dest, int flags) { super.writeToParcel(dest, flags); toStaticIpConfiguration().writeToParcel(dest, flags); dest.writeInt(leaseDuration); dest.writeInt(mtu); NetworkUtils.parcelInetAddress(dest, serverAddress, flags); dest.writeString(vendorInfo); } private static void readFromParcel(DhcpResults dhcpResults, Parcel in) { StaticIpConfiguration.readFromParcel(dhcpResults, in); @Override public int describeContents() { return 0; } private static DhcpResults readFromParcel(Parcel in) { final StaticIpConfiguration s = StaticIpConfiguration.CREATOR.createFromParcel(in); final DhcpResults dhcpResults = new DhcpResults(s); dhcpResults.leaseDuration = in.readInt(); dhcpResults.mtu = in.readInt(); dhcpResults.serverAddress = (Inet4Address) NetworkUtils.unparcelInetAddress(in); dhcpResults.vendorInfo = in.readString(); return dhcpResults; } // Utils for jni population - false on success Loading Loading @@ -184,25 +231,70 @@ public class DhcpResults extends StaticIpConfiguration { return false; } public boolean setServerAddress(String addrString) { try { serverAddress = (Inet4Address) NetworkUtils.numericToInetAddress(addrString); } catch (IllegalArgumentException|ClassCastException e) { Log.e(TAG, "setServerAddress failed with addrString " + addrString); return true; public LinkAddress getIpAddress() { return ipAddress; } return false; public void setIpAddress(LinkAddress ipAddress) { this.ipAddress = ipAddress; } public InetAddress getGateway() { return gateway; } public void setGateway(InetAddress gateway) { this.gateway = gateway; } public List<InetAddress> getDnsServers() { return dnsServers; } /** * Add a DNS server to this configuration. */ public void addDnsServer(InetAddress server) { dnsServers.add(server); } public String getDomains() { return domains; } public void setDomains(String domains) { this.domains = domains; } public Inet4Address getServerAddress() { return serverAddress; } public void setServerAddress(Inet4Address addr) { serverAddress = addr; } public int getLeaseDuration() { return leaseDuration; } public void setLeaseDuration(int duration) { leaseDuration = duration; } public String getVendorInfo() { return vendorInfo; } public void setVendorInfo(String info) { vendorInfo = info; } public void setDomains(String newDomains) { domains = newDomains; public int getMtu() { return mtu; } public void setMtu(int mtu) { this.mtu = mtu; } }
core/java/android/net/StaticIpConfiguration.java +56 −10 Original line number Diff line number Diff line Loading @@ -16,10 +16,11 @@ package android.net; import android.annotation.SystemApi; import android.annotation.TestApi; import android.annotation.UnsupportedAppUsage; import android.net.LinkAddress; import android.os.Parcelable; import android.os.Parcel; import android.os.Parcelable; import java.net.InetAddress; import java.util.ArrayList; Loading @@ -46,17 +47,22 @@ import java.util.Objects; * * @hide */ public class StaticIpConfiguration implements Parcelable { @SystemApi @TestApi public final class StaticIpConfiguration implements Parcelable { /** @hide */ @UnsupportedAppUsage public LinkAddress ipAddress; /** @hide */ @UnsupportedAppUsage public InetAddress gateway; /** @hide */ @UnsupportedAppUsage public final ArrayList<InetAddress> dnsServers; /** @hide */ @UnsupportedAppUsage public String domains; @UnsupportedAppUsage public StaticIpConfiguration() { dnsServers = new ArrayList<InetAddress>(); } Loading @@ -79,6 +85,41 @@ public class StaticIpConfiguration implements Parcelable { domains = null; } public LinkAddress getIpAddress() { return ipAddress; } public void setIpAddress(LinkAddress ipAddress) { this.ipAddress = ipAddress; } public InetAddress getGateway() { return gateway; } public void setGateway(InetAddress gateway) { this.gateway = gateway; } public List<InetAddress> getDnsServers() { return dnsServers; } public String getDomains() { return domains; } public void setDomains(String newDomains) { domains = newDomains; } /** * Add a DNS server to this configuration. */ public void addDnsServer(InetAddress server) { dnsServers.add(server); } /** * Returns the network routes specified by this object. Will typically include a * directly-connected route for the IP address's local subnet and a default route. If the Loading @@ -86,7 +127,6 @@ public class StaticIpConfiguration implements Parcelable { * route to the gateway as well. This configuration is arguably invalid, but it used to work * in K and earlier, and other OSes appear to accept it. */ @UnsupportedAppUsage public List<RouteInfo> getRoutes(String iface) { List<RouteInfo> routes = new ArrayList<RouteInfo>(3); if (ipAddress != null) { Loading @@ -107,6 +147,7 @@ public class StaticIpConfiguration implements Parcelable { * contained in the LinkProperties will not be a complete picture of the link's configuration, * because any configuration information that is obtained dynamically by the network (e.g., * IPv6 configuration) will not be included. * @hide */ public LinkProperties toLinkProperties(String iface) { LinkProperties lp = new LinkProperties(); Loading @@ -124,6 +165,7 @@ public class StaticIpConfiguration implements Parcelable { return lp; } @Override public String toString() { StringBuffer str = new StringBuffer(); Loading @@ -143,6 +185,7 @@ public class StaticIpConfiguration implements Parcelable { return str.toString(); } @Override public int hashCode() { int result = 13; result = 47 * result + (ipAddress == null ? 0 : ipAddress.hashCode()); Loading @@ -168,12 +211,10 @@ public class StaticIpConfiguration implements Parcelable { } /** Implement the Parcelable interface */ public static Creator<StaticIpConfiguration> CREATOR = public static final Creator<StaticIpConfiguration> CREATOR = new Creator<StaticIpConfiguration>() { public StaticIpConfiguration createFromParcel(Parcel in) { StaticIpConfiguration s = new StaticIpConfiguration(); readFromParcel(s, in); return s; return readFromParcel(in); } public StaticIpConfiguration[] newArray(int size) { Loading @@ -182,11 +223,13 @@ public class StaticIpConfiguration implements Parcelable { }; /** Implement the Parcelable interface */ @Override public int describeContents() { return 0; } /** Implement the Parcelable interface */ @Override public void writeToParcel(Parcel dest, int flags) { dest.writeParcelable(ipAddress, flags); NetworkUtils.parcelInetAddress(dest, gateway, flags); Loading @@ -197,7 +240,9 @@ public class StaticIpConfiguration implements Parcelable { dest.writeString(domains); } protected static void readFromParcel(StaticIpConfiguration s, Parcel in) { /** @hide */ public static StaticIpConfiguration readFromParcel(Parcel in) { final StaticIpConfiguration s = new StaticIpConfiguration(); s.ipAddress = in.readParcelable(null); s.gateway = NetworkUtils.unparcelInetAddress(in); s.dnsServers.clear(); Loading @@ -206,5 +251,6 @@ public class StaticIpConfiguration implements Parcelable { s.dnsServers.add(NetworkUtils.unparcelInetAddress(in)); } s.domains = in.readString(); return s; } }
core/java/android/net/apf/ApfCapabilities.java +5 −0 Original line number Diff line number Diff line Loading @@ -16,11 +16,16 @@ package android.net.apf; import android.annotation.SystemApi; import android.annotation.TestApi; /** * APF program support capabilities. * * @hide */ @SystemApi @TestApi public class ApfCapabilities { /** * Version of APF instruction set supported for packet filtering. 0 indicates no support for Loading