Update the utils too

This commit is contained in:
Miek Gieben 2012-12-09 19:26:32 +01:00
parent 235e892dfc
commit 617c8bde18
4 changed files with 38 additions and 38 deletions

View File

@ -75,12 +75,12 @@ forever:
if d.Rcode == dns.RcodeSuccess {
for _, a := range d.Answer {
switch a.(type) {
case *dns.RR_A:
case *dns.A:
ips = append(ips,
net.JoinHostPort(a.(*dns.RR_A).A.String(), "53"))
case *dns.RR_AAAA:
net.JoinHostPort(a.(*dns.A).A.String(), "53"))
case *dns.AAAA:
ips = append(ips,
net.JoinHostPort(a.(*dns.RR_AAAA).AAAA.String(), "53"))
net.JoinHostPort(a.(*dns.AAAA).AAAA.String(), "53"))
}
}

View File

@ -66,8 +66,8 @@ func main() {
numNS := 0
for _, ans := range r.Answer {
switch ans.(type) {
case *dns.RR_NS:
nameserver := ans.(*dns.RR_NS).Ns
case *dns.NS:
nameserver := ans.(*dns.NS).Ns
numNS += 1
ips := make([]string, 0)
fmt.Printf("%s : ", nameserver)
@ -82,8 +82,8 @@ func main() {
}
for _, ansa := range ra.Answer {
switch ansa.(type) {
case *dns.RR_A:
ips = append(ips, ansa.(*dns.RR_A).A.String())
case *dns.A:
ips = append(ips, ansa.(*dns.A).A.String())
}
}
raaaa, err := localQuery(nameserver, dns.TypeAAAA)
@ -97,8 +97,8 @@ func main() {
}
for _, ansaaaa := range raaaa.Answer {
switch ansaaaa.(type) {
case *dns.RR_AAAA:
ips = append(ips, ansaaaa.(*dns.RR_AAAA).AAAA.String())
case *dns.AAAA:
ips = append(ips, ansaaaa.(*dns.AAAA).AAAA.String())
}
}
if len(ips) == 0 {
@ -133,10 +133,10 @@ func main() {
}
rsoa := soa.Answer[0]
switch rsoa.(type) {
case *dns.RR_SOA:
case *dns.SOA:
if soa.MsgHdr.Authoritative {
// TODO: test if all name servers have the same serial ?
fmt.Printf("%s (%d) ", ips, rsoa.(*dns.RR_SOA).Serial)
fmt.Printf("%s (%d) ", ips, rsoa.(*dns.SOA).Serial)
} else {
success = false
fmt.Printf("%s (not authoritative) ", ips)

View File

@ -18,7 +18,7 @@ import (
// TODO: serial in ixfr
var (
dnskey *dns.RR_DNSKEY
dnskey *dns.DNSKEY
short *bool
)
@ -63,7 +63,7 @@ func main() {
if err != nil {
fmt.Fprintf(os.Stderr, "Failure to read an RR from %s: %s\n", *anchor, err.Error())
}
if k, ok := r.(*dns.RR_DNSKEY); !ok {
if k, ok := r.(*dns.DNSKEY); !ok {
fmt.Fprintf(os.Stderr, "No DNSKEY read from %s\n", *anchor)
} else {
dnskey = k
@ -148,7 +148,7 @@ Flags:
m.Question = make([]dns.Question, 1)
if *dnssec || *nsid || *client != "" {
o := new(dns.RR_OPT)
o := new(dns.OPT)
o.Hdr.Name = "."
o.Hdr.Rrtype = dns.TypeOPT
if *dnssec {
@ -229,7 +229,7 @@ Flags:
if c.Net != "tcp" {
if !*dnssec {
fmt.Printf(";; Truncated, trying %d bytes bufsize\n", dns.DefaultMsgSize)
o := new(dns.RR_OPT)
o := new(dns.OPT)
o.Hdr.Name = "."
o.Hdr.Rrtype = dns.TypeOPT
o.SetUDPSize(dns.DefaultMsgSize)
@ -280,28 +280,28 @@ func tsigKeyParse(s string) (algo, name, secret string, ok bool) {
}
func sectionCheck(set []dns.RR, server string, tcp bool) {
var key *dns.RR_DNSKEY
var key *dns.DNSKEY
for _, rr := range set {
if rr.Header().Rrtype == dns.TypeRRSIG {
rrset := getRRset(set, rr.Header().Name, rr.(*dns.RR_RRSIG).TypeCovered)
rrset := getRRset(set, rr.Header().Name, rr.(*dns.RRSIG).TypeCovered)
if dnskey == nil {
key = getKey(rr.(*dns.RR_RRSIG).SignerName, rr.(*dns.RR_RRSIG).KeyTag, server, tcp)
key = getKey(rr.(*dns.RRSIG).SignerName, rr.(*dns.RRSIG).KeyTag, server, tcp)
} else {
key = dnskey
}
if key == nil {
fmt.Printf(";? DNSKEY %s/%d not found\n", rr.(*dns.RR_RRSIG).SignerName, rr.(*dns.RR_RRSIG).KeyTag)
fmt.Printf(";? DNSKEY %s/%d not found\n", rr.(*dns.RRSIG).SignerName, rr.(*dns.RRSIG).KeyTag)
continue
}
where := "net"
if dnskey != nil {
where = "disk"
}
if err := rr.(*dns.RR_RRSIG).Verify(key, rrset); err != nil {
if err := rr.(*dns.RRSIG).Verify(key, rrset); err != nil {
fmt.Printf(";- Bogus signature, %s does not validate (DNSKEY %s/%d/%s) [%s]\n",
shortSig(rr.(*dns.RR_RRSIG)), key.Header().Name, key.KeyTag(), where, err.Error())
shortSig(rr.(*dns.RRSIG)), key.Header().Name, key.KeyTag(), where, err.Error())
} else {
fmt.Printf(";+ Secure signature, %s validates (DNSKEY %s/%d/%s)\n", shortSig(rr.(*dns.RR_RRSIG)), key.Header().Name, key.KeyTag(), where)
fmt.Printf(";+ Secure signature, %s validates (DNSKEY %s/%d/%s)\n", shortSig(rr.(*dns.RRSIG)), key.Header().Name, key.KeyTag(), where)
}
}
}
@ -328,7 +328,7 @@ func getRRset(l []dns.RR, name string, t uint16) []dns.RR {
// Get the key from the DNS (uses the local resolver) and return them.
// If nothing is found we return nil
func getKey(name string, keytag uint16, server string, tcp bool) *dns.RR_DNSKEY {
func getKey(name string, keytag uint16, server string, tcp bool) *dns.DNSKEY {
c := new(dns.Client)
if tcp {
c.Net = "tcp"
@ -341,7 +341,7 @@ func getKey(name string, keytag uint16, server string, tcp bool) *dns.RR_DNSKEY
return nil
}
for _, k := range r.Answer {
if k1, ok := k.(*dns.RR_DNSKEY); ok {
if k1, ok := k.(*dns.DNSKEY); ok {
if k1.KeyTag() == keytag {
return k1
}
@ -351,7 +351,7 @@ func getKey(name string, keytag uint16, server string, tcp bool) *dns.RR_DNSKEY
}
// shorten RRSIG to "miek.nl RRSIG(NS)"
func shortSig(sig *dns.RR_RRSIG) string {
func shortSig(sig *dns.RRSIG) string {
return sig.Header().Name + " RRSIG(" + dns.TypeToString[sig.TypeCovered] + ")"
}
@ -371,13 +371,13 @@ func shortMsg(in *dns.Msg) *dns.Msg {
func shortRR(r dns.RR) dns.RR {
switch t := r.(type) {
case *dns.RR_DS:
case *dns.DS:
t.Digest = "..."
case *dns.RR_DNSKEY:
case *dns.DNSKEY:
t.PublicKey = "..."
case *dns.RR_RRSIG:
case *dns.RRSIG:
t.Signature = "..."
case *dns.RR_NSEC3:
case *dns.NSEC3:
t.Salt = "." // Nobody cares
if len(t.TypeBitMap) > 5 {
t.TypeBitMap = t.TypeBitMap[1:5]

View File

@ -73,16 +73,16 @@ func handleReflect(w dns.ResponseWriter, r *dns.Msg) {
}
if v4 {
rr = new(dns.RR_A)
rr.(*dns.RR_A).Hdr = dns.RR_Header{Name: dom, Rrtype: dns.TypeA, Class: dns.ClassINET, Ttl: 0}
rr.(*dns.RR_A).A = a.To4()
rr = new(dns.A)
rr.(*dns.A).Hdr = dns.RR_Header{Name: dom, Rrtype: dns.TypeA, Class: dns.ClassINET, Ttl: 0}
rr.(*dns.A).A = a.To4()
} else {
rr = new(dns.RR_AAAA)
rr.(*dns.RR_AAAA).Hdr = dns.RR_Header{Name: dom, Rrtype: dns.TypeAAAA, Class: dns.ClassINET, Ttl: 0}
rr.(*dns.RR_AAAA).AAAA = a
rr = new(dns.AAAA)
rr.(*dns.AAAA).Hdr = dns.RR_Header{Name: dom, Rrtype: dns.TypeAAAA, Class: dns.ClassINET, Ttl: 0}
rr.(*dns.AAAA).AAAA = a
}
t := new(dns.RR_TXT)
t := new(dns.TXT)
t.Hdr = dns.RR_Header{Name: dom, Rrtype: dns.TypeTXT, Class: dns.ClassINET, Ttl: 0}
t.Txt = []string{str}
@ -117,7 +117,7 @@ func handleReflect(w dns.ResponseWriter, r *dns.Msg) {
if r.IsTsig() != nil {
if w.TsigStatus() == nil {
m.SetTsig(r.Extra[len(r.Extra)-1].(*dns.RR_TSIG).Hdr.Name, dns.HmacMD5, 300, time.Now().Unix())
m.SetTsig(r.Extra[len(r.Extra)-1].(*dns.TSIG).Hdr.Name, dns.HmacMD5, 300, time.Now().Unix())
} else {
println("Status", w.TsigStatus().Error())
}