diff options
Diffstat (limited to 'branches/gpgme-1-0-branch/gpgme')
-rw-r--r-- | branches/gpgme-1-0-branch/gpgme/ChangeLog | 6 | ||||
-rw-r--r-- | branches/gpgme-1-0-branch/gpgme/wait-global.c | 5 |
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; } } } |