plugins/mod_console.lua
changeset 2145 daeb6ebf304c
parent 2087 5efd79871205
child 2253 a3537266a916
equal deleted inserted replaced
2144:8e59d37a0e68 2145:daeb6ebf304c
    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 			};
    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