fix: stabilize mac nordvpn state reporting
This commit is contained in:
@@ -371,6 +371,32 @@ function shouldAttemptMacWireguardDisconnect(wireguardState) {
|
||||
return Boolean(wireguardState.configPath || wireguardState.endpoint || wireguardState.lastConnection);
|
||||
}
|
||||
|
||||
function normalizeSuccessfulConnectState(state, connectResult, verified) {
|
||||
if (
|
||||
!state ||
|
||||
state.platform !== "darwin" ||
|
||||
state.controlMode !== "wireguard" ||
|
||||
!connectResult ||
|
||||
connectResult.backend !== "wireguard" ||
|
||||
!verified ||
|
||||
!verified.ok
|
||||
) {
|
||||
return state;
|
||||
}
|
||||
|
||||
return {
|
||||
...state,
|
||||
connected: true,
|
||||
wireguard: state.wireguard
|
||||
? {
|
||||
...state.wireguard,
|
||||
active: true,
|
||||
endpoint: connectResult.server && connectResult.server.hostname ? `${connectResult.server.hostname}:51820` : state.wireguard.endpoint,
|
||||
}
|
||||
: state.wireguard,
|
||||
};
|
||||
}
|
||||
|
||||
function fetchJson(url, headers = {}) {
|
||||
return new Promise((resolve) => {
|
||||
const targetUrl = new URL(url);
|
||||
@@ -1311,6 +1337,7 @@ async function main() {
|
||||
|
||||
const verified = await verifyConnectionWithRetry(target, { attempts: 6, delayMs: 2000 });
|
||||
const refreshed = await probeInstallation(platform);
|
||||
const connectState = normalizeSuccessfulConnectState(buildStateSummary(refreshed, verified.ipInfo), connectResult, verified);
|
||||
printJson(
|
||||
{
|
||||
action,
|
||||
@@ -1318,7 +1345,7 @@ async function main() {
|
||||
connectResult,
|
||||
verified: verified.ok,
|
||||
verification: verified.ipInfo,
|
||||
state: buildStateSummary(refreshed, verified.ipInfo),
|
||||
state: connectState,
|
||||
},
|
||||
verified.ok ? 0 : 1,
|
||||
!verified.ok
|
||||
|
||||
Reference in New Issue
Block a user