Comparison

plugins/mod_compression.lua @ 3223:ee2dabe699c9

mod_compression: Remove the unneccessary stream:reset() overloading, which was causing double decompression and c2s/s2s failures
author Matthew Wild <mwild1@gmail.com>
date Thu, 10 Jun 2010 01:55:32 +0100
parent 3202:1a8a5b89a5ad
child 3226:69e920d7c968
comparison
equal deleted inserted replaced
3222:d0525df563c0 3223:ee2dabe699c9
140 -- setup compression for session.w 140 -- setup compression for session.w
141 setup_compression(session, deflate_stream); 141 setup_compression(session, deflate_stream);
142 142
143 -- setup decompression for session.data 143 -- setup decompression for session.data
144 setup_decompression(session, inflate_stream); 144 setup_decompression(session, inflate_stream);
145 local session_reset_stream = session.reset_stream;
146 session.reset_stream = function(session)
147 session_reset_stream(session);
148 setup_decompression(session, inflate_stream);
149 return true;
150 end;
151 session:reset_stream(); 145 session:reset_stream();
152 local default_stream_attr = {xmlns = "jabber:server", ["xmlns:stream"] = "http://etherx.jabber.org/streams", 146 local default_stream_attr = {xmlns = "jabber:server", ["xmlns:stream"] = "http://etherx.jabber.org/streams",
153 ["xmlns:db"] = 'jabber:server:dialback', version = "1.0", to = session.to_host, from = session.from_host}; 147 ["xmlns:db"] = 'jabber:server:dialback', version = "1.0", to = session.to_host, from = session.from_host};
154 session.sends2s("<?xml version='1.0'?>"); 148 session.sends2s("<?xml version='1.0'?>");
155 session.sends2s(st.stanza("stream:stream", default_stream_attr):top_tag()); 149 session.sends2s(st.stanza("stream:stream", default_stream_attr):top_tag());
187 setup_compression(session, deflate_stream); 181 setup_compression(session, deflate_stream);
188 182
189 -- setup decompression for session.data 183 -- setup decompression for session.data
190 setup_decompression(session, inflate_stream); 184 setup_decompression(session, inflate_stream);
191 185
192 local session_reset_stream = session.reset_stream;
193 session.reset_stream = function(session)
194 session_reset_stream(session);
195 setup_decompression(session, inflate_stream);
196 return true;
197 end;
198 session.compressed = true; 186 session.compressed = true;
199 elseif method then 187 elseif method then
200 session.log("debug", "%s compression selected, but we don't support it.", tostring(method)); 188 session.log("debug", "%s compression selected, but we don't support it.", tostring(method));
201 local error_st = st.stanza("failure", {xmlns=xmlns_compression_protocol}):tag("unsupported-method"); 189 local error_st = st.stanza("failure", {xmlns=xmlns_compression_protocol}):tag("unsupported-method");
202 (session.sends2s or session.send)(error_st); 190 (session.sends2s or session.send)(error_st);