forked from cerc-io/plugeth
p2p: add address info to peer event reporting (#19716)
This commit is contained in:
parent
dcc4adfcd7
commit
7fd82a0e3e
@ -255,16 +255,20 @@ type msgEventer struct {
|
||||
feed *event.Feed
|
||||
peerID enode.ID
|
||||
Protocol string
|
||||
localAddress string
|
||||
remoteAddress string
|
||||
}
|
||||
|
||||
// newMsgEventer returns a msgEventer which sends message events to the given
|
||||
// feed
|
||||
func newMsgEventer(rw MsgReadWriter, feed *event.Feed, peerID enode.ID, proto string) *msgEventer {
|
||||
func newMsgEventer(rw MsgReadWriter, feed *event.Feed, peerID enode.ID, proto, remote, local string) *msgEventer {
|
||||
return &msgEventer{
|
||||
MsgReadWriter: rw,
|
||||
feed: feed,
|
||||
peerID: peerID,
|
||||
Protocol: proto,
|
||||
remoteAddress: remote,
|
||||
localAddress: local,
|
||||
}
|
||||
}
|
||||
|
||||
@ -281,6 +285,8 @@ func (ev *msgEventer) ReadMsg() (Msg, error) {
|
||||
Protocol: ev.Protocol,
|
||||
MsgCode: &msg.Code,
|
||||
MsgSize: &msg.Size,
|
||||
LocalAddress: ev.localAddress,
|
||||
RemoteAddress: ev.remoteAddress,
|
||||
})
|
||||
return msg, nil
|
||||
}
|
||||
@ -298,6 +304,8 @@ func (ev *msgEventer) WriteMsg(msg Msg) error {
|
||||
Protocol: ev.Protocol,
|
||||
MsgCode: &msg.Code,
|
||||
MsgSize: &msg.Size,
|
||||
LocalAddress: ev.localAddress,
|
||||
RemoteAddress: ev.remoteAddress,
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
@ -97,6 +97,8 @@ type PeerEvent struct {
|
||||
Protocol string `json:"protocol,omitempty"`
|
||||
MsgCode *uint64 `json:"msg_code,omitempty"`
|
||||
MsgSize *uint32 `json:"msg_size,omitempty"`
|
||||
LocalAddress string `json:"local,omitempty"`
|
||||
RemoteAddress string `json:"remote,omitempty"`
|
||||
}
|
||||
|
||||
// Peer represents a connected remote node.
|
||||
@ -354,7 +356,7 @@ func (p *Peer) startProtocols(writeStart <-chan struct{}, writeErr chan<- error)
|
||||
proto.werr = writeErr
|
||||
var rw MsgReadWriter = proto
|
||||
if p.events != nil {
|
||||
rw = newMsgEventer(rw, p.events, p.ID(), proto.Name)
|
||||
rw = newMsgEventer(rw, p.events, p.ID(), proto.Name, p.Info().Network.RemoteAddress, p.Info().Network.LocalAddress)
|
||||
}
|
||||
p.log.Trace(fmt.Sprintf("Starting protocol %s/%d", proto.Name, proto.Version))
|
||||
go func() {
|
||||
|
@ -1018,6 +1018,8 @@ func (srv *Server) runPeer(p *Peer) {
|
||||
srv.peerFeed.Send(&PeerEvent{
|
||||
Type: PeerEventTypeAdd,
|
||||
Peer: p.ID(),
|
||||
RemoteAddress: p.RemoteAddr().String(),
|
||||
LocalAddress: p.LocalAddr().String(),
|
||||
})
|
||||
|
||||
// run the protocol
|
||||
@ -1028,6 +1030,8 @@ func (srv *Server) runPeer(p *Peer) {
|
||||
Type: PeerEventTypeDrop,
|
||||
Peer: p.ID(),
|
||||
Error: err.Error(),
|
||||
RemoteAddress: p.RemoteAddr().String(),
|
||||
LocalAddress: p.LocalAddr().String(),
|
||||
})
|
||||
|
||||
// Note: run waits for existing peers to be sent on srv.delpeer
|
||||
|
Loading…
Reference in New Issue
Block a user