patch_prosody-0.9.diff
author Mikael Berthe <mikael@lilotux.net>
Tue, 31 Jul 2012 18:52:47 +0200
changeset 3 de3dceee742e
permissions -rw-r--r--
Add patch for Prosody (dev. tree)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     1
# HG changeset patch
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     2
# User Mikael Berthe <mikael@lilotux.net>
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     3
mod_admin_telnet: introduce a global function console_incoming_message()
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     4
This patch moves code from console_listener.onincoming() into a new global
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     5
function so that it can be used in other modules.
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     6
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     7
diff -r 9962fc19f9e9 plugins/mod_admin_telnet.lua
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     8
--- a/plugins/mod_admin_telnet.lua	Sat Jul 28 01:28:14 2012 +0100
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     9
+++ b/plugins/mod_admin_telnet.lua	Sat Jul 28 18:14:31 2012 +0200
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    10
@@ -72,19 +72,7 @@ function console:new_session(conn)
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    11
 	return session;
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    12
 end
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    13
 
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    14
-local sessions = {};
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    15
-
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    16
-function console_listener.onconnect(conn)
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    17
-	-- Handle new connection
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    18
-	local session = console:new_session(conn);
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    19
-	sessions[conn] = session;
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    20
-	printbanner(session);
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    21
-	session.send(string.char(0));
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    22
-end
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    23
-
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    24
-function console_listener.onincoming(conn, data)
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    25
-	local session = sessions[conn];
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    26
-
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    27
+function console_incoming_message(session, data)
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    28
 	local partial = session.partial_data;
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    29
 	if partial then
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    30
 		data = partial..data;
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    31
@@ -110,7 +98,7 @@ function console_listener.onincoming(con
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    32
 			end
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    33
 
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    34
 			session.env._ = line;
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    35
-			
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    36
+
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    37
 			local chunkname = "=console";
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    38
 			local env = (useglobalenv and redirect_output(_G, session)) or session.env or nil
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    39
 			local chunk, err = envload("return "..line, chunkname, env);
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    40
@@ -124,20 +112,20 @@ function console_listener.onincoming(con
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    41
 					break;
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    42
 				end
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    43
 			end
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    44
-		
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    45
+
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    46
 			local ranok, taskok, message = pcall(chunk);
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    47
-			
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    48
+
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    49
 			if not (ranok or message or useglobalenv) and commands[line:lower()] then
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    50
 				commands[line:lower()](session, line);
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    51
 				break;
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    52
 			end
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    53
-			
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    54
+
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    55
 			if not ranok then
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    56
 				session.print("Fatal error while running command, it did not complete");
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    57
 				session.print("Error: "..taskok);
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    58
 				break;
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    59
 			end
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    60
-			
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    61
+
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    62
 			if not message then
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    63
 				session.print("Result: "..tostring(taskok));
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    64
 				break;
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    65
@@ -146,15 +134,30 @@ function console_listener.onincoming(con
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    66
 				session.print("Message: "..tostring(message));
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    67
 				break;
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    68
 			end
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    69
-			
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    70
+
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    71
 			session.print("OK: "..tostring(message));
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    72
 		until true
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    73
-		
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    74
+
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    75
 		session.send(string.char(0));
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    76
 	end
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    77
 	session.partial_data = data:match("[^\n]+$");
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    78
 end
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    79
 
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    80
+local sessions = {};
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    81
+
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    82
+function console_listener.onconnect(conn)
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    83
+	-- Handle new connection
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    84
+	local session = console:new_session(conn);
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    85
+	sessions[conn] = session;
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    86
+	printbanner(session);
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    87
+	session.send(string.char(0));
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    88
+end
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    89
+
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    90
+function console_listener.onincoming(conn, data)
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    91
+	local session = sessions[conn];
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    92
+	console_incoming_message(session, data);
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    93
+end
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    94
+
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    95
 function console_listener.ondisconnect(conn, err)
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    96
 	local session = sessions[conn];
de3dceee742e Add patch for Prosody (dev. tree)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    97
 	if session then