- match ty {
- A::TYPE => Ok(RR::A(A::read_from_data(name, data)?)),
- AAAA::TYPE => Ok(RR::AAAA(AAAA::read_from_data(name, data)?)),
- NS::TYPE => Ok(RR::NS(NS::read_from_data(name, data)?)),
- Txt::TYPE => {
- Ok(RR::Txt(Txt::read_from_data(name, data)?))
- }
- CName::TYPE => {
- Ok(RR::CName(CName::read_from_data(name, data)?))
- }
- TLSA::TYPE => {
- Ok(RR::TLSA(TLSA::read_from_data(name, data)?))
- },
- DnsKey::TYPE => {
- Ok(RR::DnsKey(DnsKey::read_from_data(name, data)?))
- },
- DS::TYPE => {
- Ok(RR::DS(DS::read_from_data(name, data)?))
- },
- RRSig::TYPE => {
- Ok(RR::RRSig(RRSig::read_from_data(name, data)?))
- },
- _ => Err(()),
- }
+ let rr = match ty {
+ A::TYPE => RR::A(A::read_from_data(name, data, wire_packet)?),
+ AAAA::TYPE => RR::AAAA(AAAA::read_from_data(name, data, wire_packet)?),
+ NS::TYPE => RR::NS(NS::read_from_data(name, data, wire_packet)?),
+ Txt::TYPE => RR::Txt(Txt::read_from_data(name, data, wire_packet)?),
+ CName::TYPE => RR::CName(CName::read_from_data(name, data, wire_packet)?),
+ TLSA::TYPE => RR::TLSA(TLSA::read_from_data(name, data, wire_packet)?),
+ DnsKey::TYPE => RR::DnsKey(DnsKey::read_from_data(name, data, wire_packet)?),
+ DS::TYPE => RR::DS(DS::read_from_data(name, data, wire_packet)?),
+ RRSig::TYPE => RR::RRSig(RRSig::read_from_data(name, data, wire_packet)?),
+ _ => return Err(()),
+ };
+ Ok((rr, ttl))
+}
+
+pub(crate) fn parse_rr(inp: &mut &[u8]) -> Result<RR, ()> {
+ parse_wire_packet_rr(inp, &[]).map(|(rr, _)| rr)