X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=plugins%2Fmod_compression.lua;h=44bc05fe880ea7dad94508bd965577bad031b125;hb=4046546084120376e98a9263fe7dd93bb4b306c2;hp=62c0fa2e91d58b4978632579936d142bb19e877c;hpb=59508af7d7a9c9509ee19a03355ab4ff0f47f3c1;p=prosody.git diff --git a/plugins/mod_compression.lua b/plugins/mod_compression.lua index 62c0fa2e..44bc05fe 100644 --- a/plugins/mod_compression.lua +++ b/plugins/mod_compression.lua @@ -1,5 +1,5 @@ -- Prosody IM --- Copyright (C) 2009 Tobias Markmann +-- Copyright (C) 2009-2012 Tobias Markmann -- -- This project is MIT/X11 licensed. Please see the -- COPYING file in the source package for more information. @@ -26,7 +26,7 @@ end module:hook("stream-features", function(event) local origin, features = event.origin, event.features; - if not origin.compressed then + if not origin.compressed and (origin.type == "c2s" or origin.type == "s2sin" or origin.type == "s2sout") then -- FIXME only advertise compression support when TLS layer has no compression enabled features:add_child(compression_stream_feature); end @@ -35,7 +35,7 @@ end); module:hook("s2s-stream-features", function(event) local origin, features = event.origin, event.features; -- FIXME only advertise compression support when TLS layer has no compression enabled - if not origin.compressed then + if not origin.compressed and (origin.type == "c2s" or origin.type == "s2sin" or origin.type == "s2sout") then features:add_child(compression_stream_feature); end end); @@ -43,7 +43,7 @@ end); -- Hook to activate compression if remote server supports it. module:hook_stanza(xmlns_stream, "features", function (session, stanza) - if not session.compressed then + if not session.compressed and (session.type == "c2s" or session.type == "s2sin" or session.type == "s2sout") then -- does remote server support compression? local comp_st = stanza:child_with_name("compression"); if comp_st then @@ -141,10 +141,7 @@ module:hook("stanza/http://jabber.org/protocol/compress:compressed", function(ev -- setup decompression for session.data setup_decompression(session, inflate_stream); session:reset_stream(); - local default_stream_attr = {xmlns = "jabber:server", ["xmlns:stream"] = "http://etherx.jabber.org/streams", - ["xmlns:db"] = 'jabber:server:dialback', version = "1.0", to = session.to_host, from = session.from_host}; - session.sends2s(""); - session.sends2s(st.stanza("stream:stream", default_stream_attr):top_tag()); + session:open_stream(); session.compressed = true; return true; end