xmppclient_listener: Port to onconnect handler

Wed, 02 Jun 2010 12:32:24 +0100

author
Matthew Wild <mwild1@gmail.com>
date
Wed, 02 Jun 2010 12:32:24 +0100
changeset 3136
9630cb97cd3e
parent 3135
f29a297471e3
child 3137
463d51ee9a2b

xmppclient_listener: Port to onconnect handler

net/xmppclient_listener.lua file | annotate | diff | comparison | revisions
--- a/net/xmppclient_listener.lua	Wed Jun 02 12:24:07 2010 +0100
+++ b/net/xmppclient_listener.lua	Wed Jun 02 12:32:24 2010 +0100
@@ -111,45 +111,46 @@
 
 -- End of session methods --
 
+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;
+		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;
+end
+
 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;
-		
-		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;
-	end
-	if data then
+	if session then
 		session.data(data);
 	end
 end

mercurial