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

Commit 92871b78 authored by Paul Duffin's avatar Paul Duffin Committed by Gerrit Code Review
Browse files

Merge "Add InetAddresses class to API"

parents 3176e8be a2b34f88
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -27333,6 +27333,11 @@ package android.net {
    field public int serverAddress;
  }
  public class InetAddresses {
    method public static boolean isNumericAddress(java.lang.String);
    method public static java.net.InetAddress parseNumericAddress(java.lang.String);
  }
  public final class IpPrefix implements android.os.Parcelable {
    method public boolean contains(java.net.InetAddress);
    method public int describeContents();
+63 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2018 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.net;

import libcore.net.InetAddressUtils;

import java.net.InetAddress;

/**
 * Utility methods for {@link InetAddress} implementations.
 */
public class InetAddresses {

    private InetAddresses() {}

    /**
     * Checks to see if the {@code address} is a numeric address (such as {@code "192.0.2.1"} or
     * {@code "2001:db8::1:2"}).
     *
     * <p>A numeric address is either an IPv4 address containing exactly 4 decimal numbers or an
     * IPv6 numeric address. IPv4 addresses that consist of either hexadecimal or octal digits or
     * do not have exactly 4 numbers are not treated as numeric.
     *
     * <p>This method will never do a DNS lookup.
     *
     * @param address the address to parse.
     * @return true if the supplied address is numeric, false otherwise.
     */
    public static boolean isNumericAddress(String address) {
        return InetAddressUtils.isNumericAddress(address);
    }

    /**
     * Returns an InetAddress corresponding to the given numeric address (such
     * as {@code "192.168.0.1"} or {@code "2001:4860:800d::68"}).
     *
     * <p>See {@link #isNumericAddress(String)} (String)} for a definition as to what constitutes a
     * numeric address.
     *
     * <p>This method will never do a DNS lookup.
     *
     * @param address the address to parse, must be numeric.
     * @return an {@link InetAddress} instance corresponding to the address.
     * @throws IllegalArgumentException if {@code address} is not a numeric address.
     */
    public static InetAddress parseNumericAddress(String address) {
        return InetAddressUtils.parseNumericAddress(address);
    }
}
+4 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package android.net;

import android.annotation.UnsupportedAppUsage;
import android.os.Build;
import android.os.Parcel;
import android.util.Log;
import android.util.Pair;
@@ -294,8 +295,10 @@ public class NetworkUtils {
     * @param addrString
     * @return the InetAddress
     * @hide
     * @deprecated Use {@link InetAddresses#parseNumericAddress(String)}, if possible.
     */
    @UnsupportedAppUsage
    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
    @Deprecated
    public static InetAddress numericToInetAddress(String addrString)
            throws IllegalArgumentException {
        return InetAddress.parseNumericAddress(addrString);