diff --git a/main.ts b/main.ts index e052fbe..0f8858e 100644 --- a/main.ts +++ b/main.ts @@ -7,19 +7,22 @@ const tEnc = new TextEncoder(); const reservedData: Record = { version: "KeyVal 1.0" }; const data = new Map(); -const listener = Deno.listenDatagram({ port: PORT, transport: "udp" }); +const listener = Deno.listenDatagram({ + hostname: "::", + port: PORT, + transport: "udp", +}); for await (const [bytes, addr] of listener) { - const message = tDec.decode(bytes).trim(); - console.debug("Datagram Received from:", addr, message); + const message = tDec.decode(bytes); if (message.includes("=")) { - const [key, val] = message.split("=", 1); - console.debug(`Setting ${key} to ${val}`); - if (!(key in reservedData)) data.set(key, val); + const [key, ...val] = message.split("="); + console.debug(`Setting '${key}' to '${val}'`); + if (!(key in reservedData)) data.set(key, val.join("=")); } else { const value = reservedData[message] || data.get(message) || ""; const bytes = tEnc.encode(`${message}=${value}`); - console.debug(`Sending ${message}=${value}`); + console.debug(`Sending '${message}=${value}'`); await listener.send(bytes, addr); } }