]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Deprecate fixed value for the rrset-order option
authorOndřej Surý <ondrej@isc.org>
Fri, 1 Mar 2024 08:34:32 +0000 (09:34 +0100)
committerOndřej Surý <ondrej@isc.org>
Tue, 2 Apr 2024 15:21:00 +0000 (15:21 +0000)
Mark the "fixed" value for the "rrset-order" option deprecated, so we
can remove it in the future.

bin/tests/system/checkconf/deprecated.conf
bin/tests/system/checkconf/tests.sh
bin/tests/system/conf.sh.common
configure.ac
doc/arm/reference.rst
lib/isccfg/check.c

index 71ea50eb6c1b4f869fdd6e02e660c28df6b74f30..e90d9469a023bd95cab38cc026ae2c792bad4b45 100644 (file)
@@ -30,6 +30,10 @@ options {
        dnssec-must-be-secure mustbesecure.example yes;
 
        sortlist { };
+
+       rrset-order {
+               name "fixed.example" order fixed;
+       };
 };
 
 trusted-keys {
index 76b2986d8dcdb79620d216ee27bf3f13df138242..c995890aaa69c80edf0dd878b04a990e881362db 100644 (file)
@@ -165,6 +165,12 @@ warnings=$(grep "'notify' is disabled" <checkconf.out$n | wc -l)
 if [ $ret -ne 0 ]; then echo_i "failed"; fi
 status=$((status + ret))
 
+if grep "^#define DNS_RDATASET_FIXED" "$TOP_BUILDDIR/config.h" >/dev/null 2>&1; then
+  test_fixed=true
+else
+  test_fixed=false
+fi
+
 n=$((n + 1))
 echo_i "checking named-checkconf deprecate warnings ($n)"
 ret=0
@@ -181,11 +187,16 @@ grep "option 'heartbeat-interval' is deprecated" <checkconf.out$n.1 >/dev/null |
 grep "option 'dnssec-must-be-secure' is deprecated" <checkconf.out$n.1 >/dev/null || ret=1
 grep "option 'sortlist' is deprecated" <checkconf.out$n.1 >/dev/null || ret=1
 grep "token 'port' is deprecated" <checkconf.out$n.1 >/dev/null || ret=1
+if $test_fixed; then
+  grep "rrset-order: order 'fixed' is deprecated" <checkconf.out$n.1 >/dev/null || ret=1
+else
+  grep "rrset-order: order 'fixed' was disabled at compilation time" <checkconf.out$n.1 >/dev/null || ret=1
+fi
 if [ $ret -ne 0 ]; then echo_i "failed"; fi
 status=$((status + ret))
 # set -i to ignore deprecate warnings
-$CHECKCONF -i deprecated.conf >checkconf.out$n.2 2>&1
-grep '.*' <checkconf.out$n.2 >/dev/null && ret=1
+$CHECKCONF -i deprecated.conf 2>&1 | grep_v "rrset-order: order 'fixed' was disabled at compilation time" >checkconf.out$n.2
+grep '^.+$' <checkconf.out$n.2 >/dev/null && ret=1
 if [ $ret -ne 0 ]; then echo_i "failed"; fi
 status=$((status + ret))
 
index a33fe46570537760f84637f180e38f2106577212..7a4d12e2563e9f37fdde8f712c162a313138ca51 100644 (file)
@@ -650,3 +650,5 @@ parse_openssl_config() {
         esac
     done < "$OPENSSL_CONF"
 }
+
+grep_v() { grep -v "$@" || test $? = 1; }
index 1b1b0cdde277ef88618e9375cf80525f3ddd34cb..4a744e103dc049eb52373e3bc9de572696770ebb 100644 (file)
@@ -1203,8 +1203,8 @@ AC_ARG_ENABLE([fixed-rrset],
                              [enable fixed rrset ordering [default=no]])],
              [], [enable_fixed_rrset="no"])
 AS_IF([test "$enable_fixed_rrset" = "yes"],
-      [AC_DEFINE([DNS_RDATASET_FIXED], [1],
-                [Define to enable "rrset-order fixed" syntax.])])
+      [AC_MSG_WARN([fixed rrset ordering is deprecated and will be removed in the future release])
+       AC_DEFINE([DNS_RDATASET_FIXED], [1], [Define to enable "rrset-order fixed" syntax.])])
 
 #
 # Activate dnstap?
index dc11db525e1621fadfa842a2b61fbd71d059291f..df2401982866c9edc2942f5fa09970ff50a4b77e 100644 (file)
@@ -4132,6 +4132,8 @@ RRset Ordering
    ``fixed``
        Records are returned in the order they are defined in the zone file.
 
+       This value is deprecated and will be removed in a future release.
+
    .. note::
 
        The ``fixed`` option is only available if BIND is configured with
index 32a3e4fa009ced31f428f904422f4ba3f1d08354..e0c4bdc5b83c5b22079db2a9e22ed59d7444d6e2 100644 (file)
@@ -168,7 +168,12 @@ check_orderent(const cfg_obj_t *ent, isc_log_t *logctx) {
                        result = ISC_R_FAILURE;
                }
        } else if (strcasecmp(cfg_obj_asstring(obj), "fixed") == 0) {
-#if !DNS_RDATASET_FIXED
+#if DNS_RDATASET_FIXED
+               if ((ent->pctx->flags & CFG_PCTX_NODEPRECATED) == 0) {
+                       cfg_obj_log(obj, logctx, ISC_LOG_WARNING,
+                                   "rrset-order: order 'fixed' is deprecated");
+               }
+#else
                cfg_obj_log(obj, logctx, ISC_LOG_WARNING,
                            "rrset-order: order 'fixed' was disabled at "
                            "compilation time");