Diff

core/stanza_dispatch.lua @ 7:dcc5ac721c20

- Remove some debugging code - Don't allow stanzas to be sent before successful auth (needs further review) - Make init_xmlhandlers local - Fix indentation in main.lua - Fix disconnect logic (it broke if client disconnected before auth, etc.)
author Matthew Wild <mwild1@gmail.com>
date Sun, 24 Aug 2008 22:48:27 +0100
parent 6:7ad47ce20394
line wrap: on
line diff
--- a/core/stanza_dispatch.lua	Sun Aug 24 18:08:04 2008 +0100
+++ b/core/stanza_dispatch.lua	Sun Aug 24 22:48:27 2008 +0100
@@ -32,7 +32,6 @@
 				return true;			
 			else
 				username, password, resource = t_concat(username), t_concat(password), t_concat(resource);
-				print(username, password, resource)
 				local reply = st.reply(stanza);
 				require "core.usermanager"
 				if usermanager.validate_credentials(session.host, username, password) then
@@ -96,7 +95,9 @@
 						send(format("<iq type='error' id='%s'><error type='cancel'><service-unavailable/></error></iq>", stanza.attr.id));
 						return;
 					end
-				elseif stanza.name == "presence" then
+				end
+				if not session.username then log("warn", "Attempt to use an unauthed stream!"); return; end
+				if stanza.name == "presence" then
 					if session.roster then
 						local initial_presence = not session.last_presence;
 						session.last_presence = stanza;
@@ -112,7 +113,6 @@
 							broadcast.attr.to = contact_jid;
 							send_to(contact_jid, broadcast);
 							if initial_presence then
-								print("Initital presence");
 								local node, host = jid.split(contact_jid);
 								if hosts[host] and hosts[host].type == "local" then
 									local contact = hosts[host].sessions[node]
@@ -137,7 +137,7 @@
 						-- Probe for our contacts' presence
 					end
 				end
-			else
+			elseif session.username then
 			--end				
 			--if stanza.attr.to and ((not hosts[stanza.attr.to]) or hosts[stanza.attr.to].type ~= "local") then
 				-- Need to route stanza
@@ -147,4 +147,3 @@
 		end
 
 end
-