diff options
Diffstat (limited to '')
-rw-r--r-- | gpgme/rungpg.c | 43 |
1 files changed, 40 insertions, 3 deletions
diff --git a/gpgme/rungpg.c b/gpgme/rungpg.c index 88afaea9..7677941f 100644 --- a/gpgme/rungpg.c +++ b/gpgme/rungpg.c @@ -1079,9 +1079,8 @@ colon_line_handler (void *opaque, int fd) static GpgmeError -gpg_start (void *engine, void *opaque) +start (GpgObject gpg) { - GpgObject gpg = engine; GpgmeError rc; int i, n; int status; @@ -1223,6 +1222,8 @@ gpg_decrypt (void *engine, GpgmeData ciph, GpgmeData plain) if (!err) err = add_data (gpg, ciph, 0, 0); + if (!err) + start (gpg); return err; } @@ -1245,6 +1246,8 @@ gpg_delete (void *engine, GpgmeKey key, int allow_secret) err = add_arg (gpg, s); } + if (!err) + start (gpg); return err; } @@ -1297,6 +1300,8 @@ gpg_edit (void *engine, GpgmeKey key, GpgmeData out, GpgmeCtx ctx /* FIXME */) else err = add_arg (gpg, s); } + if (!err) + err = start (gpg); return err; } @@ -1357,9 +1362,13 @@ gpg_encrypt (void *engine, GpgmeRecipients recp, GpgmeData plain, if (!err) err = add_data (gpg, plain, 0, 0); + if (!err) + err = start (gpg); + return err; } + static GpgmeError gpg_encrypt_sign (void *engine, GpgmeRecipients recp, GpgmeData plain, GpgmeData ciph, int use_armor, GpgmeCtx ctx /* FIXME */) @@ -1396,9 +1405,13 @@ gpg_encrypt_sign (void *engine, GpgmeRecipients recp, GpgmeData plain, if (!err) err = add_data (gpg, plain, 0, 0); + if (!err) + err = start (gpg); + return err; } + static GpgmeError gpg_export (void *engine, GpgmeRecipients recp, GpgmeData keydata, int use_armor) @@ -1426,6 +1439,9 @@ gpg_export (void *engine, GpgmeRecipients recp, GpgmeData keydata, err = gpgme_recipients_enum_close (recp, &ec); } + if (!err) + err = start (gpg); + return err; } @@ -1453,6 +1469,9 @@ gpg_genkey (void *engine, GpgmeData help_data, int use_armor, if (!err) err = add_data (gpg, help_data, 0, 0); + if (!err) + err = start (gpg); + return err; } @@ -1467,6 +1486,9 @@ gpg_import (void *engine, GpgmeData keydata) if (!err) err = add_data (gpg, keydata, 0, 0); + if (!err) + err = start (gpg); + return err; } @@ -1496,6 +1518,9 @@ gpg_keylist (void *engine, const char *pattern, int secret_only, if (!err && pattern && *pattern) err = add_arg (gpg, pattern); + if (!err) + err = start (gpg); + return err; } @@ -1531,6 +1556,9 @@ gpg_keylist_ext (void *engine, const char *pattern[], int secret_only, err = add_arg (gpg, *(pattern++)); } + if (!err) + err = start (gpg); + return err; } @@ -1565,6 +1593,9 @@ gpg_sign (void *engine, GpgmeData in, GpgmeData out, GpgmeSigMode mode, if (!err) err = add_data (gpg, out, 1, 1); + if (!err) + start (gpg); + return err; } @@ -1584,6 +1615,9 @@ gpg_trustlist (void *engine, const char *pattern) if (!err) err = add_arg (gpg, pattern); + if (!err) + err = start (gpg); + return err; } @@ -1624,6 +1658,10 @@ gpg_verify (void *engine, GpgmeData sig, GpgmeData signed_text, err = add_data (gpg, signed_text, 0, 0); } } + + if (!err) + err = start (gpg); + return err; } @@ -1664,7 +1702,6 @@ struct engine_ops _gpgme_engine_ops_gpg = gpg_sign, gpg_trustlist, gpg_verify, - gpg_start, gpg_set_io_cbs, gpg_io_event }; |