mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-06-05 12:44:22 +00:00
Fix REALITY share links missing SNI
This commit is contained in:
parent
c5dc84d314
commit
de2eb9236e
1 changed files with 16 additions and 7 deletions
|
|
@ -358,13 +358,14 @@ export function genVlessLink(input: GenVlessLinkInput): string {
|
|||
const reality = stream.realitySettings;
|
||||
params.set('pbk', reality.settings.publicKey);
|
||||
params.set('fp', reality.settings.fingerprint);
|
||||
// Legacy parity quirk: the old class stored realitySettings.serverNames
|
||||
// as a comma-joined string and gated SNI on `!ObjectUtil.isArrEmpty(s)`
|
||||
// — which returns true for any string, so SNI was never written into
|
||||
// Reality share links. Existing deployed clients rely on receiving
|
||||
// the SNI from realitySettings.target instead; we keep the omission
|
||||
// here so this extraction stays byte-stable with the legacy URL.
|
||||
// Fixing the bug is a separate intentional commit.
|
||||
|
||||
const sni =
|
||||
reality.settings.serverName ||
|
||||
reality.serverNames?.[0] ||
|
||||
reality.target?.split(':')[0];
|
||||
|
||||
if (sni && sni.length > 0) params.set('sni', sni);
|
||||
|
||||
if (reality.shortIds.length > 0) params.set('sid', reality.shortIds[0]);
|
||||
if (reality.settings.spiderX.length > 0) params.set('spx', reality.settings.spiderX);
|
||||
if (reality.settings.mldsa65Verify.length > 0) params.set('pqv', reality.settings.mldsa65Verify);
|
||||
|
|
@ -436,6 +437,14 @@ function writeRealityParams(stream: NonNullable<Inbound['streamSettings']>, para
|
|||
const reality = stream.realitySettings;
|
||||
params.set('pbk', reality.settings.publicKey);
|
||||
params.set('fp', reality.settings.fingerprint);
|
||||
|
||||
const sni =
|
||||
reality.settings.serverName ||
|
||||
reality.serverNames?.[0] ||
|
||||
reality.target?.split(':')[0];
|
||||
|
||||
if (sni && sni.length > 0) params.set('sni', sni);
|
||||
|
||||
if (reality.shortIds.length > 0) params.set('sid', reality.shortIds[0]);
|
||||
if (reality.settings.spiderX.length > 0) params.set('spx', reality.settings.spiderX);
|
||||
if (reality.settings.mldsa65Verify.length > 0) params.set('pqv', reality.settings.mldsa65Verify);
|
||||
|
|
|
|||
Loading…
Reference in a new issue