diff options
| author | chrislu <chris.lu@gmail.com> | 2022-03-15 22:28:18 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2022-03-15 22:28:18 -0700 |
| commit | 3639cad69cf58f7161aff2a639829c195d08ec30 (patch) | |
| tree | 9f45239b5ef240a36f22b428cbb88438c551ab2b /weed/util/net_timeout.go | |
| parent | fbc9f0eb64346fdfcdb70e43bedec068f1447c64 (diff) | |
| download | seaweedfs-3639cad69cf58f7161aff2a639829c195d08ec30.tar.xz seaweedfs-3639cad69cf58f7161aff2a639829c195d08ec30.zip | |
master, filer, s3: also listen to "localhost" in addition to specific ip address
related to https://github.com/chrislusf/seaweedfs/issues/1937
Diffstat (limited to 'weed/util/net_timeout.go')
| -rw-r--r-- | weed/util/net_timeout.go | 41 |
1 files changed, 35 insertions, 6 deletions
diff --git a/weed/util/net_timeout.go b/weed/util/net_timeout.go index f1ae9016d..7b59a081c 100644 --- a/weed/util/net_timeout.go +++ b/weed/util/net_timeout.go @@ -82,16 +82,45 @@ func (c *Conn) Close() error { return err } -func NewListener(addr string, timeout time.Duration) (net.Listener, error) { - l, err := net.Listen("tcp", addr) +func NewListener(addr string, timeout time.Duration) (ipListner net.Listener, err error) { + listner, err := net.Listen("tcp", addr) if err != nil { - return nil, err + return } - tl := &Listener{ - Listener: l, + ipListner = &Listener{ + Listener: listner, ReadTimeout: timeout, WriteTimeout: timeout, } - return tl, nil + + return +} + +func NewIpAndLocalListeners(host string, port int, timeout time.Duration) (ipListner net.Listener, localListener net.Listener, err error) { + listner, err := net.Listen("tcp", JoinHostPort(host, port)) + if err != nil { + return + } + + ipListner = &Listener{ + Listener: listner, + ReadTimeout: timeout, + WriteTimeout: timeout, + } + + if host != "localhost" && host != "" { + listner, err = net.Listen("tcp", JoinHostPort("localhost", port)) + if err != nil { + return + } + + localListener = &Listener{ + Listener: listner, + ReadTimeout: timeout, + WriteTimeout: timeout, + } + } + + return } |
