Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pullEvent = os.pullEvent
- os.pullEvent = os.pullEventRaw
- users = {"mailserver"}
- passwords = {"legomail"}
- term.clear()
- term.setCursorPos(1,1)
- print("Legoman technologies authentication server running")
- id = os.computerID()
- term.setCursorPos(1,2)
- print("Computer ID = "..id)
- local firstCycle = true
- local modemSide = "right"
- local valid = false
- local DNSID = 2
- while true do
- if firstCycle then
- rednet.open(modemSide)
- firstCycle = false
- end
- event, p1, p2, p3 = os.pullEvent()
- term.clear()
- term.setCursorPos(1,1)
- print("Legoman technologies authentication server running")
- id = os.computerID()
- term.setCursorPos(1,2)
- print("Computer ID = "..id)
- if event =="char" then
- if p1 == "m" then
- for i, v in ipairs(users) do
- print(v)
- end
- end
- if p1 == "a" then
- term.setCursorPos(1,10)
- print("Enter name: ")
- name = read()
- print("Enter password: ")
- password = read()
- print("Confim add " .. name .. " Y/N?")
- if read() == "Y" then
- table.insert(users, name)
- table.insert(passwords, password)
- print("Added")
- end
- end
- if p1 == "r" then
- print("Enter name: ")
- name = read()
- print("Confim remove " .. name .. " Y/N?")
- if read() == "Y" then
- for i,v in ipairs(users) do
- if name == v then
- table.remove(users, i)
- table.remove(passwords, i)
- end
- end
- end
- end
- end
- if event == "terminate" then
- term.setCursorPos(1,10)
- print("Enter password: ")
- if read("*") == "unlock" then
- os.pullEvent = pullEvent
- shell.exit()
- end
- end
- if event == "rednet_message" then
- senderId = p1
- message = p2
- term.setCursorPos(1,4)
- term.clearLine()
- print(message)
- for i,v in ipairs(users) do
- if message == v then
- valid = true
- password = passwords[i]
- user = users[i]
- break
- else
- valid = false
- end
- end
- if valid then
- rednet.send(senderId, "Valid")
- print("Valid")
- else
- rednet.send(senderId, "Not Valid")
- print("Not valid")
- end
- sender, passwordRcv, dist = rednet.receive(3)
- print(sender)
- if passwordRcv == password then
- rednet.send(senderId, "Authenticated")
- rednet.send(DNSID, "Add " .. senderId .. " " .. user)
- print("Authenticated")
- else
- rednet.send(senderId, "Failed")
- end
- end
- end
Add Comment
Please, Sign In to add comment