Stop using netmask in the framework.
bug:2542681
Change-Id: Iaa2b30f7a43de28844d86a4a8a513e86d719608a
diff --git a/services/java/com/android/server/NetworkManagementService.java b/services/java/com/android/server/NetworkManagementService.java
index 91a0302..ef3e89a 100644
--- a/services/java/com/android/server/NetworkManagementService.java
+++ b/services/java/com/android/server/NetworkManagementService.java
@@ -248,7 +248,7 @@
}
Slog.d(TAG, String.format("rsp <%s>", rsp));
- // Rsp: 213 xx:xx:xx:xx:xx:xx yyy.yyy.yyy.yyy zzz.zzz.zzz.zzz [flag1 flag2 flag3]
+ // Rsp: 213 xx:xx:xx:xx:xx:xx yyy.yyy.yyy.yyy zzz [flag1 flag2 flag3]
StringTokenizer st = new StringTokenizer(rsp);
InterfaceConfiguration cfg;
@@ -268,7 +268,7 @@
cfg = new InterfaceConfiguration();
cfg.hwAddr = st.nextToken(" ");
InetAddress addr = null;
- InetAddress mask = null;
+ int prefixLength = 0;
try {
addr = InetAddress.getByName(st.nextToken(" "));
} catch (UnknownHostException uhe) {
@@ -276,12 +276,12 @@
}
try {
- mask = InetAddress.getByName(st.nextToken(" "));
- } catch (UnknownHostException uhe) {
- Slog.e(TAG, "Failed to parse netmask", uhe);
+ prefixLength = Integer.parseInt(st.nextToken(" "));
+ } catch (NumberFormatException nfe) {
+ Slog.e(TAG, "Failed to parse prefixLength", nfe);
}
- cfg.addr = new LinkAddress(addr, mask);
+ cfg.addr = new LinkAddress(addr, prefixLength);
cfg.interfaceFlags = st.nextToken("]").trim() +"]";
} catch (NoSuchElementException nsee) {
throw new IllegalStateException(
@@ -294,19 +294,13 @@
public void setInterfaceConfig(
String iface, InterfaceConfiguration cfg) throws IllegalStateException {
LinkAddress linkAddr = cfg.addr;
- if (linkAddr == null) throw new IllegalStateException("Null LinkAddress given");
- InetAddress addr = linkAddr.getAddress();
- // TODO - fix this to pass prefixlength and be v6 capapble
- InetAddress mask = null;
- try {
- mask = NetworkUtils.intToInetAddress(NetworkUtils.prefixLengthToNetmaskInt(
- linkAddr.getNetworkPrefixLength()));
- } catch (IllegalArgumentException e) {
- throw new IllegalStateException(e);
+ if (linkAddr == null || linkAddr.getAddress() == null) {
+ throw new IllegalStateException("Null LinkAddress given");
}
- if (addr == null || mask == null) throw new IllegalStateException("Null Address given");
- String cmd = String.format("interface setcfg %s %s %s %s", iface,
- addr.getHostAddress(), mask.getHostAddress(), cfg.interfaceFlags);
+ String cmd = String.format("interface setcfg %s %s %d %s", iface,
+ linkAddr.getAddress().getHostAddress(),
+ linkAddr.getNetworkPrefixLength(),
+ cfg.interfaceFlags);
try {
mConnector.doCommand(cmd);
} catch (NativeDaemonConnectorException e) {