aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/asshelp.c29
-rw-r--r--common/asshelp.h11
-rw-r--r--common/get-passphrase.c3
-rw-r--r--dirmngr/dirmngr-client.c2
-rw-r--r--g10/call-agent.c3
-rw-r--r--g10/call-dirmngr.c3
-rw-r--r--g10/call-keyboxd.c3
-rw-r--r--sm/call-agent.c3
-rw-r--r--sm/call-dirmngr.c3
-rw-r--r--sm/keydb.c3
-rw-r--r--tools/call-dirmngr.c3
-rw-r--r--tools/card-call-scd.c3
-rw-r--r--tools/gpg-auth.c2
-rw-r--r--tools/gpg-connect-agent.c6
14 files changed, 48 insertions, 29 deletions
diff --git a/common/asshelp.c b/common/asshelp.c
index 8b3df2a4b..5a40e0380 100644
--- a/common/asshelp.c
+++ b/common/asshelp.c
@@ -386,7 +386,8 @@ start_new_service (assuan_context_t *r_ctx,
const char *opt_lc_ctype,
const char *opt_lc_messages,
session_env_t session_env,
- int autostart, int verbose, int debug,
+ unsigned int flags,
+ int verbose, int debug,
gpg_error_t (*status_cb)(ctrl_t, int, ...),
ctrl_t status_cb_arg)
{
@@ -445,7 +446,7 @@ start_new_service (assuan_context_t *r_ctx,
}
err = assuan_socket_connect (ctx, sockname, 0, connect_flags);
- if (err && autostart)
+ if (err && (flags & ASSHELP_FLAG_AUTOSTART))
{
char *abs_homedir;
lock_spawn_t lock;
@@ -547,7 +548,8 @@ start_new_service (assuan_context_t *r_ctx,
xfree (sockname);
if (err)
{
- if (autostart || gpg_err_code (err) != GPG_ERR_ASS_CONNECT_FAILED)
+ if ((flags & ASSHELP_FLAG_AUTOSTART)
+ || gpg_err_code (err) != GPG_ERR_ASS_CONNECT_FAILED)
log_error ("can't connect to the %s: %s\n",
printed_name, gpg_strerror (err));
assuan_release (ctx);
@@ -599,55 +601,58 @@ start_new_gpg_agent (assuan_context_t *r_ctx,
const char *opt_lc_ctype,
const char *opt_lc_messages,
session_env_t session_env,
- int autostart, int verbose, int debug,
+ unsigned int flags,
+ int verbose, int debug,
gpg_error_t (*status_cb)(ctrl_t, int, ...),
ctrl_t status_cb_arg)
{
return start_new_service (r_ctx, GNUPG_MODULE_NAME_AGENT,
errsource, agent_program,
opt_lc_ctype, opt_lc_messages, session_env,
- autostart, verbose, debug,
+ flags, verbose, debug,
status_cb, status_cb_arg);
}
/* Try to connect to the dirmngr via a socket. On platforms
- supporting it, start it up if needed and if AUTOSTART is true.
+ supporting it, start it up if needed and if ASSHELP_FLAG_AUTOSTART is set.
Returns a new assuan context at R_CTX or an error code. */
gpg_error_t
start_new_keyboxd (assuan_context_t *r_ctx,
gpg_err_source_t errsource,
const char *keyboxd_program,
- int autostart, int verbose, int debug,
+ unsigned int flags,
+ int verbose, int debug,
gpg_error_t (*status_cb)(ctrl_t, int, ...),
ctrl_t status_cb_arg)
{
return start_new_service (r_ctx, GNUPG_MODULE_NAME_KEYBOXD,
errsource, keyboxd_program,
NULL, NULL, NULL,
- autostart, verbose, debug,
+ flags, verbose, debug,
status_cb, status_cb_arg);
}
/* Try to connect to the dirmngr via a socket. On platforms
- supporting it, start it up if needed and if AUTOSTART is true.
+ supporting it, start it up if needed and if ASSHELP_FLAG_AUTOSTART is set.
Returns a new assuan context at R_CTX or an error code. */
gpg_error_t
start_new_dirmngr (assuan_context_t *r_ctx,
gpg_err_source_t errsource,
const char *dirmngr_program,
- int autostart, int verbose, int debug,
+ unsigned int flags,
+ int verbose, int debug,
gpg_error_t (*status_cb)(ctrl_t, int, ...),
ctrl_t status_cb_arg)
{
#ifndef USE_DIRMNGR_AUTO_START
- autostart = 0;
+ flags &= ~ASSHELP_FLAG_AUTOSTART; /* Clear flag. */
#endif
return start_new_service (r_ctx, GNUPG_MODULE_NAME_DIRMNGR,
errsource, dirmngr_program,
NULL, NULL, NULL,
- autostart, verbose, debug,
+ flags, verbose, debug,
status_cb, status_cb_arg);
}
diff --git a/common/asshelp.h b/common/asshelp.h
index e7e43bd1b..bca50759d 100644
--- a/common/asshelp.h
+++ b/common/asshelp.h
@@ -37,6 +37,8 @@
#include "util.h"
/*-- asshelp.c --*/
+#define ASSHELP_FLAG_AUTOSTART 1 /* Autostart the new service. */
+
void setup_libassuan_logging (unsigned int *debug_var_address,
int (*log_monitor)(assuan_context_t ctx,
@@ -61,7 +63,8 @@ start_new_gpg_agent (assuan_context_t *r_ctx,
const char *opt_lc_ctype,
const char *opt_lc_messages,
session_env_t session_env,
- int autostart, int verbose, int debug,
+ unsigned int flags,
+ int verbose, int debug,
gpg_error_t (*status_cb)(ctrl_t, int, ...),
ctrl_t status_cb_arg);
@@ -71,7 +74,8 @@ gpg_error_t
start_new_keyboxd (assuan_context_t *r_ctx,
gpg_err_source_t errsource,
const char *keyboxd_program,
- int autostart, int verbose, int debug,
+ unsigned int flags,
+ int verbose, int debug,
gpg_error_t (*status_cb)(ctrl_t, int, ...),
ctrl_t status_cb_arg);
@@ -81,7 +85,8 @@ gpg_error_t
start_new_dirmngr (assuan_context_t *r_ctx,
gpg_err_source_t errsource,
const char *dirmngr_program,
- int autostart, int verbose, int debug,
+ unsigned int flags,
+ int verbose, int debug,
gpg_error_t (*status_cb)(ctrl_t, int, ...),
ctrl_t status_cb_arg);
diff --git a/common/get-passphrase.c b/common/get-passphrase.c
index c24b40e88..8ea822710 100644
--- a/common/get-passphrase.c
+++ b/common/get-passphrase.c
@@ -94,7 +94,8 @@ start_agent (void)
agentargs.lc_ctype,
agentargs.lc_messages,
agentargs.session_env,
- 1, agentargs.verbosity, 0, NULL, NULL);
+ ASSHELP_FLAG_AUTOSTART,
+ agentargs.verbosity, 0, NULL, NULL);
if (!err)
{
/* Tell the agent that we support Pinentry notifications. No
diff --git a/dirmngr/dirmngr-client.c b/dirmngr/dirmngr-client.c
index 3912bf47b..f1059c939 100644
--- a/dirmngr/dirmngr-client.c
+++ b/dirmngr/dirmngr-client.c
@@ -308,7 +308,7 @@ main (int argc, char **argv )
opt.dirmngr_program
? opt.dirmngr_program
: gnupg_module_name (GNUPG_MODULE_NAME_DIRMNGR),
- ! cmd_ping,
+ cmd_ping? 0 : ASSHELP_FLAG_AUTOSTART,
opt.verbose,
0,
NULL, NULL);
diff --git a/g10/call-agent.c b/g10/call-agent.c
index b0bccc0a5..d6e4575c3 100644
--- a/g10/call-agent.c
+++ b/g10/call-agent.c
@@ -248,7 +248,8 @@ start_agent (ctrl_t ctrl, int flag_for_card)
opt.agent_program,
opt.lc_ctype, opt.lc_messages,
opt.session_env,
- opt.autostart, opt.verbose, DBG_IPC,
+ opt.autostart?ASSHELP_FLAG_AUTOSTART:0,
+ opt.verbose, DBG_IPC,
NULL, NULL);
if (!opt.autostart && gpg_err_code (rc) == GPG_ERR_NO_AGENT)
{
diff --git a/g10/call-dirmngr.c b/g10/call-dirmngr.c
index c47bf0928..d00f61450 100644
--- a/g10/call-dirmngr.c
+++ b/g10/call-dirmngr.c
@@ -166,7 +166,8 @@ create_context (ctrl_t ctrl, assuan_context_t *r_ctx)
err = start_new_dirmngr (&ctx,
GPG_ERR_SOURCE_DEFAULT,
opt.dirmngr_program,
- opt.autostart, opt.verbose, DBG_IPC,
+ opt.autostart?ASSHELP_FLAG_AUTOSTART:0,
+ opt.verbose, DBG_IPC,
NULL /*gpg_status2*/, ctrl);
if (!opt.autostart && gpg_err_code (err) == GPG_ERR_NO_DIRMNGR)
{
diff --git a/g10/call-keyboxd.c b/g10/call-keyboxd.c
index dc3d30a93..960979aae 100644
--- a/g10/call-keyboxd.c
+++ b/g10/call-keyboxd.c
@@ -150,7 +150,8 @@ create_new_context (ctrl_t ctrl, assuan_context_t *r_ctx)
err = start_new_keyboxd (&ctx,
GPG_ERR_SOURCE_DEFAULT,
opt.keyboxd_program,
- opt.autostart, opt.verbose, DBG_IPC,
+ opt.autostart?ASSHELP_FLAG_AUTOSTART:0,
+ opt.verbose, DBG_IPC,
NULL, ctrl);
if (!opt.autostart && gpg_err_code (err) == GPG_ERR_NO_KEYBOXD)
{
diff --git a/sm/call-agent.c b/sm/call-agent.c
index 698039504..883c0c644 100644
--- a/sm/call-agent.c
+++ b/sm/call-agent.c
@@ -118,7 +118,8 @@ start_agent (ctrl_t ctrl)
opt.agent_program,
opt.lc_ctype, opt.lc_messages,
opt.session_env,
- opt.autostart, opt.verbose, DBG_IPC,
+ opt.autostart?ASSHELP_FLAG_AUTOSTART:0,
+ opt.verbose, DBG_IPC,
gpgsm_status2, ctrl);
if (!opt.autostart && gpg_err_code (rc) == GPG_ERR_NO_AGENT)
diff --git a/sm/call-dirmngr.c b/sm/call-dirmngr.c
index 7fe7a68f5..22580bd12 100644
--- a/sm/call-dirmngr.c
+++ b/sm/call-dirmngr.c
@@ -228,7 +228,8 @@ start_dirmngr_ext (ctrl_t ctrl, assuan_context_t *ctx_r)
err = start_new_dirmngr (&ctx, GPG_ERR_SOURCE_DEFAULT,
opt.dirmngr_program,
- opt.autostart, opt.verbose, DBG_IPC,
+ opt.autostart?ASSHELP_FLAG_AUTOSTART:0,
+ opt.verbose, DBG_IPC,
gpgsm_status2, ctrl);
if (!opt.autostart && gpg_err_code (err) == GPG_ERR_NO_DIRMNGR)
{
diff --git a/sm/keydb.c b/sm/keydb.c
index 9b3c7c8ba..512ab1af8 100644
--- a/sm/keydb.c
+++ b/sm/keydb.c
@@ -523,7 +523,8 @@ create_new_context (ctrl_t ctrl, assuan_context_t *r_ctx)
err = start_new_keyboxd (&ctx,
GPG_ERR_SOURCE_DEFAULT,
opt.keyboxd_program,
- opt.autostart, opt.verbose, DBG_IPC,
+ opt.autostart?ASSHELP_FLAG_AUTOSTART:0,
+ opt.verbose, DBG_IPC,
NULL, ctrl);
if (!opt.autostart && gpg_err_code (err) == GPG_ERR_NO_KEYBOXD)
{
diff --git a/tools/call-dirmngr.c b/tools/call-dirmngr.c
index c0ddcf568..d85801530 100644
--- a/tools/call-dirmngr.c
+++ b/tools/call-dirmngr.c
@@ -65,7 +65,8 @@ connect_dirmngr (assuan_context_t *r_ctx)
err = start_new_dirmngr (&ctx,
GPG_ERR_SOURCE_DEFAULT,
NULL,
- opt.autostart, opt.verbose, opt.debug_ipc,
+ opt.autostart?ASSHELP_FLAG_AUTOSTART:0,
+ opt.verbose, opt.debug_ipc,
NULL, NULL);
if (!opt.autostart && gpg_err_code (err) == GPG_ERR_NO_DIRMNGR)
{
diff --git a/tools/card-call-scd.c b/tools/card-call-scd.c
index 27d8ad961..08f951331 100644
--- a/tools/card-call-scd.c
+++ b/tools/card-call-scd.c
@@ -299,7 +299,8 @@ start_agent (unsigned int flags)
opt.agent_program,
opt.lc_ctype, opt.lc_messages,
opt.session_env,
- opt.autostart, opt.verbose, DBG_IPC,
+ opt.autostart?ASSHELP_FLAG_AUTOSTART:0,
+ opt.verbose, DBG_IPC,
NULL, NULL);
if (!opt.autostart && gpg_err_code (err) == GPG_ERR_NO_AGENT)
{
diff --git a/tools/gpg-auth.c b/tools/gpg-auth.c
index f433ba220..a818bee5d 100644
--- a/tools/gpg-auth.c
+++ b/tools/gpg-auth.c
@@ -396,7 +396,7 @@ start_agent (assuan_context_t *ctx_p)
opt.agent_program,
NULL, NULL,
session_env,
- opt.autostart,
+ opt.autostart?ASSHELP_FLAG_AUTOSTART:0,
!opt.quiet, 0,
NULL, NULL);
diff --git a/tools/gpg-connect-agent.c b/tools/gpg-connect-agent.c
index ab96d3b02..5323313e2 100644
--- a/tools/gpg-connect-agent.c
+++ b/tools/gpg-connect-agent.c
@@ -2341,14 +2341,14 @@ start_agent (void)
err = start_new_dirmngr (&ctx,
GPG_ERR_SOURCE_DEFAULT,
opt.dirmngr_program,
- opt.autostart,
+ opt.autostart?ASSHELP_FLAG_AUTOSTART:0,
!opt.quiet, 0,
NULL, NULL);
else if (opt.use_keyboxd)
err = start_new_keyboxd (&ctx,
GPG_ERR_SOURCE_DEFAULT,
opt.keyboxd_program,
- opt.autostart,
+ opt.autostart?ASSHELP_FLAG_AUTOSTART:0,
!opt.quiet, 0,
NULL, NULL);
else
@@ -2357,7 +2357,7 @@ start_agent (void)
opt.agent_program,
NULL, NULL,
session_env,
- opt.autostart,
+ opt.autostart?ASSHELP_FLAG_AUTOSTART:0,
!opt.quiet, 0,
NULL, NULL);