From e1a50dd68862381c02870b0ba2d78c4cf3905d29 Mon Sep 17 00:00:00 2001 From: KubaPro010 Date: Tue, 14 Apr 2026 15:15:23 +0200 Subject: [PATCH] add some comments in the xdrgrk stuff --- server/server_config.js | 5 ++--- server/xdr_server.js | 13 +++++++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/server/server_config.js b/server/server_config.js index 2296218..200a225 100644 --- a/server/server_config.js +++ b/server/server_config.js @@ -17,6 +17,7 @@ let serverConfig = { webserver: { webserverIp: "0.0.0.0", webserverPort: 8080, + // pe5pvbXdrGtkPort: null, banlist: [], chatEnabled: true, tuningLimit: false, @@ -125,9 +126,7 @@ let serverConfig = { antennaNoUsersDelay: false, trustedProxies: [], webRtc: { - flags: { - disable3las: false - }, + flags: {disable3las: false}, audio: {} } }; diff --git a/server/xdr_server.js b/server/xdr_server.js index 1688cc4..ce83a69 100644 --- a/server/xdr_server.js +++ b/server/xdr_server.js @@ -14,7 +14,7 @@ function send_to_xdr(data) { } function send_xdr_online(fmusers) { - send_to_xdr(`o${currentUsers},${fmusers}\n`); + send_to_xdr(`o${currentUsers},${fmusers}\n`); // First value is normal users, and the second is the guest users, XDR-GTK displays them either as `2 users` or `2 ( + 1) users` if the guest number is non zero } function randomString(length) { @@ -47,19 +47,22 @@ function xdr_auth(ws, salt) { xdr.on('connection', async (ws) => { const { initialData } = require('./datahandler'); - const salt = randomString(16); + const salt = randomString(16); // 16 characters are needed, because XDR-GTK does not wait for the new line, but rather the 16 characters with a new line ws.send(`${salt}\n`); try { await xdr_auth(ws, salt); } catch (err) { - ws.send("a0\n"); + ws.send("a0\n"); // a0 is sent when you have not authenticated + // a1 is sent when you also didnt authenticate, but you're a guest now! and not completly kicked out. im giving these comments because i think sjef is reading this, and he got the protocol VERY WRONG in his plugin for xdrgtk ws.close(1008, err.message); return; } + // ws.send(`$fmdx-webserver,${require('../package.json').version},${serverConfig.webserver.pe5pvbXdrGtkPort ?? serverConfig.webserver.webserverPort},/audio\n`); // Sjef's bullshit + currentUsers++; - send_xdr_online(initialData.users); + send_xdr_online(initialData.users); // Broadcast ws.send(`T${initialData.freq * 1000}\n`); ws.send(`G${initialData.eq}${initialData.ims}\n`); ws.send(`Z${initialData.ant}\n`); @@ -69,6 +72,7 @@ xdr.on('connection', async (ws) => { ws.send(`wL${serverConfig.lockToAdmin ? "1" : "0"}\n`); ws.send(`wT${serverConfig.publicTuner ? "0" : "1"}\n`); ws.send(`OK\n`); // Make sure dumbass clients don't need to wait long for the OK, does the protocol really REQUIRE you to start the receiver for you to know you are in? + // because x would start the receiver and send OK. it is NOT a part of the handshake clients.push(ws); ws.on('message', (message) => { @@ -110,5 +114,6 @@ xdr.on('connection', async (ws) => { }); storage.websocket_delegation.set("/xdr", xdr); +storage.websocket_delegation.set("/xdrgtk", xdr); module.exports = { send_to_xdr, send_xdr_online }; \ No newline at end of file