From 63ac903f64aec6fb71499f4c524aacaaac25388e Mon Sep 17 00:00:00 2001 From: Marcus Brinkmann Date: Thu, 2 Jun 2005 23:09:54 +0000 Subject: [PATCH] gpgme/ 2005-06-03 Marcus Brinkmann * wait-global.c (gpgme_wait): Break out of the fd processing loop after an error. Reported by Igor Belyi . tests/ 2005-06-03 Marcus Brinkmann * gpg/Makefile.am (TESTS): Add t-wait. * gpg/t-wait.c (main): New test. --- gpgme/ChangeLog | 6 ++++++ gpgme/wait-global.c | 5 +++++ tests/ChangeLog | 5 +++++ tests/gpg/Makefile.am | 4 ++-- 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/gpgme/ChangeLog b/gpgme/ChangeLog index d949da7..ccb53ff 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 7895d8b..30b6cb0 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 d7bc242..690e458 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 ceda869..73009a9 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 -- 2.26.2