projects
/
prosody.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
d6e28d8
)
Don't allow double compression.
author
Tobias Markmann
<tm@ayena.de>
Tue, 18 Aug 2009 20:00:37 +0000
(22:00 +0200)
committer
Tobias Markmann
<tm@ayena.de>
Tue, 18 Aug 2009 20:00:37 +0000
(22:00 +0200)
plugins/mod_compression.lua
patch
|
blob
|
history
diff --git
a/plugins/mod_compression.lua
b/plugins/mod_compression.lua
index 14265025546ac0bd4674a379bb8adcfb76cb1ea2..7e53a5e5d7ab629e4f1d2634dc0ff7e712a13800 100644
(file)
--- a/
plugins/mod_compression.lua
+++ b/
plugins/mod_compression.lua
@@
-37,6
+37,13
@@
module:add_event_hook("stream-features",
-- TODO Support compression on S2S level too.
module:add_handler({"c2s_unauthed", "c2s_authed"}, "compress", xmlns_compression_protocol,
function(session, stanza)
-- 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
-- checking if the compression method is supported
local method = stanza:child_with_name("method")[1];
if method == "zlib" then
@@
-74,7
+81,7
@@
module:add_handler({"c2s_unauthed", "c2s_authed"}, "compress", xmlns_compression
text = compressed;
extra = st.stanza("failure", {xmlns="http://jabber.org/protocol/compress"}):tag("processing-failed");
});
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);
return;
end
old_send(compressed);
@@
-91,7
+98,7
@@
module:add_handler({"c2s_unauthed", "c2s_authed"}, "compress", xmlns_compression
text = decompressed;
extra = st.stanza("failure", {xmlns="http://jabber.org/protocol/compress"}):tag("processing-failed");
});
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);
return;
end
old_data(conn, decompressed);