1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-06-03 22:48:03 +02:00

dirmngr: Make commands RELOADDIRMNGR and KILLDIRMNGR work properly.

* dirmngr/server.c (cmd_killdirmngr): Set assuan close flag.
(cmd_reloaddirmngr): Use check_owner_permission.

Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2015-10-06 13:55:38 +02:00
parent d5b4b4d9c1
commit 7faf45effc
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B

View File

@ -2120,6 +2120,7 @@ cmd_killdirmngr (assuan_context_t ctx, char *line)
if (!err) if (!err)
{ {
ctrl->server_local->stopme = 1; ctrl->server_local->stopme = 1;
assuan_set_flag (ctx, ASSUAN_FORCE_CLOSE, 1);
err = gpg_error (GPG_ERR_EOF); err = gpg_error (GPG_ERR_EOF);
} }
return err; return err;
@ -2141,14 +2142,12 @@ cmd_reloaddirmngr (assuan_context_t ctx, char *line)
{ {
#ifndef HAVE_W32_SYSTEM #ifndef HAVE_W32_SYSTEM
{ {
gpg_err_code_t ec; gpg_error_t err;
assuan_peercred_t cred;
ec = gpg_err_code (assuan_get_peercred (ctx, &cred)); err = check_owner_permission (ctx,
if (!ec && cred->uid) "no permission to reload this process");
ec = GPG_ERR_EPERM; /* Only root may terminate. */ if (err)
if (ec) return err;
return set_error (ec, "no permission to reload this process");
} }
#endif #endif
} }