mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-26 04:47:45 +08:00
core: address factory composition for constructPeerHost
- Adds AddrsFactory to ConstructPeerHostOpts - Composes the AddrsFactory option with the relay filter License: MIT Signed-off-by: vyzo <vyzo@hackzen.org>
This commit is contained in:
parent
3e7dce295c
commit
9d15e63e00
18
core/core.go
18
core/core.go
@ -820,6 +820,7 @@ func constructPeerHost(ctx context.Context, id peer.ID, ps pstore.Peerstore, bwr
|
||||
hostOpts = append(hostOpts, opts.AddrsFactory)
|
||||
}
|
||||
|
||||
addrsFactory := opts.AddrsFactory
|
||||
if !opts.DisableRelay {
|
||||
filterRelayAddr := func(addrs []ma.Multiaddr) []ma.Multiaddr {
|
||||
var raddrs []ma.Multiaddr
|
||||
@ -832,7 +833,16 @@ func constructPeerHost(ctx context.Context, id peer.ID, ps pstore.Peerstore, bwr
|
||||
}
|
||||
return raddrs
|
||||
}
|
||||
hostOpts = append(hostOpts, p2pbhost.AddrsFactory(filterRelayAddr))
|
||||
|
||||
if addrsFactory != nil {
|
||||
addrsFactory = composeAddrsFactory(addrsFactory, filterRelayAddr)
|
||||
} else {
|
||||
addrsFactory = filterRelayAddr
|
||||
}
|
||||
}
|
||||
|
||||
if addrsFactory != nil {
|
||||
hostOpts = append(hostOpts, addrsFactory)
|
||||
}
|
||||
|
||||
host := p2pbhost.New(network, hostOpts...)
|
||||
@ -852,6 +862,12 @@ func constructPeerHost(ctx context.Context, id peer.ID, ps pstore.Peerstore, bwr
|
||||
return host, nil
|
||||
}
|
||||
|
||||
func composeAddrsFactory(f, g p2pbhost.AddrsFactory) p2pbhost.AddrsFactory {
|
||||
return func(addrs []ma.Multiaddr) []ma.Multiaddr {
|
||||
return f(g(addrs))
|
||||
}
|
||||
}
|
||||
|
||||
// startListening on the network addresses
|
||||
func startListening(ctx context.Context, host p2phost.Host, cfg *config.Config) error {
|
||||
listenAddrs, err := listenAddresses(cfg)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user