]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
[master] rpz_ver check was ineffective
authorEvan Hunt <each@isc.org>
Tue, 9 Jun 2015 22:05:43 +0000 (15:05 -0700)
committerEvan Hunt <each@isc.org>
Tue, 9 Jun 2015 22:05:43 +0000 (15:05 -0700)
bin/named/query.c
bin/named/server.c

index fce9efa7594f718e07f180ea09edb7e9ab8e7b9e..399e27b0344cff337a7246dec4cce75ec7ece74d 100644 (file)
@@ -6565,8 +6565,15 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
                         * Has response policy changed out from under us?
                         */
                        if (rpz_st->rpz_ver != client->view->rpzs->rpz_ver) {
-                               CTRACE(ISC_LOG_ERROR,
-                                      "query_find: RPZ settings out of date");
+#ifdef WANT_QUERYTRACE
+                               char txt[80];
+                               sprintf(txt,
+                                       "query_find: RPZ settings out of date "
+                                       "(rpz_ver %d, expected %d)",
+                                       client->view->rpzs->rpz_ver,
+                                       rpz_st->rpz_ver);
+                               CTRACE(ISC_LOG_ERROR, txt);
+#endif
                                QUERY_ERROR(DNS_R_SERVFAIL);
                                goto cleanup;
                        }
index 42f50ed1bd3f3223303dca0d9f5fbaa9cee7b68f..d199fd21139f6ace457dd1bf55bc40d67cde4ae7 100644 (file)
@@ -1935,7 +1935,8 @@ configure_rpz(dns_view_t *view, const cfg_obj_t *rpz_obj,
                dns_rpz_detach_rpzs(&view->rpzs);
                dns_rpz_attach_rpzs(pview->rpzs, &view->rpzs);
        } else if (old != NULL && pview != NULL) {
-               view->rpzs->rpz_ver = pview->rpzs->rpz_ver + 1;
+               pview->rpzs->rpz_ver += 1;
+               view->rpzs->rpz_ver = pview->rpzs->rpz_ver;
                cfg_obj_log(rpz_obj, ns_g_lctx, ISC_LOG_DEBUG(1),
                            "updated RPZ policy: version %d",
                            view->rpzs->rpz_ver);