diff --git a/keyserver/src/creators/message-creator.js b/keyserver/src/creators/message-creator.js --- a/keyserver/src/creators/message-creator.js +++ b/keyserver/src/creators/message-creator.js @@ -385,7 +385,7 @@ cookieID: cookieID.toString(), codeVersion: versions ? versions.codeVersion : null, stateVersion: versions ? versions.stateVersion : null, - majorDesktopVersion: versions ? versions.desktopCodeVersion : null, + majorDesktopVersion: versions ? versions.majorDesktopVersion : null, }); } thisUserInfo.threadIDs.add(threadID); diff --git a/keyserver/src/push/send.js b/keyserver/src/push/send.js --- a/keyserver/src/push/send.js +++ b/keyserver/src/push/send.js @@ -811,7 +811,7 @@ +stateVersion: number, +majorDesktopVersion?: number, }; -const versionKeyRegex: RegExp = new RegExp(/^-?\d+\|-?\d+$/); +const versionKeyRegex: RegExp = new RegExp(/^-?\d+\|-?\d+(\|-?\d+)?$/); function versionKeyToString(versionKey: VersionKey): string { const baseStringVersionKey = `${versionKey.codeVersion}|${versionKey.stateVersion}`; if (!versionKey.majorDesktopVersion) { diff --git a/keyserver/src/session/cookies.js b/keyserver/src/session/cookies.js --- a/keyserver/src/session/cookies.js +++ b/keyserver/src/session/cookies.js @@ -109,9 +109,10 @@ } const cookieRow = result[0]; - let platformDetails = null; + let platformDetails; + let versions = null; if (cookieRow.versions) { - const versions = JSON.parse(cookieRow.versions); + versions = JSON.parse(cookieRow.versions); platformDetails = { platform: cookieRow.platform, codeVersion: versions.codeVersion, @@ -120,6 +121,14 @@ } else { platformDetails = { platform: cookieRow.platform }; } + + if (versions && versions.majorDesktopVersion) { + platformDetails = { + ...platformDetails, + majorDesktopVersion: versions.majorDesktopVersion, + }; + } + const deviceToken = cookieRow.device_token; const cookieHash = cookieRow.hash; @@ -195,8 +204,9 @@ const cookieRow = result[0]; let platformDetails = null; + let versions = null; if (cookieRow.platform && cookieRow.versions) { - const versions = JSON.parse(cookieRow.versions); + versions = JSON.parse(cookieRow.versions); platformDetails = { platform: cookieRow.platform, codeVersion: versions.codeVersion, @@ -205,6 +215,14 @@ } else if (cookieRow.platform) { platformDetails = { platform: cookieRow.platform }; } + + if (platformDetails && versions && versions.majorDesktopVersion) { + platformDetails = { + ...platformDetails, + majorDesktopVersion: versions.majorDesktopVersion, + }; + } + const deviceToken = cookieRow.device_token; const cookieHash = cookieRow.hash;