diff options
author | Matthew Wild <mwild1@gmail.com> | 2011-02-10 21:09:20 +0000 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2011-02-10 21:09:20 +0000 |
commit | cda0d3e598bd09e7b7c928ff065babec02e909e8 (patch) | |
tree | 09a6e14f4fe93d320c300882848673fc67f597c8 /plugins/mod_presence.lua | |
parent | 1dbc76669af58f2f553ca1c639e77a274bb4771a (diff) | |
download | prosody-cda0d3e598bd09e7b7c928ff065babec02e909e8.tar.gz prosody-cda0d3e598bd09e7b7c928ff065babec02e909e8.zip |
mod_presence: Bounce errors for invalid presence types (thanks nolan/Astro)
Diffstat (limited to 'plugins/mod_presence.lua')
-rw-r--r-- | plugins/mod_presence.lua | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/plugins/mod_presence.lua b/plugins/mod_presence.lua index 61239c9a..6d039d83 100644 --- a/plugins/mod_presence.lua +++ b/plugins/mod_presence.lua @@ -203,6 +203,8 @@ function handle_outbound_presence_subscriptions_and_probes(origin, stanza, from_ 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 @@ function handle_inbound_presence_subscriptions_and_probes(origin, stanza, from_b 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 @@ module:hook("presence/bare", function(data) 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); |