# HG changeset patch # User Tobias Markmann # Date 1250625637 -7200 # Node ID cf103398e64386d7c9d6111c7b6f38691012ee04 # Parent af3d0c329396a173a49df54504d7be408b8a2588 Don't allow double compression. diff -r af3d0c329396 -r cf103398e643 plugins/mod_compression.lua --- a/plugins/mod_compression.lua Tue Aug 18 21:46:25 2009 +0200 +++ b/plugins/mod_compression.lua Tue Aug 18 22:00:37 2009 +0200 @@ -37,6 +37,13 @@ -- TODO Support compression on S2S level too. module:add_handler({"c2s_unauthed", "c2s_authed"}, "compress", xmlns_compression_protocol, 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"); + session.send(error_st); + session:log("warn", "Tried to establish another compression layer."); + end + -- checking if the compression method is supported local method = stanza:child_with_name("method")[1]; if method == "zlib" then @@ -74,7 +81,7 @@ text = compressed; extra = st.stanza("failure", {xmlns="http://jabber.org/protocol/compress"}):tag("processing-failed"); }); - module:log("error", compressed); + module:log("warn", compressed); return; end old_send(compressed); @@ -91,7 +98,7 @@ text = decompressed; extra = st.stanza("failure", {xmlns="http://jabber.org/protocol/compress"}):tag("processing-failed"); }); - module:log("error", decompressed); + module:log("warn", decompressed); return; end old_data(conn, decompressed);