aboutsummaryrefslogtreecommitdiffstats
path: root/branches/gpgme-1-0-branch/gpgme
diff options
context:
space:
mode:
Diffstat (limited to 'branches/gpgme-1-0-branch/gpgme')
-rw-r--r--branches/gpgme-1-0-branch/gpgme/ChangeLog6
-rw-r--r--branches/gpgme-1-0-branch/gpgme/wait-global.c5
2 files changed, 11 insertions, 0 deletions
diff --git a/branches/gpgme-1-0-branch/gpgme/ChangeLog b/branches/gpgme-1-0-branch/gpgme/ChangeLog
index d949da74..ccb53ffb 100644
--- a/branches/gpgme-1-0-branch/gpgme/ChangeLog
+++ b/branches/gpgme-1-0-branch/gpgme/ChangeLog
@@ -1,3 +1,9 @@
+2005-06-03 Marcus Brinkmann <[email protected]>
+
+ * wait-global.c (gpgme_wait): Break out of the fd processing loop
+ after an error.
+ Reported by Igor Belyi <[email protected]>.
+
2005-06-02 Marcus Brinkmann <[email protected]>
* wait.h (_gpgme_run_io_cb): New prototype.
diff --git a/branches/gpgme-1-0-branch/gpgme/wait-global.c b/branches/gpgme-1-0-branch/gpgme/wait-global.c
index 7895d8b4..30b6cb04 100644
--- a/branches/gpgme-1-0-branch/gpgme/wait-global.c
+++ b/branches/gpgme-1-0-branch/gpgme/wait-global.c
@@ -322,6 +322,11 @@ gpgme_wait (gpgme_ctx_t ctx, gpgme_error_t *status, int hang)
_gpgme_io_close (ictx->fdt.fds[idx].fd);
_gpgme_engine_io_event (ictx->engine, GPGME_EVENT_DONE,
&err);
+
+ /* Break out of the loop, and retry the select()
+ from scratch, because now all fds should be
+ gone. */
+ break;
}
}
}