]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Fix that looping modules always stop the query, and don't pass
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Mon, 18 Sep 2017 07:54:24 +0000 (07:54 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Mon, 18 Sep 2017 07:54:24 +0000 (07:54 +0000)
  control.

git-svn-id: file:///svn/unbound/trunk@4348 be551aaa-1e26-0410-a405-d3ace91eadb9

doc/Changelog
services/mesh.c

index 406fa3fb44664c46915b5bfe60b8fe511b691f83..39bc68e1de07dbc8f12afdbc47ae21def67fb160 100644 (file)
@@ -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.
index 2f92880fe984d6ddebd4dd0d3b2810b641758732..3fcd54115acc6c05b43aedef515173fddccde358 100644 (file)
@@ -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);