Software /
code /
prosody
Comparison
plugins/mod_admin_telnet.lua @ 10068:73a8192058f9
mod_admin_telnet: Move error handling to thread callback (fixes #1391)
Avoids yielding over pcall boundry, fixes xmpp:ping() command on Lua 5.1
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 10 May 2019 01:29:26 +0200 |
parent | 10067:598befab492e |
child | 10083:f30d505e755b |
comparison
equal
deleted
inserted
replaced
10067:598befab492e | 10068:73a8192058f9 |
---|---|
60 self.data.conn:pause(); | 60 self.data.conn:pause(); |
61 end | 61 end |
62 | 62 |
63 function runner_callbacks:error(err) | 63 function runner_callbacks:error(err) |
64 module:log("error", "Traceback[telnet]: %s", err); | 64 module:log("error", "Traceback[telnet]: %s", err); |
65 | |
66 self.data.print("Fatal error while running command, it did not complete"); | |
67 self.data.print("Error: "..tostring(err)); | |
65 end | 68 end |
66 | 69 |
67 | 70 |
68 function console:new_session(conn) | 71 function console:new_session(conn) |
69 local w = function(s) conn:write(s:gsub("\n", "\r\n")); end; | 72 local w = function(s) conn:write(s:gsub("\n", "\r\n")); end; |
131 session.print("Sorry, I couldn't understand that... "..err); | 134 session.print("Sorry, I couldn't understand that... "..err); |
132 return; | 135 return; |
133 end | 136 end |
134 end | 137 end |
135 | 138 |
136 local ranok, taskok, message = pcall(chunk); | 139 local taskok, message = chunk(); |
137 | |
138 if not ranok then | |
139 session.print("Fatal error while running command, it did not complete"); | |
140 session.print("Error: "..taskok); | |
141 return; | |
142 end | |
143 | 140 |
144 if not message then | 141 if not message then |
145 session.print("Result: "..tostring(taskok)); | 142 session.print("Result: "..tostring(taskok)); |
146 return; | 143 return; |
147 elseif (not taskok) and message then | 144 elseif (not taskok) and message then |