Disable okhttp automatic retries for CDSI.

fork-5.53.8
Greyson Parrelli 2022-10-07 16:06:27 -04:00
rodzic 4b10ec8f02
commit a9f654a520
1 zmienionych plików z 4 dodań i 1 usunięć

Wyświetl plik

@ -64,6 +64,7 @@ final class CdsiSocket {
OkHttpClient.Builder builder = new OkHttpClient.Builder() OkHttpClient.Builder builder = new OkHttpClient.Builder()
.sslSocketFactory(new Tls12SocketFactory(socketFactory.first()), socketFactory.second()) .sslSocketFactory(new Tls12SocketFactory(socketFactory.first()), socketFactory.second())
.connectionSpecs(Util.immutableList(ConnectionSpec.RESTRICTED_TLS)) .connectionSpecs(Util.immutableList(ConnectionSpec.RESTRICTED_TLS))
.retryOnConnectionFailure(false)
.readTimeout(30, TimeUnit.SECONDS) .readTimeout(30, TimeUnit.SECONDS)
.connectTimeout(30, TimeUnit.SECONDS); .connectTimeout(30, TimeUnit.SECONDS);
@ -92,7 +93,7 @@ final class CdsiSocket {
WebSocket webSocket = okhttp.newWebSocket(request, new WebSocketListener() { WebSocket webSocket = okhttp.newWebSocket(request, new WebSocketListener() {
@Override @Override
public void onOpen(WebSocket webSocket, Response response) { public void onOpen(WebSocket webSocket, Response response) {
Log.d(TAG, "onOpen"); Log.d(TAG, "[onOpen]");
stage.set(Stage.WAITING_FOR_CONNECTION); stage.set(Stage.WAITING_FOR_CONNECTION);
} }
@ -163,6 +164,7 @@ final class CdsiSocket {
@Override @Override
public void onClosing(WebSocket webSocket, int code, String reason) { public void onClosing(WebSocket webSocket, int code, String reason) {
Log.i(TAG, "[onClosing] code: " + code + ", reason: " + reason);
if (code == 1000) { if (code == 1000) {
emitter.onComplete(); emitter.onComplete();
stage.set(Stage.CLOSED); stage.set(Stage.CLOSED);
@ -176,6 +178,7 @@ final class CdsiSocket {
@Override @Override
public void onFailure(WebSocket webSocket, Throwable t, Response response) { public void onFailure(WebSocket webSocket, Throwable t, Response response) {
Log.w(TAG, "[onFailure] response? " + (response != null), t);
emitter.tryOnError(t); emitter.tryOnError(t);
stage.set(Stage.FAILED); stage.set(Stage.FAILED);
webSocket.close(1000, "OK"); webSocket.close(1000, "OK");