Comparison

plugins/mod_compression.lua @ 2283:156bb00ba5c0

mod_compression: Moving compression setup in a dedicated function.
author Tobias Markmann <tm@ayena.de>
date Sun, 29 Nov 2009 22:18:06 +0100
parent 2282:6f54dac3ec2d
child 2284:491b89d6816b
comparison
equal deleted inserted replaced
2282:6f54dac3ec2d 2283:156bb00ba5c0
106 module:log("error", inflate_stream); 106 module:log("error", inflate_stream);
107 return 107 return
108 end 108 end
109 109
110 -- setup compression for session.w 110 -- setup compression for session.w
111 local old_send = session.send; 111 local function setup_compression(session)
112 local old_send = session.send;
112 113
113 session.send = function(t) 114 session.send = function(t)
114 local status, compressed, eof = pcall(deflate_stream, tostring(t), 'sync'); 115 local status, compressed, eof = pcall(deflate_stream, tostring(t), 'sync');
115 if status == false then 116 if status == false then
116 session:close({ 117 session:close({
117 condition = "undefined-condition"; 118 condition = "undefined-condition";
118 text = compressed; 119 text = compressed;
119 extra = st.stanza("failure", {xmlns="http://jabber.org/protocol/compress"}):tag("processing-failed"); 120 extra = st.stanza("failure", {xmlns="http://jabber.org/protocol/compress"}):tag("processing-failed");
120 }); 121 });
121 module:log("warn", compressed); 122 module:log("warn", compressed);
122 return; 123 return;
123 end 124 end
124 old_send(compressed); 125 old_send(compressed);
125 end; 126 end;
127 end
128 setup_compression(session);
126 129
127 -- setup decompression for session.data 130 -- setup decompression for session.data
128 local function setup_decompression(session) 131 local function setup_decompression(session)
129 local old_data = session.data 132 local old_data = session.data
130 session.data = function(conn, data) 133 session.data = function(conn, data)