Software / code / prosody
Comparison
prosodyctl @ 8285:433b2a41351f
Merge 0.10->trunk
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Fri, 29 Sep 2017 13:45:03 +0200 |
| parent | 8268:e21d82551e05 |
| parent | 8277:57c5dd08ff0a |
| child | 8440:4e6710b4f873 |
comparison
equal
deleted
inserted
replaced
| 8271:c09deab9989e | 8285:433b2a41351f |
|---|---|
| 89 local ok, level, err = config.load(filename); | 89 local ok, level, err = config.load(filename); |
| 90 if not ok then | 90 if not ok then |
| 91 print("\n"); | 91 print("\n"); |
| 92 print("**************************"); | 92 print("**************************"); |
| 93 if level == "parser" then | 93 if level == "parser" then |
| 94 print("A problem occured while reading the config file "..(CFG_CONFIGDIR or ".").."/prosody.cfg.lua"); | 94 print("A problem occured while reading the config file "..filename); |
| 95 local err_line, err_message = tostring(err):match("%[string .-%]:(%d*): (.*)"); | 95 local err_line, err_message = tostring(err):match("%[string .-%]:(%d*): (.*)"); |
| 96 print("Error"..(err_line and (" on line "..err_line) or "")..": "..(err_message or tostring(err))); | 96 print("Error"..(err_line and (" on line "..err_line) or "")..": "..(err_message or tostring(err))); |
| 97 print(""); | 97 print(""); |
| 98 elseif level == "file" then | 98 elseif level == "file" then |
| 99 print("Prosody was unable to find the configuration file."); | 99 print("Prosody was unable to find the configuration file."); |
| 100 print("We looked for: "..(CFG_CONFIGDIR or ".").."/prosody.cfg.lua"); | 100 print("We looked for: "..filename); |
| 101 print("A sample config file is included in the Prosody download called prosody.cfg.lua.dist"); | 101 print("A sample config file is included in the Prosody download called prosody.cfg.lua.dist"); |
| 102 print("Copy or rename it to prosody.cfg.lua and edit as necessary."); | 102 print("Copy or rename it to prosody.cfg.lua and edit as necessary."); |
| 103 end | 103 end |
| 104 print("More help on configuring Prosody can be found at https://prosody.im/doc/configure"); | 104 print("More help on configuring Prosody can be found at https://prosody.im/doc/configure"); |
| 105 print("Good luck!"); | 105 print("Good luck!"); |
| 160 end | 160 end |
| 161 end | 161 end |
| 162 if not switched_user then | 162 if not switched_user then |
| 163 -- Boo! | 163 -- Boo! |
| 164 print("Warning: Couldn't switch to Prosody user/group '"..tostring(desired_user).."'/'"..tostring(desired_group).."': "..tostring(err)); | 164 print("Warning: Couldn't switch to Prosody user/group '"..tostring(desired_user).."'/'"..tostring(desired_group).."': "..tostring(err)); |
| 165 else | |
| 166 -- Make sure the Prosody user can read the config | |
| 167 local conf, err, errno = io.open(ENV_CONFIG); | |
| 168 if conf then | |
| 169 conf:close(); | |
| 170 else | |
| 171 print("The config file is not readable by the '"..desired_user.."' user."); | |
| 172 print("Prosody will not be able to read it."); | |
| 173 print("Error was "..err); | |
| 174 os.exit(1); | |
| 175 end | |
| 165 end | 176 end |
| 166 end | 177 end |
| 167 | 178 |
| 168 -- Set our umask to protect data files | 179 -- Set our umask to protect data files |
| 169 pposix.umask(config.get("*", "umask") or "027"); | 180 pposix.umask(config.get("*", "umask") or "027"); |
| 890 local owner, group; | 901 local owner, group; |
| 891 if pposix.getuid() == 0 then -- We need root to change ownership | 902 if pposix.getuid() == 0 then -- We need root to change ownership |
| 892 owner = config.get("*", "prosody_user") or "prosody"; | 903 owner = config.get("*", "prosody_user") or "prosody"; |
| 893 group = config.get("*", "prosody_group") or owner; | 904 group = config.get("*", "prosody_group") or owner; |
| 894 end | 905 end |
| 906 local cm = require "core.certmanager"; | |
| 895 local imported = {}; | 907 local imported = {}; |
| 896 for _, host in ipairs(hostnames) do | 908 for _, host in ipairs(hostnames) do |
| 897 for _, dir in ipairs(arg) do | 909 for _, dir in ipairs(arg) do |
| 898 if lfs.attributes(dir .. "/" .. host .. "/fullchain.pem") | 910 local paths = cm.find_cert(dir, host); |
| 899 and lfs.attributes(dir .. "/" .. host .. "/privkey.pem") then | 911 if paths then |
| 900 copy(dir .. "/" .. host .. "/fullchain.pem", cert_basedir .. "/" .. host .. ".crt", nil, owner, group); | 912 copy(paths.certificate, cert_basedir .. "/" .. host .. ".crt", nil, owner, group); |
| 901 copy(dir .. "/" .. host .. "/privkey.pem", cert_basedir .. "/" .. host .. ".key", "0377", owner, group); | 913 copy(paths.key, cert_basedir .. "/" .. host .. ".key", "0377", owner, group); |
| 902 table.insert(imported, host); | |
| 903 elseif lfs.attributes(dir .. "/" .. host .. ".crt") | |
| 904 and lfs.attributes(dir .. "/" .. host .. ".key") then | |
| 905 copy(dir .. "/" .. host .. ".crt", cert_basedir .. "/" .. host .. ".crt", nil, owner, group); | |
| 906 copy(dir .. "/" .. host .. ".key", cert_basedir .. "/" .. host .. ".key", "0377", owner, group); | |
| 907 table.insert(imported, host); | 914 table.insert(imported, host); |
| 908 else | 915 else |
| 909 -- TODO Say where we looked | 916 -- TODO Say where we looked |
| 910 show_warning("No certificate for host "..host.." found :("); | 917 show_warning("No certificate for host "..host.." found :("); |
| 911 end | 918 end |