mod_compression: Moving compression setup in a dedicated function.
authorTobias Markmann <tm@ayena.de>
Sun, 29 Nov 2009 21:18:06 +0000 (22:18 +0100)
committerTobias Markmann <tm@ayena.de>
Sun, 29 Nov 2009 21:18:06 +0000 (22:18 +0100)
plugins/mod_compression.lua

index 72573b93ae1067d27e055c6c97607c2a5cfc82e9..2a6c0871c5a4b0ff3548a7853fa635d3fcfdc384 100644 (file)
@@ -108,21 +108,24 @@ module:add_handler({"c2s_unauthed", "c2s", "s2sin_unauthed", "s2sin"}, "compress
                                end
                                
                                -- setup compression for session.w
-                               local old_send = session.send;
+                               local function setup_compression(session)
+                                       local old_send = session.send;
                                
-                               session.send = function(t)
-                                               local status, compressed, eof = pcall(deflate_stream, tostring(t), 'sync');
-                                               if status == false then
-                                                       session:close({
-                                                               condition = "undefined-condition";
-                                                               text = compressed;
-                                                               extra = st.stanza("failure", {xmlns="http://jabber.org/protocol/compress"}):tag("processing-failed");
-                                                       });
-                                                       module:log("warn", compressed);
-                                                       return;
-                                               end
-                                               old_send(compressed);
-                                       end;
+                                       session.send = function(t)
+                                                       local status, compressed, eof = pcall(deflate_stream, tostring(t), 'sync');
+                                                       if status == false then
+                                                               session:close({
+                                                                       condition = "undefined-condition";
+                                                                       text = compressed;
+                                                                       extra = st.stanza("failure", {xmlns="http://jabber.org/protocol/compress"}):tag("processing-failed");
+                                                               });
+                                                               module:log("warn", compressed);
+                                                               return;
+                                                       end
+                                                       old_send(compressed);
+                                               end;
+                               end
+                               setup_compression(session);
                                        
                                -- setup decompression for session.data
                                local function setup_decompression(session)