Unverified Commit 1dee40f5 authored by Steven Allen's avatar Steven Allen Committed by GitHub

Merge pull request #9 from libp2p/fix/source-address

fix source address not being set in non REUSEPORT dialer
parents 780d4133 5ebce0ea
......@@ -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) {
......@@ -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
......@@ -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{
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment