Try random UD access keys in profile gets.

pull/1/head
Matthew Chen 7 years ago
parent dbe635f721
commit 5d18497ade

@ -139,22 +139,26 @@ public class ProfileFetcherJob: NSObject {
if self.udManager.unidentifiedAccessMode(recipientId: recipientId) == .unknown, if self.udManager.unidentifiedAccessMode(recipientId: recipientId) == .unknown,
let randomUnidentifiedAccess = self.udManager.getRandomAccess() { let randomUnidentifiedAccess = self.udManager.getRandomAccess() {
return requestProfile(recipientId: recipientId, return requestProfile(recipientId: recipientId,
unidentifiedAccess: randomUnidentifiedAccess) unidentifiedAccess: randomUnidentifiedAccess,
canFailoverUDAuth: false)
.recover { (_: Error) -> Promise<SignalServiceProfile> in .recover { (_: Error) -> Promise<SignalServiceProfile> in
Logger.verbose("Failing over to non-random access.") Logger.verbose("Failing over to non-random access.")
let unidentifiedAccess = self.getUnidentifiedAccess(forRecipientId: recipientId) let unidentifiedAccess = self.getUnidentifiedAccess(forRecipientId: recipientId)
return self.requestProfile(recipientId: recipientId, return self.requestProfile(recipientId: recipientId,
unidentifiedAccess: unidentifiedAccess) unidentifiedAccess: unidentifiedAccess,
canFailoverUDAuth: true)
} }
} else { } else {
let unidentifiedAccess = getUnidentifiedAccess(forRecipientId: recipientId) let unidentifiedAccess = getUnidentifiedAccess(forRecipientId: recipientId)
return requestProfile(recipientId: recipientId, return requestProfile(recipientId: recipientId,
unidentifiedAccess: unidentifiedAccess) unidentifiedAccess: unidentifiedAccess,
canFailoverUDAuth: true)
} }
} }
private func requestProfile(recipientId: String, private func requestProfile(recipientId: String,
unidentifiedAccess: SSKUnidentifiedAccess?) -> Promise<SignalServiceProfile> { unidentifiedAccess: SSKUnidentifiedAccess?,
canFailoverUDAuth: Bool) -> Promise<SignalServiceProfile> {
AssertIsOnMainThread() AssertIsOnMainThread()
let requestMaker = RequestMaker(requestFactoryBlock: { (unidentifiedAccessForRequest) -> TSRequest in let requestMaker = RequestMaker(requestFactoryBlock: { (unidentifiedAccessForRequest) -> TSRequest in
@ -165,7 +169,7 @@ public class ProfileFetcherJob: NSObject {
// Do nothing // Do nothing
}, recipientId: recipientId, }, recipientId: recipientId,
unidentifiedAccess: unidentifiedAccess, unidentifiedAccess: unidentifiedAccess,
canFailoverUDAuth: true) canFailoverUDAuth: canFailoverUDAuth)
return requestMaker.makeRequest() return requestMaker.makeRequest()
.map { (result: RequestMakerResult) -> SignalServiceProfile in .map { (result: RequestMakerResult) -> SignalServiceProfile in
try SignalServiceProfile(recipientId: recipientId, responseObject: result.responseObject) try SignalServiceProfile(recipientId: recipientId, responseObject: result.responseObject)

Loading…
Cancel
Save