aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAutumn <git@autumnfo.rest>2026-05-17 16:02:05 +0100
committerAutumn <git@autumnfo.rest>2026-05-17 16:02:05 +0100
commit2bad2793f33c3c0879d3a8a36de327a6626c32ed (patch)
tree828532d9249473c7b3ffc017eb3c222d50bb6062
parent0d148f65e0eead4a2ea164d22ff844db428ebdb6 (diff)
[main] added temporary verbs to the helper function
-rw-r--r--src/actions.lua65
-rw-r--r--src/pawsd/send.lua44
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