From b798f49512f2f576a9744841e958faefb456e18f Mon Sep 17 00:00:00 2001 From: Niels Andriesse Date: Thu, 13 May 2021 10:38:13 +1000 Subject: [PATCH] Minor performance optimization --- .../java/org/session/libsession/snode/SnodeAPI.kt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/libsession/src/main/java/org/session/libsession/snode/SnodeAPI.kt b/libsession/src/main/java/org/session/libsession/snode/SnodeAPI.kt index a5094a63ee..586193b7c1 100644 --- a/libsession/src/main/java/org/session/libsession/snode/SnodeAPI.kt +++ b/libsession/src/main/java/org/session/libsession/snode/SnodeAPI.kt @@ -34,7 +34,7 @@ object SnodeAPI { // Settings private val maxRetryCount = 6 private val minimumSnodePoolCount = 12 - private val minimumSwarmSnodeCount = 2 + private val minimumSwarmSnodeCount = 3 // Use port 4433 if the API level can handle the network security configuration and enforce pinned certificates private val seedNodePort = if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) 443 else 4433 private val seedNodePool by lazy { @@ -44,7 +44,7 @@ object SnodeAPI { setOf( "https://storage.seed1.loki.network:$seedNodePort ", "https://storage.seed3.loki.network:$seedNodePort ", "https://public.loki.foundation:$seedNodePort" ) } } - private val snodeFailureThreshold = 4 + private val snodeFailureThreshold = 3 private val targetSwarmSnodeCount = 2 private val useOnionRequests = true @@ -252,19 +252,20 @@ object SnodeAPI { private fun removeDuplicates(publicKey: String, rawMessages: List<*>): List<*> { val receivedMessageHashValues = database.getReceivedMessageHashValues(publicKey)?.toMutableSet() ?: mutableSetOf() - return rawMessages.filter { rawMessage -> + val result = rawMessages.filter { rawMessage -> val rawMessageAsJSON = rawMessage as? Map<*, *> val hashValue = rawMessageAsJSON?.get("hash") as? String if (hashValue != null) { val isDuplicate = receivedMessageHashValues.contains(hashValue) receivedMessageHashValues.add(hashValue) - database.setReceivedMessageHashValues(publicKey, receivedMessageHashValues) !isDuplicate } else { Log.d("Loki", "Missing hash value for message: ${rawMessage?.prettifiedDescription()}.") false } } + database.setReceivedMessageHashValues(publicKey, receivedMessageHashValues) + return result } private fun parseEnvelopes(rawMessages: List<*>): List { @@ -305,7 +306,7 @@ object SnodeAPI { } } when (statusCode) { - 400, 500, 503 -> { // Usually indicates that the snode isn't up to date + 400, 500, 502, 503 -> { // Usually indicates that the snode isn't up to date handleBadSnode() } 406 -> {