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:
parent
00c4f46c7e
commit
267cfaab11
28
server.go
28
server.go
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue