Loading core/java/android/net/DnsPinger.java +23 −3 Original line number Diff line number Diff line Loading @@ -53,7 +53,7 @@ import java.util.concurrent.atomic.AtomicInteger; public final class DnsPinger extends Handler { private static final boolean V = true; private static final int RECEIVE_POLL_INTERVAL_MS = 30; private static final int RECEIVE_POLL_INTERVAL_MS = 200; private static final int DNS_PORT = 53; /** Short socket timeout so we don't block one any 'receive' call */ Loading @@ -70,6 +70,9 @@ public final class DnsPinger extends Handler { private final ArrayList<InetAddress> mDefaultDns; private String TAG; //Invalidates old dns requests upon a cancel private AtomicInteger mCurrentToken = new AtomicInteger(); private static final int BASE = Protocol.BASE_DNS_PINGER; /** Loading Loading @@ -102,6 +105,17 @@ public final class DnsPinger extends Handler { long start = SystemClock.elapsedRealtime(); } /* Message argument for ACTION_PING_DNS */ private class DnsArg { InetAddress dns; int seq; DnsArg(InetAddress d, int s) { dns = d; seq = s; } } public DnsPinger(Context context, String TAG, Looper looper, Handler target, int connectionType) { super(looper); Loading @@ -122,9 +136,13 @@ public final class DnsPinger extends Handler { public void handleMessage(Message msg) { switch (msg.what) { case ACTION_PING_DNS: DnsArg dnsArg = (DnsArg) msg.obj; if (dnsArg.seq != mCurrentToken.get()) { break; } try { ActivePing newActivePing = new ActivePing(); InetAddress dnsAddress = (InetAddress) msg.obj; InetAddress dnsAddress = dnsArg.dns; newActivePing.internalId = msg.arg1; newActivePing.timeout = msg.arg2; newActivePing.socket = new DatagramSocket(); Loading Loading @@ -248,11 +266,13 @@ public final class DnsPinger extends Handler { */ public int pingDnsAsync(InetAddress dns, int timeout, int delay) { int id = sCounter.incrementAndGet(); sendMessageDelayed(obtainMessage(ACTION_PING_DNS, id, timeout, dns), delay); sendMessageDelayed(obtainMessage(ACTION_PING_DNS, id, timeout, new DnsArg(dns, mCurrentToken.get())), delay); return id; } public void cancelPings() { mCurrentToken.incrementAndGet(); obtainMessage(ACTION_CANCEL_ALL_PINGS).sendToTarget(); } Loading wifi/java/android/net/wifi/WifiWatchdogStateMachine.java +3 −4 Original line number Diff line number Diff line Loading @@ -589,12 +589,11 @@ public class WifiWatchdogStateMachine extends StateMachine { updateBssids(); transitionTo(mDnsCheckingState); mNetEventCounter++; return HANDLED; case DISCONNECTED: case DISCONNECTING: break; default: mNetEventCounter++; transitionTo(mNotConnectedState); return HANDLED; break; } return HANDLED; case EVENT_WIFI_RADIO_STATE_CHANGE: Loading Loading
core/java/android/net/DnsPinger.java +23 −3 Original line number Diff line number Diff line Loading @@ -53,7 +53,7 @@ import java.util.concurrent.atomic.AtomicInteger; public final class DnsPinger extends Handler { private static final boolean V = true; private static final int RECEIVE_POLL_INTERVAL_MS = 30; private static final int RECEIVE_POLL_INTERVAL_MS = 200; private static final int DNS_PORT = 53; /** Short socket timeout so we don't block one any 'receive' call */ Loading @@ -70,6 +70,9 @@ public final class DnsPinger extends Handler { private final ArrayList<InetAddress> mDefaultDns; private String TAG; //Invalidates old dns requests upon a cancel private AtomicInteger mCurrentToken = new AtomicInteger(); private static final int BASE = Protocol.BASE_DNS_PINGER; /** Loading Loading @@ -102,6 +105,17 @@ public final class DnsPinger extends Handler { long start = SystemClock.elapsedRealtime(); } /* Message argument for ACTION_PING_DNS */ private class DnsArg { InetAddress dns; int seq; DnsArg(InetAddress d, int s) { dns = d; seq = s; } } public DnsPinger(Context context, String TAG, Looper looper, Handler target, int connectionType) { super(looper); Loading @@ -122,9 +136,13 @@ public final class DnsPinger extends Handler { public void handleMessage(Message msg) { switch (msg.what) { case ACTION_PING_DNS: DnsArg dnsArg = (DnsArg) msg.obj; if (dnsArg.seq != mCurrentToken.get()) { break; } try { ActivePing newActivePing = new ActivePing(); InetAddress dnsAddress = (InetAddress) msg.obj; InetAddress dnsAddress = dnsArg.dns; newActivePing.internalId = msg.arg1; newActivePing.timeout = msg.arg2; newActivePing.socket = new DatagramSocket(); Loading Loading @@ -248,11 +266,13 @@ public final class DnsPinger extends Handler { */ public int pingDnsAsync(InetAddress dns, int timeout, int delay) { int id = sCounter.incrementAndGet(); sendMessageDelayed(obtainMessage(ACTION_PING_DNS, id, timeout, dns), delay); sendMessageDelayed(obtainMessage(ACTION_PING_DNS, id, timeout, new DnsArg(dns, mCurrentToken.get())), delay); return id; } public void cancelPings() { mCurrentToken.incrementAndGet(); obtainMessage(ACTION_CANCEL_ALL_PINGS).sendToTarget(); } Loading
wifi/java/android/net/wifi/WifiWatchdogStateMachine.java +3 −4 Original line number Diff line number Diff line Loading @@ -589,12 +589,11 @@ public class WifiWatchdogStateMachine extends StateMachine { updateBssids(); transitionTo(mDnsCheckingState); mNetEventCounter++; return HANDLED; case DISCONNECTED: case DISCONNECTING: break; default: mNetEventCounter++; transitionTo(mNotConnectedState); return HANDLED; break; } return HANDLED; case EVENT_WIFI_RADIO_STATE_CHANGE: Loading