Add patch for Prosody (dev. tree)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/patch_prosody-0.9.diff Tue Jul 31 18:52:47 2012 +0200
@@ -0,0 +1,97 @@
+# 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