Skip to content
Snippets Groups Projects
Commit 8cd97497 authored by kaiyou's avatar kaiyou
Browse files

Fix the MTU logic

parent 7b5b32ee
No related branches found
No related tags found
No related merge requests found
...@@ -5,6 +5,7 @@ import ( ...@@ -5,6 +5,7 @@ import (
"time" "time"
"github.com/hashicorp/memberlist" "github.com/hashicorp/memberlist"
"github.com/sirupsen/logrus"
"golang.org/x/net/ipv6" "golang.org/x/net/ipv6"
) )
...@@ -38,18 +39,24 @@ func NewTransport(config *memberlist.NetTransportConfig) (*instrumentedTransport ...@@ -38,18 +39,24 @@ func NewTransport(config *memberlist.NetTransportConfig) (*instrumentedTransport
func (t *instrumentedTransport) DialAddressTimeout(a memberlist.Address, timeout time.Duration) (net.Conn, error) { func (t *instrumentedTransport) DialAddressTimeout(a memberlist.Address, timeout time.Duration) (net.Conn, error) {
addr := a.Addr addr := a.Addr
logrus.Debugf("memberlist dialing %s", addr)
dialer := net.Dialer{Timeout: timeout} dialer := net.Dialer{Timeout: timeout}
conn, err := dialer.Dial("tcp", addr) conn, err := dialer.Dial("tcp", addr)
if err == nil { if err == nil {
wrapped := ipv6.NewConn(conn) wrapped := ipv6.NewConn(conn)
mtu, err := wrapped.PathMTU() mtu, err := wrapped.PathMTU()
if err != nil { if err == nil {
logrus.Debugf("node %s has MTU %d", addr, mtu)
prev, _ := t.pmtu[addr] prev, _ := t.pmtu[addr]
t.pmtu[addr] = mtu t.pmtu[addr] = mtu
if prev != mtu { if prev != mtu {
t.updateMinMTU() t.updateMinMTU()
} }
} else {
logrus.Debug(err)
} }
} else {
logrus.Debug(err)
} }
return conn, err return conn, err
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment