From cefa3b1f5229cf79e8377dcfc24294386b6f8f6a Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Fri, 27 May 2016 16:53:10 +0300 Subject: [PATCH] Issue #105: listen by default only on IPv4, since IPv6 may be misleading / unexpected / buggy --- server.go | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/server.go b/server.go index 98818c4..e7c2f58 100644 --- a/server.go +++ b/server.go @@ -1068,9 +1068,12 @@ func (ctx *RequestCtx) TimeoutErrorWithResponse(resp *Response) { ctx.timeoutResponse = respCopy } -// ListenAndServe serves HTTP requests from the given TCP addr. +// ListenAndServe serves HTTP requests from the given TCP4 addr. +// +// Pass custom listener to Serve if you need listening on non-TCP4 media +// such as IPv6. func (s *Server) ListenAndServe(addr string) error { - ln, err := net.Listen("tcp", addr) + ln, err := net.Listen("tcp4", addr) if err != nil { return err } @@ -1096,22 +1099,28 @@ func (s *Server) ListenAndServeUNIX(addr string, mode os.FileMode) error { return s.Serve(ln) } -// ListenAndServeTLS serves HTTPS requests from the given TCP addr. +// ListenAndServeTLS serves HTTPS requests from the given TCP4 addr. // // certFile and keyFile are paths to TLS certificate and key files. +// +// Pass custom listener to Serve if you need listening on non-TCP4 media +// such as IPv6. func (s *Server) ListenAndServeTLS(addr, certFile, keyFile string) error { - ln, err := net.Listen("tcp", addr) + ln, err := net.Listen("tcp4", addr) if err != nil { return err } return s.ServeTLS(ln, certFile, keyFile) } -// ListenAndServeTLSEmbed serves HTTPS requests from the given TCP addr. +// ListenAndServeTLSEmbed serves HTTPS requests from the given TCP4 addr. // // certData and keyData must contain valid TLS certificate and key data. +// +// Pass custom listener to Serve if you need listening on arbitrary media +// such as IPv6. func (s *Server) ListenAndServeTLSEmbed(addr string, certData, keyData []byte) error { - ln, err := net.Listen("tcp", addr) + ln, err := net.Listen("tcp4", addr) if err != nil { return err }