Mercurial > prosody-hg
comparison core/certmanager.lua @ 5621:63cfd59999b6
certmanager: Disable SSL compression if possible (LuaSec 0.5 or 0.4.1+OpenSSL 1.x)
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Wed, 22 May 2013 14:32:02 +0100 |
| parents | 898454038524 |
| children | 576488cffc3a 9ca4d1ada906 |
comparison
equal
deleted
inserted
replaced
| 5598:3bb8aefd8ce0 | 5621:63cfd59999b6 |
|---|---|
| 15 | 15 |
| 16 local prosody = prosody; | 16 local prosody = prosody; |
| 17 local resolve_path = configmanager.resolve_relative_path; | 17 local resolve_path = configmanager.resolve_relative_path; |
| 18 local config_path = prosody.paths.config; | 18 local config_path = prosody.paths.config; |
| 19 | 19 |
| 20 local luasec_has_noticket, luasec_has_verifyext; | 20 local luasec_has_noticket, luasec_has_verifyext, luasec_has_no_compression; |
| 21 if ssl then | 21 if ssl then |
| 22 local luasec_major, luasec_minor = ssl._VERSION:match("^(%d+)%.(%d+)"); | 22 local luasec_major, luasec_minor = ssl._VERSION:match("^(%d+)%.(%d+)"); |
| 23 luasec_has_noticket = tonumber(luasec_major)>0 or tonumber(luasec_minor)>=4; | 23 luasec_has_noticket = tonumber(luasec_major)>0 or tonumber(luasec_minor)>=4; |
| 24 luasec_has_verifyext = tonumber(luasec_major)>0 or tonumber(luasec_minor)>=5; | 24 luasec_has_verifyext = tonumber(luasec_major)>0 or tonumber(luasec_minor)>=5; |
| 25 luasec_has_no_compression = tonumber(luasec_major)>0 or tonumber(luasec_minor)>=5; | |
| 25 end | 26 end |
| 26 | 27 |
| 27 module "certmanager" | 28 module "certmanager" |
| 28 | 29 |
| 29 -- Global SSL options if not overridden per-host | 30 -- Global SSL options if not overridden per-host |
| 36 if ssl and not luasec_has_verifyext and ssl.x509 then | 37 if ssl and not luasec_has_verifyext and ssl.x509 then |
| 37 -- COMPAT mw/luasec-hg | 38 -- COMPAT mw/luasec-hg |
| 38 for i=1,#default_verifyext do -- Remove lsec_ prefix | 39 for i=1,#default_verifyext do -- Remove lsec_ prefix |
| 39 default_verify[#default_verify+1] = default_verifyext[i]:sub(6); | 40 default_verify[#default_verify+1] = default_verifyext[i]:sub(6); |
| 40 end | 41 end |
| 42 end | |
| 43 if luasec_has_no_compression and configmanager.get("*", "ssl_compression") ~= true then | |
| 44 default_options[#default_options+1] = "no_compression"; | |
| 41 end | 45 end |
| 42 | 46 |
| 43 function create_context(host, mode, user_ssl_config) | 47 function create_context(host, mode, user_ssl_config) |
| 44 user_ssl_config = user_ssl_config or default_ssl_config; | 48 user_ssl_config = user_ssl_config or default_ssl_config; |
| 45 | 49 |
