From 54442bbda408b5cfeb3d7674301fdd1bf62a72c0 Mon Sep 17 00:00:00 2001 From: Terts Diepraam Date: Fri, 21 Jun 2024 16:11:47 +0200 Subject: [PATCH] make record data structured in the JSON output --- src/output/json.rs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/output/json.rs b/src/output/json.rs index 3016052..0e8192e 100644 --- a/src/output/json.rs +++ b/src/output/json.rs @@ -1,6 +1,7 @@ use crate::client::{Answer, Stats}; +use bytes::Bytes; use domain::base::iana::{Class, Opcode}; -use domain::base::{Rtype, Ttl}; +use domain::base::{ParsedName, Rtype, Ttl}; use domain::rdata::AllRecordData; use serde::Serialize; use std::io; @@ -41,7 +42,7 @@ struct RecordOutput { class: Class, r#type: Rtype, ttl: Ttl, - data: String, + data: AllRecordData>, } pub fn write( @@ -76,7 +77,7 @@ pub fn write( class: rec.class(), r#type: rec.rtype(), ttl: rec.ttl(), - data: rec.data().to_string(), + data: rec.data().clone(), }); } @@ -85,10 +86,7 @@ pub fn write( }; for v in [&mut answer, &mut authority, &mut additional] { - let iter = - section.limit_to::>().filter(|i| { - i.as_ref().map_or(true, |i| i.rtype() != Rtype::OPT) - }); + let iter = section.limit_to::>(); for rec in iter { let Ok(rec) = rec else { @@ -100,7 +98,7 @@ pub fn write( class: rec.class(), r#type: rec.rtype(), ttl: rec.ttl(), - data: rec.data().to_string(), + data: rec.data().clone(), }); }