diff options
author | Matthew Wild <mwild1@gmail.com> | 2008-11-08 20:42:23 +0000 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2008-11-08 20:42:23 +0000 |
commit | 8b42a2b8d80bcc227274d133067ac58c6a197ca2 (patch) | |
tree | ef029b2f8331b03877762a4e207671891b87fc67 | |
parent | 63808314ef8eb9942afe35fc2e82baf96c94bc92 (diff) | |
download | prosody-8b42a2b8d80bcc227274d133067ac58c6a197ca2.tar.gz prosody-8b42a2b8d80bcc227274d133067ac58c6a197ca2.zip |
Committing code to get nicer tracebacks for errors, also we no longer consider such errors fatal (probably a bad thing, I know...)
-rw-r--r-- | net/xmppclient_listener.lua | 7 | ||||
-rw-r--r-- | net/xmppserver_listener.lua | 9 |
2 files changed, 13 insertions, 3 deletions
diff --git a/net/xmppclient_listener.lua b/net/xmppclient_listener.lua index 068557c8..64747bc5 100644 --- a/net/xmppclient_listener.lua +++ b/net/xmppclient_listener.lua @@ -60,7 +60,12 @@ function xmppclient.listener(conn, data) -- TODO: Below function should be session,stanza - and xmlhandlers should use :method() notation to call, -- this will avoid the useless indirection we have atm -- (I'm on a mission, no time to fix now) - session.stanza_dispatch = function (stanza) return core_process_stanza(session, stanza); end + + -- Debug version -- + local function handleerr() print("Traceback:", debug.traceback()); end + session.stanza_dispatch = function (stanza) return select(2, xpcall(function () return core_process_stanza(session, stanza); end, handleerr)); end + +-- session.stanza_dispatch = function (stanza) return core_process_stanza(session, stanza); end end if data then diff --git a/net/xmppserver_listener.lua b/net/xmppserver_listener.lua index 111633d8..f8b5d1c8 100644 --- a/net/xmppserver_listener.lua +++ b/net/xmppserver_listener.lua @@ -62,7 +62,12 @@ function xmppserver.listener(conn, data) -- FIXME: Below function should be session,stanza - and xmlhandlers should use :method() notation to call, -- this will avoid the useless indirection we have atm -- (I'm on a mission, no time to fix now) - session.stanza_dispatch = function (stanza) return core_process_stanza(session, stanza); end + + -- Debug version -- + local function handleerr() print("Traceback:", debug.traceback()); end + session.stanza_dispatch = function (stanza) return select(2, xpcall(function () return core_process_stanza(session, stanza); end, handleerr)); end + +-- session.stanza_dispatch = function (stanza) return core_process_stanza(session, stanza); end end if data then @@ -100,4 +105,4 @@ connlisteners_register("xmppserver", xmppserver); -- We also need to perform that same initialisation at other points (SASL, TLS, ...) -- ...and we need to handle data --- ...and record all sessions associated with connections
\ No newline at end of file +-- ...and record all sessions associated with connections |