From 3ede03449cab0932088bec186d730a9b426dd17d Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Mon, 18 Sep 2017 07:54:24 +0000 Subject: [PATCH] - Fix that looping modules always stop the query, and don't pass control. git-svn-id: file:///svn/unbound/trunk@4348 be551aaa-1e26-0410-a405-d3ace91eadb9 --- doc/Changelog | 5 +++++ services/mesh.c | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/doc/Changelog b/doc/Changelog index 406fa3fb4..39bc68e1d 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,8 @@ +18 September 2017: Wouter + - tag 1.6.6 (is 1.6.6rc2) + - Fix that looping modules always stop the query, and don't pass + control. + 15 September 2017: Wouter - Fix unbound-host to report error for DNSSEC state of failed lookups. - Spelling fixes, from Phil Porada. diff --git a/services/mesh.c b/services/mesh.c index 2f92880fe..3fcd54115 100644 --- a/services/mesh.c +++ b/services/mesh.c @@ -1350,7 +1350,13 @@ mesh_continue(struct mesh_area* mesh, struct mesh_state* mstate, /* error is bad, handle pass back up below */ mstate->s.return_rcode = LDNS_RCODE_SERVFAIL; } - if(s == module_error || s == module_finished) { + if(s == module_error) { + mesh_query_done(mstate); + mesh_walk_supers(mesh, mstate); + mesh_state_delete(&mstate->s); + return 0; + } + if(s == module_finished) { if(mstate->s.curmod == 0) { mesh_query_done(mstate); mesh_walk_supers(mesh, mstate);