diff options
author | Banavathu, Srinivas Naik <snb@codeaurora.org> | 2010-08-10 20:13:53 +0530 |
---|---|---|
committer | Banavathu Srinivas Naik <snb@codeaurora.org> | 2010-08-19 12:50:35 -0700 |
commit | 9bc709d46e1165ca0c9a02bd970767c401b990e5 (patch) | |
tree | 37e71098bad349ce6cedf0f3984878a30d763174 /core/java/android/net/NetworkStateTracker.java | |
parent | 0b7bd95d69763573b87f95d4e9cab7d7358e9b93 (diff) | |
download | frameworks_base-9bc709d46e1165ca0c9a02bd970767c401b990e5.zip frameworks_base-9bc709d46e1165ca0c9a02bd970767c401b990e5.tar.gz frameworks_base-9bc709d46e1165ca0c9a02bd970767c401b990e5.tar.bz2 |
Add an API to request route to an IPv6 host.
Add API to create a route to an IPv6 host through a particular
interface.
Change-Id: I7649051e94832576e02b5f5ad17abe093d21d48e
Diffstat (limited to 'core/java/android/net/NetworkStateTracker.java')
-rw-r--r-- | core/java/android/net/NetworkStateTracker.java | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/core/java/android/net/NetworkStateTracker.java b/core/java/android/net/NetworkStateTracker.java index 1fb0144..5eb36ca 100644 --- a/core/java/android/net/NetworkStateTracker.java +++ b/core/java/android/net/NetworkStateTracker.java @@ -18,13 +18,14 @@ package android.net; import java.io.FileWriter; import java.io.IOException; +import java.net.InetAddress; +import java.net.UnknownHostException; import android.os.Handler; import android.os.Message; import android.os.SystemProperties; import android.content.Context; import android.text.TextUtils; -import android.util.Config; import android.util.Log; @@ -129,13 +130,18 @@ public abstract class NetworkStateTracker extends Handler { } if (mInterfaceName != null && !mPrivateDnsRouteSet) { for (String addrString : getNameServers()) { - int addr = NetworkUtils.lookupHost(addrString); - if (addr != -1 && addr != 0) { - if (DBG) Log.d(TAG, " adding "+addrString+" ("+addr+")"); - NetworkUtils.addHostRoute(mInterfaceName, addr); + if (addrString != null) { + try { + InetAddress inetAddress = InetAddress.getByName(addrString); + if (DBG) Log.d(TAG, " adding " + addrString); + if (NetworkUtils.addHostRoute(mInterfaceName, inetAddress, null)) { + mPrivateDnsRouteSet = true; + } + } catch (UnknownHostException e) { + if (DBG) Log.d(TAG, " DNS address " + addrString + " : Exception " + e); + } } } - mPrivateDnsRouteSet = true; } } @@ -159,8 +165,16 @@ public abstract class NetworkStateTracker extends Handler { Log.d(TAG, "addDefaultRoute for " + mNetworkInfo.getTypeName() + " (" + mInterfaceName + "), GatewayAddr=" + mDefaultGatewayAddr); } - NetworkUtils.setDefaultRoute(mInterfaceName, mDefaultGatewayAddr); - mDefaultRouteSet = true; + InetAddress inetAddress = NetworkUtils.intToInetAddress(mDefaultGatewayAddr); + if (inetAddress == null) { + if (DBG) Log.d(TAG, " Unable to add default route. mDefaultGatewayAddr Error"); + } else { + if (NetworkUtils.addDefaultRoute(mInterfaceName, inetAddress)) { + mDefaultRouteSet = true; + } else { + if (DBG) Log.d(TAG, " Unable to add default route."); + } + } } } @@ -398,7 +412,7 @@ public abstract class NetworkStateTracker extends Handler { * @param hostAddress the IP address of the host to which the route is desired * @return {@code true} on success, {@code false} on failure */ - public boolean requestRouteToHost(int hostAddress) { + public boolean requestRouteToHost(InetAddress hostAddress) { return false; } |