Add CDN number as parameter for read credential call.

This commit is contained in:
Clark
2024-04-16 13:29:56 -04:00
committed by Greyson Parrelli
parent 9703a868e5
commit 7811e51b41
5 changed files with 18 additions and 11 deletions

View File

@@ -15,6 +15,7 @@ import org.signal.libsignal.messagebackup.MessageBackupKey
import org.signal.libsignal.protocol.ServiceId.Aci
import org.signal.libsignal.zkgroup.profiles.ProfileKey
import org.thoughtcrime.securesms.attachments.AttachmentId
import org.thoughtcrime.securesms.attachments.Cdn
import org.thoughtcrime.securesms.attachments.DatabaseAttachment
import org.thoughtcrime.securesms.backup.v2.database.ChatItemImportInserter
import org.thoughtcrime.securesms.backup.v2.database.clearAllDataForBackupRestore
@@ -299,7 +300,7 @@ object BackupRepository {
.then { credential ->
api.getBackupInfo(backupKey, credential)
}
.then { info -> getCdnReadCredentials().map { it.headers to info } }
.then { info -> getCdnReadCredentials(info.cdn ?: Cdn.CDN_3.cdnNumber).map { it.headers to info } }
.map { pair ->
val (cdnCredentials, info) = pair
val messageReceiver = ApplicationDependencies.getSignalServiceMessageReceiver()
@@ -456,7 +457,7 @@ object BackupRepository {
/**
* Retrieve credentials for reading from the backup cdn.
*/
fun getCdnReadCredentials(): NetworkResult<GetArchiveCdnCredentialsResponse> {
fun getCdnReadCredentials(cdnNumber: Int): NetworkResult<GetArchiveCdnCredentialsResponse> {
val cached = SignalStore.backup().cdnReadCredentials
if (cached != null) {
return NetworkResult.Success(cached)
@@ -468,6 +469,7 @@ object BackupRepository {
return getAuthCredential()
.then { credential ->
api.getCdnReadCredentials(
cdnNumber = cdnNumber,
backupKey = backupKey,
serviceCredential = credential
)
@@ -490,7 +492,12 @@ object BackupRepository {
val cachedBackupMediaDirectory = SignalStore.backup().cachedBackupMediaDirectory
if (cachedBackupDirectory != null && cachedBackupMediaDirectory != null) {
return NetworkResult.Success(BackupDirectories(cachedBackupDirectory, cachedBackupMediaDirectory))
return NetworkResult.Success(
BackupDirectories(
backupDir = cachedBackupDirectory,
mediaDir = cachedBackupMediaDirectory
)
)
}
val api = ApplicationDependencies.getSignalServiceAccountManager().archiveApi

View File

@@ -229,7 +229,7 @@ class AttachmentDownloadJob private constructor(
val stream = if (useArchiveCdn) {
archiveFile = SignalDatabase.attachments.getOrCreateArchiveTransferFile(attachmentId)
val cdnCredentials = BackupRepository.getCdnReadCredentials().successOrThrow().headers
val cdnCredentials = BackupRepository.getCdnReadCredentials(attachment.archiveCdn).successOrThrow().headers
messageReceiver
.retrieveArchivedAttachment(

View File

@@ -226,7 +226,7 @@ class RestoreAttachmentJob private constructor(
val stream = if (useArchiveCdn) {
archiveFile = SignalDatabase.attachments.getOrCreateArchiveTransferFile(attachmentId)
val cdnCredentials = BackupRepository.getCdnReadCredentials().successOrThrow().headers
val cdnCredentials = BackupRepository.getCdnReadCredentials(attachment.archiveCdn).successOrThrow().headers
messageReceiver
.retrieveArchivedAttachment(