Loading src/android/net/ip/IpClientLinkObserver.java +32 −16 Original line number Diff line number Diff line Loading @@ -155,8 +155,12 @@ public class IpClientLinkObserver implements NetworkObserver { // now empty. Note that from the moment that the interface is removed, any further // interface-specific messages (e.g., RTM_DELADDR) will not reach us, because the netd // code that parses them will not be able to resolve the ifindex to an interface name. final boolean linkState; synchronized (this) { clearLinkProperties(); mCallback.update(getInterfaceLinkState()); linkState = getInterfaceLinkStateLocked(); } mCallback.update(linkState); } } Loading @@ -164,7 +168,9 @@ public class IpClientLinkObserver implements NetworkObserver { public void onInterfaceLinkStateChanged(String iface, boolean state) { if (mInterfaceName.equals(iface)) { maybeLog("interfaceLinkStateChanged", iface + (state ? " up" : " down")); setInterfaceLinkState(state); synchronized (this) { setInterfaceLinkStateLocked(state); } } } Loading @@ -172,12 +178,14 @@ public class IpClientLinkObserver implements NetworkObserver { public void onInterfaceAddressUpdated(LinkAddress address, String iface) { if (mInterfaceName.equals(iface)) { maybeLog("addressUpdated", iface, address); boolean changed; final boolean changed; final boolean linkState; synchronized (this) { changed = mLinkProperties.addLinkAddress(address); linkState = getInterfaceLinkStateLocked(); } if (changed) { mCallback.update(getInterfaceLinkState()); mCallback.update(linkState); } } } Loading @@ -186,12 +194,14 @@ public class IpClientLinkObserver implements NetworkObserver { public void onInterfaceAddressRemoved(LinkAddress address, String iface) { if (mInterfaceName.equals(iface)) { maybeLog("addressRemoved", iface, address); boolean changed; final boolean changed; final boolean linkState; synchronized (this) { changed = mLinkProperties.removeLinkAddress(address); linkState = getInterfaceLinkStateLocked(); } if (changed) { mCallback.update(getInterfaceLinkState()); mCallback.update(linkState); } } } Loading @@ -200,12 +210,14 @@ public class IpClientLinkObserver implements NetworkObserver { public void onRouteUpdated(RouteInfo route) { if (mInterfaceName.equals(route.getInterface())) { maybeLog("routeUpdated", route); boolean changed; final boolean changed; final boolean linkState; synchronized (this) { changed = mLinkProperties.addRoute(route); linkState = getInterfaceLinkStateLocked(); } if (changed) { mCallback.update(getInterfaceLinkState()); mCallback.update(linkState); } } } Loading @@ -214,12 +226,14 @@ public class IpClientLinkObserver implements NetworkObserver { public void onRouteRemoved(RouteInfo route) { if (mInterfaceName.equals(route.getInterface())) { maybeLog("routeRemoved", route); boolean changed; final boolean changed; final boolean linkState; synchronized (this) { changed = mLinkProperties.removeRoute(route); linkState = getInterfaceLinkStateLocked(); } if (changed) { mCallback.update(getInterfaceLinkState()); mCallback.update(linkState); } } } Loading @@ -228,12 +242,14 @@ public class IpClientLinkObserver implements NetworkObserver { public void onInterfaceDnsServerInfo(String iface, long lifetime, String[] addresses) { if (mInterfaceName.equals(iface)) { maybeLog("interfaceDnsServerInfo", Arrays.toString(addresses)); boolean changed = mDnsServerRepository.addServers(lifetime, addresses); final boolean changed = mDnsServerRepository.addServers(lifetime, addresses); final boolean linkState; if (changed) { synchronized (this) { mDnsServerRepository.setDnsServersOn(mLinkProperties); linkState = getInterfaceLinkStateLocked(); } mCallback.update(getInterfaceLinkState()); mCallback.update(linkState); } } } Loading @@ -258,11 +274,11 @@ public class IpClientLinkObserver implements NetworkObserver { mLinkProperties.setInterfaceName(mInterfaceName); } private synchronized boolean getInterfaceLinkState() { private boolean getInterfaceLinkStateLocked() { return mInterfaceLinkState; } private synchronized void setInterfaceLinkState(boolean state) { private void setInterfaceLinkStateLocked(boolean state) { mInterfaceLinkState = state; } Loading Loading @@ -378,7 +394,7 @@ public class IpClientLinkObserver implements NetworkObserver { cancelPref64Alarm(); } mCallback.update(getInterfaceLinkState()); mCallback.update(getInterfaceLinkStateLocked()); } private void processPref64Option(StructNdOptPref64 opt, final long now) { Loading Loading
src/android/net/ip/IpClientLinkObserver.java +32 −16 Original line number Diff line number Diff line Loading @@ -155,8 +155,12 @@ public class IpClientLinkObserver implements NetworkObserver { // now empty. Note that from the moment that the interface is removed, any further // interface-specific messages (e.g., RTM_DELADDR) will not reach us, because the netd // code that parses them will not be able to resolve the ifindex to an interface name. final boolean linkState; synchronized (this) { clearLinkProperties(); mCallback.update(getInterfaceLinkState()); linkState = getInterfaceLinkStateLocked(); } mCallback.update(linkState); } } Loading @@ -164,7 +168,9 @@ public class IpClientLinkObserver implements NetworkObserver { public void onInterfaceLinkStateChanged(String iface, boolean state) { if (mInterfaceName.equals(iface)) { maybeLog("interfaceLinkStateChanged", iface + (state ? " up" : " down")); setInterfaceLinkState(state); synchronized (this) { setInterfaceLinkStateLocked(state); } } } Loading @@ -172,12 +178,14 @@ public class IpClientLinkObserver implements NetworkObserver { public void onInterfaceAddressUpdated(LinkAddress address, String iface) { if (mInterfaceName.equals(iface)) { maybeLog("addressUpdated", iface, address); boolean changed; final boolean changed; final boolean linkState; synchronized (this) { changed = mLinkProperties.addLinkAddress(address); linkState = getInterfaceLinkStateLocked(); } if (changed) { mCallback.update(getInterfaceLinkState()); mCallback.update(linkState); } } } Loading @@ -186,12 +194,14 @@ public class IpClientLinkObserver implements NetworkObserver { public void onInterfaceAddressRemoved(LinkAddress address, String iface) { if (mInterfaceName.equals(iface)) { maybeLog("addressRemoved", iface, address); boolean changed; final boolean changed; final boolean linkState; synchronized (this) { changed = mLinkProperties.removeLinkAddress(address); linkState = getInterfaceLinkStateLocked(); } if (changed) { mCallback.update(getInterfaceLinkState()); mCallback.update(linkState); } } } Loading @@ -200,12 +210,14 @@ public class IpClientLinkObserver implements NetworkObserver { public void onRouteUpdated(RouteInfo route) { if (mInterfaceName.equals(route.getInterface())) { maybeLog("routeUpdated", route); boolean changed; final boolean changed; final boolean linkState; synchronized (this) { changed = mLinkProperties.addRoute(route); linkState = getInterfaceLinkStateLocked(); } if (changed) { mCallback.update(getInterfaceLinkState()); mCallback.update(linkState); } } } Loading @@ -214,12 +226,14 @@ public class IpClientLinkObserver implements NetworkObserver { public void onRouteRemoved(RouteInfo route) { if (mInterfaceName.equals(route.getInterface())) { maybeLog("routeRemoved", route); boolean changed; final boolean changed; final boolean linkState; synchronized (this) { changed = mLinkProperties.removeRoute(route); linkState = getInterfaceLinkStateLocked(); } if (changed) { mCallback.update(getInterfaceLinkState()); mCallback.update(linkState); } } } Loading @@ -228,12 +242,14 @@ public class IpClientLinkObserver implements NetworkObserver { public void onInterfaceDnsServerInfo(String iface, long lifetime, String[] addresses) { if (mInterfaceName.equals(iface)) { maybeLog("interfaceDnsServerInfo", Arrays.toString(addresses)); boolean changed = mDnsServerRepository.addServers(lifetime, addresses); final boolean changed = mDnsServerRepository.addServers(lifetime, addresses); final boolean linkState; if (changed) { synchronized (this) { mDnsServerRepository.setDnsServersOn(mLinkProperties); linkState = getInterfaceLinkStateLocked(); } mCallback.update(getInterfaceLinkState()); mCallback.update(linkState); } } } Loading @@ -258,11 +274,11 @@ public class IpClientLinkObserver implements NetworkObserver { mLinkProperties.setInterfaceName(mInterfaceName); } private synchronized boolean getInterfaceLinkState() { private boolean getInterfaceLinkStateLocked() { return mInterfaceLinkState; } private synchronized void setInterfaceLinkState(boolean state) { private void setInterfaceLinkStateLocked(boolean state) { mInterfaceLinkState = state; } Loading Loading @@ -378,7 +394,7 @@ public class IpClientLinkObserver implements NetworkObserver { cancelPref64Alarm(); } mCallback.update(getInterfaceLinkState()); mCallback.update(getInterfaceLinkStateLocked()); } private void processPref64Option(StructNdOptPref64 opt, final long now) { Loading