From fb86ab70a270e124b15b3e7af888381f32b78dd8 Mon Sep 17 00:00:00 2001 From: Hugh Nimmo-Smith Date: Mon, 17 Oct 2022 12:05:32 +0100 Subject: [PATCH] Comments and error mapping --- .../transports/SimpleHttpRendezvousTransport.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/rendezvous/transports/SimpleHttpRendezvousTransport.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/rendezvous/transports/SimpleHttpRendezvousTransport.kt index 03e8b0cda7..e899a64e99 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/rendezvous/transports/SimpleHttpRendezvousTransport.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/rendezvous/transports/SimpleHttpRendezvousTransport.kt @@ -99,9 +99,8 @@ class SimpleHttpRendezvousTransport(override var onCancelled: ((reason: Rendezvo override suspend fun receive(): ByteArray? { val uri = uri ?: throw IllegalStateException("Rendezvous not set up") - var done = false val httpClient = okhttp3.OkHttpClient.Builder().build() - while (!done) { + while (true) { if (cancelled) { return null } @@ -117,8 +116,9 @@ class SimpleHttpRendezvousTransport(override var onCancelled: ((reason: Rendezvo val response = httpClient.newCall(request.build()).execute() try { + // expired if (response.code == 404) { - cancel(RendezvousFailureReason.Unknown) + cancel(RendezvousFailureReason.Expired) return null } @@ -135,7 +135,8 @@ class SimpleHttpRendezvousTransport(override var onCancelled: ((reason: Rendezvo return response.body?.bytes() } - done = false + // sleep for a second before polling again + // we rely on the server expiring the channel rather than checking it ourselves delay(1000) } finally { response.close()