diff options
author | Matthew Wild <mwild1@gmail.com> | 2010-06-02 12:32:24 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2010-06-02 12:32:24 +0100 |
commit | 5d840b3f53e023bebf635a415e18ea40d72aea25 (patch) | |
tree | 70632d36116e0fd6abee9788b5212d8920743fc6 /net | |
parent | b5d2e584f484c5064973915060572961de143709 (diff) | |
download | prosody-5d840b3f53e023bebf635a415e18ea40d72aea25.tar.gz prosody-5d840b3f53e023bebf635a415e18ea40d72aea25.zip |
xmppclient_listener: Port to onconnect handler
Diffstat (limited to 'net')
-rw-r--r-- | net/xmppclient_listener.lua | 75 |
1 files changed, 38 insertions, 37 deletions
diff --git a/net/xmppclient_listener.lua b/net/xmppclient_listener.lua index f3a372ae..49b0e7f9 100644 --- a/net/xmppclient_listener.lua +++ b/net/xmppclient_listener.lua @@ -111,45 +111,46 @@ end -- End of session methods -- -function xmppclient.onincoming(conn, data) - local session = sessions[conn]; - if not session then - session = sm_new_session(conn); - sessions[conn] = session; - - session.log("info", "Client connected"); - - -- Client is using legacy SSL (otherwise mod_tls sets this flag) - if conn:ssl() then - session.secure = true; - end - - if opt_keepalives ~= nil then - conn:setoption("keepalive", opt_keepalives); - end - - session.close = session_close; - - local stream = new_xmpp_stream(session, stream_callbacks); - session.stream = stream; - +function xmppclient.onconnect(conn) + local session = sm_new_session(conn); + sessions[conn] = session; + + session.log("info", "Client connected"); + + -- Client is using legacy SSL (otherwise mod_tls sets this flag) + if conn:ssl() then + session.secure = true; + end + + if opt_keepalives ~= nil then + conn:setoption("keepalive", opt_keepalives); + end + + session.close = session_close; + + local stream = new_xmpp_stream(session, stream_callbacks); + session.stream = stream; + + session.notopen = true; + + function session.reset_stream() session.notopen = true; - - function session.reset_stream() - session.notopen = true; - session.stream:reset(); - end - - function session.data(data) - local ok, err = stream:feed(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]+", " "):gsub("[%z\1-\31]", "_")); - session:close("xml-not-well-formed"); - end - - session.dispatch_stanza = stream_callbacks.handlestanza; + session.stream:reset(); + end + + function session.data(data) + local ok, err = stream:feed(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]+", " "):gsub("[%z\1-\31]", "_")); + session:close("xml-not-well-formed"); end - if data then + + session.dispatch_stanza = stream_callbacks.handlestanza; +end + +function xmppclient.onincoming(conn, data) + local session = sessions[conn]; + if session then session.data(data); end end |