diff --git a/src/lib/NetworkingTab.svelte b/src/lib/NetworkingTab.svelte index c8051c3..8410561 100644 --- a/src/lib/NetworkingTab.svelte +++ b/src/lib/NetworkingTab.svelte @@ -4,6 +4,7 @@ import PanelButton from './PanelButton.svelte'; var dispatch = createEventDispatcher(); var connectionState = networkData.connectionState; + var exitNode = networkData.exitNode; function handleConnect() { connectionState.set("DOWNLOADING"); dispatch('connect'); @@ -98,6 +99,10 @@ }

Networking

- + + {#if $connectionState == "CONNECTED"} + + {/if} +

WebVM can connect to the Internet via Tailscale

Using Tailscale is required since browser do not support TCP/UDP sockets (yet!)

diff --git a/src/lib/network.js b/src/lib/network.js index e9258cf..36a9671 100644 --- a/src/lib/network.js +++ b/src/lib/network.js @@ -15,6 +15,7 @@ let loginPromise = new Promise((f,r) => { resolveLogin = f; }); let connectionState = writable("DISCONNECTED"); +let exitNode = writable(false); function loginUrlCb(url) { @@ -36,6 +37,19 @@ function stateUpdateCb(state) function netmapUpdateCb(map) { networkData.currentIp = map.self.addresses[0]; + var exitNodeFound = false; + for(var i=0;map.peers.length;i++) + { + if(map.peers[i].exitNode) + { + exitNodeFound = true; + break; + } + } + if(exitNodeFound) + { + exitNode.set(true); + } } export async function startLogin() @@ -49,4 +63,4 @@ export async function startLogin() export const networkInterface = { authKey: authKey, controlUrl: controlUrl, loginUrlCb: loginUrlCb, stateUpdateCb: stateUpdateCb, netmapUpdateCb: netmapUpdateCb }; -export const networkData = { currentIp: null, connectionState: connectionState, loginUrl: null, dashboardUrl: dashboardUrl } +export const networkData = { currentIp: null, connectionState: connectionState, exitNode: exitNode, loginUrl: null, dashboardUrl: dashboardUrl }