44 lines
1005 B
Lua
44 lines
1005 B
Lua
print("Startup!")
|
|
|
|
local constants = require("constants")
|
|
local rpc = require("rpc")
|
|
local socket = require("socket")
|
|
|
|
local v1_message = {}
|
|
require("clientid")(v1_message)
|
|
require("world")(v1_message)
|
|
|
|
local server = assert(socket.udp())
|
|
local ip, port = nil, nil
|
|
|
|
server:settimeout(nil)
|
|
assert(server:setsockname("*", 42069))
|
|
if not server or not socket then error("failed to listen on socket") end
|
|
|
|
while true do
|
|
::nw_next::
|
|
print("iteration start")
|
|
local data
|
|
data, ip, port = server:receivefrom()
|
|
print("received data from " .. ip)
|
|
if not data then
|
|
local err_code = ip
|
|
print(err_code)
|
|
goto nw_next
|
|
end
|
|
|
|
for _, req in ipairs(rpc.parse_multiple(data)) do
|
|
local response = rpc.eval(v1_message, req)
|
|
|
|
if response then
|
|
local payload = "poppyV001" .. constants.RS .. response
|
|
print("sending response to " .. ip .. ":" .. port .. " " .. payload)
|
|
server:sendto(payload, ip, port)
|
|
else
|
|
print(req .. " had no return value!")
|
|
end
|
|
end
|
|
print("iteration over")
|
|
end
|
|
::nw_break::
|