All together now
Responder renamed to server and folded back into the main dns package
This commit is contained in:
parent
7adcf8b240
commit
ea180d5051
10
Makefile
10
Makefile
|
@ -18,7 +18,7 @@ GOFILES=\
|
||||||
nsec3.go\
|
nsec3.go\
|
||||||
resolver.go\
|
resolver.go\
|
||||||
config.go\
|
config.go\
|
||||||
responder.go
|
server.go
|
||||||
# y.go\
|
# y.go\
|
||||||
|
|
||||||
include $(GOROOT)/src/Make.pkg
|
include $(GOROOT)/src/Make.pkg
|
||||||
|
@ -26,14 +26,6 @@ include $(GOROOT)/src/Make.pkg
|
||||||
#y.go: dns.y
|
#y.go: dns.y
|
||||||
# goyacc dns.y
|
# goyacc dns.y
|
||||||
|
|
||||||
|
|
||||||
all: package
|
|
||||||
gomake -C responder package
|
|
||||||
|
|
||||||
dnstest:
|
|
||||||
gotest
|
|
||||||
gomake -C responder test
|
|
||||||
|
|
||||||
_examples:
|
_examples:
|
||||||
gomake -C _examples
|
gomake -C _examples
|
||||||
|
|
||||||
|
|
15
server.go
15
server.go
|
@ -20,22 +20,13 @@
|
||||||
// var m *myserv
|
// var m *myserv
|
||||||
// ch :=make(chan bool)
|
// ch :=make(chan bool)
|
||||||
// go s.NewResponder(m, ch) // start the responder
|
// go s.NewResponder(m, ch) // start the responder
|
||||||
package responder
|
package dns
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
"net"
|
"net"
|
||||||
"dns"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type msg struct {
|
|
||||||
udp *net.UDPConn // udp conn
|
|
||||||
tcp *net.TCPConn // tcp conn
|
|
||||||
addr net.Addr // remote address
|
|
||||||
msg []byte // raw dns message
|
|
||||||
err os.Error // any errors
|
|
||||||
}
|
|
||||||
|
|
||||||
// Every nameserver implements the Hander interface. It defines
|
// Every nameserver implements the Hander interface. It defines
|
||||||
// the kind of nameserver
|
// the kind of nameserver
|
||||||
type Handler interface {
|
type Handler interface {
|
||||||
|
@ -56,7 +47,7 @@ func ServeUDP(l *net.UDPConn, handler Handler) os.Error {
|
||||||
// handler == DefaultServer
|
// handler == DefaultServer
|
||||||
}
|
}
|
||||||
for {
|
for {
|
||||||
m := make([]byte, dns.DefaultMsgSize) // TODO(mg) out of this loop?
|
m := make([]byte, DefaultMsgSize) // TODO(mg) out of this loop?
|
||||||
n, radd, err := l.ReadFromUDP(m)
|
n, radd, err := l.ReadFromUDP(m)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -84,7 +75,7 @@ func ServeTCP(l *net.TCPListener, handler Handler) os.Error {
|
||||||
}
|
}
|
||||||
length := uint16(b[0])<<8 | uint16(b[1])
|
length := uint16(b[0])<<8 | uint16(b[1])
|
||||||
if length == 0 {
|
if length == 0 {
|
||||||
return &dns.Error{Error: "received nil msg length"}
|
return &Error{Error: "received nil msg length"}
|
||||||
}
|
}
|
||||||
m := make([]byte, length)
|
m := make([]byte, length)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue