aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine-g13.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2014-02-21 10:22:45 +0000
committerWerner Koch <[email protected]>2014-02-21 10:22:45 +0000
commit651d9e1c6bc1cab248024c3850ef64698247588f (patch)
tree1ef03ae1f09046eae7ae5c31daa48b7394c157b1 /src/engine-g13.c
parentFix type inconsistency between gpgme.h and gpgme.c. (diff)
downloadgpgme-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.c14
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;