mirror of https://github.com/YTVanced/VancedMicroG
Lower heartbeat interval when we find the connection reset when wanting to send a message
This commit is contained in:
parent
d25e351c41
commit
1367649a18
|
@ -62,6 +62,7 @@ import java.io.Closeable;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.net.Socket;
|
import java.net.Socket;
|
||||||
|
import java.net.SocketException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -223,6 +224,7 @@ public class McsService extends Service implements Handler.Callback {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
|
Log.d(TAG, "onDestroy");
|
||||||
alarmManager.cancel(heartbeatIntent);
|
alarmManager.cancel(heartbeatIntent);
|
||||||
closeAll();
|
closeAll();
|
||||||
database.close();
|
database.close();
|
||||||
|
@ -242,7 +244,7 @@ public class McsService extends Service implements Handler.Callback {
|
||||||
}
|
}
|
||||||
// consider connection to be dead if we did not receive an ack within twice the heartbeat interval
|
// consider connection to be dead if we did not receive an ack within twice the heartbeat interval
|
||||||
int heartbeatMs = GcmPrefs.get(context).getHeartbeatMsFor(activeNetworkPref);
|
int heartbeatMs = GcmPrefs.get(context).getHeartbeatMsFor(activeNetworkPref);
|
||||||
if (heartbeatMs < 0) {
|
if (heartbeatMs < 0) { // TODO how can this be negative?
|
||||||
closeAll();
|
closeAll();
|
||||||
} else if (SystemClock.elapsedRealtime() - lastHeartbeatAckElapsedRealtime > 2 * heartbeatMs) {
|
} else if (SystemClock.elapsedRealtime() - lastHeartbeatAckElapsedRealtime > 2 * heartbeatMs) {
|
||||||
logd(null, "No heartbeat for " + (SystemClock.elapsedRealtime() - lastHeartbeatAckElapsedRealtime) / 1000 + " seconds, connection assumed to be dead after " + 2 * heartbeatMs / 1000 + " seconds");
|
logd(null, "No heartbeat for " + (SystemClock.elapsedRealtime() - lastHeartbeatAckElapsedRealtime) / 1000 + " seconds, connection assumed to be dead after " + 2 * heartbeatMs / 1000 + " seconds");
|
||||||
|
@ -633,6 +635,12 @@ public class McsService extends Service implements Handler.Callback {
|
||||||
case MSG_INPUT_ERROR:
|
case MSG_INPUT_ERROR:
|
||||||
case MSG_OUTPUT_ERROR:
|
case MSG_OUTPUT_ERROR:
|
||||||
logd(this, "I/O error: " + msg.obj);
|
logd(this, "I/O error: " + msg.obj);
|
||||||
|
if (msg.obj instanceof SocketException) {
|
||||||
|
SocketException e = (SocketException) msg.obj;
|
||||||
|
if ("Connection reset".equals(e.getMessage())) {
|
||||||
|
GcmPrefs.get(this).learnTimeout(this, activeNetworkPref);
|
||||||
|
}
|
||||||
|
}
|
||||||
rootHandler.sendMessage(rootHandler.obtainMessage(MSG_TEARDOWN, msg.obj));
|
rootHandler.sendMessage(rootHandler.obtainMessage(MSG_TEARDOWN, msg.obj));
|
||||||
return true;
|
return true;
|
||||||
case MSG_TEARDOWN:
|
case MSG_TEARDOWN:
|
||||||
|
|
Loading…
Reference in New Issue