Software / code / prosody
Comparison
plugins/mod_compression.lua @ 2284:491b89d6816b
mod_compression: Make setup_compression work for s2s sessions too.
| author | Tobias Markmann <tm@ayena.de> |
|---|---|
| date | Sun, 29 Nov 2009 23:04:19 +0100 |
| parent | 2283:156bb00ba5c0 |
| child | 2285:3dd7fdee9035 |
comparison
equal
deleted
inserted
replaced
| 2283:156bb00ba5c0 | 2284:491b89d6816b |
|---|---|
| 107 return | 107 return |
| 108 end | 108 end |
| 109 | 109 |
| 110 -- setup compression for session.w | 110 -- setup compression for session.w |
| 111 local function setup_compression(session) | 111 local function setup_compression(session) |
| 112 local old_send = session.send; | 112 local old_send = (session.sends2s or session.send); |
| 113 | 113 |
| 114 session.send = function(t) | 114 local new_send = function(t) |
| 115 local status, compressed, eof = pcall(deflate_stream, tostring(t), 'sync'); | 115 local status, compressed, eof = pcall(deflate_stream, tostring(t), 'sync'); |
| 116 if status == false then | 116 if status == false then |
| 117 session:close({ | 117 session:close({ |
| 118 condition = "undefined-condition"; | 118 condition = "undefined-condition"; |
| 119 text = compressed; | 119 text = compressed; |
| 122 module:log("warn", compressed); | 122 module:log("warn", compressed); |
| 123 return; | 123 return; |
| 124 end | 124 end |
| 125 old_send(compressed); | 125 old_send(compressed); |
| 126 end; | 126 end; |
| 127 | |
| 128 if session.sends2s then session.sends2s = new_send | |
| 129 elseif session.send then session.send = new_send end | |
| 127 end | 130 end |
| 128 setup_compression(session); | 131 setup_compression(session); |
| 129 | 132 |
| 130 -- setup decompression for session.data | 133 -- setup decompression for session.data |
| 131 local function setup_decompression(session) | 134 local function setup_decompression(session) |