Merge 0.9->0.10
[prosody.git] / plugins / mod_compression.lua
index e4e521b7dbc1dbd6ff710acdc7e754fcec0297c3..da55e5bbb7f71f2f905afd474cbe914c082d938d 100644 (file)
@@ -48,8 +48,8 @@ module:hook_stanza(xmlns_stream, "features",
                                local comp_st = stanza:get_child("compression", xmlns_compression_feature);
                                if comp_st then
                                        -- do we support the mechanism
-                                       for a in comp_st:children() do
-                                               local algorithm = a[1]
+                                       for a in comp_st:childtags("method") do
+                                               local algorithm = a:get_text();
                                                if algorithm == "zlib" then
                                                        session.sends2s(st.stanza("compress", {xmlns=xmlns_compression_protocol}):tag("method"):text("zlib"))
                                                        session.log("debug", "Enabled compression using zlib.")
@@ -147,6 +147,12 @@ module:hook("stanza/http://jabber.org/protocol/compress:compressed", function(ev
        end
 end);
 
+module:hook("stanza/http://jabber.org/protocol/compress:failure", function(event)
+       local err = event.stanza:get_child();
+       (event.origin.log or module._log)("warn", "Compression setup failed (%s)", err and err.name or "unknown reason");
+       return true;
+end);
+
 module:hook("stanza/http://jabber.org/protocol/compress:compress", function(event)
        local session, stanza = event.origin, event.stanza;