Use the new parsing from /etc/resolv.conf

Fixup all the examples programs
This commit is contained in:
Miek Gieben 2011-01-17 10:38:25 +01:00
parent 74796c8672
commit a7977d6665
8 changed files with 10 additions and 87 deletions

6
README
View File

@ -10,8 +10,12 @@ Installation is done by running: ./install
Sample programs can be found in the _examples directory. They can
be build with: make examples (after the dns package has been installed)
The major omission at the moment is parsing Resource Records from
strings. (I.e. supporting the 1035 zone file format).
Everything else should be present and working. If not, drop me an mail.
Have fun!
Miek Gieben - 2010, 2011
Miek Gieben - 2010, 2011 - miek@miek.nl
Implemented RFCS:

View File

@ -10,7 +10,7 @@ func main() {
res := new(resolver.Resolver)
ch := res.NewXfer()
res.Servers = []string{"127.0.0.1"}
res.FromFile("/etc/resolv.conf")
m := new(dns.Msg)
m.Question = make([]dns.Question, 1)
m.Question[0] = dns.Question{"atoom.net", dns.TypeAXFR, dns.ClassINET}

View File

@ -14,9 +14,7 @@ import (
func main() {
r := new(resolver.Resolver)
qr := r.NewQuerier()
r.Servers = []string{"127.0.0.1"}
r.Timeout = 2
r.Attempts = 1
r.FromFile("/etc/resolv.conf")
var in resolver.Msg
if len(os.Args) != 2 {

View File

@ -1,7 +0,0 @@
# Copyright 2009 The Go Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.
include $(GOROOT)/src/Make.inc
TARG=dnssectest
GOFILES=dnssectest.go
include $(GOROOT)/src/Make.cmd

View File

@ -1,69 +0,0 @@
package main
import (
"dns"
"dns/resolver"
"fmt"
)
func main() {
key := new(dns.RR_DNSKEY)
key.Hdr.Name = "miek.nl"
key.Hdr.Rrtype = dns.TypeDNSKEY
key.Hdr.Class = dns.ClassINET
key.Hdr.Ttl = 3600
key.Flags = 257
key.Protocol = 3
key.Algorithm = dns.AlgRSASHA1
key.PubKey = "AwEAAaHIwpx3w4VHKi6i1LHnTaWeHCL154Jug0Rtc9ji5qwPXpBo6A5sRv7cSsPQKPIwxLpyCrbJ4mr2L0EPOdvP6z6YfljK2ZmTbogU9aSU2fiq/4wjxbdkLyoDVgtO+JsxNN4bjr4WcWhsmk1Hg93FV9ZpkWb0Tbad8DFq NDzr//kZ"
sig := new(dns.RR_RRSIG)
sig.Hdr.Name = "miek.nl."
sig.Hdr.Rrtype = dns.TypeRRSIG
sig.Hdr.Class = dns.ClassINET
sig.Hdr.Ttl = 3600
sig.TypeCovered = dns.TypeDNSKEY
sig.Algorithm = dns.AlgRSASHA1
sig.OrigTtl = 4000
sig.Expiration = 1000
sig.Inception = 800
sig.KeyTag = 34641
sig.SignerName = "miek.nl."
sig.Signature = "AwEAAaHIwpx3w4VHKi6i1LHnTaWeHCL154Jug0Rtc9ji5qwPXpBo6A5sRv7cSsPQKPIwxLpyCrbJ4mr2L0EPOdvP6z6YfljK2ZmTbogU9aSU2fiq/4wjxbdkLyoDVgtO+JsxNN4bjr4WcWhsmk1Hg93FV9ZpkWb0Tbad8DFq NDzr//kZ"
fmt.Printf("%v", sig)
res := new(resolver.Resolver)
ch := res.NewQuerier()
// configure the resolver
res.Servers = []string{"192.168.1.2"}
res.Timeout = 2
res.Attempts = 1
// Setup done, now for some real work
// Create a new message
m := new(dns.Msg)
m.MsgHdr.RecursionDesired = true //only set this bit
m.Question = make([]dns.Question, 1)
m.Question[0] = dns.Question{"miek.nl", dns.TypeDS, dns.ClassINET}
ch <- resolver.Msg{m, nil}
in := <-ch
fmt.Printf("%v\n", in.Dns)
m.Question[0] = dns.Question{"www.nlnetlabs.nl", dns.TypeRRSIG, dns.ClassINET}
ch <- resolver.Msg{m, nil}
in = <-ch
fmt.Printf("%v\n", in.Dns)
m.Question[0] = dns.Question{"xxxx.nlnetlabs.nl", dns.TypeDNSKEY, dns.ClassINET}
ch <- resolver.Msg{m, nil}
in = <-ch
fmt.Printf("%v\n", in.Dns)
ch <- resolver.Msg{nil, nil}
<-ch
}

Binary file not shown.

View File

@ -12,12 +12,9 @@ import (
func main() {
r := new(resolver.Resolver)
qr := r.NewQuerier()
r.Servers = []string{"127.0.0.1"}
r.Timeout = 2
r.Attempts = 1
r.FromFile("/etc/resolv.conf")
if len(os.Args) != 2 {
fmt.Printf("%s DOMAIN\nIt using 127.0.0.1 as a nameserver\n", os.Args[0])
fmt.Printf("%s DOMAIN\n", os.Args[0])
os.Exit(1)
}

View File

@ -55,11 +55,11 @@ FLAGS:
qname = append(qname, flag.Arg(i))
}
r := new(resolver.Resolver)
r.FromFile("/etc/resolv.conf")
r.Timeout = 2
r.Port = *port
r.Tcp = *tcp
r.Attempts = 1
qr := r.NewQuerier()
// @server may be a name, resolv that
var err os.Error