Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
p2p
go-reuseport-transport
Commits
f51c12d5
Unverified
Commit
f51c12d5
authored
Jan 03, 2019
by
Steven Allen
Committed by
GitHub
Jan 03, 2019
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #6 from libp2p/reuseport-control
Update to go-reuseport 0.2.0
parents
1e7f3dd8
c61d3f62
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
92 additions
and
9 deletions
+92
-9
go.mod
go.mod
+23
-0
go.sum
go.sum
+51
-0
package.json
package.json
+2
-2
reuseport.go
reuseport.go
+16
-7
No files found.
go.mod
0 → 100644
View file @
f51c12d5
module
github.com/libp2p/go-reuseport-transport
require (
github.com/gogo/protobuf
v1.2.0 // indirect
github.com/gxed/hashland
v0.0.0-20180221191214-d9f6b97f8db2 // indirect
github.com/ipfs/go-log
v1.5.7
github.com/libp2p/go-reuseport
v0.2.0
github.com/libp2p/go-sockaddr
v1.0.3 // indirect
github.com/mattn/go-colorable
v0.0.9 // indirect
github.com/mattn/go-isatty
v0.0.4 // indirect
github.com/minio/blake2b-simd
v0.0.0-20160723061019-3f5f724cb5b1 // indirect
github.com/minio/sha256-simd
v0.0.0-20181005183134-51976451ce19 // indirect
github.com/mr-tron/base58
v1.1.0 // indirect
github.com/multiformats/go-multiaddr
v1.4.0
github.com/multiformats/go-multiaddr-dns
v0.2.5 // indirect
github.com/multiformats/go-multiaddr-net
v1.7.1
github.com/multiformats/go-multihash
v1.0.8 // indirect
github.com/opentracing/opentracing-go
v1.0.2 // indirect
github.com/spaolacci/murmur3
v0.0.0-20180118202830-f09979ecbc72 // indirect
github.com/whyrusleeping/go-logging
v0.0.0-20170515211332-0457bb6b88fc // indirect
golang.org/x/crypto
v0.0.0-20181203042331-505ab145d0a9 // indirect
golang.org/x/net
v0.0.0-20181220203305-927f97764cc3 // indirect
)
go.sum
0 → 100644
View file @
f51c12d5
github.com/davecgh/go-spew
v1.1.1/go.mod h1:
J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/gogo/protobuf
v1.2.0 h1:
xU6/SpYbvkNYiptHJYEDRseDLvYE7wSqhYYNy0QSUzI=
github.com/gogo/protobuf
v1.2.0/go.mod h1:
r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
github.com/gxed/hashland
v0.0.0-20180221191214-d9f6b97f8db2 h1:
neM/RzmgBKxsJ3ioEZnIQmgQQq/sn6xDqYOEYnH3RYM=
github.com/gxed/hashland
v0.0.0-20180221191214-d9f6b97f8db2/go.mod h1:
YUhWml1NaWLTNBl4NPptkB8MadfaIhgq+a2TRc+Mw4Q=
github.com/ipfs/go-log
v1.5.7 h1:
8ef7XW41hzAnvVNkK5009/bOA9/MFr7fhdzkfAqvolI=
github.com/ipfs/go-log
v1.5.7/go.mod h1:
AKYS9u+ECLT8t30brTaoVwu3f1FpGx6C0352oI1zQ0Q=
github.com/libp2p/go-reuseport
v0.1.18 h1:
TKSaHPmImw12TLRD/9fBOIp/NAcgUjv6u3KP6XHdEJM=
github.com/libp2p/go-reuseport
v0.1.18/go.mod h1:
UeLFiw50cCfyDHBpU0sXBR8ul1MO/m51mXpRO/SYjCE=
github.com/libp2p/go-reuseport
v0.2.0 h1:
gF9stUz461IFSuL4Uba8tEUFSS5gSUWEke7WuTgjSaw=
github.com/libp2p/go-reuseport
v0.2.0/go.mod h1:
ViUXkfLbcaqzYb7Yyi7ZP/n8nAezADhH9oLvj6TA83E=
github.com/libp2p/go-reuseport
v0.2.1-0.20190104012131-8e4e73d6b21e h1:
qZtC1ElM5hQNJT1dfMEreiaT3HoPLcyUFwaAcBFsyiQ=
github.com/libp2p/go-reuseport
v0.2.1-0.20190104012131-8e4e73d6b21e/go.mod h1:
ViUXkfLbcaqzYb7Yyi7ZP/n8nAezADhH9oLvj6TA83E=
github.com/libp2p/go-sockaddr
v1.0.3 h1:
GAtpYcOgU1eLuqgLvm3EV1DpdJVBPraaYd5CVTAUEU8=
github.com/libp2p/go-sockaddr
v1.0.3/go.mod h1:
N/q858DTOi0BT81GpvIRIls1x7my5oLpbxYZnbRXVBM=
github.com/mattn/go-colorable
v0.0.9 h1:
UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4=
github.com/mattn/go-colorable
v0.0.9/go.mod h1:
9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
github.com/mattn/go-isatty
v0.0.4 h1:
bnP0vzxcAdeI1zdubAl5PjU6zsERjGZb7raWodagDYs=
github.com/mattn/go-isatty
v0.0.4/go.mod h1:
M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
github.com/minio/blake2b-simd
v0.0.0-20160723061019-3f5f724cb5b1 h1:
lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g=
github.com/minio/blake2b-simd
v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:
pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ=
github.com/minio/sha256-simd
v0.0.0-20181005183134-51976451ce19 h1:
d9VfRe71OW+ZtutCBgQ54kXBwFy5Tz5hR0OBIE6qlFo=
github.com/minio/sha256-simd
v0.0.0-20181005183134-51976451ce19/go.mod h1:
2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U=
github.com/mr-tron/base58
v1.1.0 h1:
Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ=
github.com/mr-tron/base58
v1.1.0/go.mod h1:
xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8=
github.com/multiformats/go-multiaddr
v1.4.0 h1:
xt9fCCmSyTosXSvEhEqYnC75LiaDSdXycwOLJaDGPic=
github.com/multiformats/go-multiaddr
v1.4.0/go.mod h1:
1JAWc2R8uiQTLrCHI/lmOkXYu5B8025fQbZjq8//YgY=
github.com/multiformats/go-multiaddr-dns
v0.2.5 h1:
crSx6SJfKB1tHracH472jVXlMuw+JfaykVi6dNu/4ao=
github.com/multiformats/go-multiaddr-dns
v0.2.5/go.mod h1:
IGZKFM4G96cYgdMcUmHx5gtJxiHmvZLTQ9rdWXMKJyo=
github.com/multiformats/go-multiaddr-net
v1.7.1 h1:
1k758hMzdVA8+qE2z705TNWeemoi+oayshZwHBTWzcU=
github.com/multiformats/go-multiaddr-net
v1.7.1/go.mod h1:
AO4WqKzxLt+paJ0N0kufj6teQ2R6fZbnItDvGTwilmk=
github.com/multiformats/go-multihash
v1.0.8 h1:
pyowaBSivNxBr137ZjYkr0q4o41MKSJVPKuO7F7AAfY=
github.com/multiformats/go-multihash
v1.0.8/go.mod h1:
sT17phG+xVgnrZc8ht/ZoCIV0sKRwvmZkXk46UfSxM4=
github.com/opentracing/opentracing-go
v1.0.2 h1:
3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg=
github.com/opentracing/opentracing-go
v1.0.2/go.mod h1:
UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
github.com/pkg/errors
v0.8.0 h1:
WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw=
github.com/pkg/errors
v0.8.0/go.mod h1:
bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib
v1.0.0/go.mod h1:
iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/spaolacci/murmur3
v0.0.0-20180118202830-f09979ecbc72 h1:
qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ=
github.com/spaolacci/murmur3
v0.0.0-20180118202830-f09979ecbc72/go.mod h1:
JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
github.com/stretchr/testify
v1.2.2/go.mod h1:
a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/whyrusleeping/go-logging
v0.0.0-20170515211332-0457bb6b88fc h1:
9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo=
github.com/whyrusleeping/go-logging
v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:
bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM=
golang.org/x/crypto
v0.0.0-20181203042331-505ab145d0a9 h1:
mKdxBk7AujPs8kU4m80U72y/zjbZ3UcXC7dClwKbUI0=
golang.org/x/crypto
v0.0.0-20181203042331-505ab145d0a9/go.mod h1:
6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/net
v0.0.0-20181220203305-927f97764cc3 h1:
eH6Eip3UpmR+yM/qI9Ijluzb1bNv/cAU/n+6l8tRSis=
golang.org/x/net
v0.0.0-20181220203305-927f97764cc3/go.mod h1:
mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/sys
v0.0.0-20181228144115-9a3f9b0469bb h1:
pf3XwC90UUdNPYWZdFjhGBE7DUFuK3Ct1zWmZ65QN30=
golang.org/x/sys
v0.0.0-20181228144115-9a3f9b0469bb/go.mod h1:
STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys
v0.0.0-20190102155601-82a175fd1598 h1:
S8GOgffXV1X3fpVG442QRfWOt0iFl79eHJ7OPt725bo=
golang.org/x/sys
v0.0.0-20190102155601-82a175fd1598/go.mod h1:
STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
package.json
View file @
f51c12d5
...
@@ -14,9 +14,9 @@
...
@@ -14,9 +14,9 @@
},
},
{
{
"author"
:
"whyrusleeping"
,
"author"
:
"whyrusleeping"
,
"hash"
:
"Qm
XD921xzL9EDRpD6gRm1cb7Khm8VEpZ3NT3nPK7uTX6Fq
"
,
"hash"
:
"Qm
PYNfPvCAqTa84qbW14zAfFV1sDEovTd919wdPM6pGsRJ
"
,
"name"
:
"go-reuseport"
,
"name"
:
"go-reuseport"
,
"version"
:
"0.
1.19
"
"version"
:
"0.
2.0
"
},
},
{
{
"author"
:
"multiformats"
,
"author"
:
"multiformats"
,
...
...
reuseport.go
View file @
f51c12d5
...
@@ -38,19 +38,28 @@ func reuseErrShouldRetry(err error) bool {
...
@@ -38,19 +38,28 @@ func reuseErrShouldRetry(err error) bool {
}
}
}
}
// Dials using reusport and then redials normally if that fails.
// Dials using reuseport and then redials normally if that fails.
func
reuseDial
(
ctx
context
.
Context
,
laddr
*
net
.
TCPAddr
,
network
,
raddr
string
)
(
net
.
Conn
,
error
)
{
// TODO(anacrolix): This shouldn't fail anymore: Remove fallback.
func
reuseDial
(
ctx
context
.
Context
,
laddr
*
net
.
TCPAddr
,
network
,
raddr
string
)
(
con
net
.
Conn
,
err
error
)
{
if
laddr
==
nil
{
if
laddr
==
nil
{
return
fallbackDialer
.
DialContext
(
ctx
,
network
,
raddr
)
return
fallbackDialer
.
DialContext
(
ctx
,
network
,
raddr
)
}
}
d
:=
reuseport
.
Dialer
{
d
:=
net
.
Dialer
{
D
:
net
.
Dialer
{
LocalAddr
:
laddr
,
LocalAddr
:
laddr
,
}
,
Control
:
reuseport
.
Control
,
}
}
defer
func
()
{
if
err
!=
nil
{
return
}
// This is transplanted from go-reuseport, which once set no linger on
// dialing and may be a requirement for desired behaviour in this
// package.
con
.
(
*
net
.
TCPConn
)
.
SetLinger
(
0
)
}()
con
,
err
:
=
d
.
DialContext
(
ctx
,
network
,
raddr
)
con
,
err
=
d
.
DialContext
(
ctx
,
network
,
raddr
)
if
err
==
nil
{
if
err
==
nil
{
return
con
,
nil
return
con
,
nil
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment