Fix processing of cached envelopes

This commit is contained in:
Fedor Indutny 2025-01-22 13:09:34 -08:00 committed by GitHub
parent 96718464ef
commit 176baecf72
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 10 additions and 6 deletions

View file

@ -4825,6 +4825,7 @@ function getUnprocessedByIdsAndIncrementAttempts(
...row,
urgent: isNumber(row.urgent) ? Boolean(row.urgent) : true,
story: Boolean(row.story),
isEncrypted: Boolean(row.isEncrypted),
}));
});
}

View file

@ -403,6 +403,9 @@ export default class MessageReceiver
const ourAci = this.#storage.user.getCheckedAci();
const { content } = decoded;
strictAssert(content != null, 'Content is required for envelopes');
const envelope: ProcessedEnvelope = {
// Make non-private envelope IDs dashless so they don't get redacted
// from logs
@ -439,7 +442,7 @@ export default class MessageReceiver
)
: undefined,
timestamp: decoded.timestamp?.toNumber() ?? 0,
content: dropNull(decoded.content),
content,
serverGuid: decoded.serverGuid ?? getGuid(),
serverTimestamp,
urgent: isBoolean(decoded.urgent) ? decoded.urgent : true,
@ -895,7 +898,7 @@ export default class MessageReceiver
)
: undefined,
timestamp: item.timestamp,
content: item.isEncrypted ? item.content : undefined,
content: item.content,
serverGuid: item.serverGuid,
serverTimestamp: item.serverTimestamp,
urgent: isBoolean(item.urgent) ? item.urgent : true,
@ -1104,7 +1107,9 @@ export default class MessageReceiver
updatedPni: envelope.updatedPni,
serverGuid: envelope.serverGuid,
serverTimestamp: envelope.serverTimestamp,
decrypted: plaintext,
timestamp: envelope.timestamp,
isEncrypted: false,
content: plaintext,
};
}
);
@ -1171,8 +1176,6 @@ export default class MessageReceiver
envelope: ProcessedEnvelope,
request: IncomingWebSocketRequest
): void {
strictAssert(envelope.content, 'Content is required for envelopes');
const { id } = envelope;
const data: UnprocessedType = {
id,

View file

@ -92,7 +92,7 @@ export type ProcessedEnvelope = Readonly<{
destinationServiceId: ServiceIdString;
updatedPni: PniString | undefined;
timestamp: number;
content: Uint8Array | undefined;
content: Uint8Array;
serverGuid: string;
serverTimestamp: number;
groupId: string | undefined;