diff options
author | Kim Alvefur <zash@zash.se> | 2017-04-24 14:19:49 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2017-04-24 14:19:49 +0200 |
commit | d53fffb30e060a0b2059d32707ac7b45966375f0 (patch) | |
tree | 13ca49cac213b410c52092725470206f070d7450 /prosodyctl | |
parent | c55c6b322bc1ee0f5d4aa25aba740433ef7f570f (diff) | |
parent | d40c43dffe69678eb1a63ac6f063b6b7ae8fdcec (diff) | |
download | prosody-d53fffb30e060a0b2059d32707ac7b45966375f0.tar.gz prosody-d53fffb30e060a0b2059d32707ac7b45966375f0.zip |
Merge 0.10->trunk
Diffstat (limited to 'prosodyctl')
-rwxr-xr-x | prosodyctl | 16 |
1 files changed, 14 insertions, 2 deletions
@@ -873,19 +873,21 @@ function cert_commands.import(arg) owner = config.get("*", "prosody_user") or "prosody"; group = config.get("*", "prosody_group") or owner; end + local imported = {}; for _, host in ipairs(hostnames) do for _, dir in ipairs(arg) do if lfs.attributes(dir .. "/" .. host .. "/fullchain.pem") and lfs.attributes(dir .. "/" .. host .. "/privkey.pem") then copy(dir .. "/" .. host .. "/fullchain.pem", cert_basedir .. "/" .. host .. ".crt", nil, owner, group); copy(dir .. "/" .. host .. "/privkey.pem", cert_basedir .. "/" .. host .. ".key", "0377", owner, group); - show_message("Imported certificate and key for "..host); + table.insert(imported, host); elseif lfs.attributes(dir .. "/" .. host .. ".crt") and lfs.attributes(dir .. "/" .. host .. ".key") then copy(dir .. "/" .. host .. ".crt", cert_basedir .. "/" .. host .. ".crt", nil, owner, group); copy(dir .. "/" .. host .. ".key", cert_basedir .. "/" .. host .. ".key", "0377", owner, group); - show_message("Imported certificate and key for "..host); + table.insert(imported, host); else + -- TODO Say where we looked show_warning("No certificate for host "..host.." found :("); end -- TODO Additional checks @@ -893,6 +895,16 @@ function cert_commands.import(arg) -- Private key matches public key in certificate end end + if imported[1] then + show_message("Imported certificate and key for hosts "..table.concat(imported, ", ")); + local ok, err = prosodyctl.reload(); + if not ok and err ~= "not-running" then + show_message(error_messages[err]); + end + else + show_warning("No certificates imported :("); + return 1; + end end function commands.cert(arg) |