Fix JavaScript backwards compatible number conversion

This commit is contained in:
buffermet 2025-02-22 19:33:29 +01:00 committed by GitHub
commit df91176308
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -13,10 +13,10 @@ func NewJSResourceRecord(rr dns.RR) (jsRecord map[string]interface{}, err error)
jsRecord = map[string]interface{}{ jsRecord = map[string]interface{}{
"Header": map[string]interface{}{ "Header": map[string]interface{}{
"Class": header.Class, "Class": int64(header.Class),
"Name": header.Name, "Name": header.Name,
"Rrtype": header.Rrtype, "Rrtype": int64(header.Rrtype),
"Ttl": header.Ttl, "Ttl": int64(header.Ttl),
}, },
} }
@ -48,24 +48,24 @@ func NewJSResourceRecord(rr dns.RR) (jsRecord map[string]interface{}, err error)
jsRecord["Mr"] = rr.Mr jsRecord["Mr"] = rr.Mr
case *dns.MX: case *dns.MX:
jsRecord["Mx"] = rr.Mx jsRecord["Mx"] = rr.Mx
jsRecord["Preference"] = rr.Preference jsRecord["Preference"] = int64(rr.Preference)
case *dns.NULL: case *dns.NULL:
jsRecord["Data"] = rr.Data jsRecord["Data"] = rr.Data
case *dns.SOA: case *dns.SOA:
jsRecord["Expire"] = rr.Expire jsRecord["Expire"] = int64(rr.Expire)
jsRecord["Minttl"] = rr.Minttl jsRecord["Minttl"] = int64(rr.Minttl)
jsRecord["Ns"] = rr.Ns jsRecord["Ns"] = rr.Ns
jsRecord["Refresh"] = rr.Refresh jsRecord["Refresh"] = int64(rr.Refresh)
jsRecord["Retry"] = rr.Retry jsRecord["Retry"] = int64(rr.Retry)
jsRecord["Mbox"] = rr.Mbox jsRecord["Mbox"] = rr.Mbox
jsRecord["Serial"] = rr.Serial jsRecord["Serial"] = int64(rr.Serial)
case *dns.TXT: case *dns.TXT:
jsRecord["Txt"] = rr.Txt jsRecord["Txt"] = rr.Txt
case *dns.SRV: case *dns.SRV:
jsRecord["Port"] = rr.Port jsRecord["Port"] = int64(rr.Port)
jsRecord["Priority"] = rr.Priority jsRecord["Priority"] = int64(rr.Priority)
jsRecord["Target"] = rr.Target jsRecord["Target"] = rr.Target
jsRecord["Weight"] = rr.Weight jsRecord["Weight"] = int64(rr.Weight)
case *dns.PTR: case *dns.PTR:
jsRecord["Ptr"] = rr.Ptr jsRecord["Ptr"] = rr.Ptr
case *dns.NS: case *dns.NS:
@ -73,10 +73,10 @@ func NewJSResourceRecord(rr dns.RR) (jsRecord map[string]interface{}, err error)
case *dns.DNAME: case *dns.DNAME:
jsRecord["Target"] = rr.Target jsRecord["Target"] = rr.Target
case *dns.AFSDB: case *dns.AFSDB:
jsRecord["Subtype"] = rr.Subtype jsRecord["Subtype"] = int64(rr.Subtype)
jsRecord["Hostname"] = rr.Hostname jsRecord["Hostname"] = rr.Hostname
case *dns.CAA: case *dns.CAA:
jsRecord["Flag"] = rr.Flag jsRecord["Flag"] = int64(rr.Flag)
jsRecord["Tag"] = rr.Tag jsRecord["Tag"] = rr.Tag
jsRecord["Value"] = rr.Value jsRecord["Value"] = rr.Value
case *dns.HINFO: case *dns.HINFO:
@ -90,123 +90,123 @@ func NewJSResourceRecord(rr dns.RR) (jsRecord map[string]interface{}, err error)
jsRecord["SubAddress"] = rr.SubAddress jsRecord["SubAddress"] = rr.SubAddress
case *dns.KX: case *dns.KX:
jsRecord["Exchanger"] = rr.Exchanger jsRecord["Exchanger"] = rr.Exchanger
jsRecord["Preference"] = rr.Preference jsRecord["Preference"] = int64(rr.Preference)
case *dns.LOC: case *dns.LOC:
jsRecord["Altitude"] = rr.Altitude jsRecord["Altitude"] = int64(rr.Altitude)
jsRecord["HorizPre"] = rr.HorizPre jsRecord["HorizPre"] = int64(rr.HorizPre)
jsRecord["Latitude"] = rr.Latitude jsRecord["Latitude"] = int64(rr.Latitude)
jsRecord["Longitude"] = rr.Longitude jsRecord["Longitude"] = int64(rr.Longitude)
jsRecord["Size"] = rr.Size jsRecord["Size"] = int64(rr.Size)
jsRecord["Version"] = rr.Version jsRecord["Version"] = int64(rr.Version)
jsRecord["VertPre"] = rr.VertPre jsRecord["VertPre"] = int64(rr.VertPre)
case *dns.SSHFP: case *dns.SSHFP:
jsRecord["Algorithm"] = rr.Algorithm jsRecord["Algorithm"] = int64(rr.Algorithm)
jsRecord["FingerPrint"] = rr.FingerPrint jsRecord["FingerPrint"] = rr.FingerPrint
jsRecord["Type"] = rr.Type jsRecord["Type"] = int64(rr.Type)
case *dns.TLSA: case *dns.TLSA:
jsRecord["Certificate"] = rr.Certificate jsRecord["Certificate"] = rr.Certificate
jsRecord["MatchingType"] = rr.MatchingType jsRecord["MatchingType"] = int64(rr.MatchingType)
jsRecord["Selector"] = rr.Selector jsRecord["Selector"] = int64(rr.Selector)
jsRecord["Usage"] = rr.Usage jsRecord["Usage"] = int64(rr.Usage)
case *dns.CERT: case *dns.CERT:
jsRecord["Algorithm"] = rr.Algorithm jsRecord["Algorithm"] = int64(rr.Algorithm)
jsRecord["Certificate"] = rr.Certificate jsRecord["Certificate"] = rr.Certificate
jsRecord["KeyTag"] = rr.KeyTag jsRecord["KeyTag"] = int64(rr.KeyTag)
jsRecord["Type"] = rr.Type jsRecord["Type"] = int64(rr.Type)
case *dns.DS: case *dns.DS:
jsRecord["Algorithm"] = rr.Algorithm jsRecord["Algorithm"] = int64(rr.Algorithm)
jsRecord["Digest"] = rr.Digest jsRecord["Digest"] = rr.Digest
jsRecord["DigestType"] = rr.DigestType jsRecord["DigestType"] = int64(rr.DigestType)
jsRecord["KeyTag"] = rr.KeyTag jsRecord["KeyTag"] = int64(rr.KeyTag)
case *dns.NAPTR: case *dns.NAPTR:
jsRecord["Order"] = rr.Order jsRecord["Order"] = int64(rr.Order)
jsRecord["Preference"] = rr.Preference jsRecord["Preference"] = int64(rr.Preference)
jsRecord["Flags"] = rr.Flags jsRecord["Flags"] = rr.Flags
jsRecord["Service"] = rr.Service jsRecord["Service"] = rr.Service
jsRecord["Regexp"] = rr.Regexp jsRecord["Regexp"] = rr.Regexp
jsRecord["Replacement"] = rr.Replacement jsRecord["Replacement"] = rr.Replacement
case *dns.RRSIG: case *dns.RRSIG:
jsRecord["Algorithm"] = rr.Algorithm jsRecord["Algorithm"] = int64(rr.Algorithm)
jsRecord["Expiration"] = rr.Expiration jsRecord["Expiration"] = int64(rr.Expiration)
jsRecord["Inception"] = rr.Inception jsRecord["Inception"] = int64(rr.Inception)
jsRecord["KeyTag"] = rr.KeyTag jsRecord["KeyTag"] = int64(rr.KeyTag)
jsRecord["Labels"] = rr.Labels jsRecord["Labels"] = int64(rr.Labels)
jsRecord["OrigTtl"] = rr.OrigTtl jsRecord["OrigTtl"] = int64(rr.OrigTtl)
jsRecord["Signature"] = rr.Signature jsRecord["Signature"] = rr.Signature
jsRecord["SignerName"] = rr.SignerName jsRecord["SignerName"] = rr.SignerName
jsRecord["TypeCovered"] = rr.TypeCovered jsRecord["TypeCovered"] = int64(rr.TypeCovered)
case *dns.NSEC: case *dns.NSEC:
jsRecord["NextDomain"] = rr.NextDomain jsRecord["NextDomain"] = rr.NextDomain
jsRecord["TypeBitMap"] = rr.TypeBitMap jsRecord["TypeBitMap"] = uint16ArrayToInt64Array(rr.TypeBitMap, "TypeBitMap")
case *dns.NSEC3: case *dns.NSEC3:
jsRecord["Flags"] = rr.Flags jsRecord["Flags"] = int64(rr.Flags)
jsRecord["Hash"] = rr.Hash jsRecord["Hash"] = int64(rr.Hash)
jsRecord["HashLength"] = rr.HashLength jsRecord["HashLength"] = int64(rr.HashLength)
jsRecord["Iterations"] = rr.Iterations jsRecord["Iterations"] = int64(rr.Iterations)
jsRecord["NextDomain"] = rr.NextDomain jsRecord["NextDomain"] = rr.NextDomain
jsRecord["Salt"] = rr.Salt jsRecord["Salt"] = rr.Salt
jsRecord["SaltLength"] = rr.SaltLength jsRecord["SaltLength"] = int64(rr.SaltLength)
jsRecord["TypeBitMap"] = rr.TypeBitMap jsRecord["TypeBitMap"] = uint16ArrayToInt64Array(rr.TypeBitMap, "TypeBitMap")
case *dns.NSEC3PARAM: case *dns.NSEC3PARAM:
jsRecord["Flags"] = rr.Flags jsRecord["Flags"] = int64(rr.Flags)
jsRecord["Hash"] = rr.Hash jsRecord["Hash"] = int64(rr.Hash)
jsRecord["Iterations"] = rr.Iterations jsRecord["Iterations"] = int64(rr.Iterations)
jsRecord["Salt"] = rr.Salt jsRecord["Salt"] = rr.Salt
jsRecord["SaltLength"] = rr.SaltLength jsRecord["SaltLength"] = int64(rr.SaltLength)
case *dns.TKEY: case *dns.TKEY:
jsRecord["Algorithm"] = rr.Algorithm jsRecord["Algorithm"] = rr.Algorithm
jsRecord["Error"] = rr.Error jsRecord["Error"] = int64(rr.Error)
jsRecord["Expiration"] = rr.Expiration jsRecord["Expiration"] = int64(rr.Expiration)
jsRecord["Inception"] = rr.Inception jsRecord["Inception"] = int64(rr.Inception)
jsRecord["Key"] = rr.Key jsRecord["Key"] = rr.Key
jsRecord["KeySize"] = rr.KeySize jsRecord["KeySize"] = int64(rr.KeySize)
jsRecord["Mode"] = rr.Mode jsRecord["Mode"] = int64(rr.Mode)
jsRecord["OtherData"] = rr.OtherData jsRecord["OtherData"] = rr.OtherData
jsRecord["OtherLen"] = rr.OtherLen jsRecord["OtherLen"] = int64(rr.OtherLen)
case *dns.TSIG: case *dns.TSIG:
jsRecord["Algorithm"] = rr.Algorithm jsRecord["Algorithm"] = rr.Algorithm
jsRecord["Error"] = rr.Error jsRecord["Error"] = int64(rr.Error)
jsRecord["Fudge"] = rr.Fudge jsRecord["Fudge"] = int64(rr.Fudge)
jsRecord["MACSize"] = rr.MACSize jsRecord["MACSize"] = int64(rr.MACSize)
jsRecord["MAC"] = rr.MAC jsRecord["MAC"] = rr.MAC
jsRecord["OrigId"] = rr.OrigId jsRecord["OrigId"] = int64(rr.OrigId)
jsRecord["OtherData"] = rr.OtherData jsRecord["OtherData"] = rr.OtherData
jsRecord["OtherLen"] = rr.OtherLen jsRecord["OtherLen"] = int64(rr.OtherLen)
jsRecord["TimeSigned"] = rr.TimeSigned jsRecord["TimeSigned"] = int64(rr.TimeSigned)
case *dns.IPSECKEY: case *dns.IPSECKEY:
jsRecord["Algorithm"] = rr.Algorithm jsRecord["Algorithm"] = int64(rr.Algorithm)
jsRecord["GatewayAddr"] = rr.GatewayAddr.String() jsRecord["GatewayAddr"] = rr.GatewayAddr.String()
jsRecord["GatewayHost"] = rr.GatewayHost jsRecord["GatewayHost"] = rr.GatewayHost
jsRecord["GatewayType"] = rr.GatewayType jsRecord["GatewayType"] = int64(rr.GatewayType)
jsRecord["Precedence"] = rr.Precedence jsRecord["Precedence"] = int64(rr.Precedence)
jsRecord["PublicKey"] = rr.PublicKey jsRecord["PublicKey"] = rr.PublicKey
case *dns.KEY: case *dns.KEY:
jsRecord["Flags"] = rr.Flags jsRecord["Flags"] = int64(rr.Flags)
jsRecord["Protocol"] = rr.Protocol jsRecord["Protocol"] = int64(rr.Protocol)
jsRecord["Algorithm"] = rr.Algorithm jsRecord["Algorithm"] = int64(rr.Algorithm)
jsRecord["PublicKey"] = rr.PublicKey jsRecord["PublicKey"] = rr.PublicKey
case *dns.CDS: case *dns.CDS:
jsRecord["KeyTag"] = rr.KeyTag jsRecord["KeyTag"] = int64(rr.KeyTag)
jsRecord["Algorithm"] = rr.Algorithm jsRecord["Algorithm"] = int64(rr.Algorithm)
jsRecord["DigestType"] = rr.DigestType jsRecord["DigestType"] = int64(rr.DigestType)
jsRecord["Digest"] = rr.Digest jsRecord["Digest"] = rr.Digest
case *dns.CDNSKEY: case *dns.CDNSKEY:
jsRecord["Algorithm"] = rr.Algorithm jsRecord["Algorithm"] = int64(rr.Algorithm)
jsRecord["Flags"] = rr.Flags jsRecord["Flags"] = int64(rr.Flags)
jsRecord["Protocol"] = rr.Protocol jsRecord["Protocol"] = int64(rr.Protocol)
jsRecord["PublicKey"] = rr.PublicKey jsRecord["PublicKey"] = rr.PublicKey
case *dns.NID: case *dns.NID:
jsRecord["NodeID"] = rr.NodeID jsRecord["NodeID"] = rr.NodeID
jsRecord["Preference"] = rr.Preference jsRecord["Preference"] = int64(rr.Preference)
case *dns.L32: case *dns.L32:
jsRecord["Locator32"] = rr.Locator32.String() jsRecord["Locator32"] = rr.Locator32.String()
jsRecord["Preference"] = rr.Preference jsRecord["Preference"] = int64(rr.Preference)
case *dns.L64: case *dns.L64:
jsRecord["Locator64"] = rr.Locator64 jsRecord["Locator64"] = rr.Locator64
jsRecord["Preference"] = rr.Preference jsRecord["Preference"] = int64(rr.Preference)
case *dns.LP: case *dns.LP:
jsRecord["Fqdn"] = rr.Fqdn jsRecord["Fqdn"] = rr.Fqdn
jsRecord["Preference"] = rr.Preference jsRecord["Preference"] = int16(rr.Preference)
case *dns.GPOS: case *dns.GPOS:
jsRecord["Altitude"] = rr.Altitude jsRecord["Altitude"] = rr.Altitude
jsRecord["Latitude"] = rr.Latitude jsRecord["Latitude"] = rr.Latitude
@ -215,40 +215,40 @@ func NewJSResourceRecord(rr dns.RR) (jsRecord map[string]interface{}, err error)
jsRecord["Mbox"] = rr.Mbox jsRecord["Mbox"] = rr.Mbox
jsRecord["Txt"] = rr.Txt jsRecord["Txt"] = rr.Txt
case *dns.RKEY: case *dns.RKEY:
jsRecord["Algorithm"] = rr.Algorithm jsRecord["Algorithm"] = int64(rr.Algorithm)
jsRecord["Flags"] = rr.Flags jsRecord["Flags"] = int64(rr.Flags)
jsRecord["Protocol"] = rr.Protocol jsRecord["Protocol"] = int64(rr.Protocol)
jsRecord["PublicKey"] = rr.PublicKey jsRecord["PublicKey"] = rr.PublicKey
case *dns.SMIMEA: case *dns.SMIMEA:
jsRecord["Certificate"] = rr.Certificate jsRecord["Certificate"] = rr.Certificate
jsRecord["MatchingType"] = rr.MatchingType jsRecord["MatchingType"] = int64(rr.MatchingType)
jsRecord["Selector"] = rr.Selector jsRecord["Selector"] = int64(rr.Selector)
jsRecord["Usage"] = rr.Usage jsRecord["Usage"] = int64(rr.Usage)
case *dns.AMTRELAY: case *dns.AMTRELAY:
jsRecord["GatewayAddr"] = rr.GatewayAddr.String() jsRecord["GatewayAddr"] = rr.GatewayAddr.String()
jsRecord["GatewayHost"] = rr.GatewayHost jsRecord["GatewayHost"] = rr.GatewayHost
jsRecord["GatewayType"] = rr.GatewayType jsRecord["GatewayType"] = int64(rr.GatewayType)
jsRecord["Precedence"] = rr.Precedence jsRecord["Precedence"] = int64(rr.Precedence)
case *dns.AVC: case *dns.AVC:
jsRecord["Txt"] = rr.Txt jsRecord["Txt"] = rr.Txt
case *dns.URI: case *dns.URI:
jsRecord["Priority"] = rr.Priority jsRecord["Priority"] = int64(rr.Priority)
jsRecord["Weight"] = rr.Weight jsRecord["Weight"] = int64(rr.Weight)
jsRecord["Target"] = rr.Target jsRecord["Target"] = rr.Target
case *dns.EUI48: case *dns.EUI48:
jsRecord["Address"] = rr.Address jsRecord["Address"] = rr.Address
case *dns.EUI64: case *dns.EUI64:
jsRecord["Address"] = rr.Address jsRecord["Address"] = rr.Address
case *dns.GID: case *dns.GID:
jsRecord["Gid"] = rr.Gid jsRecord["Gid"] = int64(rr.Gid)
case *dns.UID: case *dns.UID:
jsRecord["Uid"] = rr.Uid jsRecord["Uid"] = int64(rr.Uid)
case *dns.UINFO: case *dns.UINFO:
jsRecord["Uinfo"] = rr.Uinfo jsRecord["Uinfo"] = rr.Uinfo
case *dns.SPF: case *dns.SPF:
jsRecord["Txt"] = rr.Txt jsRecord["Txt"] = rr.Txt
case *dns.HTTPS: case *dns.HTTPS:
jsRecord["Priority"] = rr.Priority jsRecord["Priority"] = int64(rr.Priority)
jsRecord["Target"] = rr.Target jsRecord["Target"] = rr.Target
kvs := rr.Value kvs := rr.Value
var jsKvs []map[string]interface{} var jsKvs []map[string]interface{}
@ -262,7 +262,7 @@ func NewJSResourceRecord(rr dns.RR) (jsRecord map[string]interface{}, err error)
} }
jsRecord["Value"] = jsKvs jsRecord["Value"] = jsKvs
case *dns.SVCB: case *dns.SVCB:
jsRecord["Priority"] = rr.Priority jsRecord["Priority"] = int64(rr.Priority)
jsRecord["Target"] = rr.Target jsRecord["Target"] = rr.Target
kvs := rr.Value kvs := rr.Value
jsKvs := make([]map[string]interface{}, len(kvs)) jsKvs := make([]map[string]interface{}, len(kvs))
@ -277,13 +277,13 @@ func NewJSResourceRecord(rr dns.RR) (jsRecord map[string]interface{}, err error)
jsRecord["Value"] = jsKvs jsRecord["Value"] = jsKvs
case *dns.ZONEMD: case *dns.ZONEMD:
jsRecord["Digest"] = rr.Digest jsRecord["Digest"] = rr.Digest
jsRecord["Hash"] = rr.Hash jsRecord["Hash"] = int64(rr.Hash)
jsRecord["Scheme"] = rr.Scheme jsRecord["Scheme"] = int64(rr.Scheme)
jsRecord["Serial"] = rr.Serial jsRecord["Serial"] = int64(rr.Serial)
case *dns.CSYNC: case *dns.CSYNC:
jsRecord["Flags"] = rr.Flags jsRecord["Flags"] = int64(rr.Flags)
jsRecord["Serial"] = rr.Serial jsRecord["Serial"] = int64(rr.Serial)
jsRecord["TypeBitMap"] = rr.TypeBitMap jsRecord["TypeBitMap"] = uint16ArrayToInt64Array(rr.TypeBitMap, "TypeBitMap")
case *dns.OPENPGPKEY: case *dns.OPENPGPKEY:
jsRecord["PublicKey"] = rr.PublicKey jsRecord["PublicKey"] = rr.PublicKey
case *dns.TALINK: case *dns.TALINK:
@ -294,43 +294,53 @@ func NewJSResourceRecord(rr dns.RR) (jsRecord map[string]interface{}, err error)
case *dns.DHCID: case *dns.DHCID:
jsRecord["Digest"] = rr.Digest jsRecord["Digest"] = rr.Digest
case *dns.DNSKEY: case *dns.DNSKEY:
jsRecord["Flags"] = rr.Flags jsRecord["Flags"] = int64(rr.Flags)
jsRecord["Protocol"] = rr.Protocol jsRecord["Protocol"] = int64(rr.Protocol)
jsRecord["Algorithm"] = rr.Algorithm jsRecord["Algorithm"] = int64(rr.Algorithm)
jsRecord["PublicKey"] = rr.PublicKey jsRecord["PublicKey"] = rr.PublicKey
case *dns.HIP: case *dns.HIP:
jsRecord["Hit"] = rr.Hit jsRecord["Hit"] = rr.Hit
jsRecord["HitLength"] = rr.HitLength jsRecord["HitLength"] = int64(rr.HitLength)
jsRecord["PublicKey"] = rr.PublicKey jsRecord["PublicKey"] = rr.PublicKey
jsRecord["PublicKeyAlgorithm"] = rr.PublicKeyAlgorithm jsRecord["PublicKeyAlgorithm"] = int64(rr.PublicKeyAlgorithm)
jsRecord["PublicKeyLength"] = rr.PublicKeyLength jsRecord["PublicKeyLength"] = int64(rr.PublicKeyLength)
jsRecord["RendezvousServers"] = rr.RendezvousServers jsRecord["RendezvousServers"] = rr.RendezvousServers
case *dns.OPT: case *dns.OPT:
jsRecord["Option"] = rr.Option options := rr.Option
jsOptions := make([]map[string]interface{}, len(options))
for i, option := range options {
jsOption, err := NewJSEDNS0(option)
if err != nil {
log.Error(err.Error())
continue
}
jsOptions[i] = jsOption
}
jsRecord["Option"] = jsOptions
case *dns.NIMLOC: case *dns.NIMLOC:
jsRecord["Locator"] = rr.Locator jsRecord["Locator"] = rr.Locator
case *dns.EID: case *dns.EID:
jsRecord["Endpoint"] = rr.Endpoint jsRecord["Endpoint"] = rr.Endpoint
case *dns.NXT: case *dns.NXT:
jsRecord["NextDomain"] = rr.NextDomain jsRecord["NextDomain"] = rr.NextDomain
jsRecord["TypeBitMap"] = rr.TypeBitMap jsRecord["TypeBitMap"] = uint16ArrayToInt64Array(rr.TypeBitMap, "TypeBitMap")
case *dns.PX: case *dns.PX:
jsRecord["Mapx400"] = rr.Mapx400 jsRecord["Mapx400"] = rr.Mapx400
jsRecord["Map822"] = rr.Map822 jsRecord["Map822"] = rr.Map822
jsRecord["Preference"] = rr.Preference jsRecord["Preference"] = int64(rr.Preference)
case *dns.SIG: case *dns.SIG:
jsRecord["Algorithm"] = rr.Algorithm jsRecord["Algorithm"] = int64(rr.Algorithm)
jsRecord["Expiration"] = rr.Expiration jsRecord["Expiration"] = int64(rr.Expiration)
jsRecord["Inception"] = rr.Inception jsRecord["Inception"] = int64(rr.Inception)
jsRecord["KeyTag"] = rr.KeyTag jsRecord["KeyTag"] = int64(rr.KeyTag)
jsRecord["Labels"] = rr.Labels jsRecord["Labels"] = int64(rr.Labels)
jsRecord["OrigTtl"] = rr.OrigTtl jsRecord["OrigTtl"] = int64(rr.OrigTtl)
jsRecord["Signature"] = rr.Signature jsRecord["Signature"] = rr.Signature
jsRecord["SignerName"] = rr.SignerName jsRecord["SignerName"] = rr.SignerName
jsRecord["TypeCovered"] = rr.TypeCovered jsRecord["TypeCovered"] = int64(rr.TypeCovered)
case *dns.RT: case *dns.RT:
jsRecord["Host"] = rr.Host jsRecord["Host"] = rr.Host
jsRecord["Preference"] = rr.Preference jsRecord["Preference"] = int64(rr.Preference)
case *dns.NSAPPTR: case *dns.NSAPPTR:
jsRecord["Ptr"] = rr.Ptr jsRecord["Ptr"] = rr.Ptr
case *dns.X25: case *dns.X25: