diff options
author | Werner Koch <[email protected]> | 2016-07-13 11:57:14 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2016-07-13 11:57:14 +0000 |
commit | 2095b1573a8196ba3efdf817324d1b3ee05cbb93 (patch) | |
tree | a557df1a306a68c47f448c38ba2ab3a8ad61f14f /src/engine-gpg.c | |
parent | Cpp: Add feature enum for new identify (diff) | |
download | gpgme-2095b1573a8196ba3efdf817324d1b3ee05cbb93.tar.gz gpgme-2095b1573a8196ba3efdf817324d1b3ee05cbb93.zip |
core: Pass the engine's version string to the engine's new function.
* src/engine-backend.h (engine_ops): Add arg 'version' to NEW.
* src/engine-assuan.c (llass_new): Add dummy arg 'version'.
* src/engine-g13.c (g13_new): Ditto.
* src/engine-gpgconf.c (gpgconf_new): Ditto.
* src/engine-gpgsm.c (gpgsm_new): Ditto.
* src/engine-spawn.c (engspawn_new): Ditto.
* src/engine-uiserver.c (uiserver_new): Ditto.
* src/engine.c (_gpgme_engine_new): Pass version string to the new
function.
* src/engine-gpg.c (struct engine_gpg): Add field 'version'.
(gpg_new): Add arg 'version'.
(gpg_release): Free VERSION.
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to '')
-rw-r--r-- | src/engine-gpg.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/engine-gpg.c b/src/engine-gpg.c index e507c683..e279f04b 100644 --- a/src/engine-gpg.c +++ b/src/engine-gpg.c @@ -78,6 +78,7 @@ typedef gpgme_error_t (*colon_preprocessor_t) (char *line, char **rline); struct engine_gpg { char *file_name; + char *version; char *lc_messages; char *lc_ctype; @@ -388,6 +389,8 @@ gpg_release (void *engine) if (gpg->file_name) free (gpg->file_name); + if (gpg->version) + free (gpg->version); if (gpg->lc_messages) free (gpg->lc_messages); @@ -416,7 +419,8 @@ gpg_release (void *engine) static gpgme_error_t -gpg_new (void **engine, const char *file_name, const char *home_dir) +gpg_new (void **engine, const char *file_name, const char *home_dir, + const char *version) { engine_gpg_t gpg; gpgme_error_t rc = 0; @@ -438,6 +442,16 @@ gpg_new (void **engine, const char *file_name, const char *home_dir) } } + if (version) + { + gpg->version = strdup (version); + if (!gpg->version) + { + rc = gpg_error_from_syserror (); + goto leave; + } + } + gpg->argtail = &gpg->arglist; gpg->status.fd[0] = -1; gpg->status.fd[1] = -1; |