From 5de7c452cf01c4789644f4ab0e713fff0f1f50f2 Mon Sep 17 00:00:00 2001
From: Niels Andriesse <andriesseniels@gmail.com>
Date: Thu, 30 Jan 2020 11:12:11 +1100
Subject: [PATCH] Fix session handling bug

---
 SignalServiceKit/src/Messages/OWSMessageManager.m | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/SignalServiceKit/src/Messages/OWSMessageManager.m b/SignalServiceKit/src/Messages/OWSMessageManager.m
index 4de6a8a7e..27e58ed17 100644
--- a/SignalServiceKit/src/Messages/OWSMessageManager.m
+++ b/SignalServiceKit/src/Messages/OWSMessageManager.m
@@ -1660,15 +1660,15 @@ NS_ASSUME_NONNULL_BEGIN
 }
 
 // Loki: Establish a session if there is no session between the memebers of a group
-- (void)establishSessionsWithMembersIfNeeded: (NSArray *)members forThread: (TSGroupThread *)thread transaction:(YapDatabaseReadWriteTransaction *)transaction
+- (void)establishSessionsWithMembersIfNeeded:(NSArray *)members forThread:(TSGroupThread *)thread transaction:(YapDatabaseReadWriteTransaction *)transaction
 {
     NSString *userHexEncodedPublicKey = OWSIdentityManager.sharedManager.identityKeyPair.hexEncodedPublicKey;
     for (NSString *member in members) {
         if ([member isEqualToString:userHexEncodedPublicKey] ) { continue; }
-        __block BOOL hasSession;
-        hasSession = [self.primaryStorage containsSession:member deviceId:1 protocolContext:transaction];
+        BOOL hasSession = [self.primaryStorage containsSession:member deviceId:1 protocolContext:transaction];
         if (hasSession) { continue; }
-        LKSessionRequestMessage *message = [[LKSessionRequestMessage alloc] initWithThread:thread];
+        TSContactThread *contactThread = [TSContactThread getOrCreateThreadWithContactId:member transaction:transaction];
+        LKSessionRequestMessage *message = [[LKSessionRequestMessage alloc] initWithThread:contactThread];
         [self.messageSenderJobQueue addMessage:message transaction:transaction];
     }
 }