:bar.svcb.example.com:28:\040\001\015\270\000\000\000\000\000\000\000\000\000\003\000\004:120
:bar.svcb.example.com:64:\000\001\000\000\001\000\003\002h2:120
:bar.svcb.example.com:64:\000\003\000\000\001\000\003\002h3\000\003\000\002\005\334:120
+:bar.svcb.example.com:64:\000\004\000\000\001\000\003\002h3\000\003\000\002\005\335:120
:baz.svcb.example.com:64:\000\000\004foo1\004svcb\007example\003net\000:120
:dsdelegation.example.com:43:m\341\010\001\312\361\352\256\315\253\347afpx\217\220\042EK\365\375\237\332:120
:escapedtext.example.com:16:\005begin\022the\040\042middle\042\040p\134art\007the\040end:120
d_pos += ctr;
}
-void RecordTextReader::xfrSvcParamKeyVals(set<SvcParam>& val)
+void RecordTextReader::xfrSvcParamKeyVals(set<SvcParam>& val) // NOLINT(readability-function-cognitive-complexity)
{
while (d_pos != d_end) {
skipSpaces();
port = (v.at(0) << 8);
port += v.at(1);
} else {
- xfr16BitInt(port);
+ string portstring;
+ xfrRFC1035CharString(portstring);
+ try {
+ pdns::checked_stoi_into(port, portstring);
+ } catch (const std::exception &e) {
+ throw RecordTextException(e.what());
+ }
}
val.insert(SvcParam(key, port));
break;
-2ed2eb54a4cb3fd105aa78e6d4c99685 ../regression-tests/zones/example.com
+f3e86fd522b08d4812505da489ecb5b0 ../regression-tests/zones/example.com
f8f0d7b157495ec8ee70851e3d5cb65e ../regression-tests/zones/test.com
e5e3ee998d151fe194b98997eaa36c53 ../regression-tests/zones/test.dyndns
dee3e8b568549d9450134b555ca73990 ../regression-tests/zones/sub.test.dyndns
9aeed2c26d0c3ba3baf22dfa9568c451 ../regression-tests/zones/2.0.192.in-addr.arpa
99c73e8b5db5781fec1ac3fa6a2662a9 ../regression-tests/zones/cryptokeys.org
1f9e19be0cff67330f3a0a5347654f91 ../regression-tests/zones/hiddencryptokeys.org
-e85d67cb577cf1de3127e439e7529311 ../modules/tinydnsbackend/data
-7715e725358f969aa92e46ae9be0c464 ../modules/tinydnsbackend/data.cdb
+16ca9f82f476f5910ed89830dc0f183b ../modules/tinydnsbackend/data
+022f54332046eb386d636bd9141a4e77 ../modules/tinydnsbackend/data.cdb
0 bar.svcb.example.com. 120 IN SVCB 1 . alpn=h2
0 bar.svcb.example.com. 120 IN SVCB 3 . alpn=h3 port=1500
+0 bar.svcb.example.com. 120 IN SVCB 4 . alpn=h3 port=1501
2 . 32768 IN OPT
2 bar.svcb.example.com. 120 IN A 192.0.2.1
2 bar.svcb.example.com. 120 IN AAAA 2001:db8::3:1
0 bar.svcb.example.com. 120 IN RRSIG SVCB 13 4 120 [expiry] [inception] [keytag] example.com. ...
0 bar.svcb.example.com. 120 IN SVCB 1 . alpn=h2
0 bar.svcb.example.com. 120 IN SVCB 3 . alpn=h3 port=1500
+0 bar.svcb.example.com. 120 IN SVCB 4 . alpn=h3 port=1501
2 . 32768 IN OPT
2 bar.svcb.example.com. 120 IN A 192.0.2.1
2 bar.svcb.example.com. 120 IN AAAA 2001:db8::3:1
bar.svcb IN SVCB 1 . alpn=h2
bar.svcb IN SVCB 3 . alpn=h3 port=1500
+bar.svcb IN SVCB 4 . alpn=h3 port="1501"
bar.svcb IN AAAA 2001:db8::3:1
bar.svcb IN AAAA 2001:db8::3:4
bar.svcb IN A 192.0.2.1