diff options
| author | Autumn <git@autumnfo.rest> | 2026-05-17 16:02:05 +0100 |
|---|---|---|
| committer | Autumn <git@autumnfo.rest> | 2026-05-17 16:02:05 +0100 |
| commit | 2bad2793f33c3c0879d3a8a36de327a6626c32ed (patch) | |
| tree | 828532d9249473c7b3ffc017eb3c222d50bb6062 | |
| parent | 0d148f65e0eead4a2ea164d22ff844db428ebdb6 (diff) | |
[main] added temporary verbs to the helper function
| -rw-r--r-- | src/actions.lua | 65 | ||||
| -rw-r--r-- | src/pawsd/send.lua | 44 |
2 files changed, 106 insertions, 3 deletions
diff --git a/src/actions.lua b/src/actions.lua index e651854..8f9bf29 100644 --- a/src/actions.lua +++ b/src/actions.lua @@ -2,20 +2,79 @@ -- ~~~ selenepaw actions -- +require("src/utils") + -- load help messages local help = require("src/help") +-- load pawsd +local Servers = require("src/pawsd/servers") + +local pawsd = {} +local PawSD = require("src/pawsd/variables") + +local send = require("src/pawsd/send") + -- 0000: echo function echo () - help.echo() + -- check length + if not (#arg == 3) then + + help.echo() + return + + end + + -- get server name + local server = Servers[arg[2]] + + if not server then + + print("\nE> Error: server not found.\n") + return + + end + + -- log temporary warning message + print("\nW> Warning: this currently does not work I think.\n") + + -- send request + local request = PawSD.Verbs.ECHO .. string.tohex(arg[3]) + local response = send(server, request) + + -- log response + print(response) end -- 0001: fetch service function fetchservice () - - help.fetchservice () + + -- check length + if not (#arg == 3) then + + help.fetchservice () + return + + end + + -- get server name + local server = Servers[arg[2]] + + if not server then + + print("\nE> Error: server not found.\n") + return + + end + + -- send request + local request = PawSD.Verbs.FETCH_SERVICE .. server.keyalg .. "0020" .. server.key .. arg[3] + local response = send(server, request) + + -- log response + print(response) end diff --git a/src/pawsd/send.lua b/src/pawsd/send.lua new file mode 100644 index 0000000..46ff2b5 --- /dev/null +++ b/src/pawsd/send.lua @@ -0,0 +1,44 @@ +-- +-- ~~~ send a pawsd request +-- + +require("src/utils") + +-- setup pawsd +local PawSD = require("src/pawsd/variables") + +-- setup sockets +local socket = require("socket") +local client = assert(socket.tcp()) + +-- send function +function send (server, data) + + -- build request + local request = string.fromhex( PawSD.Magic.REQUEST .. PawSD.Version .. data) + + -- setup connection + client:connect(server.host, server.port) + + -- send request + client:send(request) + + -- listen for response + local response = {} + + while true do + + local packet, status = client:receive(1) + + if packet then table.insert(response, packet) end + if status == "closed" then break end + + end + + -- return response + return table.concat(response) + +end + +-- return +return send |
