Make ResponseWriter a io.Writer

The WriteBuf() is renamed Write() and returns and int and
an error. The old Write() call, is now WriteBuf()
This commit is contained in:
Miek Gieben 2012-11-18 12:21:02 +01:00
parent 00c4f46c7e
commit 267cfaab11
2 changed files with 15 additions and 15 deletions

View File

@ -21,10 +21,10 @@ type Handler interface {
type ResponseWriter interface {
// RemoteAddr returns the net.Addr of the client that sent the current request.
RemoteAddr() net.Addr
// Write writes a reply back to the client.
Write(*Msg) error
// WriteBuf writes a raw buffer back to the client.
WriteBuf([]byte) (int, error)
// WriteMsg writes a reply back to the client.
WriteMsg(*Msg) error
// Write writes a raw buffer back to the client.
Write([]byte) (int, error)
// Close closes the connection.
Close() error
// TsigStatus returns the status of the Tsig.
@ -86,7 +86,7 @@ func HandleFailed(w ResponseWriter, r *Msg) {
m := new(Msg)
m.SetRcode(r, RcodeServerFailure)
// does not matter if this write fails
w.Write(m)
w.WriteMsg(m)
}
// AuthorHandler returns a HandlerFunc that returns the authors
@ -118,7 +118,7 @@ func HandleAuthors(w ResponseWriter, r *Msg) {
h := RR_Header{r.Question[0].Name, TypeTXT, ClassCHAOS, 0, 0}
m.Answer = append(m.Answer, &RR_TXT{h, []string{author}})
}
w.Write(m)
w.WriteMsg(m)
}
// VersionHandler returns a HandlerFunc that returns the version
@ -148,7 +148,7 @@ func HandleVersion(w ResponseWriter, r *Msg) {
m.SetReply(r)
h := RR_Header{r.Question[0].Name, TypeTXT, ClassCHAOS, 0, 0}
m.Answer = append(m.Answer, &RR_TXT{h, []string{Version}})
w.Write(m)
w.WriteMsg(m)
}
func authorHandler() Handler { return HandlerFunc(HandleAuthors) }
@ -375,7 +375,7 @@ func serve(a net.Addr, h Handler, m []byte, u *net.UDPConn, t *net.TCPConn, tsig
// Send a format error back
x := new(Msg)
x.SetRcodeFormatError(req)
w.Write(x)
w.WriteMsg(x)
break
}
@ -404,8 +404,8 @@ func serve(a net.Addr, h Handler, m []byte, u *net.UDPConn, t *net.TCPConn, tsig
return
}
// Write implements the ResponseWriter.Write method.
func (w *response) Write(m *Msg) (err error) {
// WriteMsg implements the ResponseWriter.WriteMsg method.
func (w *response) WriteMsg(m *Msg) (err error) {
var data []byte
if w.tsigSecret != nil { // if no secrets, dont check for the tsig (which is a longer check)
if t := m.IsTsig(); t != nil {
@ -413,7 +413,7 @@ func (w *response) Write(m *Msg) (err error) {
if err != nil {
return err
}
_, err = w.WriteBuf(data)
_, err = w.Write(data)
return err
}
}
@ -421,12 +421,12 @@ func (w *response) Write(m *Msg) (err error) {
if err != nil {
return err
}
_, err = w.WriteBuf(data)
_, err = w.Write(data)
return err
}
// WriteBuf implements the ResponseWriter.WriteBuf method.
func (w *response) WriteBuf(m []byte) (int, error) {
// Write implements the ResponseWriter.Write method.
func (w *response) Write(m []byte) (int, error) {
switch {
case w._UDP != nil:
n, err := w._UDP.WriteTo(m, w.remoteAddr)

2
xfr.go
View File

@ -183,7 +183,7 @@ func axfrSend(w ResponseWriter, req *Msg, c chan *XfrToken, e *error) {
for x := range c {
// assume it fits
rep.Answer = append(rep.Answer, x.RR...)
if err := w.Write(rep); e != nil {
if err := w.WriteMsg(rep); e != nil {
*e = err
return
}