use crate::Timestamp;
use crate::dns::{DnsMessage, DnsUdpParser};
use crate::event::FlowSide;
use crate::session::DatagramParser;
pub const PARSER_KIND: &str = "mdns";
#[derive(Debug, Clone, Default)]
pub struct MdnsParser {
inner: DnsUdpParser,
}
impl MdnsParser {
pub fn new() -> Self {
Self {
inner: DnsUdpParser::default(),
}
}
}
impl DatagramParser for MdnsParser {
type Message = DnsMessage;
fn parser_kind(&self) -> crate::ParserKind {
crate::ParserKind::Mdns
}
fn parse(
&mut self,
payload: &[u8],
side: FlowSide,
ts: Timestamp,
out: &mut Vec<Self::Message>,
) {
self.inner.parse(payload, side, ts, out);
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn parser_kind_label() {
let p = MdnsParser::default();
assert_eq!(p.parser_kind().as_str(), "mdns");
}
}