must prefix in pex conversion code

This commit is contained in:
William Banfield
2022-10-20 13:06:36 -04:00
parent 78fbb5db08
commit 934bf233c9
4 changed files with 20 additions and 21 deletions
+6 -6
View File
@@ -166,13 +166,13 @@ func TestByzantinePrevoteEquivocation(t *testing.T) {
if i < len(peerList)/2 {
bcs.Logger.Info("Signed and pushed vote", "vote", prevote1, "peer", peer)
peer.Send(p2p.Envelope{
Message: MustConvertMsgToProto(&VoteMessage{prevote1}),
Message: MsgToProto(&VoteMessage{prevote1}),
ChannelID: VoteChannel,
})
} else {
bcs.Logger.Info("Signed and pushed vote", "vote", prevote2, "peer", peer)
peer.Send(p2p.Envelope{
Message: MustConvertMsgToProto(&VoteMessage{prevote2}),
Message: MsgToProto(&VoteMessage{prevote2}),
ChannelID: VoteChannel,
})
}
@@ -529,7 +529,7 @@ func sendProposalAndParts(
msg := &ProposalMessage{Proposal: proposal}
peer.Send(p2p.Envelope{
ChannelID: DataChannel,
Message: MustConvertMsgToProto(msg),
Message: MsgToProto(msg),
})
// parts
@@ -542,7 +542,7 @@ func sendProposalAndParts(
}
peer.Send(p2p.Envelope{
ChannelID: DataChannel,
Message: MustConvertMsgToProto(msg),
Message: MsgToProto(msg),
})
}
@@ -553,11 +553,11 @@ func sendProposalAndParts(
cs.mtx.Unlock()
peer.Send(p2p.Envelope{
ChannelID: VoteChannel,
Message: MustConvertMsgToProto(&VoteMessage{prevote}),
Message: MsgToProto(&VoteMessage{prevote}),
})
peer.Send(p2p.Envelope{
ChannelID: VoteChannel,
Message: MustConvertMsgToProto(&VoteMessage{precommit}),
Message: MsgToProto(&VoteMessage{precommit}),
})
}
+1 -1
View File
@@ -263,7 +263,7 @@ func (p *peer) Send(e Envelope) bool {
}
msgBytes, err := proto.Marshal(e.Message)
if err != nil {
panic(err)
panic(err) // Q: should this panic or error?
}
res := p.mconn.Send(e.ChannelID, msgBytes)
if res {
+6 -7
View File
@@ -420,11 +420,10 @@ func (r *Reactor) RequestAddrs(p Peer) {
}
r.Logger.Debug("Request addrs", "from", p)
r.requestsSent.Set(id, struct{}{})
e := p2p.Envelope{
p.Send(p2p.Envelope{
ChannelID: PexChannel,
Message: toWrappedProto(&tmp2p.PexRequest{}),
}
p.Send(e)
Message: mustMsgToWrappedProto(&tmp2p.PexRequest{}),
})
}
// ReceiveAddrs adds the given addrs to the addrbook if theres an open
@@ -484,7 +483,7 @@ func (r *Reactor) ReceiveAddrs(addrs []*p2p.NetAddress, src Peer) error {
func (r *Reactor) SendAddrs(p Peer, netAddrs []*p2p.NetAddress) {
e := p2p.Envelope{
ChannelID: PexChannel,
Message: toWrappedProto(&tmp2p.PexAddrs{Addrs: p2p.NetAddressesToProto(netAddrs)}),
Message: mustMsgToWrappedProto(&tmp2p.PexAddrs{Addrs: p2p.NetAddressesToProto(netAddrs)}),
}
p.Send(e)
}
@@ -849,7 +848,7 @@ func markAddrInBookBasedOnErr(addr *p2p.NetAddress, book AddrBook, err error) {
// mustEncode proto encodes a tmp2p.Message
func mustEncode(pb proto.Message) []byte {
msg := toWrappedProto(pb)
msg := mustMsgToWrappedProto(pb)
bz, err := proto.Marshal(msg)
if err != nil {
panic(fmt.Errorf("unable to marshal %T: %w", pb, err))
@@ -857,7 +856,7 @@ func mustEncode(pb proto.Message) []byte {
return bz
}
func toWrappedProto(pb proto.Message) proto.Message {
func mustMsgToWrappedProto(pb proto.Message) proto.Message {
msg := tmp2p.Message{}
switch pb := pb.(type) {
case *tmp2p.PexRequest:
+7 -7
View File
@@ -133,11 +133,11 @@ func TestPEXReactorReceive(t *testing.T) {
size := book.Size()
msg := &tmp2p.PexAddrs{Addrs: []tmp2p.NetAddress{peer.SocketAddr().ToProto()}}
r.Receive(PexChannel, peer, mustEncode(msg))
r.NewReceive(p2p.Envelope{ChannelID: PexChannel, Src: peer, Message: toWrappedProto(msg)})
r.NewReceive(p2p.Envelope{ChannelID: PexChannel, Src: peer, Message: mustMsgToWrappedProto(msg)})
assert.Equal(t, size+1, book.Size())
r.Receive(PexChannel, peer, mustEncode(&tmp2p.PexRequest{})) // should not panic.
r.NewReceive(p2p.Envelope{ChannelID: PexChannel, Src: peer, Message: toWrappedProto(&tmp2p.PexRequest{})})
r.NewReceive(p2p.Envelope{ChannelID: PexChannel, Src: peer, Message: mustMsgToWrappedProto(&tmp2p.PexRequest{})})
}
func TestPEXReactorRequestMessageAbuse(t *testing.T) {
@@ -160,19 +160,19 @@ func TestPEXReactorRequestMessageAbuse(t *testing.T) {
// first time creates the entry
r.Receive(PexChannel, peer, msg)
r.NewReceive(p2p.Envelope{ChannelID: PexChannel, Src: peer, Message: toWrappedProto(&tmp2p.PexRequest{})})
r.NewReceive(p2p.Envelope{ChannelID: PexChannel, Src: peer, Message: mustMsgToWrappedProto(&tmp2p.PexRequest{})})
assert.True(t, r.lastReceivedRequests.Has(id))
assert.True(t, sw.Peers().Has(peer.ID()))
// next time sets the last time value
r.Receive(PexChannel, peer, msg)
r.NewReceive(p2p.Envelope{ChannelID: PexChannel, Src: peer, Message: toWrappedProto(&tmp2p.PexRequest{})})
r.NewReceive(p2p.Envelope{ChannelID: PexChannel, Src: peer, Message: mustMsgToWrappedProto(&tmp2p.PexRequest{})})
assert.True(t, r.lastReceivedRequests.Has(id))
assert.True(t, sw.Peers().Has(peer.ID()))
// third time is too many too soon - peer is removed
r.Receive(PexChannel, peer, msg)
r.NewReceive(p2p.Envelope{ChannelID: PexChannel, Src: peer, Message: toWrappedProto(&tmp2p.PexRequest{})})
r.NewReceive(p2p.Envelope{ChannelID: PexChannel, Src: peer, Message: mustMsgToWrappedProto(&tmp2p.PexRequest{})})
assert.False(t, r.lastReceivedRequests.Has(id))
assert.False(t, sw.Peers().Has(peer.ID()))
assert.True(t, book.IsBanned(peerAddr))
@@ -200,13 +200,13 @@ func TestPEXReactorAddrsMessageAbuse(t *testing.T) {
// receive some addrs. should clear the request
r.Receive(PexChannel, peer, mustEncode(msg))
r.NewReceive(p2p.Envelope{ChannelID: PexChannel, Src: peer, Message: toWrappedProto(msg)})
r.NewReceive(p2p.Envelope{ChannelID: PexChannel, Src: peer, Message: mustMsgToWrappedProto(msg)})
assert.False(t, r.requestsSent.Has(id))
assert.True(t, sw.Peers().Has(peer.ID()))
// receiving more unsolicited addrs causes a disconnect and ban
r.Receive(PexChannel, peer, mustEncode(msg))
r.NewReceive(p2p.Envelope{ChannelID: PexChannel, Src: peer, Message: toWrappedProto(msg)})
r.NewReceive(p2p.Envelope{ChannelID: PexChannel, Src: peer, Message: mustMsgToWrappedProto(msg)})
assert.False(t, sw.Peers().Has(peer.ID()))
assert.True(t, book.IsBanned(peer.SocketAddr()))
}