From 01846073875199cc5b7c20be18eae59f9eed2b03 Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Mon, 16 Jul 2012 13:31:18 +0200 Subject: [PATCH] More radix stuff and think about glue detection --- zone.go | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/zone.go b/zone.go index 24bcbb76..f552e746 100644 --- a/zone.go +++ b/zone.go @@ -3,7 +3,7 @@ package dns // A structure for handling zone data import ( - "github.com/sauerbraten/radix" + "radix" ) // Zone represents a DNS zone. @@ -44,20 +44,29 @@ func (z *Zone) Insert(r RR) { zd.Signatures = append(zd.Signatures, r.(*RR_RRSIG)) default: zd.RR[t] = append(zd.RR[t], r) + glueCheck(r) } z.Radix.Insert(r.Header().Name, zd) return } switch t := r.Header().Rrtype; t { case TypeRRSIG: - zd.(*ZoneData).Signatures = append(zd.(*ZoneData).Signatures, r.(*RR_RRSIG)) + zd.Value.(*ZoneData).Signatures = append(zd.Value.(*ZoneData).Signatures, r.(*RR_RRSIG)) default: - zd.(*ZoneData).RR[t] = append(zd.(*ZoneData).RR[t], r) + zd.Value.(*ZoneData).RR[t] = append(zd.Value.(*ZoneData).RR[t], r) } - // TODO(mg): Glue return } +func glueCheck(r RR) { + if n, ok := r.(*RR_NS); ok { + // Check if glue would be needed + if CompareLabels(r.Header().Name, n.Ns) == LenLabels(r.Header().Name) { + println("glue needed?", r.Header().Name, n.Ns) + } + } +} + func (z *Zone) Remove(r RR) { }