@ -14,9 +14,6 @@ public final class SessionManagementProtocol : NSObject {
internal static var storage : OWSPrimaryStorage { OWSPrimaryStorage . shared ( ) }
internal static var storage : OWSPrimaryStorage { OWSPrimaryStorage . shared ( ) }
// / T h e s e s s i o n r e q u e s t s t h a t a r e c u r r e n t l y b e i n g h a n d l e d .
public static var inFlightSessionRequests : Set < String > = [ ]
// MARK: - G e n e r a l
// MARK: - G e n e r a l
// B E H A V I O R N O T E : O W S M e s s a g e S e n d e r . t h r o w s _ e n c r y p t e d M e s s a g e F o r M e s s a g e S e n d : r e c i p i e n t I d : p l a i n t e x t : t r a n s a c t i o n : s e t s
// B E H A V I O R N O T E : O W S M e s s a g e S e n d e r . t h r o w s _ e n c r y p t e d M e s s a g e F o r M e s s a g e S e n d : r e c i p i e n t I d : p l a i n t e x t : t r a n s a c t i o n : s e t s
// i s F r i e n d R e q u e s t t o t r u e i f t h e m e s s a g e i n q u e s t i o n i s a f r i e n d r e q u e s t o r a d e v i c e l i n k i n g r e q u e s t , b u t N O T i f
// i s F r i e n d R e q u e s t t o t r u e i f t h e m e s s a g e i n q u e s t i o n i s a f r i e n d r e q u e s t o r a d e v i c e l i n k i n g r e q u e s t , b u t N O T i f
@ -195,7 +192,6 @@ public final class SessionManagementProtocol : NSObject {
public static func handleSessionRequestMessage ( _ dataMessage : SSKProtoDataMessage , wrappedIn envelope : SSKProtoEnvelope , using transaction : YapDatabaseReadWriteTransaction ) {
public static func handleSessionRequestMessage ( _ dataMessage : SSKProtoDataMessage , wrappedIn envelope : SSKProtoEnvelope , using transaction : YapDatabaseReadWriteTransaction ) {
// T h e e n v e l o p e s o u r c e i s s e t d u r i n g U D d e c r y p t i o n
// T h e e n v e l o p e s o u r c e i s s e t d u r i n g U D d e c r y p t i o n
let hexEncodedPublicKey = envelope . source !
let hexEncodedPublicKey = envelope . source !
inFlightSessionRequests . insert ( hexEncodedPublicKey )
var closedGroupMembers : Set < String > = [ ]
var closedGroupMembers : Set < String > = [ ]
TSGroupThread . enumerateCollectionObjects ( with : transaction ) { object , _ in
TSGroupThread . enumerateCollectionObjects ( with : transaction ) { object , _ in
guard let group = object as ? TSGroupThread , group . groupModel . groupType = = . closedGroup ,
guard let group = object as ? TSGroupThread , group . groupModel . groupType = = . closedGroup ,
@ -203,7 +199,6 @@ public final class SessionManagementProtocol : NSObject {
closedGroupMembers . formUnion ( group . groupModel . groupMemberIds )
closedGroupMembers . formUnion ( group . groupModel . groupMemberIds )
}
}
LokiFileServerAPI . getDeviceLinks ( associatedWith : closedGroupMembers ) . ensure {
LokiFileServerAPI . getDeviceLinks ( associatedWith : closedGroupMembers ) . ensure {
defer { inFlightSessionRequests . remove ( hexEncodedPublicKey ) }
storage . dbReadWriteConnection . readWrite { transaction in
storage . dbReadWriteConnection . readWrite { transaction in
let validHEPKs = closedGroupMembers . flatMap {
let validHEPKs = closedGroupMembers . flatMap {
LokiDatabaseUtilities . getLinkedDeviceHexEncodedPublicKeys ( for : $0 , in : transaction )
LokiDatabaseUtilities . getLinkedDeviceHexEncodedPublicKeys ( for : $0 , in : transaction )