Unverified Commit e0edbe90 authored by Steven Allen's avatar Steven Allen Committed by GitHub

Merge pull request #6972 from ipfs/feat/log-identify

feat(peerlog): log protocols/versions
parents ba285801 255fefb2
...@@ -6,6 +6,8 @@ import ( ...@@ -6,6 +6,8 @@ import (
core "github.com/ipfs/go-ipfs/core" core "github.com/ipfs/go-ipfs/core"
plugin "github.com/ipfs/go-ipfs/plugin" plugin "github.com/ipfs/go-ipfs/plugin"
logging "github.com/ipfs/go-log" logging "github.com/ipfs/go-log"
eventbus "github.com/libp2p/go-eventbus"
event "github.com/libp2p/go-libp2p-core/event"
network "github.com/libp2p/go-libp2p-core/network" network "github.com/libp2p/go-libp2p-core/network"
) )
...@@ -50,6 +52,7 @@ func (*peerLogPlugin) Start(node *core.IpfsNode) error { ...@@ -50,6 +52,7 @@ func (*peerLogPlugin) Start(node *core.IpfsNode) error {
} }
var notifee network.NotifyBundle var notifee network.NotifyBundle
notifee.ConnectedF = func(net network.Network, conn network.Conn) { notifee.ConnectedF = func(net network.Network, conn network.Conn) {
// TODO: Log transport, country, etc?
log.Infow("connected", log.Infow("connected",
"peer", conn.RemotePeer().Pretty(), "peer", conn.RemotePeer().Pretty(),
) )
...@@ -60,6 +63,38 @@ func (*peerLogPlugin) Start(node *core.IpfsNode) error { ...@@ -60,6 +63,38 @@ func (*peerLogPlugin) Start(node *core.IpfsNode) error {
) )
} }
node.PeerHost.Network().Notify(&notifee) node.PeerHost.Network().Notify(&notifee)
sub, err := node.PeerHost.EventBus().Subscribe(
new(event.EvtPeerIdentificationCompleted),
eventbus.BufSize(1024),
)
if err != nil {
return fmt.Errorf("failed to subscribe to identify notifications")
}
go func() {
defer sub.Close()
for e := range sub.Out() {
switch e := e.(type) {
case event.EvtPeerIdentificationCompleted:
protocols, err := node.Peerstore.GetProtocols(e.Peer)
if err != nil {
log.Errorw("failed to get protocols", "error", err)
continue
}
agent, err := node.Peerstore.Get(e.Peer, "AgentVersion")
if err != nil {
log.Errorw("failed to get agent version", "error", err)
continue
}
log.Infow(
"identified",
"peer", e.Peer.Pretty(),
"agent", agent,
"protocols", protocols,
)
}
}
}()
return nil return nil
} }
......
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