basic host: export AddrsFactory, provide method to push identify
@@ -59,10 +59,11 @@ type BasicHost struct {
ids *identify.IDService
pings *ping.PingService
natmgr NATManager
- addrs AddrsFactory
maResolver *madns.Resolver
cmgr ifconnmgr.ConnManager
+ AddrsFactory AddrsFactory
+
negtimeout time.Duration
proc goprocess.Process
@@ -109,7 +110,7 @@ func NewHost(ctx context.Context, net inet.Network, opts *HostOpts) (*BasicHost,
network: net,
mux: msmux.NewMultistreamMuxer(),
negtimeout: DefaultNegotiationTimeout,
- addrs: DefaultAddrsFactory,
+ AddrsFactory: DefaultAddrsFactory,
maResolver: madns.DefaultResolver,
}
@@ -136,7 +137,7 @@ func NewHost(ctx context.Context, net inet.Network, opts *HostOpts) (*BasicHost,
}
if opts.AddrsFactory != nil {
- h.addrs = opts.AddrsFactory
+ h.AddrsFactory = opts.AddrsFactory
}
if opts.NATManager != nil {
@@ -256,6 +257,11 @@ func (h *BasicHost) newStreamHandler(s inet.Stream) {
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
func (h *BasicHost) ID() peer.ID {
return h.Network().LocalPeer()
@@ -474,7 +480,7 @@ func (h *BasicHost) ConnManager() ifconnmgr.ConnManager {
// Addrs returns listening addresses that are safe to announce to the network.
// The output is the same as AllAddrs, but processed by AddrsFactory.
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
