Some more memory tweaks

This commit is contained in:
Miek Gieben 2012-01-12 22:34:53 +01:00
parent 19e7d87bd9
commit 3078f05f56
2 changed files with 5 additions and 2 deletions

View File

@ -238,6 +238,7 @@ func (c *Client) Exchange(m *Msg, a string) (r *Msg, err error) {
case "udp":
in = make([]byte, DefaultMsgSize)
}
//TODO(mg): look at the buffer size here
if n, err = c.ExchangeBuffer(out, a, in); err != nil {
return nil, err
}

View File

@ -82,7 +82,8 @@ func RefusedHandler() Handler { return HandlerFunc(Refused) }
// ...
func ListenAndServe(addr string, network string, handler Handler) error {
server := &Server{Addr: addr, Net: network, Handler: handler}
//TODO(mg): make message size configurable....
server := &Server{Addr: addr, Net: network, Handler: handler, UDPSize: DefaultMsgSize}
return server.ListenAndServe()
}
@ -141,6 +142,7 @@ type Server struct {
Addr string // address to listen on, ":dns" if empty
Net string // if "tcp" it will invoke a TCP listener, otherwise an UDP one
Handler Handler // handler to invoke, dns.DefaultServeMux if nil
UDPSize int // default buffer to use to read incoming UDP messages
ReadTimeout int64 // the net.Conn.SetReadTimeout value for new connections
WriteTimeout int64 // the net.Conn.SetWriteTimeout value for new connections
TsigSecret map[string]string // secret(s) for Tsig map[<zonename>]<base64 secret>
@ -234,7 +236,7 @@ func (srv *Server) ServeUDP(l *net.UDPConn) error {
handler = DefaultServeMux
}
for {
m := make([]byte, DefaultMsgSize)
m := make([]byte, srv.UDPSize)
n, a, e := l.ReadFromUDP(m)
if e != nil {
return e