@@ -19,7 +19,7 @@ public class HandshakeService implements MessageProcess {
1919 private final int networkId = Parameter .p2pConfig .getNetworkId ();
2020
2121 public void startHandshake (Channel channel ) {
22- sendHelloMsg (channel , DisconnectCode .NORMAL );
22+ sendHelloMsg (channel , DisconnectCode .NORMAL , channel . getStartTime () );
2323 }
2424
2525 @ Override
@@ -37,7 +37,9 @@ public void processMessage(Channel channel, Message message) {
3737
3838 DisconnectCode code = ChannelManager .processPeer (channel );
3939 if (code != DisconnectCode .NORMAL ) {
40- sendHelloMsg (channel , code );
40+ if (!channel .isActive ()) {
41+ sendHelloMsg (channel , code , msg .getTimestamp ());
42+ }
4143 logDisconnectReason (channel , getDisconnectReason (code ));
4244 channel .close ();
4345 return ;
@@ -68,20 +70,20 @@ public void processMessage(Channel channel, Message message) {
6870 if (msg .getNetworkId () != networkId ) {
6971 log .info ("Peer {} different network id, peer->{}, me->{}" ,
7072 channel .getInetSocketAddress (), msg .getNetworkId (), networkId );
71- sendHelloMsg (channel , DisconnectCode .DIFFERENT_VERSION );
73+ sendHelloMsg (channel , DisconnectCode .DIFFERENT_VERSION , msg . getTimestamp () );
7274 logDisconnectReason (channel , DisconnectReason .DIFFERENT_VERSION );
7375 channel .close ();
7476 return ;
7577 }
76- sendHelloMsg (channel , DisconnectCode .NORMAL );
78+ sendHelloMsg (channel , DisconnectCode .NORMAL , msg . getTimestamp () );
7779 }
7880 channel .setFinishHandshake (true );
7981 channel .updateAvgLatency (System .currentTimeMillis () - channel .getStartTime ());
8082 Parameter .handlerList .forEach (h -> h .onConnect (channel ));
8183 }
8284
83- private void sendHelloMsg (Channel channel , DisconnectCode code ) {
84- HelloMessage helloMessage = new HelloMessage (code );
85+ private void sendHelloMsg (Channel channel , DisconnectCode code , long time ) {
86+ HelloMessage helloMessage = new HelloMessage (code , time );
8587 channel .send (helloMessage );
8688 }
8789
0 commit comments