Software /
code /
prosody
Diff
plugins/mod_compression.lua @ 2886:3baee526d714
mod_compression: Return <setup-failed/> instead of <unsupported-method/> where applicable.
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Tue, 09 Mar 2010 20:14:47 +0500 |
parent | 2885:ae72c0dd6f1f |
child | 2887:765e7070d0a8 |
child | 2890:6273d4672cb4 |
line wrap: on
line diff
--- a/plugins/mod_compression.lua Tue Mar 09 18:19:50 2010 +0500 +++ b/plugins/mod_compression.lua Tue Mar 09 20:14:47 2010 +0500 @@ -40,7 +40,7 @@ function(session, stanza) -- fail if we are already compressed if session.compressed then - local error_st = st.stanza("failure", {xmlns=xmlns_compression_protocol}):tag("unsupported-method"); + local error_st = st.stanza("failure", {xmlns=xmlns_compression_protocol}):tag("setup-failed"); session.send(error_st); session.log("warn", "Tried to establish another compression layer."); return; @@ -48,7 +48,7 @@ -- checking if the compression method is supported local method = stanza:child_with_name("method"); - method = method and method[1]; + method = method and (method[1] or ""); if method == "zlib" then -- create deflate and inflate streams local status, deflate_stream = pcall(zlib.deflate, compression_level); @@ -116,10 +116,12 @@ return true; end; session.compressed = true; - else + elseif method then session.log("info", "%s compression selected, but we don't support it.", tostring(method)); local error_st = st.stanza("failure", {xmlns=xmlns_compression_protocol}):tag("unsupported-method"); session.send(error_st); + else + session.send(st.stanza("failure", {xmlns=xmlns_compression_protocol}):tag("setup-failed")); end end );