diff options
author | Robert Greenwalt <rgreenwalt@google.com> | 2011-02-03 13:17:48 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-02-03 13:17:48 -0800 |
commit | f8d40f0d55fdf7046b013cc7d74a4cd199484f7a (patch) | |
tree | ef7139223949935f14da2e81a8b61792fbc8d7b6 /core/java/android/server | |
parent | 770d02c2fa8de1430c2c3b778efb6f2717edcd47 (diff) | |
parent | ed1264093234b1f1354cd5f669eb82a50bb56869 (diff) | |
download | frameworks_base-f8d40f0d55fdf7046b013cc7d74a4cd199484f7a.zip frameworks_base-f8d40f0d55fdf7046b013cc7d74a4cd199484f7a.tar.gz frameworks_base-f8d40f0d55fdf7046b013cc7d74a4cd199484f7a.tar.bz2 |
Merge "Bind addr and prefixLength together in LinkAddress"
Diffstat (limited to 'core/java/android/server')
-rw-r--r-- | core/java/android/server/BluetoothService.java | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/core/java/android/server/BluetoothService.java b/core/java/android/server/BluetoothService.java index ab1e9c6..a92d507 100644 --- a/core/java/android/server/BluetoothService.java +++ b/core/java/android/server/BluetoothService.java @@ -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; @@ -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); |