aboutsummaryrefslogtreecommitdiff
path: root/reuseport
diff options
context:
space:
mode:
authorGravatar Aliaksandr Valialkin <valyala@gmail.com> 2015-11-20 15:03:41 +0200
committerGravatar Aliaksandr Valialkin <valyala@gmail.com> 2015-11-20 15:03:41 +0200
commit982240828b3eabc5379f45910f1827f977a81fff (patch)
tree8a185e2fc236e8ffc50cf733fc5b23414c43392d /reuseport
parentRenamed NewListener to Listener to be consistent with go's net package (diff)
downloadfasthttp-982240828b3eabc5379f45910f1827f977a81fff.tar.gz
fasthttp-982240828b3eabc5379f45910f1827f977a81fff.tar.bz2
fasthttp-982240828b3eabc5379f45910f1827f977a81fff.zip
Set SO_REUSEADDR in reuseport.Listen() like standard net package do
Diffstat (limited to 'reuseport')
-rw-r--r--reuseport/reuseport.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/reuseport/reuseport.go b/reuseport/reuseport.go
index 13092ef..9d6fe7a 100644
--- a/reuseport/reuseport.go
+++ b/reuseport/reuseport.go
@@ -61,6 +61,11 @@ func Listen(network, addr string) (l net.Listener, err error) {
return nil, err
}
+ if err = syscall.SetsockoptInt(fd, syscall.SOL_SOCKET, syscall.SO_REUSEADDR, 1); err != nil {
+ syscall.Close(fd)
+ return nil, err
+ }
+
if err = syscall.SetsockoptInt(fd, syscall.SOL_SOCKET, reusePort, 1); err != nil {
syscall.Close(fd)
return nil, &ErrNoReusePort{err}