Use the new parsing from /etc/resolv.conf
Fixup all the examples programs
This commit is contained in:
parent
74796c8672
commit
a7977d6665
6
README
6
README
|
@ -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:
|
||||
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
|
@ -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.
|
@ -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)
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue