mirror of
https://github.com/miekg/dns.git
synced 2025-08-14 21:46:58 +02:00
allow the resolver to be reconfigured on the fly
This commit is contained in:
parent
0e00511c31
commit
ad968420ec
@ -33,10 +33,11 @@ type Resolver struct {
|
||||
}
|
||||
|
||||
// do it
|
||||
func (res *Resolver) Query(msg chan MsgErr, quit chan bool) {
|
||||
func Query(res *Resolver, msg chan MsgErr, quit chan bool) {
|
||||
var c net.Conn
|
||||
var err os.Error
|
||||
var in *Msg
|
||||
for {
|
||||
select {
|
||||
case <-quit: // quit signal recevied
|
||||
println("Quiting")
|
||||
@ -86,6 +87,7 @@ func (res *Resolver) Query(msg chan MsgErr, quit chan bool) {
|
||||
msg <- MsgErr{in, nil}
|
||||
}
|
||||
}
|
||||
}
|
||||
println("Mag nooit hier komen")
|
||||
return
|
||||
}
|
||||
|
23
restest.go
23
restest.go
@ -8,9 +8,6 @@ import (
|
||||
|
||||
func main() {
|
||||
res := new(dns.Resolver) // create a new resolver
|
||||
res.Servers = []string{"192.168.1.2"}
|
||||
res.Timeout = 2
|
||||
res.Attempts = 1
|
||||
|
||||
// Create a new message
|
||||
m := new(dns.Msg)
|
||||
@ -18,11 +15,18 @@ func main() {
|
||||
m.Question = make([]dns.Question, 1)
|
||||
m.Question[0] = dns.Question{"miek.nl", dns.TypeSOA, dns.ClassINET}
|
||||
|
||||
// send config (or res with Query)
|
||||
|
||||
msgch := make(chan dns.MsgErr)
|
||||
qch := make(chan bool)
|
||||
|
||||
// start the resolver
|
||||
go res.Query(msgch, qch)
|
||||
go dns.Query(res, msgch, qch)
|
||||
|
||||
// configure the resolver
|
||||
res.Servers = []string{"192.168.1.2"}
|
||||
res.Timeout = 2
|
||||
res.Attempts = 1
|
||||
|
||||
// ask something
|
||||
msgch <- dns.MsgErr{m, nil}
|
||||
@ -32,6 +36,17 @@ func main() {
|
||||
fmt.Printf("%v\n", in.M)
|
||||
// kill resolver
|
||||
// qch <- true does not work yet
|
||||
|
||||
m.Question[0] = dns.Question{"a.miek.nl", dns.TypeTXT, dns.ClassINET}
|
||||
// ask something
|
||||
msgch <- dns.MsgErr{m, nil}
|
||||
|
||||
// wait for an reply
|
||||
in = <-msgch
|
||||
fmt.Printf("%v\n", in.M)
|
||||
|
||||
|
||||
|
||||
time.Sleep(2.0e9)
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user