From 749bd6bedae7fb5c2b6b65b65d8badcaf457939f Mon Sep 17 00:00:00 2001 From: automated-signal <37887102+automated-signal@users.noreply.github.com> Date: Mon, 15 Nov 2021 17:49:48 -0800 Subject: [PATCH] Update protos with planned changes for stories Co-authored-by: Scott Nonnenberg --- protos/SignalService.proto | 14 ++++++++++++++ ts/textsecure/MessageReceiver.ts | 20 +++++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/protos/SignalService.proto b/protos/SignalService.proto index 3e4a1f35cf3..e8a8ab7b20a 100644 --- a/protos/SignalService.proto +++ b/protos/SignalService.proto @@ -43,6 +43,7 @@ message Content { optional TypingMessage typingMessage = 6; optional bytes senderKeyDistributionMessage = 7; optional bytes decryptionErrorMessage = 8; + optional StoryMessage storyMessage = 9; } // Everything in CallingMessage must be kept in sync with RingRTC (ringrtc-node). @@ -248,6 +249,11 @@ message DataMessage { optional string eraId = 1; } + message StoryContext { + optional string authorUuid = 1; + optional uint64 sentTimestamp = 2; + } + enum ProtocolVersion { option allow_alias = true; @@ -280,6 +286,8 @@ message DataMessage { optional Delete delete = 17; repeated BodyRange bodyRanges = 18; optional GroupCallUpdate groupCallUpdate = 19; + reserved /* Payment payment */ 20; + optional StoryContext storyContext = 21; } message NullMessage { @@ -308,6 +316,12 @@ message TypingMessage { optional bytes groupId = 3; } +message StoryMessage { + optional bytes profileKey = 1; + optional GroupContextV2 group = 2; + optional AttachmentPointer attachment = 3; +} + message Verified { enum State { DEFAULT = 0; diff --git a/ts/textsecure/MessageReceiver.ts b/ts/textsecure/MessageReceiver.ts index c9b5996b279..0078f0213c6 100644 --- a/ts/textsecure/MessageReceiver.ts +++ b/ts/textsecure/MessageReceiver.ts @@ -1607,7 +1607,17 @@ export default class MessageReceiver envelope: UnsealedEnvelope, msg: Proto.IDataMessage ): Promise { - log.info('MessageReceiver.handleDataMessage', this.getEnvelopeId(envelope)); + const logId = this.getEnvelopeId(envelope); + log.info('MessageReceiver.handleDataMessage', logId); + + if (msg.storyContext) { + log.info( + `MessageReceiver.handleDataMessage/${logId}: Dropping incoming dataMessage with storyContext field` + ); + this.removeFromCache(envelope); + return undefined; + } + let p: Promise = Promise.resolve(); // eslint-disable-next-line no-bitwise const destination = envelope.sourceUuid; @@ -1792,6 +1802,14 @@ export default class MessageReceiver await this.handleTypingMessage(envelope, content.typingMessage); return; } + if (content.storyMessage) { + const logId = this.getEnvelopeId(envelope); + log.info( + `innerHandleContentMessage/${logId}: Dropping incoming message with storyMessage field` + ); + this.removeFromCache(envelope); + return; + } this.removeFromCache(envelope);