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 {
ids *identify.IDService
pings *ping.PingService
natmgr NATManager
addrs AddrsFactory
maResolver *madns.Resolver
cmgr ifconnmgr.ConnManager
AddrsFactory AddrsFactory
negtimeout time.Duration
proc goprocess.Process
......@@ -106,11 +107,11 @@ type HostOpts struct {
// NewHost constructs a new *BasicHost and activates it by attaching its stream and connection handlers to the given inet.Network.
func NewHost(ctx context.Context, net inet.Network, opts *HostOpts) (*BasicHost, error) {
h := &BasicHost{
network: net,
mux: msmux.NewMultistreamMuxer(),
negtimeout: DefaultNegotiationTimeout,
addrs: DefaultAddrsFactory,
maResolver: madns.DefaultResolver,
network: net,
mux: msmux.NewMultistreamMuxer(),
negtimeout: DefaultNegotiationTimeout,
AddrsFactory: DefaultAddrsFactory,
maResolver: madns.DefaultResolver,
}
h.proc = goprocessctx.WithContextAndTeardown(ctx, func() error {
......@@ -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
......
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