Loading core/java/android/net/InterfaceConfiguration.java +4 −20 Original line number Diff line number Diff line Loading @@ -28,8 +28,7 @@ import java.net.UnknownHostException; */ public class InterfaceConfiguration implements Parcelable { public String hwAddr; public InetAddress addr; public InetAddress mask; public LinkAddress addr; public String interfaceFlags; public InterfaceConfiguration() { Loading @@ -41,8 +40,6 @@ public class InterfaceConfiguration implements Parcelable { str.append("ipddress "); str.append((addr != null) ? addr.toString() : "NULL"); str.append(" netmask "); str.append((mask != null) ? mask.toString() : "NULL"); str.append(" flags ").append(interfaceFlags); str.append(" hwaddr ").append(hwAddr); Loading @@ -59,7 +56,7 @@ public class InterfaceConfiguration implements Parcelable { public boolean isActive() { try { if(interfaceFlags.contains("up")) { for (byte b : addr.getAddress()) { for (byte b : addr.getAddress().getAddress()) { if (b != 0) return true; } } Loading @@ -79,13 +76,7 @@ public class InterfaceConfiguration implements Parcelable { dest.writeString(hwAddr); if (addr != null) { dest.writeByte((byte)1); dest.writeByteArray(addr.getAddress()); } else { dest.writeByte((byte)0); } if (mask != null) { dest.writeByte((byte)1); dest.writeByteArray(mask.getAddress()); dest.writeParcelable(addr, flags); } else { dest.writeByte((byte)0); } Loading @@ -99,14 +90,7 @@ public class InterfaceConfiguration implements Parcelable { InterfaceConfiguration info = new InterfaceConfiguration(); info.hwAddr = in.readString(); if (in.readByte() == 1) { try { info.addr = InetAddress.getByAddress(in.createByteArray()); } catch (UnknownHostException e) {} } if (in.readByte() == 1) { try { info.mask = InetAddress.getByAddress(in.createByteArray()); } catch (UnknownHostException e) {} info.addr = in.readParcelable(null); } info.interfaceFlags = in.readString(); return info; Loading core/java/android/server/BluetoothService.java +9 −5 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ import android.content.SharedPreferences; import android.content.res.Resources.NotFoundException; import android.net.ConnectivityManager; import android.net.InterfaceConfiguration; import android.net.LinkAddress; import android.os.Binder; import android.os.Handler; import android.os.IBinder; Loading Loading @@ -1682,12 +1683,15 @@ public class BluetoothService extends IBluetooth.Stub { try { ifcg = service.getInterfaceConfig(iface); if (ifcg != null) { ifcg.mask = InetAddress.getByName(BLUETOOTH_NETMASK); if (ifcg.addr == null || ifcg.addr.equals(InetAddress.getByName("0.0.0.0"))) { ifcg.addr = InetAddress.getByName(address); ifcg.interfaceFlags = ifcg.interfaceFlags.replace("down", "up"); InetAddress mask = InetAddress.getByName(BLUETOOTH_NETMASK); InetAddress addr = null; if (ifcg.addr == null || (addr = ifcg.addr.getAddress()) == null || addr.equals(InetAddress.getByName("0.0.0.0")) || addr.equals(InetAddress.getByName("::0"))) { addr = InetAddress.getByName(address); } ifcg.interfaceFlags = ifcg.interfaceFlags.replace("down", "up"); ifcg.addr = new LinkAddress(addr, mask); ifcg.interfaceFlags = ifcg.interfaceFlags.replace("running", ""); ifcg.interfaceFlags = ifcg.interfaceFlags.replace(" "," "); service.setInterfaceConfig(iface, ifcg); Loading services/java/com/android/server/NetworkManagementService.java +20 −4 Original line number Diff line number Diff line Loading @@ -26,6 +26,8 @@ import android.content.pm.PackageManager; import android.net.Uri; import android.net.InterfaceConfiguration; import android.net.INetworkManagementEventObserver; import android.net.LinkAddress; import android.net.NetworkUtils; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiConfiguration.KeyMgmt; import android.os.INetworkManagementService; Loading Loading @@ -265,18 +267,21 @@ class NetworkManagementService extends INetworkManagementService.Stub { cfg = new InterfaceConfiguration(); cfg.hwAddr = st.nextToken(" "); InetAddress addr = null; InetAddress mask = null; try { cfg.addr = InetAddress.getByName(st.nextToken(" ")); addr = InetAddress.getByName(st.nextToken(" ")); } catch (UnknownHostException uhe) { Slog.e(TAG, "Failed to parse ipaddr", uhe); } try { cfg.mask = InetAddress.getByName(st.nextToken(" ")); mask = InetAddress.getByName(st.nextToken(" ")); } catch (UnknownHostException uhe) { Slog.e(TAG, "Failed to parse netmask", uhe); } cfg.addr = new LinkAddress(addr, mask); cfg.interfaceFlags = st.nextToken("]").trim() +"]"; } catch (NoSuchElementException nsee) { throw new IllegalStateException( Loading @@ -288,9 +293,20 @@ class NetworkManagementService extends INetworkManagementService.Stub { 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 (addr == null || mask == null) throw new IllegalStateException("Null Address given"); String cmd = String.format("interface setcfg %s %s %s %s", iface, cfg.addr.getHostAddress(), cfg.mask.getHostAddress(), cfg.interfaceFlags); addr.getHostAddress(), mask.getHostAddress(), cfg.interfaceFlags); try { mConnector.doCommand(cmd); } catch (NativeDaemonConnectorException e) { Loading services/java/com/android/server/connectivity/Tethering.java +4 −2 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.net.ConnectivityManager; import android.net.InterfaceConfiguration; import android.net.IConnectivityManager; import android.net.INetworkManagementEventObserver; import android.net.LinkAddress; import android.net.LinkProperties; import android.net.NetworkInfo; import android.os.Binder; Loading Loading @@ -566,8 +567,9 @@ public class Tethering extends INetworkManagementEventObserver.Stub { try { ifcg = service.getInterfaceConfig(iface); if (ifcg != null) { ifcg.addr = InetAddress.getByName(USB_NEAR_IFACE_ADDR); ifcg.mask = InetAddress.getByName(USB_NETMASK); InetAddress addr = InetAddress.getByName(USB_NEAR_IFACE_ADDR); InetAddress mask = InetAddress.getByName(USB_NETMASK); ifcg.addr = new LinkAddress(addr, mask); if (enabled) { ifcg.interfaceFlags = ifcg.interfaceFlags.replace("down", "up"); } else { Loading wifi/java/android/net/wifi/WifiStateMachine.java +2 −5 Original line number Diff line number Diff line Loading @@ -1013,8 +1013,7 @@ public class WifiStateMachine extends HierarchicalStateMachine { ifcg = service.getInterfaceConfig(intf); if (ifcg != null) { /* IP/netmask: 192.168.43.1/255.255.255.0 */ ifcg.addr = InetAddress.getByName("192.168.43.1"); ifcg.mask = InetAddress.getByName("255.255.255.0"); ifcg.addr = new LinkAddress(InetAddress.getByName("192.168.43.1"), 24); ifcg.interfaceFlags = "[up]"; service.setInterfaceConfig(intf, ifcg); Loading Loading @@ -2529,9 +2528,7 @@ public class WifiStateMachine extends HierarchicalStateMachine { IBinder b = ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE); INetworkManagementService netd = INetworkManagementService.Stub.asInterface(b); InterfaceConfiguration ifcg = new InterfaceConfiguration(); ifcg.addr = NetworkUtils.numericToInetAddress(dhcpInfoInternal.ipAddress); ifcg.mask = NetworkUtils.intToInetAddress( NetworkUtils.prefixLengthToNetmaskInt(dhcpInfoInternal.prefixLength)); ifcg.addr = dhcpInfoInternal.makeLinkAddress(); ifcg.interfaceFlags = "[up]"; try { netd.setInterfaceConfig(mInterfaceName, ifcg); Loading Loading
core/java/android/net/InterfaceConfiguration.java +4 −20 Original line number Diff line number Diff line Loading @@ -28,8 +28,7 @@ import java.net.UnknownHostException; */ public class InterfaceConfiguration implements Parcelable { public String hwAddr; public InetAddress addr; public InetAddress mask; public LinkAddress addr; public String interfaceFlags; public InterfaceConfiguration() { Loading @@ -41,8 +40,6 @@ public class InterfaceConfiguration implements Parcelable { str.append("ipddress "); str.append((addr != null) ? addr.toString() : "NULL"); str.append(" netmask "); str.append((mask != null) ? mask.toString() : "NULL"); str.append(" flags ").append(interfaceFlags); str.append(" hwaddr ").append(hwAddr); Loading @@ -59,7 +56,7 @@ public class InterfaceConfiguration implements Parcelable { public boolean isActive() { try { if(interfaceFlags.contains("up")) { for (byte b : addr.getAddress()) { for (byte b : addr.getAddress().getAddress()) { if (b != 0) return true; } } Loading @@ -79,13 +76,7 @@ public class InterfaceConfiguration implements Parcelable { dest.writeString(hwAddr); if (addr != null) { dest.writeByte((byte)1); dest.writeByteArray(addr.getAddress()); } else { dest.writeByte((byte)0); } if (mask != null) { dest.writeByte((byte)1); dest.writeByteArray(mask.getAddress()); dest.writeParcelable(addr, flags); } else { dest.writeByte((byte)0); } Loading @@ -99,14 +90,7 @@ public class InterfaceConfiguration implements Parcelable { InterfaceConfiguration info = new InterfaceConfiguration(); info.hwAddr = in.readString(); if (in.readByte() == 1) { try { info.addr = InetAddress.getByAddress(in.createByteArray()); } catch (UnknownHostException e) {} } if (in.readByte() == 1) { try { info.mask = InetAddress.getByAddress(in.createByteArray()); } catch (UnknownHostException e) {} info.addr = in.readParcelable(null); } info.interfaceFlags = in.readString(); return info; Loading
core/java/android/server/BluetoothService.java +9 −5 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ import android.content.SharedPreferences; import android.content.res.Resources.NotFoundException; import android.net.ConnectivityManager; import android.net.InterfaceConfiguration; import android.net.LinkAddress; import android.os.Binder; import android.os.Handler; import android.os.IBinder; Loading Loading @@ -1682,12 +1683,15 @@ public class BluetoothService extends IBluetooth.Stub { try { ifcg = service.getInterfaceConfig(iface); if (ifcg != null) { ifcg.mask = InetAddress.getByName(BLUETOOTH_NETMASK); if (ifcg.addr == null || ifcg.addr.equals(InetAddress.getByName("0.0.0.0"))) { ifcg.addr = InetAddress.getByName(address); ifcg.interfaceFlags = ifcg.interfaceFlags.replace("down", "up"); InetAddress mask = InetAddress.getByName(BLUETOOTH_NETMASK); InetAddress addr = null; if (ifcg.addr == null || (addr = ifcg.addr.getAddress()) == null || addr.equals(InetAddress.getByName("0.0.0.0")) || addr.equals(InetAddress.getByName("::0"))) { addr = InetAddress.getByName(address); } ifcg.interfaceFlags = ifcg.interfaceFlags.replace("down", "up"); ifcg.addr = new LinkAddress(addr, mask); ifcg.interfaceFlags = ifcg.interfaceFlags.replace("running", ""); ifcg.interfaceFlags = ifcg.interfaceFlags.replace(" "," "); service.setInterfaceConfig(iface, ifcg); Loading
services/java/com/android/server/NetworkManagementService.java +20 −4 Original line number Diff line number Diff line Loading @@ -26,6 +26,8 @@ import android.content.pm.PackageManager; import android.net.Uri; import android.net.InterfaceConfiguration; import android.net.INetworkManagementEventObserver; import android.net.LinkAddress; import android.net.NetworkUtils; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiConfiguration.KeyMgmt; import android.os.INetworkManagementService; Loading Loading @@ -265,18 +267,21 @@ class NetworkManagementService extends INetworkManagementService.Stub { cfg = new InterfaceConfiguration(); cfg.hwAddr = st.nextToken(" "); InetAddress addr = null; InetAddress mask = null; try { cfg.addr = InetAddress.getByName(st.nextToken(" ")); addr = InetAddress.getByName(st.nextToken(" ")); } catch (UnknownHostException uhe) { Slog.e(TAG, "Failed to parse ipaddr", uhe); } try { cfg.mask = InetAddress.getByName(st.nextToken(" ")); mask = InetAddress.getByName(st.nextToken(" ")); } catch (UnknownHostException uhe) { Slog.e(TAG, "Failed to parse netmask", uhe); } cfg.addr = new LinkAddress(addr, mask); cfg.interfaceFlags = st.nextToken("]").trim() +"]"; } catch (NoSuchElementException nsee) { throw new IllegalStateException( Loading @@ -288,9 +293,20 @@ class NetworkManagementService extends INetworkManagementService.Stub { 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 (addr == null || mask == null) throw new IllegalStateException("Null Address given"); String cmd = String.format("interface setcfg %s %s %s %s", iface, cfg.addr.getHostAddress(), cfg.mask.getHostAddress(), cfg.interfaceFlags); addr.getHostAddress(), mask.getHostAddress(), cfg.interfaceFlags); try { mConnector.doCommand(cmd); } catch (NativeDaemonConnectorException e) { Loading
services/java/com/android/server/connectivity/Tethering.java +4 −2 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.net.ConnectivityManager; import android.net.InterfaceConfiguration; import android.net.IConnectivityManager; import android.net.INetworkManagementEventObserver; import android.net.LinkAddress; import android.net.LinkProperties; import android.net.NetworkInfo; import android.os.Binder; Loading Loading @@ -566,8 +567,9 @@ public class Tethering extends INetworkManagementEventObserver.Stub { try { ifcg = service.getInterfaceConfig(iface); if (ifcg != null) { ifcg.addr = InetAddress.getByName(USB_NEAR_IFACE_ADDR); ifcg.mask = InetAddress.getByName(USB_NETMASK); InetAddress addr = InetAddress.getByName(USB_NEAR_IFACE_ADDR); InetAddress mask = InetAddress.getByName(USB_NETMASK); ifcg.addr = new LinkAddress(addr, mask); if (enabled) { ifcg.interfaceFlags = ifcg.interfaceFlags.replace("down", "up"); } else { Loading
wifi/java/android/net/wifi/WifiStateMachine.java +2 −5 Original line number Diff line number Diff line Loading @@ -1013,8 +1013,7 @@ public class WifiStateMachine extends HierarchicalStateMachine { ifcg = service.getInterfaceConfig(intf); if (ifcg != null) { /* IP/netmask: 192.168.43.1/255.255.255.0 */ ifcg.addr = InetAddress.getByName("192.168.43.1"); ifcg.mask = InetAddress.getByName("255.255.255.0"); ifcg.addr = new LinkAddress(InetAddress.getByName("192.168.43.1"), 24); ifcg.interfaceFlags = "[up]"; service.setInterfaceConfig(intf, ifcg); Loading Loading @@ -2529,9 +2528,7 @@ public class WifiStateMachine extends HierarchicalStateMachine { IBinder b = ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE); INetworkManagementService netd = INetworkManagementService.Stub.asInterface(b); InterfaceConfiguration ifcg = new InterfaceConfiguration(); ifcg.addr = NetworkUtils.numericToInetAddress(dhcpInfoInternal.ipAddress); ifcg.mask = NetworkUtils.intToInetAddress( NetworkUtils.prefixLengthToNetmaskInt(dhcpInfoInternal.prefixLength)); ifcg.addr = dhcpInfoInternal.makeLinkAddress(); ifcg.interfaceFlags = "[up]"; try { netd.setInterfaceConfig(mInterfaceName, ifcg); Loading