11 |
11 |
12 local xmlns_compression_feature = "http://jabber.org/features/compress" |
12 local xmlns_compression_feature = "http://jabber.org/features/compress" |
13 local xmlns_compression_protocol = "http://jabber.org/protocol/compress" |
13 local xmlns_compression_protocol = "http://jabber.org/protocol/compress" |
14 local compression_stream_feature = st.stanza("compression", {xmlns=xmlns_compression_feature}):tag("method"):text("zlib"):up(); |
14 local compression_stream_feature = st.stanza("compression", {xmlns=xmlns_compression_feature}):tag("method"):text("zlib"):up(); |
15 |
15 |
|
16 local compression_level = module:get_option("compression_level"); |
|
17 |
|
18 -- if not defined assume admin wants best compression |
|
19 if compression_level == nil then compression_level = 9 end; |
|
20 |
|
21 compression_level = tonumber(compression_level); |
|
22 if not compression_level or compression_level < 1 or compression_level > 9 then |
|
23 module:log("warn", "Invalid compression level in config: %s", tostring(compression_level)); |
|
24 module:log("warn", "Module loading aborted. Compression won't be available."); |
|
25 return; |
|
26 end |
16 |
27 |
17 module:add_event_hook("stream-features", |
28 module:add_event_hook("stream-features", |
18 function (session, features) |
29 function (session, features) |
19 if not session.compressed then |
30 if not session.compressed then |
20 -- FIXME only advertise compression support when TLS layer has no compression enabled |
31 -- FIXME only advertise compression support when TLS layer has no compression enabled |