]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Try to use expired answers instead of SERVFAIL if serve-expired is
authorYorgos Thessalonikefs <yorgos@nlnetlabs.nl>
Wed, 6 Nov 2024 14:15:38 +0000 (15:15 +0100)
committerYorgos Thessalonikefs <yorgos@nlnetlabs.nl>
Wed, 6 Nov 2024 14:15:38 +0000 (15:15 +0100)
  enabled even without serve-expired-client-timeout.

services/mesh.c

index 156cde79198d5ba57eae7b67c4dc574d7d54f8f2..cca12cf24079236e2871654b7f5e56a50bb9a3ac 100644 (file)
@@ -1510,10 +1510,11 @@ void mesh_query_done(struct mesh_state* mstate)
                comm_timer_delete(mstate->s.serve_expired_data->timer);
                mstate->s.serve_expired_data->timer = NULL;
        }
-       if(mstate->s.return_rcode == LDNS_RCODE_SERVFAIL ||
-               (rep && FLAGS_GET_RCODE(rep->flags) == LDNS_RCODE_SERVFAIL)) {
+       if(mstate->s.env->cfg->serve_expired &&
+               (mstate->s.return_rcode == LDNS_RCODE_SERVFAIL ||
+               (rep && FLAGS_GET_RCODE(rep->flags) == LDNS_RCODE_SERVFAIL))) {
                /* we are SERVFAILing; check for expired answer here */
-               mesh_serve_expired_callback(mstate);
+               mesh_respond_serve_expired(mstate);
                if((mstate->reply_list || mstate->cb_list)
                && mstate->s.env->cfg->log_servfail
                && !mstate->s.env->cfg->val_log_squelch) {