projects
/
prosody.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
certmanager: Remove debug logging accidentally committed
[prosody.git]
/
util
/
prosodyctl.lua
diff --git
a/util/prosodyctl.lua
b/util/prosodyctl.lua
index e44c78d7d14f69c2b6feaf1c0aa3f717f1655cff..7f3ce20e028ac811eeaa9564592f561b9f98783f 100644
(file)
--- a/
util/prosodyctl.lua
+++ b/
util/prosodyctl.lua
@@
-1,6
+1,6
@@
-- Prosody IM
-- Prosody IM
--- Copyright (C) 2008-20
09
Matthew Wild
--- Copyright (C) 2008-20
09
Waqas Hussain
+-- Copyright (C) 2008-20
10
Matthew Wild
+-- Copyright (C) 2008-20
10
Waqas Hussain
--
-- This project is MIT/X11 licensed. Please see the
-- COPYING file in the source package for more information.
--
-- This project is MIT/X11 licensed. Please see the
-- COPYING file in the source package for more information.
@@
-12,6
+12,7
@@
local encodings = require "util.encodings";
local stringprep = encodings.stringprep;
local usermanager = require "core.usermanager";
local signal = require "util.signal";
local stringprep = encodings.stringprep;
local usermanager = require "core.usermanager";
local signal = require "util.signal";
+local lfs = require "lfs";
local nodeprep, nameprep = stringprep.nodeprep, stringprep.nameprep;
local nodeprep, nameprep = stringprep.nodeprep, stringprep.nameprep;
@@
-20,6
+21,8
@@
local tostring, tonumber = tostring, tonumber;
local CFG_SOURCEDIR = _G.CFG_SOURCEDIR;
local CFG_SOURCEDIR = _G.CFG_SOURCEDIR;
+local prosody = prosody;
+
module "prosodyctl"
function adduser(params)
module "prosodyctl"
function adduser(params)
@@
-29,6
+32,11
@@
function adduser(params)
elseif not host then
return false, "invalid-hostname";
end
elseif not host then
return false, "invalid-hostname";
end
+
+ local provider = prosody.hosts[host].users;
+ if not(provider) or provider.name == "null" then
+ usermanager.initialize_host(host);
+ end
local ok = usermanager.create_user(user, password, host);
if not ok then
local ok = usermanager.create_user(user, password, host);
if not ok then
@@
-38,6
+46,11
@@
function adduser(params)
end
function user_exists(params)
end
function user_exists(params)
+ local provider = prosody.hosts[params.host].users;
+ if not(provider) or provider.name == "null" then
+ usermanager.initialize_host(params.host);
+ end
+
return usermanager.user_exists(params.user, params.host);
end
return usermanager.user_exists(params.user, params.host);
end
@@
-64,11
+77,17
@@
function getpid()
return false, "no-pidfile";
end
return false, "no-pidfile";
end
- local file, err = io.open(pidfile);
+ local file, err = io.open(pidfile
, "r+"
);
if not file then
return false, "pidfile-read-failed", err;
end
if not file then
return false, "pidfile-read-failed", err;
end
+ local locked, err = lfs.lock(file, "w");
+ if locked then
+ file:close();
+ return false, "pidfile-not-locked";
+ end
+
local pid = tonumber(file:read("*a"));
file:close();
local pid = tonumber(file:read("*a"));
file:close();
@@
-82,7
+101,7
@@
end
function isrunning()
local ok, pid, err = _M.getpid();
if not ok then
function isrunning()
local ok, pid, err = _M.getpid();
if not ok then
- if pid == "pidfile-read-failed" then
+ if pid == "pidfile-read-failed"
or pid == "pidfile-not-locked"
then
-- Report as not running, since we can't open the pidfile
-- (it probably doesn't exist)
return true, false;
-- Report as not running, since we can't open the pidfile
-- (it probably doesn't exist)
return true, false;