diff options
| author | Autumn <git@autumnfo.rest> | 2026-05-16 18:36:48 +0100 |
|---|---|---|
| committer | Autumn <git@autumnfo.rest> | 2026-05-16 18:36:48 +0100 |
| commit | a1a0d46c8865f4e3fc28cc8aab41dc7b5f4a31d4 (patch) | |
| tree | c4f0ef6590d740ec6269d2cbfb0245787d5d936c | |
| parent | fc5f00a9fcfb50e02d7fc447a19e522b5b86f55f (diff) | |
[fetch] added basic fetching utility
| -rw-r--r-- | fetch.lua | 42 |
1 files changed, 42 insertions, 0 deletions
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() |
