]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Fix #804: unbound stops responding after outage. Fixes queries
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Tue, 23 Aug 2016 08:30:12 +0000 (08:30 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Tue, 23 Aug 2016 08:30:12 +0000 (08:30 +0000)
  that attempt to wait for an empty list of subqueries.

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

doc/Changelog
services/mesh.c

index caac352635cfb7aae60f9df2c258054b0d1d06aa..9fa7d6ebfb8d9afeb14dee641614ff4b79341f31 100644 (file)
@@ -1,3 +1,7 @@
+23 August 2016: Wouter
+       - Fix #804: unbound stops responding after outage.  Fixes queries
+         that attempt to wait for an empty list of subqueries.
+
 8 August 2016: Wouter
        - Note that OPENPGPKEY type is RFC 7929.
 
index 8f74cbe822b0aa3bb6fffa1c219fe59411f03265..b0434b3ff0c34fab2544a12212af175a70b1a7f7 100644 (file)
@@ -1069,6 +1069,12 @@ mesh_continue(struct mesh_area* mesh, struct mesh_state* mstate,
                *ev = module_event_pass;
                return 1;
        }
+       if(s == module_wait_subquery && mstate->sub_set.count == 0) {
+               log_err("module cannot wait for subquery, subquery list empty");
+               log_query_info(VERB_QUERY, "pass error for qstate",
+                       &mstate->s.qinfo);
+               s = module_error;
+       }
        if(s == module_error && mstate->s.return_rcode == LDNS_RCODE_NOERROR) {
                /* error is bad, handle pass back up below */
                mstate->s.return_rcode = LDNS_RCODE_SERVFAIL;