From a1a0d46c8865f4e3fc28cc8aab41dc7b5f4a31d4 Mon Sep 17 00:00:00 2001 From: Autumn Date: Sat, 16 May 2026 18:36:48 +0100 Subject: [fetch] added basic fetching utility --- fetch.lua | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 fetch.lua (limited to 'fetch.lua') diff --git a/fetch.lua b/fetch.lua new file mode 100644 index 0000000..59c8e3c --- /dev/null +++ b/fetch.lua @@ -0,0 +1,42 @@ +-- +-- ~~~ fetch a pawsd service +-- + +-- require a name & service index to fetch +if not arg[1] or not arg[2] then + error("server name & index required") +end + +-- imports +local PawSD = require("src/pawsd") +local Servers = require("src/servers") +require("src/utils") + +local socket = require("socket") +local client = assert(socket.tcp()) + +-- get arguments & check validity +local server = Servers[arg[1]] +local index = arg[2] + +if not server then + error("server not found") +end + +-- connect to client +client:connect(server.host, server.port) + +-- send request +local request = string.fromhex(PawSD.Magic .. PawSD.Version .. PawSD.Verbs.FETCH_SERVICE .. server.keyalg .. "0020" .. server.key .. index) +client:send(request) + +-- print response +while true do + local response, status = client:receive(1) + + if response then print(response) end + if status == "closed" then break end +end + +-- close connection +client:close() -- cgit v1.3