certmanager: Disable SSL compression if possible (LuaSec 0.5 or 0.4.1+OpenSSL 1.x)
authorMatthew Wild <mwild1@gmail.com>
Wed, 22 May 2013 13:32:02 +0000 (14:32 +0100)
committerMatthew Wild <mwild1@gmail.com>
Wed, 22 May 2013 13:32:02 +0000 (14:32 +0100)
core/certmanager.lua

index b91f7110b57205be6335a2e047200dc4b597b94c..49f445f6e78d2d5b999d929a2e87739d7a96c4a2 100644 (file)
@@ -17,11 +17,12 @@ local prosody = prosody;
 local resolve_path = configmanager.resolve_relative_path;
 local config_path = prosody.paths.config;
 
-local luasec_has_noticket, luasec_has_verifyext;
+local luasec_has_noticket, luasec_has_verifyext, luasec_has_no_compression;
 if ssl then
        local luasec_major, luasec_minor = ssl._VERSION:match("^(%d+)%.(%d+)");
        luasec_has_noticket = tonumber(luasec_major)>0 or tonumber(luasec_minor)>=4;
        luasec_has_verifyext = tonumber(luasec_major)>0 or tonumber(luasec_minor)>=5;
+       luasec_has_no_compression = tonumber(luasec_major)>0 or tonumber(luasec_minor)>=5;
 end
 
 module "certmanager"
@@ -39,6 +40,9 @@ if ssl and not luasec_has_verifyext and ssl.x509 then
                default_verify[#default_verify+1] = default_verifyext[i]:sub(6);
        end
 end
+if luasec_has_no_compression and configmanager.get("*", "ssl_compression") ~= true then
+       default_options[#default_options+1] = "no_compression";
+end
 
 function create_context(host, mode, user_ssl_config)
        user_ssl_config = user_ssl_config or default_ssl_config;