Comparison

core/certmanager.lua @ 6089:d774cb85664b

certmanager: Move ssl.protocol handling to after ssl.options is a table (thanks Ralph)
author Kim Alvefur <zash@zash.se>
date Mon, 21 Apr 2014 02:43:09 +0200
parent 6087:821756a862b0
child 6165:6a184b16b717
comparison
equal deleted inserted replaced
6087:821756a862b0 6089:d774cb85664b
14 local tostring = tostring; 14 local tostring = tostring;
15 local pairs = pairs; 15 local pairs = pairs;
16 local type = type; 16 local type = type;
17 local io_open = io.open; 17 local io_open = io.open;
18 local t_concat = table.concat; 18 local t_concat = table.concat;
19 local t_insert = table.insert;
19 20
20 local prosody = prosody; 21 local prosody = prosody;
21 local resolve_path = configmanager.resolve_relative_path; 22 local resolve_path = configmanager.resolve_relative_path;
22 local config_path = prosody.paths.config; 23 local config_path = prosody.paths.config;
23 24
98 if user_ssl_config[option] == nil then 99 if user_ssl_config[option] == nil then
99 user_ssl_config[option] = default_value; 100 user_ssl_config[option] = default_value;
100 end 101 end
101 end 102 end
102 103
103 local min_protocol = protocols[user_ssl_config.protocol];
104 if min_protocol then
105 user_ssl_config.protocol = "sslv23";
106 for i = min_protocol, 1, -1 do
107 user_ssl_config.options["no_"..protocols[i]] = true;
108 end
109 end
110
111 for option in pairs(set_options) do 104 for option in pairs(set_options) do
112 local merged = {}; 105 local merged = {};
113 merge_set(core_defaults[option], merged); 106 merge_set(core_defaults[option], merged);
114 if global_ssl_config then 107 if global_ssl_config then
115 merge_set(global_ssl_config[option], merged); 108 merge_set(global_ssl_config[option], merged);
120 if enable then 113 if enable then
121 final_array[#final_array+1] = opt; 114 final_array[#final_array+1] = opt;
122 end 115 end
123 end 116 end
124 user_ssl_config[option] = final_array; 117 user_ssl_config[option] = final_array;
118 end
119
120 local min_protocol = protocols[user_ssl_config.protocol];
121 if min_protocol then
122 user_ssl_config.protocol = "sslv23";
123 for i = 1, min_protocol do
124 t_insert(user_ssl_config.options, "no_"..protocols[i]);
125 end
125 end 126 end
126 127
127 -- We can't read the password interactively when daemonized 128 -- We can't read the password interactively when daemonized
128 user_ssl_config.password = user_ssl_config.password or 129 user_ssl_config.password = user_ssl_config.password or
129 function() log("error", "Encrypted certificate for %s requires 'ssl' 'password' to be set in config", host); end; 130 function() log("error", "Encrypted certificate for %s requires 'ssl' 'password' to be set in config", host); end;