From 0936dd936b9c52d6a6868ba32dfa961099362e03 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Fri, 12 May 2017 12:39:36 -0400 Subject: [PATCH] =?UTF-8?q?Don=E2=80=99t=20reply=20to=20=E2=80=9Crequest?= =?UTF-8?q?=20group=20info=E2=80=9D=20messages=20from=20non-members=20of?= =?UTF-8?q?=20the=20group=20in=20question.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit // FREEBIE --- src/Messages/TSMessagesManager.m | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/Messages/TSMessagesManager.m b/src/Messages/TSMessagesManager.m index 7b651cfbe..2496257de 100644 --- a/src/Messages/TSMessagesManager.m +++ b/src/Messages/TSMessagesManager.m @@ -492,7 +492,9 @@ NS_ASSUME_NONNULL_BEGIN }]; if (ignoreMessage) { // FIXME: https://github.com/WhisperSystems/Signal-iOS/issues/1340 - DDLogInfo(@"%@ Received message from group that I left or don't know about.", self.tag); + DDLogInfo(@"%@ Received message from group that I left or don't know about from: %@.", + self.tag, + incomingEnvelope.source); NSString *recipientId = incomingEnvelope.source; @@ -508,7 +510,7 @@ NS_ASSUME_NONNULL_BEGIN [[OWSSyncGroupsRequestMessage alloc] initWithThread:thread groupId:groupId]; [self.messageSender sendMessage:syncGroupsRequestMessage success:^{ - DDLogInfo(@"%@ Successfully sent Request Group Info message.", self.tag); + DDLogWarn(@"%@ Successfully sent Request Group Info message.", self.tag); } failure:^(NSError *error) { DDLogError(@"%@ Failed to send Request Group Info message with error: %@", self.tag, error); @@ -787,17 +789,24 @@ NS_ASSUME_NONNULL_BEGIN return; } - DDLogInfo(@"%@ Received 'Request Group Info' message for group: %@ from: %@", self.tag, groupId, envelope.source); + DDLogWarn(@"%@ Received 'Request Group Info' message for group: %@ from: %@", self.tag, groupId, envelope.source); [self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { TSGroupModel *emptyModelToFillOutId = [[TSGroupModel alloc] initWithTitle:nil memberIds:nil image:nil groupId:dataMessage.group.id]; TSGroupThread *gThread = [TSGroupThread threadWithGroupModel:emptyModelToFillOutId transaction:transaction]; if (!gThread) { - DDLogInfo(@"%@ Unknown group: %@", self.tag, groupId); + DDLogWarn(@"%@ Unknown group: %@", self.tag, groupId); return; } + if (![gThread.groupModel.groupMemberIds containsObject:envelope.source]) { + DDLogWarn(@"%@ Ignoring 'Request Group Info' message for non-member of group. %@ not in %@", + self.tag, + envelope.source, + gThread.groupModel.groupMemberIds); + } + NSString *updateGroupInfo = [gThread.groupModel getInfoStringAboutUpdateTo:gThread.groupModel contactsManager:self.contactsManager]; TSOutgoingMessage *message = [[TSOutgoingMessage alloc] initWithTimestamp:[NSDate ows_millisecondTimeStamp]