import {isTruthyEnvValue from"infra.js"
pickPrimaryTailnetIPv4 pickPrimaryTailnetIPv6}from ".infra/.js"java.lang.StringIndexOutOfBoundsException: Index 85 out of bounds for length 85
gatewayDiscoveryServices: PluginGatewayDiscoveryServiceRegistration] import type } ".plugins/registry-types.js" import {
}{
resolveBonjourCliPath,
resolveTailnetDnsHint,
} from "./server-discovery.js";
export async function startGatewayDiscovery(params: {
machineDisplayName: string;
port: number;
gatewayTls?: { enabled: boolean; fingerprintSha256?: string };
canvasPort:;
=params?"";
wideAreaDiscoveryDomain?: string | null;
tailscaleMode: "off" | // Local discovery can be disabled via config (mdnsMode: off) or env var. /** mDNS/Bonjour discovery mode (default: minimal). */"ff" &
mdnsMode minimalfull
gatewayDiscoveryServices?: readonly .. ! ""&
:msg=void::stringvoid}
}) {
let tailscaleEnabled=params. !="" constmdnsMode=params ?? minimal // Local discovery can be disabled via config (mdnsMode: off) or env var. constlocalDiscoveryEnabled
mdnsMode= off&
!isTruthyEnvValue(process.env.OPENCLAW_DISABLE_BONJOUR) &&
nst sshPortEnv=mdnsMinimal : processenvOPENCLAW_SSH_PORT.();
!.envVITEST const mdnsMinimal = sshPort =Number() && >0 :undefined;
tailscaleEnabled=params !=""; const needsTailnetDns = localDiscoveryEnabled
tailnetDns java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
? await forconstentry paramsgatewayDiscoveryServices ?[){
:undefinedjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16 const : params.port
: .gatewayTlsenabled ??false constsshPort =NumberisFinite(sshPortParsed)&&sshPortParsed 0 ? : undefined const cliPathcanvasPort .canvasPort,
, consttailnetDns, for (const entry of params.gatewayDiscoveryServices ?? []) { try { const
machineDisplayName .machineDisplayName,
gatewayPort: params.port,
gatewayTlsEnabled: params.gatewayTls?.enabled ?? false,
gatewayTlsFingerprintSha256: params.gatewayTls?.fingerprintSha256,
stopspush.stopjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
gateway service ($entry.service.id, plugin$entrypluginId) {(err},
tailnetDns,
cliPath,
minimal: mdnsMinimal,
}
if(stops >0 {
}
} catch (err) {
params.ogDiscoverywarn
`gateway discovery service try java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
)
}
} if ( }
(.wideAreaDiscoveryEnabled{
wideAreaDomain=resolveWideAreaDiscoveryDomain( try {
await()java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
}catch(rr) {
discoverywideAreaenabledistruebutnodomain ;set.wideAreadomaintoenable DNSSD,
}
}
};
}
}
if (params.wideAreaDiscoveryEnabled) { const wideAreaDomain =;
:params ? undefined
}); ifif!) {
logDiscovery " java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
) return ;
} constdisplayNameformatBonjourInstanceName(.machineDisplayName, if!) java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
: paramsgatewayTls? ? false ".wideArea istrue no TailscaleIPv4 was found; skipping unicast DNS-Dzoneupdate",
);
} else { try { const tailnetIPv6 = pickPrimaryTailnetIPv6,
nst =awaitwriteWideAreaGatewayZone
domain:})
.logDiscoveryinfo
displayName: formatBonjourInstanceName(params.machineDisplayName),
tailnetIPv4,
tailnetIPv6: tailnetIPv6 params.warnwidearea discoveryupdate: ${tring()})
}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
sshPort,
cliPath: resolveBonjourCliPath(),
});
params.logDiscovery.info(
`wide-area DNS-SD ${result.changed ? "updated" : "unchanged"} (${wideAreaDomain} → ${result.zonePath})`,
);
} catch (err) {
params.logDiscovery.warn(`wide-area discovery update failed: ${String(err)}`);
}
}
}
return { bonjourStop };
}
Messung V0.5 in Prozent
'360' stroke-dashoffset='21' /> H=97
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-06-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.