Skip to content

Commit

Permalink
Merge pull request #9 from libp2p/fix/source-address
Browse files Browse the repository at this point in the history
fix source address not being set in non REUSEPORT dialer
  • Loading branch information
Stebalien committed Nov 9, 2017
2 parents 7ead9fd + af1302a commit 11a8aa1
Showing 1 changed file with 7 additions and 10 deletions.
17 changes: 7 additions & 10 deletions p2p/transport/tcp/tcp.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,12 @@ func (t *TcpTransport) Dialer(laddr ma.Multiaddr, opts ...tpt.DialOpt) (tpt.Dial
}
var base manet.Dialer

la, err := manet.ToNetAddr(laddr)
if err != nil {
return nil, err // something wrong with laddr.
}
base.Dialer.LocalAddr = la

var doReuse bool
for _, o := range opts {
switch o := o.(type) {
Expand Down Expand Up @@ -137,12 +143,6 @@ type tcpDialer struct {
var _ tpt.Dialer = &tcpDialer{}

func (t *TcpTransport) newTcpDialer(base manet.Dialer, laddr ma.Multiaddr, doReuse bool) (*tcpDialer, error) {
// get the local net.Addr manually
la, err := manet.ToNetAddr(laddr)
if err != nil {
return nil, err // something wrong with laddr.
}

var pattern mafmt.Pattern
if TCP4.Matches(laddr) {
pattern = TCP4
Expand All @@ -154,10 +154,7 @@ func (t *TcpTransport) newTcpDialer(base manet.Dialer, laddr ma.Multiaddr, doReu

if doReuse && ReuseportIsAvailable() {
rd := reuseport.Dialer{
D: net.Dialer{
LocalAddr: la,
Timeout: base.Timeout,
},
D: base.Dialer,
}

return &tcpDialer{
Expand Down

0 comments on commit 11a8aa1

Please sign in to comment.