Sender Key: Use sender key expire duration from remote config
This commit is contained in:
parent
e0205ffff8
commit
3c1ccce9bd
2 changed files with 30 additions and 5 deletions
|
@ -12,17 +12,18 @@ export type ConfigKeyType =
|
|||
| 'desktop.disableGV1'
|
||||
| 'desktop.groupCallOutboundRing'
|
||||
| 'desktop.internalUser'
|
||||
| 'desktop.messageCleanup'
|
||||
| 'desktop.mandatoryProfileSharing'
|
||||
| 'desktop.mediaQuality.levels'
|
||||
| 'desktop.messageCleanup'
|
||||
| 'desktop.messageRequests'
|
||||
| 'desktop.retryReceiptLifespan'
|
||||
| 'desktop.retryRespondMaxAge'
|
||||
| 'desktop.senderKey.send'
|
||||
| 'desktop.senderKey.retry'
|
||||
| 'desktop.senderKey.send'
|
||||
| 'desktop.senderKeyMaxAge'
|
||||
| 'desktop.sendSenderKey3'
|
||||
| 'desktop.showUserBadges2'
|
||||
| 'desktop.showUserBadges.beta'
|
||||
| 'desktop.showUserBadges2'
|
||||
| 'desktop.usernames'
|
||||
| 'global.calling.maxGroupCallRingSize'
|
||||
| 'global.groupsv2.groupSizeHardLimit'
|
||||
|
|
|
@ -289,7 +289,7 @@ export async function sendToGroupViaSenderKey(options: {
|
|||
);
|
||||
|
||||
// 1. Add sender key info if we have none, or clear out if it's too old
|
||||
const THIRTY_DAYS = 30 * DAY;
|
||||
const EXPIRE_DURATION = getSenderKeyExpireDuration();
|
||||
|
||||
// Note: From here on, generally need to recurse if we change senderKeyInfo
|
||||
const senderKeyInfo = sendTarget.getSenderKeyInfo();
|
||||
|
@ -310,7 +310,7 @@ export async function sendToGroupViaSenderKey(options: {
|
|||
recursionCount: recursionCount + 1,
|
||||
});
|
||||
}
|
||||
if (isOlderThan(senderKeyInfo.createdAtDate, THIRTY_DAYS)) {
|
||||
if (isOlderThan(senderKeyInfo.createdAtDate, EXPIRE_DURATION)) {
|
||||
const { createdAtDate } = senderKeyInfo;
|
||||
log.info(
|
||||
`sendToGroupViaSenderKey/${logId}: Resetting sender key; ${createdAtDate} is too old`
|
||||
|
@ -657,6 +657,30 @@ export async function sendToGroupViaSenderKey(options: {
|
|||
|
||||
// Utility Methods
|
||||
|
||||
const MAX_SENDER_KEY_EXPIRE_DURATION = 90 * DAY;
|
||||
|
||||
function getSenderKeyExpireDuration(): number {
|
||||
try {
|
||||
const parsed = parseIntOrThrow(
|
||||
window.Signal.RemoteConfig.getValue('desktop.senderKeyMaxAge'),
|
||||
'getSenderKeyExpireDuration'
|
||||
);
|
||||
|
||||
const duration = Math.min(parsed, MAX_SENDER_KEY_EXPIRE_DURATION);
|
||||
log.info(
|
||||
`getSenderKeyExpireDuration: using expire duration of ${duration}`
|
||||
);
|
||||
|
||||
return duration;
|
||||
} catch (error) {
|
||||
log.warn(
|
||||
`getSenderKeyExpireDuration: Failed to parse integer. Using default of ${MAX_SENDER_KEY_EXPIRE_DURATION}.`,
|
||||
error && error.stack ? error.stack : error
|
||||
);
|
||||
return MAX_SENDER_KEY_EXPIRE_DURATION;
|
||||
}
|
||||
}
|
||||
|
||||
export function _shouldFailSend(error: unknown, logId: string): boolean {
|
||||
const logError = (message: string) => {
|
||||
log.error(`_shouldFailSend/${logId}: ${message}`);
|
||||
|
|
Loading…
Add table
Reference in a new issue