Guest User

Untitled

a guest
Jun 2nd, 2016
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.49 KB | None | 0 0
  1. pullEvent = os.pullEvent
  2. os.pullEvent = os.pullEventRaw
  3. users = {"mailserver"}
  4. passwords = {"legomail"}
  5. term.clear()
  6. term.setCursorPos(1,1)
  7. print("Legoman technologies authentication server running")
  8. id = os.computerID()
  9. term.setCursorPos(1,2)
  10. print("Computer ID = "..id)
  11.  
  12. local firstCycle = true
  13. local modemSide = "right"
  14. local valid = false
  15. local DNSID = 2
  16.  
  17. while true do
  18. if firstCycle then
  19. rednet.open(modemSide)
  20. firstCycle = false
  21. end
  22. event, p1, p2, p3 = os.pullEvent()
  23. term.clear()
  24. term.setCursorPos(1,1)
  25. print("Legoman technologies authentication server running")
  26. id = os.computerID()
  27. term.setCursorPos(1,2)
  28. print("Computer ID = "..id)
  29.  
  30. if event =="char" then
  31. if p1 == "m" then
  32. for i, v in ipairs(users) do
  33. print(v)
  34. end
  35. end
  36. if p1 == "a" then
  37. term.setCursorPos(1,10)
  38. print("Enter name: ")
  39. name = read()
  40. print("Enter password: ")
  41. password = read()
  42. print("Confim add " .. name .. " Y/N?")
  43. if read() == "Y" then
  44. table.insert(users, name)
  45. table.insert(passwords, password)
  46. print("Added")
  47. end
  48. end
  49. if p1 == "r" then
  50. print("Enter name: ")
  51. name = read()
  52. print("Confim remove " .. name .. " Y/N?")
  53. if read() == "Y" then
  54. for i,v in ipairs(users) do
  55. if name == v then
  56. table.remove(users, i)
  57. table.remove(passwords, i)
  58. end
  59. end
  60. end
  61. end
  62. end
  63.  
  64. if event == "terminate" then
  65. term.setCursorPos(1,10)
  66. print("Enter password: ")
  67. if read("*") == "unlock" then
  68. os.pullEvent = pullEvent
  69. shell.exit()
  70. end
  71. end
  72.  
  73. if event == "rednet_message" then
  74. senderId = p1
  75. message = p2
  76. term.setCursorPos(1,4)
  77. term.clearLine()
  78. print(message)
  79. for i,v in ipairs(users) do
  80. if message == v then
  81. valid = true
  82. password = passwords[i]
  83. user = users[i]
  84. break
  85. else
  86. valid = false
  87. end
  88. end
  89.  
  90. if valid then
  91. rednet.send(senderId, "Valid")
  92. print("Valid")
  93. else
  94. rednet.send(senderId, "Not Valid")
  95. print("Not valid")
  96. end
  97. sender, passwordRcv, dist = rednet.receive(3)
  98. print(sender)
  99. if passwordRcv == password then
  100. rednet.send(senderId, "Authenticated")
  101. rednet.send(DNSID, "Add " .. senderId .. " " .. user)
  102. print("Authenticated")
  103. else
  104. rednet.send(senderId, "Failed")
  105. end
  106. end
  107. end
Add Comment
Please, Sign In to add comment