X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=net%2Fxmppclient_listener.lua;h=223fa89b62a3da3894fa2c066f416e4eee5f349c;hb=9a42b61e1f6522baf13a72f10d4c9fc24d1325f1;hp=fd4e7097ce7858ea4e546fb481c4bca5d01355e3;hpb=ac6de145895660ccbd25284ebcff33028d5eeb50;p=prosody.git diff --git a/net/xmppclient_listener.lua b/net/xmppclient_listener.lua index fd4e7097..223fa89b 100644 --- a/net/xmppclient_listener.lua +++ b/net/xmppclient_listener.lua @@ -61,7 +61,7 @@ local function session_reset_stream(session) function session.data(conn, data) local ok, err = parser:parse(data); if ok then return; end - log("debug", "Received invalid XML (%s) %d bytes: %s", tostring(err), #data, data:sub(1, 300):gsub("[\r\n]+", " ")); + log("debug", "Received invalid XML (%s) %d bytes: %s", tostring(err), #data, data:sub(1, 300):gsub("[\r\n]+", " "):gsub("[%z\1-\31]", "_")); session:close("xml-not-well-formed"); end @@ -100,8 +100,8 @@ local function session_close(session, reason) end end session.send(""); - session.conn.close(); - xmppclient.disconnect(session.conn, (reason and (reason.text or reason.condition)) or reason or "session closed"); + session.conn:close(); + xmppclient.ondisconnect(session.conn, (reason and (reason.text or reason.condition)) or reason or "session closed"); end end @@ -117,7 +117,7 @@ function xmppclient.onincoming(conn, data) session.log("info", "Client connected"); -- Client is using legacy SSL (otherwise mod_tls sets this flag) - if conn.ssl() then + if conn:ssl() then session.secure = true; end @@ -133,14 +133,13 @@ function xmppclient.onincoming(conn, data) end end -function xmppclient.disconnect(conn, err) +function xmppclient.ondisconnect(conn, err) local session = sessions[conn]; if session then (session.log or log)("info", "Client disconnected: %s", err); sm_destroy_session(session, err); sessions[conn] = nil; session = nil; - collectgarbage("collect"); end end