mod_compression: Make setup_compression work for s2s sessions too.
authorTobias Markmann <tm@ayena.de>
Sun, 29 Nov 2009 22:04:19 +0000 (23:04 +0100)
committerTobias Markmann <tm@ayena.de>
Sun, 29 Nov 2009 22:04:19 +0000 (23:04 +0100)
plugins/mod_compression.lua

index 2a6c0871c5a4b0ff3548a7853fa635d3fcfdc384..aecfaedbae89483fd06826b1da65679a49bf97dd 100644 (file)
@@ -109,9 +109,9 @@ module:add_handler({"c2s_unauthed", "c2s", "s2sin_unauthed", "s2sin"}, "compress
                                
                                -- setup compression for session.w
                                local function setup_compression(session)
-                                       local old_send = session.send;
-                               
-                                       session.send = function(t)
+                                       local old_send = (session.sends2s or session.send);
+                                       
+                                       local new_send = function(t)
                                                        local status, compressed, eof = pcall(deflate_stream, tostring(t), 'sync');
                                                        if status == false then
                                                                session:close({
@@ -124,6 +124,9 @@ module:add_handler({"c2s_unauthed", "c2s", "s2sin_unauthed", "s2sin"}, "compress
                                                        end
                                                        old_send(compressed);
                                                end;
+                                       
+                                       if session.sends2s then session.sends2s = new_send
+                                       elseif session.send then session.send = new_send end
                                end
                                setup_compression(session);