Advertisement
DarkZek

Untitled

Jun 30th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. function split (s, splitter)
  2. result = {};
  3. for match in (s..splitter):gmatch("(.-)"..splitter) do
  4. table.insert(result, match);
  5. end
  6. return result;
  7. end
  8.  
  9. function getBalance(username)
  10. local file = fs.open("/data/"..username,"r")
  11. --We only want the second line
  12. file.readLine()
  13. return file.readLine()
  14. end
  15.  
  16. function verify(username, password)
  17. if fs.exists("/data/"..username) == false then
  18. return "404";
  19. else
  20. --the user exists
  21. local file = fs.open("/data/"..username,"r")
  22. if password == file.readLine() then
  23. --correct password
  24. return "0";
  25. else
  26. --incorrect password
  27. return "403";
  28. end
  29. end
  30. end
  31. local modem = peripheral.wrap("top")
  32.  
  33. textutils.slowPrint("Starting Server...")
  34.  
  35. while true do
  36. modem.open(1)
  37.  
  38. local _, side, freq, rfreq, message = os.pullEvent("modem_message")
  39. msg = split(message, "`")
  40. for key, value in pairs(msg) do
  41. if key == 1 then
  42. action = value
  43. elseif key == 2 then
  44. var1 = value
  45. elseif key == 3 then
  46. var2 = value
  47. end
  48. end
  49. if fs.exists("/data") == false then
  50. fs.makeDir("/data")
  51. end
  52. --Do the requested action
  53. if action == "balance" then
  54. user = verify(var1, var2)
  55. if user == "0" then
  56. --Give balance
  57. modem.transmit(1,1,getBalance(var1))
  58. elseif user == "403" then
  59. print("Failed login attempt for user "..var1)
  60. modem.transmit(1,1,"403")
  61. elseif user == "404" then
  62. print("Non existant "..var1.." just tried to login")
  63. modem.transmit(1,1,"404")
  64. end
  65. elseif action == "register" then
  66. --Checking if the user exists
  67. if verify(var1,"") == "404" then
  68. --its a new user!
  69. local file = fs.open("/data/"..var1,"a")
  70. file.writeLine(var2)
  71. file.writeLine("0")
  72. file.close()
  73. modem.transmit(1,1,"0")
  74. print("Registered user "..var1)
  75. else
  76. --user already exists
  77. modem.transmit(1,1,"409")
  78. end
  79. end
  80. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement