Return registered host table when registering a component
[prosody.git] / net / xmppclient_listener.lua
index e722e55b1a8d31dafd8fca96891e027eed34c49d..914dd78ee90d94194d92f64441146f4dfe4c81f1 100644 (file)
@@ -22,7 +22,7 @@ local xmppclient = { default_port = 5222 };
 
 local function session_reset_stream(session)
        -- Reset stream
-               local parser = lxp.new(init_xmlhandlers(session, sm_streamopened), ":");
+               local parser = lxp.new(init_xmlhandlers(session, sm_streamopened), "|");
                session.parser = parser;
                
                session.notopen = true;
@@ -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(err) print("Traceback:", err, 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
@@ -73,7 +78,7 @@ function xmppclient.disconnect(conn)
        if session then
                if session.last_presence and session.last_presence.attr.type ~= "unavailable" then
                        local pres = st.presence{ type = "unavailable" };
-                       if err == "closed" then err = "connection closed"; end
+                       if err == "closed" then err = "connection closed"; end --FIXME where did err come from?
                        pres:tag("status"):text("Disconnected: "..err);
                        session.stanza_dispatch(pres);
                end