Skip to content

Commit 885f34a

Browse files
Reuse Ping messages (ava-labs#1503)
Co-authored-by: Stephen <[email protected]>
1 parent 8f60717 commit 885f34a

File tree

5 files changed

+21
-3
lines changed

5 files changed

+21
-3
lines changed

network/network.go

+6
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,11 @@ func NewNetwork(
199199
return nil, fmt.Errorf("initializing network metrics failed with: %w", err)
200200
}
201201

202+
pingMessge, err := msgCreator.Ping()
203+
if err != nil {
204+
return nil, fmt.Errorf("initializing common ping message failed with: %w", err)
205+
}
206+
202207
peerConfig := &peer.Config{
203208
ReadBufferSize: config.PeerReadBufferSize,
204209
WriteBufferSize: config.PeerWriteBufferSize,
@@ -217,6 +222,7 @@ func NewNetwork(
217222
PongTimeout: config.PingPongTimeout,
218223
MaxClockDifference: config.MaxClockDifference,
219224
ResourceTracker: config.ResourceTracker,
225+
PingMessage: pingMessge,
220226
}
221227
onCloseCtx, cancel := context.WithCancel(context.Background())
222228
n := &network{

network/peer/config.go

+2
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,6 @@ type Config struct {
4444

4545
// Tracks CPU/disk usage caused by each peer.
4646
ResourceTracker tracker.ResourceTracker
47+
48+
PingMessage message.OutboundMessage
4749
}

network/peer/peer.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -516,9 +516,8 @@ func (p *peer) sendPings() {
516516
}
517517
}
518518

519-
msg, err := p.MessageCreator.Ping()
520-
p.Log.AssertNoError(err)
521-
p.Send(p.onClosingCtx, msg)
519+
p.Config.PingMessage.AddRef()
520+
p.Send(p.onClosingCtx, p.Config.PingMessage)
522521
case <-p.onClosingCtx.Done():
523522
return
524523
}

network/peer/peer_test.go

+4
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ func makeRawTestPeers(t *testing.T) (*rawTestPeer, *rawTestPeer) {
7272

7373
mc := newMessageCreator(t)
7474

75+
pingMessage, err := mc.Ping()
76+
assert.NoError(err)
77+
7578
metrics, err := NewMetrics(
7679
logging.NoLog{},
7780
"",
@@ -95,6 +98,7 @@ func makeRawTestPeers(t *testing.T) (*rawTestPeer, *rawTestPeer) {
9598
PongTimeout: constants.DefaultPingPongTimeout,
9699
MaxClockDifference: time.Minute,
97100
ResourceTracker: resourceTracker,
101+
PingMessage: pingMessage,
98102
}
99103
peerConfig0 := sharedConfig
100104
peerConfig1 := sharedConfig

network/peer/test_peer.go

+7
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,12 @@ func StartTestPeer(
9494
if err != nil {
9595
return nil, err
9696
}
97+
98+
pingMessage, err := mc.Ping()
99+
if err != nil {
100+
return nil, err
101+
}
102+
97103
peer := Start(
98104
&Config{
99105
Metrics: metrics,
@@ -119,6 +125,7 @@ func StartTestPeer(
119125
PongTimeout: constants.DefaultPingPongTimeout,
120126
MaxClockDifference: time.Minute,
121127
ResourceTracker: resourceTracker,
128+
PingMessage: pingMessage,
122129
},
123130
conn,
124131
cert,

0 commit comments

Comments
 (0)