Comparison

plugins/mod_compression.lua @ 3226:69e920d7c968

mod_compression: Move logging of compression/decompression errors to before the closing of the stream, to make logs a bit easier to follow
author Matthew Wild <mwild1@gmail.com>
date Thu, 10 Jun 2010 16:47:17 +0100
parent 3223:ee2dabe699c9
child 3301:772fb30b28fb
comparison
equal deleted inserted replaced
3224:9dd54a708523 3226:69e920d7c968
96 -- setup compression for a stream 96 -- setup compression for a stream
97 local function setup_compression(session, deflate_stream) 97 local function setup_compression(session, deflate_stream)
98 add_filter(session, "bytes/out", function(t) 98 add_filter(session, "bytes/out", function(t)
99 local status, compressed, eof = pcall(deflate_stream, tostring(t), 'sync'); 99 local status, compressed, eof = pcall(deflate_stream, tostring(t), 'sync');
100 if status == false then 100 if status == false then
101 module:log("warn", "%s", tostring(compressed));
101 session:close({ 102 session:close({
102 condition = "undefined-condition"; 103 condition = "undefined-condition";
103 text = compressed; 104 text = compressed;
104 extra = st.stanza("failure", {xmlns="http://jabber.org/protocol/compress"}):tag("processing-failed"); 105 extra = st.stanza("failure", {xmlns="http://jabber.org/protocol/compress"}):tag("processing-failed");
105 }); 106 });
106 module:log("warn", "%s", tostring(compressed));
107 return; 107 return;
108 end 108 end
109 return compressed; 109 return compressed;
110 end); 110 end);
111 end 111 end
113 -- setup decompression for a stream 113 -- setup decompression for a stream
114 local function setup_decompression(session, inflate_stream) 114 local function setup_decompression(session, inflate_stream)
115 add_filter(session, "bytes/in", function(data) 115 add_filter(session, "bytes/in", function(data)
116 local status, decompressed, eof = pcall(inflate_stream, data); 116 local status, decompressed, eof = pcall(inflate_stream, data);
117 if status == false then 117 if status == false then
118 module:log("warn", "%s", tostring(decompressed));
118 session:close({ 119 session:close({
119 condition = "undefined-condition"; 120 condition = "undefined-condition";
120 text = decompressed; 121 text = decompressed;
121 extra = st.stanza("failure", {xmlns="http://jabber.org/protocol/compress"}):tag("processing-failed"); 122 extra = st.stanza("failure", {xmlns="http://jabber.org/protocol/compress"}):tag("processing-failed");
122 }); 123 });
123 module:log("warn", "%s", tostring(decompressed));
124 return; 124 return;
125 end 125 end
126 return decompressed; 126 return decompressed;
127 end); 127 end);
128 end 128 end