summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Brinkmann <mb@g10code.com>2004-10-22 16:55:16 +0000
committerMarcus Brinkmann <mb@g10code.com>2004-10-22 16:55:16 +0000
commite2297804cff3de9a176661d0005dc85fd1c84018 (patch)
treeb8e707516ce81bdea36116da9ce96e5a0b85e837
parent9bccf0d83016d20911c483a2d1f59095fbf83331 (diff)
downloadgpgme-e2297804cff3de9a176661d0005dc85fd1c84018.tar.gz
2004-10-22 Marcus Brinkmann <marcus@g10code.de>
* engine-gpgsm.c (map_assuan_error): Return 0 if ERR is 0. (start): Call map_assuan_error on return value of assuan_write_line.
-rw-r--r--gpgme/ChangeLog6
-rw-r--r--gpgme/engine-gpgsm.c6
2 files changed, 11 insertions, 1 deletions
diff --git a/gpgme/ChangeLog b/gpgme/ChangeLog
index 7d6c5af6..9baaf6ea 100644
--- a/gpgme/ChangeLog
+++ b/gpgme/ChangeLog
@@ -1,3 +1,9 @@
+2004-10-22 Marcus Brinkmann <marcus@g10code.de>
+
+ * engine-gpgsm.c (map_assuan_error): Return 0 if ERR is 0.
+ (start): Call map_assuan_error on return value of
+ assuan_write_line.
+
2004-10-05 Marcus Brinkmann <marcus@g10code.de>
* op-support.c (_gpgme_op_data_lookup): Use char pointer for
diff --git a/gpgme/engine-gpgsm.c b/gpgme/engine-gpgsm.c
index e08c03c7..0138fdf7 100644
--- a/gpgme/engine-gpgsm.c
+++ b/gpgme/engine-gpgsm.c
@@ -153,6 +153,9 @@ close_notify_handler (int fd, void *opaque)
static gpgme_error_t
map_assuan_error (AssuanError err)
{
+ if (!err)
+ return 0;
+
if (err == -1)
return gpg_error (GPG_ERR_INV_ENGINE);
@@ -398,6 +401,7 @@ gpgsm_new (void **engine, const char *lc_ctype, const char *lc_messages)
err = assuan_pipe_connect (&gpgsm->assuan_ctx,
_gpgme_get_gpgsm_path (), argv, child_fds);
+ /* FIXME: Check error. */
/* We need to know the fd used by assuan for reads. We do this by
using the assumption that the first returned fd from
@@ -866,7 +870,7 @@ start (engine_gpgsm_t gpgsm, const char *command)
err = add_io_cb (gpgsm, &gpgsm->message_cb, _gpgme_data_outbound_handler);
if (!err)
- err = assuan_write_line (gpgsm->assuan_ctx, command);
+ err = map_assuan_error (assuan_write_line (gpgsm->assuan_ctx, command));
if (!err)
(*gpgsm->io_cbs.event) (gpgsm->io_cbs.event_priv, GPGME_EVENT_START, NULL);