summaryrefslogtreecommitdiffstats
path: root/core/java/android/net/NetworkUtils.java
diff options
context:
space:
mode:
authorRobert Greenwalt <rgreenwalt@google.com>2011-12-07 09:58:48 -0800
committerRobert Greenwalt <rgreenwalt@google.com>2011-12-07 09:58:48 -0800
commitd4420ab2fbb85280d2f507072fe0bd820ac26a3f (patch)
tree966cb38b7d3d7c75576eba40e3f2912cfd6f8c0d /core/java/android/net/NetworkUtils.java
parent74b496dd8aab7e29bcba0c6502f773555c4ce29f (diff)
downloadframeworks_base-d4420ab2fbb85280d2f507072fe0bd820ac26a3f.zip
frameworks_base-d4420ab2fbb85280d2f507072fe0bd820ac26a3f.tar.gz
frameworks_base-d4420ab2fbb85280d2f507072fe0bd820ac26a3f.tar.bz2
Trim leading zeros from ipv4 addrs.
Underlying libraries will interpret leading zeros as octal values and fail. bug:5262995 Change-Id: Iff949225bb6b941f7274ee81754e1f41ed719a6c
Diffstat (limited to 'core/java/android/net/NetworkUtils.java')
-rw-r--r--core/java/android/net/NetworkUtils.java27
1 files changed, 27 insertions, 0 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;
+ }
}