Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
go-libp2p
Commits
665234f6
Commit
665234f6
authored
Jul 11, 2017
by
Jeromy
Browse files
WIP: add ConnManager interface method
parent
dfaa021c
Changes
2
Hide whitespace changes
Inline
Side-by-side
p2p/host/basic/basic_host.go
View file @
665234f6
...
...
@@ -9,6 +9,7 @@ import (
logging
"github.com/ipfs/go-log"
goprocess
"github.com/jbenet/goprocess"
connmgr
"github.com/libp2p/go-libp2p-connmgr"
metrics
"github.com/libp2p/go-libp2p-metrics"
mstream
"github.com/libp2p/go-libp2p-metrics/stream"
inet
"github.com/libp2p/go-libp2p-net"
...
...
@@ -58,6 +59,7 @@ type BasicHost struct {
ids
*
identify
.
IDService
natmgr
NATManager
addrs
AddrsFactory
cmgr
connmgr
.
ConnManager
negtimeout
time
.
Duration
...
...
@@ -92,6 +94,9 @@ type HostOpts struct {
//
BandwidthReporter
metrics
.
Reporter
// ConnManager is a libp2p connection manager
ConnManager
connmgr
.
ConnManager
}
// NewHost constructs a new *BasicHost and activates it by attaching its stream and connection handlers to the given inet.Network.
...
...
@@ -131,6 +136,13 @@ func NewHost(net inet.Network, opts *HostOpts) *BasicHost {
h
.
ids
.
Reporter
=
opts
.
BandwidthReporter
}
if
opts
.
ConnManager
==
nil
{
// create 'disabled' conn manager for now
h
.
cmgr
=
connmgr
.
NewConnManager
(
0
,
0
,
0
)
}
else
{
h
.
cmgr
=
opts
.
ConnManager
}
h
.
proc
=
goprocess
.
WithTeardown
(
func
()
error
{
if
h
.
natmgr
!=
nil
{
h
.
natmgr
.
Close
()
...
...
@@ -161,6 +173,8 @@ func New(net inet.Network, opts ...interface{}) *BasicHost {
hostopts
.
BandwidthReporter
=
o
case
AddrsFactory
:
hostopts
.
AddrsFactory
=
AddrsFactory
(
o
)
case
connmgr
.
ConnManager
:
hostopts
.
ConnManager
=
o
}
}
...
...
@@ -411,6 +425,10 @@ func (h *BasicHost) dialPeer(ctx context.Context, p peer.ID) error {
return
nil
}
func
(
h
*
BasicHost
)
ConnManager
()
connmgr
.
ConnManager
{
return
h
.
cmgr
}
// 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
{
...
...
p2p/host/routed/routed.go
View file @
665234f6
...
...
@@ -8,6 +8,7 @@ import (
host
"github.com/libp2p/go-libp2p-host"
logging
"github.com/ipfs/go-log"
connmgr
"github.com/libp2p/go-libp2p-connmgr"
lgbl
"github.com/libp2p/go-libp2p-loggables"
inet
"github.com/libp2p/go-libp2p-net"
peer
"github.com/libp2p/go-libp2p-peer"
...
...
@@ -124,5 +125,8 @@ func (rh *RoutedHost) Close() error {
// no need to close IpfsRouting. we dont own it.
return
rh
.
host
.
Close
()
}
func
(
rh
*
RoutedHost
)
ConnManager
()
connmgr
.
ConnManager
{
return
rh
.
host
.
ConnManager
()
}
var
_
(
host
.
Host
)
=
(
*
RoutedHost
)(
nil
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment