diff --git a/gpgme/ChangeLog b/gpgme/ChangeLog index d949da74..ccb53ffb 100644 --- a/gpgme/ChangeLog +++ b/gpgme/ChangeLog @@ -1,3 +1,9 @@ +2005-06-03 Marcus Brinkmann + + * wait-global.c (gpgme_wait): Break out of the fd processing loop + after an error. + Reported by Igor Belyi . + 2005-06-02 Marcus Brinkmann * wait.h (_gpgme_run_io_cb): New prototype. diff --git a/gpgme/wait-global.c b/gpgme/wait-global.c index 7895d8b4..30b6cb04 100644 --- a/gpgme/wait-global.c +++ b/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; } } } diff --git a/tests/ChangeLog b/tests/ChangeLog index d7bc2424..690e4585 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,8 @@ +2005-06-03 Marcus Brinkmann + + * gpg/Makefile.am (TESTS): Add t-wait. + * gpg/t-wait.c (main): New test. + 2004-12-07 Marcus Brinkmann * gpg/mkdemodirs: Add copyright notice. diff --git a/tests/gpg/Makefile.am b/tests/gpg/Makefile.am index ceda8698..73009a98 100644 --- a/tests/gpg/Makefile.am +++ b/tests/gpg/Makefile.am @@ -1,5 +1,5 @@ # Copyright (C) 2000 Werner Koch (dd9jn) -# Copyright (C) 2001, 2004 g10 Code GmbH +# Copyright (C) 2001, 2004, 2005 g10 Code GmbH # # This file is part of GPGME. # @@ -28,7 +28,7 @@ noinst_HEADERS = t-support.h TESTS = t-encrypt t-encrypt-sym t-encrypt-sign t-sign t-signers \ t-decrypt t-verify t-decrypt-verify \ t-export t-import t-trustlist t-eventloop t-edit \ - t-keylist t-keylist-sig t-thread1 + t-keylist t-keylist-sig t-thread1 t-wait CLEANFILES = secring.gpg pubring.gpg trustdb.gpg DISTCLEANFILES = pubring.gpg~ random_seed