summaryrefslogtreecommitdiffstats
path: root/telephony
diff options
context:
space:
mode:
authorWink Saville <wink@google.com>2011-07-25 15:26:56 -0700
committerWink Saville <wink@google.com>2011-07-25 15:26:56 -0700
commit32d106e154d0388ac13774fad3c58ff60ba9ae8f (patch)
treee271416d5e512c8f8bd466211927b415d79fed85 /telephony
parentdeb62be2e87b19e9bbbc668f8d9327b12dba4a3b (diff)
downloadframeworks_base-32d106e154d0388ac13774fad3c58ff60ba9ae8f.zip
frameworks_base-32d106e154d0388ac13774fad3c58ff60ba9ae8f.tar.gz
frameworks_base-32d106e154d0388ac13774fad3c58ff60ba9ae8f.tar.bz2
Filter out addresses that are 0.
If the address is "any" address, i.e. an address which is all zeros for both IPv4 and IPv6 ignore it. Bug: 5073048 Change-Id: I8b9f64103aaffd001114a672375ff5f99616c327
Diffstat (limited to 'telephony')
-rw-r--r--telephony/java/com/android/internal/telephony/DataCallState.java37
1 files changed, 22 insertions, 15 deletions
diff --git a/telephony/java/com/android/internal/telephony/DataCallState.java b/telephony/java/com/android/internal/telephony/DataCallState.java
index a69ce8b..6d8956f 100644
--- a/telephony/java/com/android/internal/telephony/DataCallState.java
+++ b/telephony/java/com/android/internal/telephony/DataCallState.java
@@ -142,13 +142,15 @@ public class DataCallState {
} catch (IllegalArgumentException e) {
throw new UnknownHostException("Non-numeric ip addr=" + addr);
}
- if (addrPrefixLen == 0) {
- // Assume point to point
- addrPrefixLen = (ia instanceof Inet4Address) ? 32 : 128;
+ if (! ia.isAnyLocalAddress()) {
+ if (addrPrefixLen == 0) {
+ // Assume point to point
+ addrPrefixLen = (ia instanceof Inet4Address) ? 32 : 128;
+ }
+ if (DBG) Log.d(LOG_TAG, "addr/pl=" + addr + "/" + addrPrefixLen);
+ la = new LinkAddress(ia, addrPrefixLen);
+ linkProperties.addLinkAddress(la);
}
- if (DBG) Log.d(LOG_TAG, "addr/pl=" + addr + "/" + addrPrefixLen);
- la = new LinkAddress(ia, addrPrefixLen);
- linkProperties.addLinkAddress(la);
}
} else {
throw new UnknownHostException("no address for ifname=" + ifname);
@@ -163,21 +165,24 @@ public class DataCallState {
} catch (IllegalArgumentException e) {
throw new UnknownHostException("Non-numeric dns addr=" + addr);
}
- linkProperties.addDns(ia);
+ if (! ia.isAnyLocalAddress()) {
+ linkProperties.addDns(ia);
+ }
}
} else if (okToUseSystemPropertyDns){
String dnsServers[] = new String[2];
dnsServers[0] = SystemProperties.get(propertyPrefix + "dns1");
dnsServers[1] = SystemProperties.get(propertyPrefix + "dns2");
for (String dnsAddr : dnsServers) {
- InetAddress ia;
- try {
- ia = NetworkUtils.numericToInetAddress(dnsAddr);
- } catch (IllegalArgumentException e) {
- throw new UnknownHostException("Non-numeric dns addr="
- + dnsAddr);
- }
+ InetAddress ia;
+ try {
+ ia = NetworkUtils.numericToInetAddress(dnsAddr);
+ } catch (IllegalArgumentException e) {
+ throw new UnknownHostException("Non-numeric dns addr=" + dnsAddr);
+ }
+ if (! ia.isAnyLocalAddress()) {
linkProperties.addDns(ia);
+ }
}
} else {
throw new UnknownHostException("Empty dns response and no system default dns");
@@ -199,7 +204,9 @@ public class DataCallState {
} catch (IllegalArgumentException e) {
throw new UnknownHostException("Non-numeric gateway addr=" + addr);
}
- linkProperties.addRoute(new RouteInfo(ia));
+ if (! ia.isAnyLocalAddress()) {
+ linkProperties.addRoute(new RouteInfo(ia));
+ }
}
result = SetupResult.SUCCESS;