mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-18 14:17:03 +01:00
tests: Use gpgconf to stop the agent.
* tests/openpgp/defs.scm (stop-agent): Swap order of actions. Kill all daemons using gpgconf. * tools/gpgconf.c (main) <aRemoveSocketDir>: Try to remove known socketfails on rmdir failure. Do no fail for ENONET. -- Killing all daemons is not really required but it does not harm to be prepared for the future. Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
178b6314ab
commit
2c9d9ac55e
@ -453,10 +453,12 @@
|
|||||||
"|--debug-quick-random")
|
"|--debug-quick-random")
|
||||||
/bye)))
|
/bye)))
|
||||||
|
|
||||||
;; Stop the agent and remove the socket dir.
|
;; Stop the agent and other daemons and remove the socket dir.
|
||||||
(define (stop-agent)
|
(define (stop-agent)
|
||||||
(log "Stopping gpg-agent...")
|
(log "Stopping gpg-agent...")
|
||||||
|
(call-check `(,(tool 'gpgconf) --kill all))
|
||||||
(catch (log "Warning: Removing socket directory failed.")
|
(catch (log "Warning: Removing socket directory failed.")
|
||||||
(call-popen `(,(tool 'gpgconf) --remove-socketdir) ""))
|
(call-popen `(,(tool 'gpgconf) --remove-socketdir) "")))
|
||||||
(call-check `(,(tool 'gpg-connect-agent) --verbose --no-autostart
|
|
||||||
killagent /bye)))
|
|
||||||
|
;; end
|
||||||
|
@ -456,6 +456,7 @@ query_swdb (estream_t out, const char *name, const char *current_version)
|
|||||||
int
|
int
|
||||||
main (int argc, char **argv)
|
main (int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
gpg_error_t err;
|
||||||
ARGPARSE_ARGS pargs;
|
ARGPARSE_ARGS pargs;
|
||||||
const char *fname;
|
const char *fname;
|
||||||
int no_more_options = 0;
|
int no_more_options = 0;
|
||||||
@ -755,7 +756,42 @@ main (int argc, char **argv)
|
|||||||
else if (opt.dry_run)
|
else if (opt.dry_run)
|
||||||
;
|
;
|
||||||
else if (rmdir (socketdir))
|
else if (rmdir (socketdir))
|
||||||
gc_error (1, errno, "error removing '%s'", socketdir);
|
{
|
||||||
|
/* If the director is not empty we first try to delet
|
||||||
|
* socket files. */
|
||||||
|
err = gpg_error_from_syserror ();
|
||||||
|
if (gpg_err_code (err) == GPG_ERR_ENOTEMPTY
|
||||||
|
|| gpg_err_code (err) == GPG_ERR_EEXIST)
|
||||||
|
{
|
||||||
|
static const char * const names[] = {
|
||||||
|
GPG_AGENT_SOCK_NAME,
|
||||||
|
GPG_AGENT_EXTRA_SOCK_NAME,
|
||||||
|
GPG_AGENT_BROWSER_SOCK_NAME,
|
||||||
|
GPG_AGENT_SSH_SOCK_NAME,
|
||||||
|
SCDAEMON_SOCK_NAME,
|
||||||
|
DIRMNGR_SOCK_NAME
|
||||||
|
};
|
||||||
|
int i;
|
||||||
|
char *p;
|
||||||
|
|
||||||
|
for (i=0; i < DIM(names); i++)
|
||||||
|
{
|
||||||
|
p = strconcat (socketdir , "/", names[i], NULL);
|
||||||
|
if (p)
|
||||||
|
gnupg_remove (p);
|
||||||
|
xfree (p);
|
||||||
|
}
|
||||||
|
if (rmdir (socketdir))
|
||||||
|
gc_error (1, 0, "error removing '%s': %s",
|
||||||
|
socketdir, gpg_strerror (err));
|
||||||
|
}
|
||||||
|
else if (gpg_err_code (err) == GPG_ERR_ENOENT)
|
||||||
|
gc_error (0, 0, "warning: removing '%s' failed: %s",
|
||||||
|
socketdir, gpg_strerror (err));
|
||||||
|
else
|
||||||
|
gc_error (1, 0, "error removing '%s': %s",
|
||||||
|
socketdir, gpg_strerror (err));
|
||||||
|
}
|
||||||
|
|
||||||
xfree (socketdir);
|
xfree (socketdir);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user