plugins/mod_console.lua

changeset 2279
27441b099984
parent 2253
a3537266a916
child 2296
23e84604fb00
equal deleted inserted replaced
2278:0b0fe49e5251 2279:27441b099984
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
51 return session; 51 return session;
52 end 52 end
53 53
54 local sessions = {}; 54 local sessions = {};
55 55
56 function console_listener.listener(conn, data) 56 function console_listener.onincoming(conn, data)
57 local session = sessions[conn]; 57 local session = sessions[conn];
58 58
59 if not session then 59 if not session then
60 -- Handle new connection 60 -- Handle new connection
61 session = console:new_session(conn); 61 session = console:new_session(conn);
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

mercurial