Sync with Prosody 0.9 default tip
authorMikael Berthe <mikael@lilotux.net>
Sun, 25 Aug 2013 22:46:03 +0200
changeset 4 d02978ae44af
parent 3 de3dceee742e
Sync with Prosody 0.9 Patch to mod_admin_telnet no longer needed.
mod_admin_messageconsole.lua
patch_prosody-0.9.diff
--- a/mod_admin_messageconsole.lua	Tue Jul 31 18:52:47 2012 +0200
+++ b/mod_admin_messageconsole.lua	Sun Aug 25 22:46:03 2013 +0200
@@ -4,7 +4,7 @@
 --
 -- Copyright (C) 2008-2010 Matthew Wild
 -- Copyright (C) 2008-2010 Waqas Hussain
--- Copyright (C) 2012 Mikael Berthe
+-- Copyright (C) 2012-2013 Mikael Berthe
 --
 -- This project is MIT/X11 licensed. Please see the
 -- COPYING file in the source package for more information.
@@ -80,7 +80,7 @@
 	local session = new_session();
 
 	-- Process the message using admin_telnet's onincoming function
-	admin_telnet.console_incoming_message(session, body.."\n");
+	admin_telnet.console:process_line(session, body.."\n");
 
 	-- Strip trailing blank line
 	session.fulltext = tostring(session.fulltext):gsub("\n\|%s*$", "")
--- a/patch_prosody-0.9.diff	Tue Jul 31 18:52:47 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-# HG changeset patch
-# User Mikael Berthe <mikael@lilotux.net>
-mod_admin_telnet: introduce a global function console_incoming_message()
-This patch moves code from console_listener.onincoming() into a new global
-function so that it can be used in other modules.
-
-diff -r 9962fc19f9e9 plugins/mod_admin_telnet.lua
---- a/plugins/mod_admin_telnet.lua	Sat Jul 28 01:28:14 2012 +0100
-+++ b/plugins/mod_admin_telnet.lua	Sat Jul 28 18:14:31 2012 +0200
-@@ -72,19 +72,7 @@ function console:new_session(conn)
- 	return session;
- end
- 
--local sessions = {};
--
--function console_listener.onconnect(conn)
--	-- Handle new connection
--	local session = console:new_session(conn);
--	sessions[conn] = session;
--	printbanner(session);
--	session.send(string.char(0));
--end
--
--function console_listener.onincoming(conn, data)
--	local session = sessions[conn];
--
-+function console_incoming_message(session, data)
- 	local partial = session.partial_data;
- 	if partial then
- 		data = partial..data;
-@@ -110,7 +98,7 @@ function console_listener.onincoming(con
- 			end
- 
- 			session.env._ = line;
--			
-+
- 			local chunkname = "=console";
- 			local env = (useglobalenv and redirect_output(_G, session)) or session.env or nil
- 			local chunk, err = envload("return "..line, chunkname, env);
-@@ -124,20 +112,20 @@ function console_listener.onincoming(con
- 					break;
- 				end
- 			end
--		
-+
- 			local ranok, taskok, message = pcall(chunk);
--			
-+
- 			if not (ranok or message or useglobalenv) and commands[line:lower()] then
- 				commands[line:lower()](session, line);
- 				break;
- 			end
--			
-+
- 			if not ranok then
- 				session.print("Fatal error while running command, it did not complete");
- 				session.print("Error: "..taskok);
- 				break;
- 			end
--			
-+
- 			if not message then
- 				session.print("Result: "..tostring(taskok));
- 				break;
-@@ -146,15 +134,30 @@ function console_listener.onincoming(con
- 				session.print("Message: "..tostring(message));
- 				break;
- 			end
--			
-+
- 			session.print("OK: "..tostring(message));
- 		until true
--		
-+
- 		session.send(string.char(0));
- 	end
- 	session.partial_data = data:match("[^\n]+$");
- end
- 
-+local sessions = {};
-+
-+function console_listener.onconnect(conn)
-+	-- Handle new connection
-+	local session = console:new_session(conn);
-+	sessions[conn] = session;
-+	printbanner(session);
-+	session.send(string.char(0));
-+end
-+
-+function console_listener.onincoming(conn, data)
-+	local session = sessions[conn];
-+	console_incoming_message(session, data);
-+end
-+
- function console_listener.ondisconnect(conn, err)
- 	local session = sessions[conn];
- 	if session then