-- -- ~~~ selenepaw actions -- require("src/utils") -- load help messages local help = require("src/help") -- load pawsd local Servers = require("src/pawsd/servers") local pawsd = {} pawsd.response = require("src/pawsd/metadata") pawsd.service = require("src/pawsd/service") local PawSD = require("src/pawsd/variables") local send = require("src/pawsd/send") -- 0000: echo function 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 () -- 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) -- check response local valid = pawsd.response.validate(response) if not valid then print("\nE> Error: invalid request.\n") return end -- todo: validate signature -- get records local records = pawsd.service.records.all(response) -- log records for recordindex = 1, #records, 1 do for recordtagindex = 1, #records[recordindex], 1 do print(table.dump(records[recordindex][recordtagindex])) end end end -- return return { echo = echo, fetchservice = fetchservice }