mirror of
https://github.com/miekg/dns.git
synced 2025-12-17 09:41:20 +01:00
Some more memory tweaks
This commit is contained in:
parent
19e7d87bd9
commit
3078f05f56
@ -238,6 +238,7 @@ func (c *Client) Exchange(m *Msg, a string) (r *Msg, err error) {
|
|||||||
case "udp":
|
case "udp":
|
||||||
in = make([]byte, DefaultMsgSize)
|
in = make([]byte, DefaultMsgSize)
|
||||||
}
|
}
|
||||||
|
//TODO(mg): look at the buffer size here
|
||||||
if n, err = c.ExchangeBuffer(out, a, in); err != nil {
|
if n, err = c.ExchangeBuffer(out, a, in); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@ -82,7 +82,8 @@ func RefusedHandler() Handler { return HandlerFunc(Refused) }
|
|||||||
|
|
||||||
// ...
|
// ...
|
||||||
func ListenAndServe(addr string, network string, handler Handler) error {
|
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()
|
return server.ListenAndServe()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -141,6 +142,7 @@ type Server struct {
|
|||||||
Addr string // address to listen on, ":dns" if empty
|
Addr string // address to listen on, ":dns" if empty
|
||||||
Net string // if "tcp" it will invoke a TCP listener, otherwise an UDP one
|
Net string // if "tcp" it will invoke a TCP listener, otherwise an UDP one
|
||||||
Handler Handler // handler to invoke, dns.DefaultServeMux if nil
|
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
|
ReadTimeout int64 // the net.Conn.SetReadTimeout value for new connections
|
||||||
WriteTimeout int64 // the net.Conn.SetWriteTimeout 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>
|
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
|
handler = DefaultServeMux
|
||||||
}
|
}
|
||||||
for {
|
for {
|
||||||
m := make([]byte, DefaultMsgSize)
|
m := make([]byte, srv.UDPSize)
|
||||||
n, a, e := l.ReadFromUDP(m)
|
n, a, e := l.ReadFromUDP(m)
|
||||||
if e != nil {
|
if e != nil {
|
||||||
return e
|
return e
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user