WIP: add new "connect" server option syntax

This commit is contained in:
Artem Boldariev
2021-11-26 21:43:30 +02:00
parent 6bd1e6de94
commit 5a911aa4bf
5 changed files with 31 additions and 8 deletions
+5 -2
View 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 ];
+5 -2
View 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> ];
+5 -2
View 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> ];
+2 -1
View 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> ];
+14 -1
View 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 },