diff options
| author | Luke Huang <huangluke@google.com> | 2018-08-15 19:22:54 +0800 |
|---|---|---|
| committer | Luke Huang <huangluke@google.com> | 2018-10-25 16:40:47 +0900 |
| commit | 14f7544c3e5a33ccaa1ef1f1cbdb3a50aa914e3e (patch) | |
| tree | d70ae550d3f27bf3ddb8b808bcfcf5dec5e5ca02 /core/java/android/net/InterfaceConfiguration.java | |
| parent | 6636b0227d60cffe838761df9defa90a874bc44c (diff) | |
interface-related commands porting
Test: runtest frameworks-net passes
Test: manual testing of interface related function works(tethering)
Change-Id: Ie1a1ac00c28ef914d62e7d75b0db8c2434c810d2
Diffstat (limited to 'core/java/android/net/InterfaceConfiguration.java')
| -rw-r--r-- | core/java/android/net/InterfaceConfiguration.java | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/core/java/android/net/InterfaceConfiguration.java b/core/java/android/net/InterfaceConfiguration.java index b27415566368..62cf7d7ceb25 100644 --- a/core/java/android/net/InterfaceConfiguration.java +++ b/core/java/android/net/InterfaceConfiguration.java @@ -19,9 +19,11 @@ package android.net; import android.annotation.UnsupportedAppUsage; import android.os.Parcel; import android.os.Parcelable; +import android.text.TextUtils; import com.google.android.collect.Sets; +import java.net.InetAddress; import java.util.HashSet; /** @@ -34,8 +36,10 @@ public class InterfaceConfiguration implements Parcelable { private LinkAddress mAddr; private HashSet<String> mFlags = Sets.newHashSet(); - private static final String FLAG_UP = "up"; - private static final String FLAG_DOWN = "down"; + private static final String FLAG_UP = INetd.IF_STATE_UP; + private static final String FLAG_DOWN = INetd.IF_STATE_DOWN; + + private static final String[] EMPTY_STRING_ARRAY = new String[0]; @Override public String toString() { @@ -112,6 +116,40 @@ public class InterfaceConfiguration implements Parcelable { } /** + * Construct InterfaceConfiguration from InterfaceConfigurationParcel. + */ + public static InterfaceConfiguration fromParcel(InterfaceConfigurationParcel p) { + InterfaceConfiguration cfg = new InterfaceConfiguration(); + cfg.setHardwareAddress(p.hwAddr); + + final InetAddress addr = NetworkUtils.numericToInetAddress(p.ipv4Addr); + cfg.setLinkAddress(new LinkAddress(addr, p.prefixLength)); + for (String flag : p.flags) { + cfg.setFlag(flag); + } + + return cfg; + } + + /** + * Convert InterfaceConfiguration to InterfaceConfigurationParcel with given ifname. + */ + public InterfaceConfigurationParcel toParcel(String iface) { + InterfaceConfigurationParcel cfgParcel = new InterfaceConfigurationParcel(); + cfgParcel.ifName = iface; + if (!TextUtils.isEmpty(mHwAddr)) { + cfgParcel.hwAddr = mHwAddr; + } else { + cfgParcel.hwAddr = ""; + } + cfgParcel.ipv4Addr = mAddr.getAddress().getHostAddress(); + cfgParcel.prefixLength = mAddr.getPrefixLength(); + cfgParcel.flags = mFlags.toArray(EMPTY_STRING_ARRAY); + + return cfgParcel; + } + + /** * This function determines if the interface is up and has a valid IP * configuration (IP address has a non zero octet). * |
