31 end |
31 end |
32 |
32 |
33 console = {}; |
33 console = {}; |
34 |
34 |
35 function console:new_session(conn) |
35 function console:new_session(conn) |
36 local w = function(s) conn.write(s:gsub("\n", "\r\n")); end; |
36 local w = function(s) conn:write(s:gsub("\n", "\r\n")); end; |
37 local session = { conn = conn; |
37 local session = { conn = conn; |
38 send = function (t) w(tostring(t)); end; |
38 send = function (t) w(tostring(t)); end; |
39 print = function (t) w("| "..tostring(t).."\n"); end; |
39 print = function (t) w("| "..tostring(t).."\n"); end; |
40 disconnect = function () conn.close(); end; |
40 disconnect = function () conn:close(); end; |
41 }; |
41 }; |
42 session.env = setmetatable({}, default_env_mt); |
42 session.env = setmetatable({}, default_env_mt); |
43 |
43 |
44 -- Load up environment with helper objects |
44 -- Load up environment with helper objects |
45 for name, t in pairs(def_env) do |
45 for name, t in pairs(def_env) do |
124 end)(session, data); |
124 end)(session, data); |
125 end |
125 end |
126 session.send(string.char(0)); |
126 session.send(string.char(0)); |
127 end |
127 end |
128 |
128 |
129 function console_listener.disconnect(conn, err) |
129 function console_listener.ondisconnect(conn, err) |
130 local session = sessions[conn]; |
130 local session = sessions[conn]; |
131 if session then |
131 if session then |
132 session.disconnect(); |
132 session.disconnect(); |
133 sessions[conn] = nil; |
133 sessions[conn] = nil; |
134 end |
134 end |