Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9188b492 authored by Remi NGUYEN VAN's avatar Remi NGUYEN VAN Committed by Gerrit Code Review
Browse files

Merge "Add NetworkStack networking deps to SystemApi"

parents 223d6815 a4bcc86d
Loading
Loading
Loading
Loading
+59 −0
Original line number Diff line number Diff line
@@ -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();
@@ -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 {
+59 −0
Original line number Diff line number Diff line
@@ -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();
@@ -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 {
+125 −33
Original line number Diff line number Diff line
@@ -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;

@@ -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;
@@ -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.
@@ -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;
@@ -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) {
@@ -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
@@ -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;
    }
}
+56 −10
Original line number Diff line number Diff line
@@ -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;
@@ -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>();
    }
@@ -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
@@ -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) {
@@ -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();
@@ -124,6 +165,7 @@ public class StaticIpConfiguration implements Parcelable {
        return lp;
    }

    @Override
    public String toString() {
        StringBuffer str = new StringBuffer();

@@ -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());
@@ -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) {
@@ -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);
@@ -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();
@@ -206,5 +251,6 @@ public class StaticIpConfiguration implements Parcelable {
            s.dnsServers.add(NetworkUtils.unparcelInetAddress(in));
        }
        s.domains = in.readString();
        return s;
    }
}
+5 −0
Original line number Diff line number Diff line
@@ -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