Diff

plugins/mod_compression.lua @ 4898:010c01841ed0

mod_compression: advertise/activate compression only for authenticated sessions in accordance to XEP-0170. (Thanks fippo)
author Tobias Markmann <tm@ayena.de>
date Sat, 19 May 2012 22:05:23 +0200
parent 4481:408c2f688e4e
child 5351:901ed253bbf7
line wrap: on
line diff
--- a/plugins/mod_compression.lua	Sat May 19 20:46:44 2012 +0100
+++ b/plugins/mod_compression.lua	Sat May 19 22:05:23 2012 +0200
@@ -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 @@
 
 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 @@
 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 @@
 -- 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