Call status_cb for an ERROR status seen in the passphrase handler.
authorWerner Koch <wk@gnupg.org>
Mon, 24 Aug 2015 19:17:21 +0000 (21:17 +0200)
committerWerner Koch <wk@gnupg.org>
Mon, 24 Aug 2015 19:17:21 +0000 (21:17 +0200)
* src/passphrase.c (_gpgme_passphrase_status_handler): Call status_cb.
--

Frankly, we should have a more generic way of feeding the status_cb
handler than our current ad-hoc method.

Signed-off-by: Werner Koch <wk@gnupg.org>
src/passphrase.c

index 63ab31e..5d656b1 100644 (file)
@@ -116,6 +116,18 @@ _gpgme_passphrase_status_handler (void *priv, gpgme_status_code_t code,
        return gpg_error (GPG_ERR_BAD_PASSPHRASE);
       break;
 
+    case GPGME_STATUS_ERROR:
+      /* We abuse this status handler to forward ERROR status codes to
+         the caller.  This should better be done in a generic handler,
+         but for now this is sufficient.  */
+      if (ctx->status_cb)
+        {
+          err = ctx->status_cb (ctx->status_cb_value, "ERROR", args);
+          if (err)
+            return err;
+        }
+      break;
+
     default:
       /* Ignore all other codes.  */
       break;