blob: 59c8e3cf07bf167140ea1dd8311f518c1258d319 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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()
|