cont: fix(frontend): dont assume wss for panel pingtest as well (#6421)

* fix(frontend): dont assume wss for panel pingtest as well

* fix(frontend): wss assumptions

* chore: fix export

* chore: prettier
This commit is contained in:
François-Xavier Talbot
2026-06-17 18:54:09 -04:00
committed by GitHub
parent 336050f4df
commit 486b467af2
3 changed files with 18 additions and 5 deletions
@@ -344,7 +344,7 @@
<script setup lang="ts">
import type { Archon, Labrinth } from '@modrinth/api-client'
import { ModrinthApiError } from '@modrinth/api-client'
import { getNodeWebSocketUrl, ModrinthApiError } from '@modrinth/api-client'
import {
BoxesIcon,
CheckIcon,
@@ -1299,9 +1299,15 @@ async function testNodeReachability(): Promise<boolean> {
const nodeInstance = serverData.value?.node?.instance
if (!nodeInstance) return false
const wsUrl = `wss://${nodeInstance}/pingtest`
try {
const auth = await client.archon.servers_v0.getWebSocketAuth(props.serverId)
const authUrl = getNodeWebSocketUrl(auth.url)
const protocol = authUrl.toLowerCase().startsWith('ws://') ? 'ws' : 'wss'
const wsUrl = getNodeWebSocketUrl(`${nodeInstance}/pingtest`).replace(
/^wss?:\/\//i,
`${protocol}://`,
)
return await new Promise((resolve) => {
const socket = new WebSocket(wsUrl)
const timeout = setTimeout(() => {
@@ -1326,7 +1332,7 @@ async function testNodeReachability(): Promise<boolean> {
}
})
} catch (error) {
console.error(`Failed to ping node ${wsUrl}:`, error)
console.error(`Failed to ping node ${nodeInstance}:`, error)
return false
}
}