Commit 5a1c09c4 authored by vyzo's avatar vyzo
Browse files

use advertised addrs for autonat dial back, not all addrs

parent 5d8988f3
...@@ -55,15 +55,14 @@ type AutoRelayHost struct { ...@@ -55,15 +55,14 @@ type AutoRelayHost struct {
} }
func NewAutoRelayHost(ctx context.Context, bhost *basic.BasicHost, discover discovery.Discoverer) *AutoRelayHost { func NewAutoRelayHost(ctx context.Context, bhost *basic.BasicHost, discover discovery.Discoverer) *AutoRelayHost {
autonat := autonat.NewAutoNAT(ctx, bhost, bhost.AllAddrs)
h := &AutoRelayHost{ h := &AutoRelayHost{
BasicHost: bhost, BasicHost: bhost,
discover: discover, discover: discover,
autonat: autonat,
addrsF: bhost.AddrsFactory, addrsF: bhost.AddrsFactory,
relays: make(map[peer.ID]pstore.PeerInfo), relays: make(map[peer.ID]pstore.PeerInfo),
disconnect: make(chan struct{}, 1), disconnect: make(chan struct{}, 1),
} }
h.autonat = autonat.NewAutoNAT(ctx, bhost, h.baseAddrs)
bhost.AddrsFactory = h.hostAddrs bhost.AddrsFactory = h.hostAddrs
bhost.Network().Notify(h) bhost.Network().Notify(h)
go h.background(ctx) go h.background(ctx)
...@@ -80,6 +79,10 @@ func (h *AutoRelayHost) hostAddrs(addrs []ma.Multiaddr) []ma.Multiaddr { ...@@ -80,6 +79,10 @@ func (h *AutoRelayHost) hostAddrs(addrs []ma.Multiaddr) []ma.Multiaddr {
} }
} }
func (h *AutoRelayHost) baseAddrs() []ma.Multiaddr {
return filterUnspecificRelay(h.addrsF(h.AllAddrs()))
}
func (h *AutoRelayHost) background(ctx context.Context) { func (h *AutoRelayHost) background(ctx context.Context) {
select { select {
case <-time.After(autonat.AutoNATBootDelay + BootDelay): case <-time.After(autonat.AutoNATBootDelay + BootDelay):
...@@ -197,7 +200,7 @@ func (h *AutoRelayHost) doUpdateAddrs() { ...@@ -197,7 +200,7 @@ func (h *AutoRelayHost) doUpdateAddrs() {
h.mx.Lock() h.mx.Lock()
defer h.mx.Unlock() defer h.mx.Unlock()
addrs := filterUnspecificRelay(h.addrsF(h.AllAddrs())) addrs := h.baseAddrs()
raddrs := make([]ma.Multiaddr, 0, len(addrs)+len(h.relays)) raddrs := make([]ma.Multiaddr, 0, len(addrs)+len(h.relays))
// remove our public addresses from the list and replace them by just the public IP // remove our public addresses from the list and replace them by just the public IP
......
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