diff options
author | Werner Koch <[email protected]> | 2014-02-21 10:22:45 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2014-02-21 10:22:45 +0000 |
commit | 651d9e1c6bc1cab248024c3850ef64698247588f (patch) | |
tree | 1ef03ae1f09046eae7ae5c31daa48b7394c157b1 /src/engine-g13.c | |
parent | Fix type inconsistency between gpgme.h and gpgme.c. (diff) | |
download | gpgme-651d9e1c6bc1cab248024c3850ef64698247588f.tar.gz gpgme-651d9e1c6bc1cab248024c3850ef64698247588f.zip |
Always pass correct name to argv[0]. Ignore GPG_AGENT_INFO for gpg2.
* src/dirinfo.c (WANT_GPG_ONE_MODE): New.
(struct dirinfo): Add field "gpg_one_mode".
(get_gpgconf_item): Set that field and return it if requested.
(_gpgme_in_gpg_one_mode): New.
* src/engine-gpg.c (build_argv): Check GPG_AGENT_INFO only in gpg-1
mode.
* src/dirinfo.c (_gpgme_get_basename): New.
* src/engine-g13.c (g13_new): Take argv[0] from the pgmname.
* src/engine-gpgsm.c (gpgsm_new): Ditto.
* src/engine-gpg.c (build_argv): Ditto. Add arg PGMNAME.
(start): Pass PGMNAME to buildargv.
Diffstat (limited to 'src/engine-g13.c')
-rw-r--r-- | src/engine-g13.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/engine-g13.c b/src/engine-g13.c index f0910159..75154ca0 100644 --- a/src/engine-g13.c +++ b/src/engine-g13.c @@ -216,6 +216,7 @@ g13_new (void **engine, const char *file_name, const char *home_dir) { gpgme_error_t err = 0; engine_g13_t g13; + const char *pgmname; int argc; const char *argv[5]; char *dft_display = NULL; @@ -232,8 +233,9 @@ g13_new (void **engine, const char *file_name, const char *home_dir) g13->status_cb.tag = 0; g13->status_cb.data = g13; + pgmname = file_name ? file_name : _gpgme_get_default_g13_name (); argc = 0; - argv[argc++] = "g13"; + argv[argc++] = _gpgme_get_basename (pgmname); if (home_dir) { argv[argc++] = "--homedir"; @@ -250,13 +252,11 @@ g13_new (void **engine, const char *file_name, const char *home_dir) assuan_ctx_set_system_hooks (g13->assuan_ctx, &_gpgme_assuan_system_hooks); #if USE_DESCRIPTOR_PASSING - err = assuan_pipe_connect - (g13->assuan_ctx, file_name ? file_name : _gpgme_get_default_g13_name (), - argv, NULL, NULL, NULL, ASSUAN_PIPE_CONNECT_FDPASSING); + err = assuan_pipe_connect (g13->assuan_ctx, pgmname, argv, + NULL, NULL, NULL, ASSUAN_PIPE_CONNECT_FDPASSING); #else - err = assuan_pipe_connect - (g13->assuan_ctx, file_name ? file_name : _gpgme_get_default_g13_name (), - argv, NULL, NULL, NULL, 0); + err = assuan_pipe_connect (g13->assuan_ctx, pgmname, argv, + NULL, NULL, NULL, 0); #endif if (err) goto leave; |