diff --git a/Session/Meta/Session-Info.plist b/Session/Meta/Session-Info.plist index e186b98c9..a9851a6b6 100644 --- a/Session/Meta/Session-Info.plist +++ b/Session/Meta/Session-Info.plist @@ -68,8 +68,12 @@ public.loki.foundation + NSExceptionAllowsInsecureHTTPLoads + + NSIncludesSubdomains + NSExceptionRequiresForwardSecrecy - + storage.seed1.loki.network @@ -90,7 +94,7 @@ NSContactsUsageDescription Signal uses your contacts to find users you know. We do not store your contacts on the server. NSFaceIDUsageDescription - Session's Screen Lock feature uses Face ID. + Session's Screen Lock feature uses Face ID. NSHumanReadableCopyright com.loki-project.loki-messenger NSMicrophoneUsageDescription diff --git a/SessionMessagingKit/Jobs/Types/DisappearingMessagesJob.swift b/SessionMessagingKit/Jobs/Types/DisappearingMessagesJob.swift index 8fe99a83c..d931c7ea1 100644 --- a/SessionMessagingKit/Jobs/Types/DisappearingMessagesJob.swift +++ b/SessionMessagingKit/Jobs/Types/DisappearingMessagesJob.swift @@ -131,6 +131,10 @@ public extension DisappearingMessagesJob { .updateAll(db, Interaction.Columns.expiresInSeconds.set(to: expiresInSeconds)) } }.retainUntilComplete() + + let swarm = SnodeAPI.swarmCache.wrappedValue[getUserHexEncodedPublicKey(db)] ?? [] + let snode = swarm.randomElement()! + SnodeAPI.getExpiries(from: snode, associatedWith: getUserHexEncodedPublicKey(db), of: expirationInfos.map { $0.serverHash }).retainUntilComplete() } return updateNextRunIfNeeded(db) diff --git a/SessionSnodeKit/SnodeAPI.swift b/SessionSnodeKit/SnodeAPI.swift index c94b177c8..3c2d6907e 100644 --- a/SessionSnodeKit/SnodeAPI.swift +++ b/SessionSnodeKit/SnodeAPI.swift @@ -784,8 +784,6 @@ public final class SnodeAPI { return Promise(error: SnodeAPIError.generic) } - let publicKey = (Features.useTestnet ? publicKey.removingIdPrefixIfNeeded() : publicKey) - let updatedExpiryMsWithNetworkOffset: UInt64 = UInt64(updatedExpiryMs + SnodeAPI.clockOffsetMs.wrappedValue) let shortenOrExtend: String? = { @@ -813,7 +811,7 @@ public final class SnodeAPI { throw SnodeAPIError.signingFailed } - let parameters: JSON = [ + var parameters: JSON = [ "pubkey" : publicKey, "pubkey_ed25519" : userED25519KeyPair.publicKey.toHexString(), "expiry": updatedExpiryMsWithNetworkOffset, @@ -821,6 +819,9 @@ public final class SnodeAPI { "signature": signature.toBase64() ] + if shortenOnly { parameters["shorten"] = true } + if extendOnly { parameters["extend"] = true } + return attempt(maxRetryCount: maxRetryCount, recoveringOn: Threading.workQueue) { invoke(.expire, on: snode, associatedWith: publicKey, parameters: parameters) .map2 { responseData -> [String: (hashes: [String], expiry: UInt64, unchanged: [String: UInt64]?)] in @@ -891,7 +892,6 @@ public final class SnodeAPI { return Promise(error: SnodeAPIError.noKeyPair) } - let publicKey = (Features.useTestnet ? publicKey.removingIdPrefixIfNeeded() : publicKey) let userX25519PublicKey: String = getUserHexEncodedPublicKey() return attempt(maxRetryCount: maxRetryCount, recoveringOn: Threading.workQueue) {