Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local c = require "component"
- local shell = require "shell"
- local event = require "event"
- local modem = c.modem
- local fs = require "filesystem"
- local path = "/etc/hosts"
- local args = shell.parse(...)
- local function usage()
- print("Usage:")
- print(" dns register <name>")
- print(" dns unregister")
- print(" dns update")
- return
- end
- if args[1] == "register" and args[2]
- then
- modem.open(2)
- modem.broadcast(2, "dns_register", args[2])
- local _, to, from, port, dist, msg = event.pull(3, "modem_message")
- if port == 2 then
- if msg == "dns_addr_error" then
- print("Error: Address already registered.")
- elseif msg == "dns_name_error" then
- print("Error: Name already taken.")
- else
- print(to .. " registered as " .. args[2])
- end
- end
- modem.close(2)
- elseif args[1] == "unregister" then
- modem.open(2)
- modem.broadcast(2, "dns_unregister")
- local _, to, from, port, dist, msg = event.pull(3, "modem_message")
- if port == 2 then
- if msg == "dns_unregister_error" then
- print("Error: You're not registered.")
- else
- print("Unregistered.")
- end
- end
- modem.close(2)
- elseif args[1] == "update" then
- modem.open(2)
- modem.broadcast(2, "dns_update")
- local _, to, from, port, dist, msg = event.pull(3, "modem_message")
- if port == 2 then
- local file = io.open(path, "w")
- file:write(msg)
- io.close(file)
- if args[2] ~= "silently" then print("DNS Update done.") end
- end
- modem.close(2)
- else
- usage()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement