aboutsummaryrefslogtreecommitdiff
path: root/src/pawsd/send.lua
blob: 3492ed1bc25f3978b5943ebbab4e5303e6b90a46 (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
43
44
45
46
47
--
-- ~~~ 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

    -- close client
    client:close()

    -- return response
    return response

end

-- return
return send