Commit a89e74a1 authored by vyzo's avatar vyzo
Browse files

basic host: export AddrsFactory, provide method to push identify

parent 4ea04c23
...@@ -59,10 +59,11 @@ type BasicHost struct { ...@@ -59,10 +59,11 @@ type BasicHost struct {
ids *identify.IDService ids *identify.IDService
pings *ping.PingService pings *ping.PingService
natmgr NATManager natmgr NATManager
addrs AddrsFactory
maResolver *madns.Resolver maResolver *madns.Resolver
cmgr ifconnmgr.ConnManager cmgr ifconnmgr.ConnManager
AddrsFactory AddrsFactory
negtimeout time.Duration negtimeout time.Duration
proc goprocess.Process proc goprocess.Process
...@@ -109,7 +110,7 @@ func NewHost(ctx context.Context, net inet.Network, opts *HostOpts) (*BasicHost, ...@@ -109,7 +110,7 @@ func NewHost(ctx context.Context, net inet.Network, opts *HostOpts) (*BasicHost,
network: net, network: net,
mux: msmux.NewMultistreamMuxer(), mux: msmux.NewMultistreamMuxer(),
negtimeout: DefaultNegotiationTimeout, negtimeout: DefaultNegotiationTimeout,
addrs: DefaultAddrsFactory, AddrsFactory: DefaultAddrsFactory,
maResolver: madns.DefaultResolver, maResolver: madns.DefaultResolver,
} }
...@@ -136,7 +137,7 @@ func NewHost(ctx context.Context, net inet.Network, opts *HostOpts) (*BasicHost, ...@@ -136,7 +137,7 @@ func NewHost(ctx context.Context, net inet.Network, opts *HostOpts) (*BasicHost,
} }
if opts.AddrsFactory != nil { if opts.AddrsFactory != nil {
h.addrs = opts.AddrsFactory h.AddrsFactory = opts.AddrsFactory
} }
if opts.NATManager != nil { if opts.NATManager != nil {
...@@ -256,6 +257,11 @@ func (h *BasicHost) newStreamHandler(s inet.Stream) { ...@@ -256,6 +257,11 @@ func (h *BasicHost) newStreamHandler(s inet.Stream) {
go handle(protoID, s) go handle(protoID, s)
} }
// PushIdentify pushes an identify update through the identify push protocol
func (h *BasicHost) PushIdentify() {
h.ids.Push()
}
// ID returns the (local) peer.ID associated with this Host // ID returns the (local) peer.ID associated with this Host
func (h *BasicHost) ID() peer.ID { func (h *BasicHost) ID() peer.ID {
return h.Network().LocalPeer() return h.Network().LocalPeer()
...@@ -474,7 +480,7 @@ func (h *BasicHost) ConnManager() ifconnmgr.ConnManager { ...@@ -474,7 +480,7 @@ func (h *BasicHost) ConnManager() ifconnmgr.ConnManager {
// Addrs returns listening addresses that are safe to announce to the network. // Addrs returns listening addresses that are safe to announce to the network.
// The output is the same as AllAddrs, but processed by AddrsFactory. // The output is the same as AllAddrs, but processed by AddrsFactory.
func (h *BasicHost) Addrs() []ma.Multiaddr { func (h *BasicHost) Addrs() []ma.Multiaddr {
return h.addrs(h.AllAddrs()) return h.AddrsFactory(h.AllAddrs())
} }
// mergeAddrs merges input address lists, leave only unique addresses // mergeAddrs merges input address lists, leave only unique addresses
......
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