]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
WIP: add new "connect" server option syntax
authorArtem Boldariev <artem@boldariev.com>
Thu, 25 Nov 2021 11:52:47 +0000 (13:52 +0200)
committerArtem Boldariev <artem@boldariev.com>
Fri, 26 Nov 2021 19:43:30 +0000 (21:43 +0200)
bin/named/named.conf.rst
doc/misc/options
doc/misc/options.active
doc/misc/server.grammar.rst
lib/isccfg/namedconf.c

index e04891ab2ad5d61015d5bae916d89c1a7b01ae22..c5ea1cb50cff235c40d77943273390da0483db6b 100644 (file)
@@ -512,6 +512,7 @@ SERVER
 
   server netprefix {
        bogus boolean;
+       connect [ port integer ] [ transport string ] [ tls string ];
        edns boolean;
        edns-udp-size integer;
        edns-version integer;
@@ -534,7 +535,7 @@ SERVER
        request-nsid boolean;
        send-cookie boolean;
        tcp-keepalive boolean;
-       tcp-only boolean;
+       tcp-only boolean;// deprecated
        transfer-format ( many-answers | one-answer );
        transfer-source ( ipv4_address | * ) [ port ( integer | * ) ] [
            dscp integer ];
@@ -822,6 +823,8 @@ VIEW
        serial-update-method ( date | increment | unixtime );
        server netprefix {
                bogus boolean;
+               connect [ port integer ] [ transport string ] [ tls
+                   string ];
                edns boolean;
                edns-udp-size integer;
                edns-version integer;
@@ -846,7 +849,7 @@ VIEW
                request-nsid boolean;
                send-cookie boolean;
                tcp-keepalive boolean;
-               tcp-only boolean;
+               tcp-only boolean;// deprecated
                transfer-format ( many-answers | one-answer );
                transfer-source ( ipv4_address | * ) [ port ( integer |
                    * ) ] [ dscp integer ];
index 02b6f7b6091c27884aac2aba08f9361497c8add3..d84e3e13009155a48fd0d59d060c05dc6f077afc 100644 (file)
@@ -418,6 +418,7 @@ primaries <string> [ port <integer> ] [ dscp
 
 server <netprefix> {
         bogus <boolean>;
+        connect [ port <integer> ] [ transport <string> ] [ tls <string> ];
         edns <boolean>;
         edns-udp-size <integer>;
         edns-version <integer>;
@@ -440,7 +441,7 @@ server <netprefix> {
         request-nsid <boolean>;
         send-cookie <boolean>;
         tcp-keepalive <boolean>;
-        tcp-only <boolean>;
+        tcp-only <boolean>; // deprecated
         transfer-format ( many-answers | one-answer );
         transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [
             dscp <integer> ];
@@ -702,6 +703,8 @@ view <string> [ <class> ] {
         serial-update-method ( date | increment | unixtime );
         server <netprefix> {
                 bogus <boolean>;
+                connect [ port <integer> ] [ transport <string> ] [ tls
+                    <string> ];
                 edns <boolean>;
                 edns-udp-size <integer>;
                 edns-version <integer>;
@@ -726,7 +729,7 @@ view <string> [ <class> ] {
                 request-nsid <boolean>;
                 send-cookie <boolean>;
                 tcp-keepalive <boolean>;
-                tcp-only <boolean>;
+                tcp-only <boolean>; // deprecated
                 transfer-format ( many-answers | one-answer );
                 transfer-source ( <ipv4_address> | * ) [ port ( <integer> |
                     * ) ] [ dscp <integer> ];
index 491a025ed4c612e7a169902547dfa8d09286da81..56b800aff56ee495fa84dc3af4663edf2657f0cd 100644 (file)
@@ -415,6 +415,7 @@ primaries <string> [ port <integer> ] [ dscp
 
 server <netprefix> {
         bogus <boolean>;
+        connect [ port <integer> ] [ transport <string> ] [ tls <string> ];
         edns <boolean>;
         edns-udp-size <integer>;
         edns-version <integer>;
@@ -437,7 +438,7 @@ server <netprefix> {
         request-nsid <boolean>;
         send-cookie <boolean>;
         tcp-keepalive <boolean>;
-        tcp-only <boolean>;
+        tcp-only <boolean>; // deprecated
         transfer-format ( many-answers | one-answer );
         transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [
             dscp <integer> ];
@@ -698,6 +699,8 @@ view <string> [ <class> ] {
         serial-update-method ( date | increment | unixtime );
         server <netprefix> {
                 bogus <boolean>;
+                connect [ port <integer> ] [ transport <string> ] [ tls
+                    <string> ];
                 edns <boolean>;
                 edns-udp-size <integer>;
                 edns-version <integer>;
@@ -722,7 +725,7 @@ view <string> [ <class> ] {
                 request-nsid <boolean>;
                 send-cookie <boolean>;
                 tcp-keepalive <boolean>;
-                tcp-only <boolean>;
+                tcp-only <boolean>; // deprecated
                 transfer-format ( many-answers | one-answer );
                 transfer-source ( <ipv4_address> | * ) [ port ( <integer> |
                     * ) ] [ dscp <integer> ];
index 4c461a0c12e820fefe07c08f762433ab600e16f3..d2deb54dd148c37f6f8596fed97f7fbd3da6e8dd 100644 (file)
@@ -2,6 +2,7 @@
 
   server <netprefix> {
        bogus <boolean>;
+       connect [ port <integer> ] [ transport <string> ] [ tls <string> ];
        edns <boolean>;
        edns-udp-size <integer>;
        edns-version <integer>;
@@ -24,7 +25,7 @@
        request-nsid <boolean>;
        send-cookie <boolean>;
        tcp-keepalive <boolean>;
-       tcp-only <boolean>;
+       tcp-only <boolean>; // deprecated
        transfer-format ( many-answers | one-answer );
        transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [
            dscp <integer> ];
index 4067adf093dd18ce9f65e677867226476dc90dbd..ce489c2c9f65c0abd6d9648fc4eca5524fa73795 100644 (file)
@@ -2465,11 +2465,24 @@ static cfg_type_t cfg_type_key = { "key",         cfg_parse_named_map,
                                   cfg_print_map, cfg_doc_map,
                                   &cfg_rep_map,  key_clausesets };
 
+static cfg_tuplefielddef_t cfg_server_connect_tuple_fields[] = {
+       { "port", &cfg_type_optional_port, 0 },
+       { "transport", &cfg_type_astring, 0 },
+       { "tls", &cfg_type_astring, 0 },
+       { NULL, NULL, 0 }
+};
+
+static cfg_type_t cfg_type_server_connect = {
+       "server-connect", cfg_parse_kv_tuple, cfg_print_kv_tuple,
+       cfg_doc_kv_tuple, &cfg_rep_tuple,     cfg_server_connect_tuple_fields
+};
+
 /*%
  * Clauses that can be found in a 'server' statement.
  */
 static cfg_clausedef_t server_clauses[] = {
        { "bogus", &cfg_type_boolean, 0 },
+       { "connect", &cfg_type_server_connect, 0 },
        { "edns", &cfg_type_boolean, 0 },
        { "edns-udp-size", &cfg_type_uint32, 0 },
        { "edns-version", &cfg_type_uint32, 0 },
@@ -2488,7 +2501,7 @@ static cfg_clausedef_t server_clauses[] = {
        { "send-cookie", &cfg_type_boolean, 0 },
        { "support-ixfr", NULL, CFG_CLAUSEFLAG_ANCIENT },
        { "tcp-keepalive", &cfg_type_boolean, 0 },
-       { "tcp-only", &cfg_type_boolean, 0 },
+       { "tcp-only", &cfg_type_boolean, CFG_CLAUSEFLAG_DEPRECATED },
        { "transfer-format", &cfg_type_transferformat, 0 },
        { "transfer-source", &cfg_type_sockaddr4wild, 0 },
        { "transfer-source-v6", &cfg_type_sockaddr6wild, 0 },