(decrypt_verify_status_handler): Hack to cope
authorWerner Koch <wk@gnupg.org>
Wed, 7 Apr 2004 16:17:27 +0000 (16:17 +0000)
committerWerner Koch <wk@gnupg.org>
Wed, 7 Apr 2004 16:17:27 +0000 (16:17 +0000)
with meaningless error codes from the verify status function.

gpgme/ChangeLog
gpgme/decrypt-verify.c

index d7fc12530de5f21dc8e5aa524a6d98652319cb13..9213a0b9d2ef953a2f6d8ff99b4c0f0d131468c8 100644 (file)
@@ -1,3 +1,8 @@
+2004-04-07  Werner Koch  <wk@gnupg.org>
+
+       * decrypt-verify.c (decrypt_verify_status_handler): Hack to cope
+       with meaningless error codes from the verify status function.
+
 2004-04-05  Werner Koch  <wk@gnupg.org>
 
        * gpgme.h: Add GPGME_STATUS_NEWSIG.
index 40818bfb0bfa639204445577b61096b8d5999660..4ce728937d035c855be64f5d05c9bd01f1c83317 100644 (file)
@@ -36,7 +36,16 @@ decrypt_verify_status_handler (void *priv, gpgme_status_code_t code,
   if (!err)
     err = _gpgme_decrypt_status_handler (priv, code, args);
   if (!err)
-    err = _gpgme_verify_status_handler (priv, code, args);
+    {
+      err = _gpgme_verify_status_handler (priv, code, args);
+      /* The verify status handler might not be in the state to verify
+         a signature, either because there is no signature or we are
+         currently processing the encrytion layer, and thus it will
+         likely return "invalid engine" - we have to ignore it
+         therefore. */
+      if (gpg_err_code (err) == GPG_ERR_INV_ENGINE)
+        err = 0;
+    }
   return err;
 }