Skip to content

Commit dcd4f03

Browse files
esensarprontthomasqueirozb
authored
fix(dnstap source): prevent error message when DOQ is encountered (#25495)
* fix(dnstap source): prevent error message when DOQ is encountered * Add changelog entry * Fix typo in changelog --------- Co-authored-by: Pavlos Rontidis <pavlos.rontidis@gmail.com> Co-authored-by: Thomas <thomas.schneider@datadoghq.com>
1 parent 16df149 commit dcd4f03

2 files changed

Lines changed: 9 additions & 18 deletions

File tree

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Added support for DOQ socket protocol in dnstap source. This will prevent error messages when DOQ
2+
traffic is encountered.
3+
4+
authors: esensar Quad9DNS

lib/vector-vrl/dnstap-parser/src/parser.rs

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1009,23 +1009,9 @@ fn to_socket_family_name(socket_family: i32) -> Result<&'static str> {
10091009
}
10101010

10111011
fn to_socket_protocol_name(socket_protocol: i32) -> Result<&'static str> {
1012-
if socket_protocol == SocketProtocol::Udp as i32 {
1013-
Ok("UDP")
1014-
} else if socket_protocol == SocketProtocol::Tcp as i32 {
1015-
Ok("TCP")
1016-
} else if socket_protocol == SocketProtocol::Dot as i32 {
1017-
Ok("DOT")
1018-
} else if socket_protocol == SocketProtocol::Doh as i32 {
1019-
Ok("DOH")
1020-
} else if socket_protocol == SocketProtocol::DnsCryptUdp as i32 {
1021-
Ok("DNSCryptUDP")
1022-
} else if socket_protocol == SocketProtocol::DnsCryptTcp as i32 {
1023-
Ok("DNSCryptTCP")
1024-
} else {
1025-
Err(Error::from(format!(
1026-
"Unknown socket protocol: {socket_protocol}"
1027-
)))
1028-
}
1012+
SocketProtocol::try_from(socket_protocol)
1013+
.map_err(|_| Error::from(format!("Unknown socket protocol: {socket_protocol}")))
1014+
.map(|sp| sp.as_str_name())
10291015
}
10301016

10311017
fn to_dnstap_data_type(data_type_id: i32) -> Option<String> {
@@ -1449,6 +1435,7 @@ mod tests {
14491435
assert_eq!("DOH", to_socket_protocol_name(4).unwrap());
14501436
assert_eq!("DNSCryptUDP", to_socket_protocol_name(5).unwrap());
14511437
assert_eq!("DNSCryptTCP", to_socket_protocol_name(6).unwrap());
1452-
assert!(to_socket_protocol_name(7).is_err());
1438+
assert_eq!("DOQ", to_socket_protocol_name(7).unwrap());
1439+
assert!(to_socket_protocol_name(8).is_err());
14531440
}
14541441
}

0 commit comments

Comments
 (0)