Import log instead of using it off of window
This commit is contained in:
parent
8eb0dd3116
commit
65ddf0a9e8
155 changed files with 3654 additions and 3433 deletions
|
@ -100,6 +100,7 @@ import {
|
|||
GroupSyncEvent,
|
||||
EnvelopeEvent,
|
||||
} from './messageReceiverEvents';
|
||||
import * as log from '../logging/log';
|
||||
|
||||
// TODO: remove once we move away from ArrayBuffers
|
||||
const FIXMEU8 = Uint8Array;
|
||||
|
@ -235,7 +236,7 @@ export default class MessageReceiver
|
|||
public handleRequest(request: IncomingWebSocketRequest): void {
|
||||
// We do the message decryption here, instead of in the ordered pending queue,
|
||||
// to avoid exposing the time it took us to process messages through the time-to-ack.
|
||||
window.log.info('MessageReceiver: got request', request.verb, request.path);
|
||||
log.info('MessageReceiver: got request', request.verb, request.path);
|
||||
if (request.path !== '/api/v1/message') {
|
||||
request.respond(200, 'OK');
|
||||
|
||||
|
@ -296,10 +297,7 @@ export default class MessageReceiver
|
|||
this.processedCount += 1;
|
||||
} catch (e) {
|
||||
request.respond(500, 'Bad encrypted websocket message');
|
||||
window.log.error(
|
||||
'Error handling incoming message:',
|
||||
Errors.toLogFormat(e)
|
||||
);
|
||||
log.error('Error handling incoming message:', Errors.toLogFormat(e));
|
||||
await this.dispatchAndWait(new ErrorEvent(e));
|
||||
}
|
||||
};
|
||||
|
@ -327,7 +325,7 @@ export default class MessageReceiver
|
|||
public async drain(): Promise<void> {
|
||||
const waitForEncryptedQueue = async () =>
|
||||
this.addToQueue(async () => {
|
||||
window.log.info('drained');
|
||||
log.info('drained');
|
||||
}, TaskType.Decrypted);
|
||||
|
||||
const waitForIncomingQueue = async () =>
|
||||
|
@ -535,7 +533,7 @@ export default class MessageReceiver
|
|||
this.cacheRemoveBatcher.flushAndWait(),
|
||||
]);
|
||||
|
||||
window.log.info("MessageReceiver: emitting 'empty' event");
|
||||
log.info("MessageReceiver: emitting 'empty' event");
|
||||
this.dispatchEvent(new EmptyEvent());
|
||||
this.isEmptied = true;
|
||||
|
||||
|
@ -543,7 +541,7 @@ export default class MessageReceiver
|
|||
};
|
||||
|
||||
const waitForDecryptedQueue = async () => {
|
||||
window.log.info(
|
||||
log.info(
|
||||
"MessageReceiver: finished processing messages after 'empty', now waiting for application"
|
||||
);
|
||||
|
||||
|
@ -589,7 +587,7 @@ export default class MessageReceiver
|
|||
}
|
||||
|
||||
private async queueCached(item: UnprocessedType): Promise<void> {
|
||||
window.log.info('MessageReceiver.queueCached', item.id);
|
||||
log.info('MessageReceiver.queueCached', item.id);
|
||||
try {
|
||||
let envelopePlaintext: Uint8Array;
|
||||
|
||||
|
@ -645,7 +643,7 @@ export default class MessageReceiver
|
|||
this.queueCachedEnvelope(item, envelope);
|
||||
}
|
||||
} catch (error) {
|
||||
window.log.error(
|
||||
log.error(
|
||||
'queueCached error handling item',
|
||||
item.id,
|
||||
'removing it. Error:',
|
||||
|
@ -656,7 +654,7 @@ export default class MessageReceiver
|
|||
const { id } = item;
|
||||
await this.storage.protocol.removeUnprocessed(id);
|
||||
} catch (deleteError) {
|
||||
window.log.error(
|
||||
log.error(
|
||||
'queueCached error deleting item',
|
||||
item.id,
|
||||
'Error:',
|
||||
|
@ -694,19 +692,19 @@ export default class MessageReceiver
|
|||
}
|
||||
|
||||
private async getAllFromCache(): Promise<Array<UnprocessedType>> {
|
||||
window.log.info('getAllFromCache');
|
||||
log.info('getAllFromCache');
|
||||
const count = await this.storage.protocol.getUnprocessedCount();
|
||||
|
||||
if (count > 1500) {
|
||||
await this.storage.protocol.removeAllUnprocessed();
|
||||
window.log.warn(
|
||||
log.warn(
|
||||
`There were ${count} messages in cache. Deleted all instead of reprocessing`
|
||||
);
|
||||
return [];
|
||||
}
|
||||
|
||||
const items = await this.storage.protocol.getAllUnprocessed();
|
||||
window.log.info('getAllFromCache loaded', items.length, 'saved envelopes');
|
||||
log.info('getAllFromCache loaded', items.length, 'saved envelopes');
|
||||
|
||||
return Promise.all(
|
||||
map(items, async item => {
|
||||
|
@ -714,10 +712,7 @@ export default class MessageReceiver
|
|||
|
||||
try {
|
||||
if (attempts >= 3) {
|
||||
window.log.warn(
|
||||
'getAllFromCache final attempt for envelope',
|
||||
item.id
|
||||
);
|
||||
log.warn('getAllFromCache final attempt for envelope', item.id);
|
||||
await this.storage.protocol.removeUnprocessed(item.id);
|
||||
} else {
|
||||
await this.storage.protocol.updateUnprocessedAttempts(
|
||||
|
@ -726,7 +721,7 @@ export default class MessageReceiver
|
|||
);
|
||||
}
|
||||
} catch (error) {
|
||||
window.log.error(
|
||||
log.error(
|
||||
'getAllFromCache error updating item after load:',
|
||||
Errors.toLogFormat(error)
|
||||
);
|
||||
|
@ -740,7 +735,7 @@ export default class MessageReceiver
|
|||
private async decryptAndCacheBatch(
|
||||
items: Array<CacheAddItemType>
|
||||
): Promise<void> {
|
||||
window.log.info('MessageReceiver.decryptAndCacheBatch', items.length);
|
||||
log.info('MessageReceiver.decryptAndCacheBatch', items.length);
|
||||
|
||||
const decrypted: Array<
|
||||
Readonly<{
|
||||
|
@ -788,7 +783,7 @@ export default class MessageReceiver
|
|||
}
|
||||
} catch (error) {
|
||||
failed.push(data);
|
||||
window.log.error(
|
||||
log.error(
|
||||
'decryptAndCache error when processing the envelope',
|
||||
Errors.toLogFormat(error)
|
||||
);
|
||||
|
@ -796,7 +791,7 @@ export default class MessageReceiver
|
|||
})
|
||||
);
|
||||
|
||||
window.log.info(
|
||||
log.info(
|
||||
'MessageReceiver.decryptAndCacheBatch storing ' +
|
||||
`${decrypted.length} decrypted envelopes, keeping ` +
|
||||
`${failed.length} failed envelopes.`
|
||||
|
@ -824,22 +819,20 @@ export default class MessageReceiver
|
|||
);
|
||||
});
|
||||
|
||||
window.log.info(
|
||||
'MessageReceiver.decryptAndCacheBatch acknowledging receipt'
|
||||
);
|
||||
log.info('MessageReceiver.decryptAndCacheBatch acknowledging receipt');
|
||||
|
||||
// Acknowledge all envelopes
|
||||
for (const { request } of items) {
|
||||
try {
|
||||
request.respond(200, 'OK');
|
||||
} catch (error) {
|
||||
window.log.error(
|
||||
log.error(
|
||||
'decryptAndCacheBatch: Failed to send 200 to server; still queuing envelope'
|
||||
);
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
window.log.error(
|
||||
log.error(
|
||||
'decryptAndCache error trying to add messages to cache:',
|
||||
Errors.toLogFormat(error)
|
||||
);
|
||||
|
@ -855,7 +848,7 @@ export default class MessageReceiver
|
|||
try {
|
||||
await this.queueDecryptedEnvelope(envelope, plaintext);
|
||||
} catch (error) {
|
||||
window.log.error(
|
||||
log.error(
|
||||
'decryptAndCache error when processing decrypted envelope',
|
||||
Errors.toLogFormat(error)
|
||||
);
|
||||
|
@ -863,7 +856,7 @@ export default class MessageReceiver
|
|||
})
|
||||
);
|
||||
|
||||
window.log.info('MessageReceiver.decryptAndCacheBatch fully processed');
|
||||
log.info('MessageReceiver.decryptAndCacheBatch fully processed');
|
||||
|
||||
this.maybeScheduleRetryTimeout();
|
||||
}
|
||||
|
@ -903,7 +896,7 @@ export default class MessageReceiver
|
|||
plaintext: Uint8Array
|
||||
): Promise<void> {
|
||||
const id = this.getEnvelopeId(envelope);
|
||||
window.log.info('queueing decrypted envelope', id);
|
||||
log.info('queueing decrypted envelope', id);
|
||||
|
||||
const task = this.handleDecryptedEnvelope.bind(this, envelope, plaintext);
|
||||
const taskWithTimeout = createTaskWithTimeout(
|
||||
|
@ -914,7 +907,7 @@ export default class MessageReceiver
|
|||
try {
|
||||
await this.addToQueue(taskWithTimeout, TaskType.Decrypted);
|
||||
} catch (error) {
|
||||
window.log.error(
|
||||
log.error(
|
||||
`queueDecryptedEnvelope error handling envelope ${id}:`,
|
||||
Errors.toLogFormat(error)
|
||||
);
|
||||
|
@ -926,7 +919,7 @@ export default class MessageReceiver
|
|||
envelope: ProcessedEnvelope
|
||||
): Promise<DecryptResult> {
|
||||
let logId = this.getEnvelopeId(envelope);
|
||||
window.log.info('queueing envelope', logId);
|
||||
log.info('queueing envelope', logId);
|
||||
|
||||
const task = createTaskWithTimeout(async (): Promise<DecryptResult> => {
|
||||
const unsealedEnvelope = await this.unsealEnvelope(stores, envelope);
|
||||
|
@ -946,9 +939,9 @@ export default class MessageReceiver
|
|||
Errors.toLogFormat(error),
|
||||
];
|
||||
if (error.warn) {
|
||||
window.log.warn(...args);
|
||||
log.warn(...args);
|
||||
} else {
|
||||
window.log.error(...args);
|
||||
log.error(...args);
|
||||
}
|
||||
throw error;
|
||||
}
|
||||
|
@ -961,7 +954,7 @@ export default class MessageReceiver
|
|||
this.decryptAndCacheBatcher.add({
|
||||
request: {
|
||||
respond(code, status) {
|
||||
window.log.info(
|
||||
log.info(
|
||||
'queueCachedEnvelope: fake response ' +
|
||||
`with code ${code} and status ${status}`
|
||||
);
|
||||
|
@ -1003,7 +996,7 @@ export default class MessageReceiver
|
|||
const logId = this.getEnvelopeId(envelope);
|
||||
|
||||
if (this.stoppingProcessing) {
|
||||
window.log.warn(`MessageReceiver.unsealEnvelope(${logId}): dropping`);
|
||||
log.warn(`MessageReceiver.unsealEnvelope(${logId}): dropping`);
|
||||
throw new Error('Sealed envelope dropped due to stopping processing');
|
||||
}
|
||||
|
||||
|
@ -1017,9 +1010,7 @@ export default class MessageReceiver
|
|||
throw new Error('Received message with no content and no legacyMessage');
|
||||
}
|
||||
|
||||
window.log.info(
|
||||
`MessageReceiver.unsealEnvelope(${logId}): unidentified message`
|
||||
);
|
||||
log.info(`MessageReceiver.unsealEnvelope(${logId}): unidentified message`);
|
||||
const messageContent = await sealedSenderDecryptToUsmc(
|
||||
Buffer.from(ciphertext),
|
||||
stores.identityKeyStore
|
||||
|
@ -1065,9 +1056,7 @@ export default class MessageReceiver
|
|||
const logId = this.getEnvelopeId(envelope);
|
||||
|
||||
if (this.stoppingProcessing) {
|
||||
window.log.warn(
|
||||
`MessageReceiver.decryptEnvelope(${logId}): dropping unsealed`
|
||||
);
|
||||
log.warn(`MessageReceiver.decryptEnvelope(${logId}): dropping unsealed`);
|
||||
throw new Error('Unsealed envelope dropped due to stopping processing');
|
||||
}
|
||||
|
||||
|
@ -1091,13 +1080,13 @@ export default class MessageReceiver
|
|||
);
|
||||
}
|
||||
|
||||
window.log.info(
|
||||
log.info(
|
||||
`MessageReceiver.decryptEnvelope(${logId})${isLegacy ? ' (legacy)' : ''}`
|
||||
);
|
||||
const plaintext = await this.decrypt(stores, envelope, ciphertext);
|
||||
|
||||
if (!plaintext) {
|
||||
window.log.warn('MessageReceiver.decryptEnvelope: plaintext was falsey');
|
||||
log.warn('MessageReceiver.decryptEnvelope: plaintext was falsey');
|
||||
return { plaintext, envelope };
|
||||
}
|
||||
|
||||
|
@ -1122,7 +1111,7 @@ export default class MessageReceiver
|
|||
);
|
||||
}
|
||||
} catch (error) {
|
||||
window.log.error(
|
||||
log.error(
|
||||
'MessageReceiver.decryptEnvelope: Failed to process sender ' +
|
||||
`key distribution message: ${Errors.toLogFormat(error)}`
|
||||
);
|
||||
|
@ -1132,7 +1121,7 @@ export default class MessageReceiver
|
|||
(envelope.source && this.isBlocked(envelope.source)) ||
|
||||
(envelope.sourceUuid && this.isUuidBlocked(envelope.sourceUuid))
|
||||
) {
|
||||
window.log.info(
|
||||
log.info(
|
||||
'MessageReceiver.decryptEnvelope: Dropping message from blocked sender'
|
||||
);
|
||||
return { plaintext: undefined, envelope };
|
||||
|
@ -1256,7 +1245,7 @@ export default class MessageReceiver
|
|||
if (
|
||||
messageContent.msgType() === unidentifiedSenderTypeEnum.PLAINTEXT_CONTENT
|
||||
) {
|
||||
window.log.info(
|
||||
log.info(
|
||||
`MessageReceiver.decryptSealedSender(${logId}): ` +
|
||||
'unidentified message/plaintext contents'
|
||||
);
|
||||
|
@ -1272,7 +1261,7 @@ export default class MessageReceiver
|
|||
if (
|
||||
messageContent.msgType() === unidentifiedSenderTypeEnum.SENDERKEY_MESSAGE
|
||||
) {
|
||||
window.log.info(
|
||||
log.info(
|
||||
`MessageReceiver.decryptSealedSender(${logId}): ` +
|
||||
'unidentified message/sender key contents'
|
||||
);
|
||||
|
@ -1301,7 +1290,7 @@ export default class MessageReceiver
|
|||
return { plaintext };
|
||||
}
|
||||
|
||||
window.log.info(
|
||||
log.info(
|
||||
`MessageReceiver.decryptSealedSender(${logId}): ` +
|
||||
'unidentified message/passing to sealedSenderDecryptMessage'
|
||||
);
|
||||
|
@ -1369,14 +1358,14 @@ export default class MessageReceiver
|
|||
);
|
||||
|
||||
if (envelope.type === envelopeTypeEnum.PLAINTEXT_CONTENT) {
|
||||
window.log.info(`decrypt/${logId}: plaintext message`);
|
||||
log.info(`decrypt/${logId}: plaintext message`);
|
||||
const buffer = Buffer.from(ciphertext);
|
||||
const plaintextContent = PlaintextContent.deserialize(buffer);
|
||||
|
||||
return this.unpad(plaintextContent.body());
|
||||
}
|
||||
if (envelope.type === envelopeTypeEnum.CIPHERTEXT) {
|
||||
window.log.info(`decrypt/${logId}: ciphertext message`);
|
||||
log.info(`decrypt/${logId}: ciphertext message`);
|
||||
if (!identifier) {
|
||||
throw new Error(
|
||||
'MessageReceiver.innerDecrypt: No identifier for CIPHERTEXT message'
|
||||
|
@ -1405,7 +1394,7 @@ export default class MessageReceiver
|
|||
return plaintext;
|
||||
}
|
||||
if (envelope.type === envelopeTypeEnum.PREKEY_BUNDLE) {
|
||||
window.log.info(`decrypt/${logId}: prekey message`);
|
||||
log.info(`decrypt/${logId}: prekey message`);
|
||||
if (!identifier) {
|
||||
throw new Error(
|
||||
'MessageReceiver.innerDecrypt: No identifier for PREKEY_BUNDLE message'
|
||||
|
@ -1438,7 +1427,7 @@ export default class MessageReceiver
|
|||
return plaintext;
|
||||
}
|
||||
if (envelope.type === envelopeTypeEnum.UNIDENTIFIED_SENDER) {
|
||||
window.log.info(`decrypt/${logId}: unidentified message`);
|
||||
log.info(`decrypt/${logId}: unidentified message`);
|
||||
const { plaintext, unsealedPlaintext } = await this.decryptSealedSender(
|
||||
stores,
|
||||
envelope,
|
||||
|
@ -1503,7 +1492,7 @@ export default class MessageReceiver
|
|||
(envelope.source && this.isBlocked(envelope.source)) ||
|
||||
(envelope.sourceUuid && this.isUuidBlocked(envelope.sourceUuid))
|
||||
) {
|
||||
window.log.info(
|
||||
log.info(
|
||||
'MessageReceiver.decrypt: Error from blocked sender; no further processing'
|
||||
);
|
||||
throw error;
|
||||
|
@ -1532,7 +1521,7 @@ export default class MessageReceiver
|
|||
);
|
||||
} else {
|
||||
const envelopeId = this.getEnvelopeId(envelope);
|
||||
window.log.error(
|
||||
log.error(
|
||||
`MessageReceiver.decrypt: Envelope ${envelopeId} missing uuid or deviceId`
|
||||
);
|
||||
}
|
||||
|
@ -1545,10 +1534,7 @@ export default class MessageReceiver
|
|||
envelope: ProcessedEnvelope,
|
||||
sentContainer: ProcessedSent
|
||||
) {
|
||||
window.log.info(
|
||||
'MessageReceiver.handleSentMessage',
|
||||
this.getEnvelopeId(envelope)
|
||||
);
|
||||
log.info('MessageReceiver.handleSentMessage', this.getEnvelopeId(envelope));
|
||||
const {
|
||||
destination,
|
||||
destinationUuid,
|
||||
|
@ -1573,9 +1559,7 @@ export default class MessageReceiver
|
|||
if (theirUuid) {
|
||||
p = this.handleEndSession(theirUuid);
|
||||
} else {
|
||||
window.log.warn(
|
||||
`handleSentMessage: uuid not found for ${destination}`
|
||||
);
|
||||
log.warn(`handleSentMessage: uuid not found for ${destination}`);
|
||||
p = Promise.resolve();
|
||||
}
|
||||
} else {
|
||||
|
@ -1602,7 +1586,7 @@ export default class MessageReceiver
|
|||
);
|
||||
|
||||
if (groupId && isBlocked && !(isMe && isLeavingGroup)) {
|
||||
window.log.warn(
|
||||
log.warn(
|
||||
`Message ${this.getEnvelopeId(
|
||||
envelope
|
||||
)} ignored; destined for blocked group`
|
||||
|
@ -1636,10 +1620,7 @@ export default class MessageReceiver
|
|||
envelope: UnsealedEnvelope,
|
||||
msg: Proto.IDataMessage
|
||||
): Promise<void> {
|
||||
window.log.info(
|
||||
'MessageReceiver.handleDataMessage',
|
||||
this.getEnvelopeId(envelope)
|
||||
);
|
||||
log.info('MessageReceiver.handleDataMessage', this.getEnvelopeId(envelope));
|
||||
let p: Promise<void> = Promise.resolve();
|
||||
// eslint-disable-next-line no-bitwise
|
||||
const destination = envelope.sourceUuid;
|
||||
|
@ -1691,7 +1672,7 @@ export default class MessageReceiver
|
|||
);
|
||||
|
||||
if (groupId && isBlocked && !(isMe && isLeavingGroup)) {
|
||||
window.log.warn(
|
||||
log.warn(
|
||||
`Message ${this.getEnvelopeId(
|
||||
envelope
|
||||
)} ignored; destined for blocked group`
|
||||
|
@ -1733,9 +1714,7 @@ export default class MessageReceiver
|
|||
): Promise<ProcessedEnvelope> {
|
||||
const { retryPlaceholders } = window.Signal.Services;
|
||||
if (!retryPlaceholders) {
|
||||
window.log.warn(
|
||||
'maybeUpdateTimestamp: retry placeholders not available!'
|
||||
);
|
||||
log.warn('maybeUpdateTimestamp: retry placeholders not available!');
|
||||
return envelope;
|
||||
}
|
||||
|
||||
|
@ -1745,7 +1724,7 @@ export default class MessageReceiver
|
|||
|
||||
try {
|
||||
if (!conversation) {
|
||||
window.log.info(
|
||||
log.info(
|
||||
`maybeUpdateTimestamp/${timestamp}: No conversation found for identifier ${identifier}`
|
||||
);
|
||||
return envelope;
|
||||
|
@ -1757,11 +1736,11 @@ export default class MessageReceiver
|
|||
timestamp
|
||||
);
|
||||
if (item && item.wasOpened) {
|
||||
window.log.info(
|
||||
log.info(
|
||||
`maybeUpdateTimestamp/${logId}: found retry placeholder, but conversation was opened. No updates made.`
|
||||
);
|
||||
} else if (item) {
|
||||
window.log.info(
|
||||
log.info(
|
||||
`maybeUpdateTimestamp/${logId}: found retry placeholder. Updating receivedAtCounter/receivedAtDate`
|
||||
);
|
||||
|
||||
|
@ -1772,7 +1751,7 @@ export default class MessageReceiver
|
|||
};
|
||||
}
|
||||
} catch (error) {
|
||||
window.log.error(
|
||||
log.error(
|
||||
`maybeUpdateTimestamp/${timestamp}: Failed to process message: ${Errors.toLogFormat(
|
||||
error
|
||||
)}`
|
||||
|
@ -1839,7 +1818,7 @@ export default class MessageReceiver
|
|||
decryptionError: Uint8Array
|
||||
) {
|
||||
const logId = this.getEnvelopeId(envelope);
|
||||
window.log.info(`handleDecryptionError: ${logId}`);
|
||||
log.info(`handleDecryptionError: ${logId}`);
|
||||
|
||||
const buffer = Buffer.from(decryptionError);
|
||||
const request = DecryptionErrorMessage.deserialize(buffer);
|
||||
|
@ -1848,9 +1827,7 @@ export default class MessageReceiver
|
|||
|
||||
const { sourceUuid, sourceDevice } = envelope;
|
||||
if (!sourceUuid || !sourceDevice) {
|
||||
window.log.error(
|
||||
`handleDecryptionError/${logId}: Missing uuid or device!`
|
||||
);
|
||||
log.error(`handleDecryptionError/${logId}: Missing uuid or device!`);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1871,7 +1848,7 @@ export default class MessageReceiver
|
|||
distributionMessage: Uint8Array
|
||||
): Promise<void> {
|
||||
const envelopeId = this.getEnvelopeId(envelope);
|
||||
window.log.info(`handleSenderKeyDistributionMessage/${envelopeId}`);
|
||||
log.info(`handleSenderKeyDistributionMessage/${envelopeId}`);
|
||||
|
||||
// Note: we don't call removeFromCache here because this message can be combined
|
||||
// with a dataMessage, for example. That processing will dictate cache removal.
|
||||
|
@ -1974,7 +1951,7 @@ export default class MessageReceiver
|
|||
const typingTimestamp = normalizeNumber(typingMessage.timestamp);
|
||||
|
||||
if (typingTimestamp !== envelopeTimestamp) {
|
||||
window.log.warn(
|
||||
log.warn(
|
||||
`Typing message envelope timestamp (${envelopeTimestamp}) did not match typing timestamp (${typingTimestamp})`
|
||||
);
|
||||
return;
|
||||
|
@ -1997,7 +1974,7 @@ export default class MessageReceiver
|
|||
} else if (groupId.byteLength === GROUPV2_ID_LENGTH) {
|
||||
groupV2IdString = Bytes.toBase64(groupId);
|
||||
} else {
|
||||
window.log.error('handleTypingMessage: Received invalid groupId value');
|
||||
log.error('handleTypingMessage: Received invalid groupId value');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2020,10 +1997,7 @@ export default class MessageReceiver
|
|||
}
|
||||
|
||||
private handleNullMessage(envelope: ProcessedEnvelope): void {
|
||||
window.log.info(
|
||||
'MessageReceiver.handleNullMessage',
|
||||
this.getEnvelopeId(envelope)
|
||||
);
|
||||
log.info('MessageReceiver.handleNullMessage', this.getEnvelopeId(envelope));
|
||||
this.removeFromCache(envelope);
|
||||
}
|
||||
|
||||
|
@ -2039,7 +2013,7 @@ export default class MessageReceiver
|
|||
const isInvalid = id.byteLength !== GROUPV1_ID_LENGTH;
|
||||
|
||||
if (isInvalid) {
|
||||
window.log.info(
|
||||
log.info(
|
||||
'isInvalidGroupData: invalid GroupV1 message from',
|
||||
this.getEnvelopeId(envelope)
|
||||
);
|
||||
|
@ -2054,7 +2028,7 @@ export default class MessageReceiver
|
|||
const isInvalid = masterKey.byteLength !== MASTER_KEY_LENGTH;
|
||||
|
||||
if (isInvalid) {
|
||||
window.log.info(
|
||||
log.info(
|
||||
'isInvalidGroupData: invalid GroupV2 message from',
|
||||
this.getEnvelopeId(envelope)
|
||||
);
|
||||
|
@ -2173,7 +2147,7 @@ export default class MessageReceiver
|
|||
|
||||
strictAssert(sentMessage.timestamp, 'sent message without timestamp');
|
||||
|
||||
window.log.info(
|
||||
log.info(
|
||||
'sent message to',
|
||||
this.getDestination(sentMessage),
|
||||
normalizeNumber(sentMessage.timestamp),
|
||||
|
@ -2194,7 +2168,7 @@ export default class MessageReceiver
|
|||
return this.handleBlocked(envelope, syncMessage.blocked);
|
||||
}
|
||||
if (syncMessage.request) {
|
||||
window.log.info('Got SyncMessage Request');
|
||||
log.info('Got SyncMessage Request');
|
||||
this.removeFromCache(envelope);
|
||||
return undefined;
|
||||
}
|
||||
|
@ -2236,7 +2210,7 @@ export default class MessageReceiver
|
|||
}
|
||||
|
||||
this.removeFromCache(envelope);
|
||||
window.log.warn(
|
||||
log.warn(
|
||||
`handleSyncMessage/${this.getEnvelopeId(envelope)}: Got empty SyncMessage`
|
||||
);
|
||||
return Promise.resolve();
|
||||
|
@ -2246,7 +2220,7 @@ export default class MessageReceiver
|
|||
envelope: ProcessedEnvelope,
|
||||
configuration: Proto.SyncMessage.IConfiguration
|
||||
): Promise<void> {
|
||||
window.log.info('got configuration sync message');
|
||||
log.info('got configuration sync message');
|
||||
const ev = new ConfigurationEvent(
|
||||
configuration,
|
||||
this.removeFromCache.bind(this, envelope)
|
||||
|
@ -2258,7 +2232,7 @@ export default class MessageReceiver
|
|||
envelope: ProcessedEnvelope,
|
||||
sync: Proto.SyncMessage.IViewOnceOpen
|
||||
): Promise<void> {
|
||||
window.log.info('got view once open sync message');
|
||||
log.info('got view once open sync message');
|
||||
|
||||
const ev = new ViewOnceOpenSyncEvent(
|
||||
{
|
||||
|
@ -2278,7 +2252,7 @@ export default class MessageReceiver
|
|||
envelope: ProcessedEnvelope,
|
||||
sync: Proto.SyncMessage.IMessageRequestResponse
|
||||
): Promise<void> {
|
||||
window.log.info('got message request response sync message');
|
||||
log.info('got message request response sync message');
|
||||
|
||||
const { groupId } = sync;
|
||||
|
||||
|
@ -2292,7 +2266,7 @@ export default class MessageReceiver
|
|||
groupV2IdString = Bytes.toBase64(groupId);
|
||||
} else {
|
||||
this.removeFromCache(envelope);
|
||||
window.log.error('Received message request with invalid groupId');
|
||||
log.error('Received message request with invalid groupId');
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
@ -2320,7 +2294,7 @@ export default class MessageReceiver
|
|||
envelope: ProcessedEnvelope,
|
||||
sync: Proto.SyncMessage.IFetchLatest
|
||||
): Promise<void> {
|
||||
window.log.info('got fetch latest sync message');
|
||||
log.info('got fetch latest sync message');
|
||||
|
||||
const ev = new FetchLatestEvent(
|
||||
sync.type,
|
||||
|
@ -2334,7 +2308,7 @@ export default class MessageReceiver
|
|||
envelope: ProcessedEnvelope,
|
||||
sync: Proto.SyncMessage.IKeys
|
||||
): Promise<void> {
|
||||
window.log.info('got keys sync message');
|
||||
log.info('got keys sync message');
|
||||
|
||||
if (!sync.storageService) {
|
||||
return undefined;
|
||||
|
@ -2353,7 +2327,7 @@ export default class MessageReceiver
|
|||
operations: Array<Proto.SyncMessage.IStickerPackOperation>
|
||||
): Promise<void> {
|
||||
const ENUM = Proto.SyncMessage.StickerPackOperation.Type;
|
||||
window.log.info('got sticker pack operation sync message');
|
||||
log.info('got sticker pack operation sync message');
|
||||
|
||||
const stickerPacks = operations.map(operation => ({
|
||||
id: operation.packId ? Bytes.toHex(operation.packId) : undefined,
|
||||
|
@ -2397,7 +2371,7 @@ export default class MessageReceiver
|
|||
envelope: ProcessedEnvelope,
|
||||
read: Array<Proto.SyncMessage.IRead>
|
||||
): Promise<void> {
|
||||
window.log.info('MessageReceiver.handleRead', this.getEnvelopeId(envelope));
|
||||
log.info('MessageReceiver.handleRead', this.getEnvelopeId(envelope));
|
||||
const results = [];
|
||||
for (const { timestamp, sender, senderUuid } of read) {
|
||||
const ev = new ReadSyncEvent(
|
||||
|
@ -2420,10 +2394,7 @@ export default class MessageReceiver
|
|||
envelope: ProcessedEnvelope,
|
||||
viewed: ReadonlyArray<Proto.SyncMessage.IViewed>
|
||||
): Promise<void> {
|
||||
window.log.info(
|
||||
'MessageReceiver.handleViewed',
|
||||
this.getEnvelopeId(envelope)
|
||||
);
|
||||
log.info('MessageReceiver.handleViewed', this.getEnvelopeId(envelope));
|
||||
await Promise.all(
|
||||
viewed.map(async ({ timestamp, senderE164, senderUuid }) => {
|
||||
const ev = new ViewSyncEvent(
|
||||
|
@ -2446,7 +2417,7 @@ export default class MessageReceiver
|
|||
envelope: ProcessedEnvelope,
|
||||
contacts: Proto.SyncMessage.IContacts
|
||||
): Promise<void> {
|
||||
window.log.info('contact sync');
|
||||
log.info('contact sync');
|
||||
const { blob } = contacts;
|
||||
if (!blob) {
|
||||
throw new Error('MessageReceiver.handleContacts: blob field was missing');
|
||||
|
@ -2472,14 +2443,14 @@ export default class MessageReceiver
|
|||
|
||||
await Promise.all(results);
|
||||
|
||||
window.log.info('handleContacts: finished');
|
||||
log.info('handleContacts: finished');
|
||||
}
|
||||
|
||||
private async handleGroups(
|
||||
envelope: ProcessedEnvelope,
|
||||
groups: Proto.SyncMessage.IGroups
|
||||
): Promise<void> {
|
||||
window.log.info('group sync');
|
||||
log.info('group sync');
|
||||
const { blob } = groups;
|
||||
|
||||
this.removeFromCache(envelope);
|
||||
|
@ -2499,7 +2470,7 @@ export default class MessageReceiver
|
|||
strictAssert(id, 'Group details without id');
|
||||
|
||||
if (id.byteLength !== 16) {
|
||||
window.log.error(
|
||||
log.error(
|
||||
`onGroupReceived: Id was ${id} bytes, expected 16 bytes. Dropping group.`
|
||||
);
|
||||
continue;
|
||||
|
@ -2510,7 +2481,7 @@ export default class MessageReceiver
|
|||
id: Bytes.toBinary(id),
|
||||
});
|
||||
const promise = this.dispatchAndWait(ev).catch(e => {
|
||||
window.log.error('error processing group', e);
|
||||
log.error('error processing group', e);
|
||||
});
|
||||
groupDetails = groupBuffer.next();
|
||||
promises.push(promise);
|
||||
|
@ -2526,7 +2497,7 @@ export default class MessageReceiver
|
|||
envelope: ProcessedEnvelope,
|
||||
blocked: Proto.SyncMessage.IBlocked
|
||||
): Promise<void> {
|
||||
window.log.info('Setting these numbers as blocked:', blocked.numbers);
|
||||
log.info('Setting these numbers as blocked:', blocked.numbers);
|
||||
if (blocked.numbers) {
|
||||
await this.storage.put('blocked', blocked.numbers);
|
||||
}
|
||||
|
@ -2534,12 +2505,12 @@ export default class MessageReceiver
|
|||
const uuids = blocked.uuids.map((uuid, index) => {
|
||||
return normalizeUuid(uuid, `handleBlocked.uuids.${index}`);
|
||||
});
|
||||
window.log.info('Setting these uuids as blocked:', uuids);
|
||||
log.info('Setting these uuids as blocked:', uuids);
|
||||
await this.storage.put('blocked-uuids', uuids);
|
||||
}
|
||||
|
||||
const groupIds = map(blocked.groupIds, groupId => Bytes.toBinary(groupId));
|
||||
window.log.info(
|
||||
log.info(
|
||||
'Setting these groups as blocked:',
|
||||
groupIds.map(groupId => `group(${groupId})`)
|
||||
);
|
||||
|
@ -2568,9 +2539,7 @@ export default class MessageReceiver
|
|||
}
|
||||
|
||||
private async handleEndSession(theirUuid: UUID): Promise<void> {
|
||||
window.log.info(
|
||||
`handleEndSession: closing sessions for ${theirUuid.toString()}`
|
||||
);
|
||||
log.info(`handleEndSession: closing sessions for ${theirUuid.toString()}`);
|
||||
await this.storage.protocol.archiveAllSessions(theirUuid);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue