Diff

plugins/mod_presence.lua @ 4139:eef75a0c85e3

mod_presence: Bounce errors for invalid presence types (thanks nolan/Astro)
author Matthew Wild <mwild1@gmail.com>
date Thu, 10 Feb 2011 21:09:20 +0000
parent 3969:32d4a73901e2
child 4967:b7bcf088e723
line wrap: on
line diff
--- a/plugins/mod_presence.lua	Tue Feb 01 02:33:50 2011 +0000
+++ b/plugins/mod_presence.lua	Thu Feb 10 21:09:20 2011 +0000
@@ -203,6 +203,8 @@
 			rostermanager.roster_push(node, host, to_bare);
 		end
 		core_post_stanza(origin, stanza);
+	else
+		origin.send(st.error_reply(stanza, "modify", "bad-request", "Invalid presence type"));
 	end
 	stanza.attr.from, stanza.attr.to = st_from, st_to;
 	return true;
@@ -253,7 +255,9 @@
 			sessionmanager.send_to_interested_resources(node, host, stanza);
 			rostermanager.roster_push(node, host, from_bare);
 		end
-	end -- discard any other type
+	else
+		origin.send(st.error_reply(stanza, "modify", "bad-request", "Invalid presence type"));
+	end
 	stanza.attr.from, stanza.attr.to = st_from, st_to;
 	return true;
 end
@@ -307,6 +311,8 @@
 		end -- no resources not online, discard
 	elseif not t or t == "unavailable" then
 		handle_normal_presence(origin, stanza);
+	else
+		origin.send(st.error_reply(stanza, "modify", "bad-request", "Invalid presence type"));
 	end
 	return true;
 end);