diff options
author | Robert Greenwalt <rgreenwalt@google.com> | 2011-12-07 12:29:14 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-12-07 12:29:14 -0800 |
commit | f352491aad71b5c0a30238707bdb83c9dc34fd9e (patch) | |
tree | 0cc2b75ad40141b8413f5c1c0bfb019b3e5be742 | |
parent | a85cc28229c2d5114fcc83c3d7ebfd6894fd4b98 (diff) | |
parent | d4420ab2fbb85280d2f507072fe0bd820ac26a3f (diff) | |
download | frameworks_base-f352491aad71b5c0a30238707bdb83c9dc34fd9e.zip frameworks_base-f352491aad71b5c0a30238707bdb83c9dc34fd9e.tar.gz frameworks_base-f352491aad71b5c0a30238707bdb83c9dc34fd9e.tar.bz2 |
Merge "Trim leading zeros from ipv4 addrs." into ics-mr1
-rw-r--r-- | core/java/android/net/NetworkUtils.java | 27 | ||||
-rw-r--r-- | telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java | 12 |
2 files changed, 36 insertions, 3 deletions
diff --git a/core/java/android/net/NetworkUtils.java b/core/java/android/net/NetworkUtils.java index e289fc1..72ea02e 100644 --- a/core/java/android/net/NetworkUtils.java +++ b/core/java/android/net/NetworkUtils.java @@ -250,4 +250,31 @@ public class NetworkUtils { } return result; } + + /** + * Trim leading zeros from IPv4 address strings + * Our base libraries will interpret that as octel.. + * Must leave non v4 addresses and host names alone. + * For example, 192.168.000.010 -> 192.168.0.10 + * TODO - fix base libraries and remove this function + * @param addr a string representing an ip addr + * @return a string propertly trimmed + */ + public static String trimV4AddrZeros(String addr) { + String[] octets = addr.split("\\."); + if (octets.length != 4) return addr; + StringBuilder builder = new StringBuilder(16); + String result = null; + for (int i = 0; i < 4; i++) { + try { + if (octets[i].length > 3) return addr; + builder.append(Integer.parseInt(octets[i])); + } catch (NumberFormatException e) { + return addr; + } + if (i < 3) builder.append('.'); + } + result = builder.toString(); + return result; + } } diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java index 11f1623..963db2c 100644 --- a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java +++ b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java @@ -914,10 +914,16 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker { cursor.getString(cursor.getColumnIndexOrThrow(Telephony.Carriers.NUMERIC)), cursor.getString(cursor.getColumnIndexOrThrow(Telephony.Carriers.NAME)), cursor.getString(cursor.getColumnIndexOrThrow(Telephony.Carriers.APN)), - cursor.getString(cursor.getColumnIndexOrThrow(Telephony.Carriers.PROXY)), + NetworkUtils.trimV4AddrZeros( + cursor.getString( + cursor.getColumnIndexOrThrow(Telephony.Carriers.PROXY))), cursor.getString(cursor.getColumnIndexOrThrow(Telephony.Carriers.PORT)), - cursor.getString(cursor.getColumnIndexOrThrow(Telephony.Carriers.MMSC)), - cursor.getString(cursor.getColumnIndexOrThrow(Telephony.Carriers.MMSPROXY)), + NetworkUtils.trimV4AddrZeros( + cursor.getString( + cursor.getColumnIndexOrThrow(Telephony.Carriers.MMSC))), + NetworkUtils.trimV4AddrZeros( + cursor.getString( + cursor.getColumnIndexOrThrow(Telephony.Carriers.MMSPROXY))), cursor.getString(cursor.getColumnIndexOrThrow(Telephony.Carriers.MMSPORT)), cursor.getString(cursor.getColumnIndexOrThrow(Telephony.Carriers.USER)), cursor.getString(cursor.getColumnIndexOrThrow(Telephony.Carriers.PASSWORD)), |