aboutsummaryrefslogtreecommitdiff
path: root/src/pawsd/send.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/pawsd/send.lua')
-rw-r--r--src/pawsd/send.lua44
1 files changed, 44 insertions, 0 deletions
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