Advertisement
trapcodien

oc_dns-client

Aug 22nd, 2015
28
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local c = require "component"
  2. local shell = require "shell"
  3. local event = require "event"
  4. local modem = c.modem
  5. local fs = require "filesystem"
  6.  
  7. local path = "/etc/hosts"
  8.  
  9. local args = shell.parse(...)
  10.  
  11. local function usage()
  12.   print("Usage:")
  13.   print("    dns register <name>")
  14.   print("    dns unregister")
  15.   print("    dns update")
  16.   return
  17. end
  18.  
  19. if args[1] == "register" and args[2]
  20. then
  21.   modem.open(2)
  22.   modem.broadcast(2, "dns_register", args[2])
  23.   local _, to, from, port, dist, msg = event.pull(3, "modem_message")
  24.   if port == 2 then
  25.     if msg == "dns_addr_error" then
  26.       print("Error: Address already registered.")
  27.     elseif msg == "dns_name_error" then
  28.       print("Error: Name already taken.")
  29.     else
  30.       print(to .. " registered as " .. args[2])
  31.     end
  32.   end
  33.   modem.close(2)
  34. elseif args[1] == "unregister" then
  35.   modem.open(2)
  36.   modem.broadcast(2, "dns_unregister")
  37.   local _, to, from, port, dist, msg = event.pull(3, "modem_message")
  38.   if port == 2 then
  39.     if msg == "dns_unregister_error" then
  40.       print("Error: You're not registered.")
  41.     else
  42.       print("Unregistered.")
  43.     end
  44.   end
  45.   modem.close(2)
  46. elseif args[1] == "update" then
  47.   modem.open(2)
  48.   modem.broadcast(2, "dns_update")
  49.   local _, to, from, port, dist, msg = event.pull(3, "modem_message")
  50.   if port == 2 then
  51.     local file = io.open(path, "w")
  52.     file:write(msg)
  53.     io.close(file)
  54.     if args[2] ~= "silently" then print("DNS Update done.") end
  55.   end
  56.   modem.close(2)
  57. else
  58.   usage()
  59. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement