parent
406edadf20
commit
c939840fb2
|
@ -1,7 +1,6 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"dns"
|
||||
"flag"
|
||||
)
|
||||
|
@ -20,11 +19,13 @@ func main() {
|
|||
} else {
|
||||
m.SetAxfr(zone)
|
||||
}
|
||||
axfr, err := client.XfrReceive(m, *nameserver)
|
||||
if err != nil {
|
||||
if err := client.XfrReceive(m, *nameserver); err != nil {
|
||||
println(err.String())
|
||||
return
|
||||
}
|
||||
/*
|
||||
for _, v := range axfr {
|
||||
fmt.Printf("%v\n", v)
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
|
|
@ -64,8 +64,8 @@ forever:
|
|||
for {
|
||||
select {
|
||||
case r := <-dns.DefaultReplyChan:
|
||||
if r[1] !=nil && r[1].Rcode == dns.RcodeSuccess {
|
||||
for _, aa := range r[1].Answer {
|
||||
if r.Reply !=nil && r.Reply.Rcode == dns.RcodeSuccess {
|
||||
for _, aa := range r.Reply.Answer {
|
||||
switch aa.(type) {
|
||||
case *dns.RR_A:
|
||||
ips = append(ips, aa.(*dns.RR_A).A.String()+":53")
|
||||
|
|
|
@ -132,16 +132,16 @@ forever:
|
|||
for {
|
||||
select {
|
||||
case r := <-dns.DefaultReplyChan:
|
||||
if r[1] != nil {
|
||||
if r[1].Rcode == dns.RcodeSuccess {
|
||||
if r[0].Id != r[1].Id {
|
||||
if r.Reply != nil {
|
||||
if r.Reply.Rcode == dns.RcodeSuccess {
|
||||
if r.Request.Id != r.Reply.Id {
|
||||
fmt.Printf("Id mismatch\n")
|
||||
}
|
||||
}
|
||||
if *short {
|
||||
r[1] = shortMsg(r[1])
|
||||
r.Reply = shortMsg(r.Reply)
|
||||
}
|
||||
fmt.Printf("%v", r[1])
|
||||
fmt.Printf("%v", r.Reply)
|
||||
}
|
||||
i++
|
||||
if i == len(qname) {
|
||||
|
|
|
@ -134,11 +134,12 @@ type Client struct {
|
|||
}
|
||||
|
||||
// NewClient creates a new client, with Net set to "udp" and Attempts to 1.
|
||||
// The client's ChannelReply is set to DefaultReplyChan.
|
||||
func NewClient() *Client {
|
||||
c := new(Client)
|
||||
c.Net = "udp"
|
||||
c.Attempts = 1
|
||||
c.ChannelReply = DefaultReplyChan
|
||||
c.ChannelReply = DefaultReplyChan
|
||||
c.ReadTimeout = 5000
|
||||
c.WriteTimeout = 5000
|
||||
return c
|
||||
|
@ -178,8 +179,8 @@ func (q *Query) ListenAndQuery() os.Error {
|
|||
// ListenAndQuery starts the listener for firing off the queries. If
|
||||
// c is nil DefaultQueryChan is used. If handler is nil
|
||||
// DefaultQueryMux is used.
|
||||
func ListenAndQuery(c chan *Request, handler QueryHandler) {
|
||||
q := &Query{ChannelQuery: c, Handler: handler}
|
||||
func ListenAndQuery(request chan *Request, handler QueryHandler) {
|
||||
q := &Query{ChannelQuery: request, Handler: handler}
|
||||
go q.ListenAndQuery()
|
||||
}
|
||||
|
||||
|
|
|
@ -88,11 +88,14 @@ func TestClientTsigAXFR(t *testing.T) {
|
|||
c.Net = "tcp"
|
||||
c.TsigSecret = secrets
|
||||
|
||||
c.XfrReceive(m, "85.223.71.124:53")
|
||||
/*
|
||||
if err != nil {
|
||||
t.Log("%s\n", err.String())
|
||||
t.Fail()
|
||||
}
|
||||
*/
|
||||
if err := c.XfrReceive(m, "85.223.71.124:53"); err != nil {
|
||||
t.Log("Failed to setup axfr" + err.String())
|
||||
t.Fail()
|
||||
}
|
||||
/*
|
||||
for {
|
||||
// select on c.ReplyChannel
|
||||
// and receive the *Exchange messages
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue