@@ -80,7 +80,8 @@ private void disconnectRandom() {
8080 .collect (Collectors .toList ());
8181 if (!peers .isEmpty ()) {
8282 int index = new Random ().nextInt (peers .size ());
83- disconnectFromPeer (peers .get (index ), ReasonCode .RANDOM_ELIMINATION , "random" );
83+ disconnectFromPeer (peers .get (index ), ReasonCode .RANDOM_ELIMINATION ,
84+ DisConnectCause .RANDOM_ELIMINATION );
8485 }
8586 }
8687 }
@@ -99,7 +100,8 @@ private void disconnectLan() {
99100 .filter (peer -> !peer .getChannel ().isTrustPeer ())
100101 .collect (Collectors .toList ());
101102 Optional <PeerConnection > one = getEarliestPeer (peers );
102- one .ifPresent (peer -> disconnectFromPeer (peer , ReasonCode .BAD_PROTOCOL , "lan node" ));
103+ one .ifPresent (
104+ peer -> disconnectFromPeer (peer , ReasonCode .BAD_PROTOCOL , DisConnectCause .LAN_NODE ));
103105 }
104106 }
105107
@@ -118,8 +120,8 @@ private void disconnectIsolated2() {
118120 .collect (Collectors .toList ());
119121
120122 Optional <PeerConnection > one = getEarliestPeer (peers );
121- one .ifPresent (
122- peer -> disconnectFromPeer ( peer , ReasonCode . BAD_PROTOCOL , "isolate2 and active" ));
123+ one .ifPresent (peer -> disconnectFromPeer ( peer , ReasonCode . BAD_PROTOCOL ,
124+ DisConnectCause . ISOLATE2_ACTIVE ));
123125 }
124126
125127 //disconnect from some passive nodes, make sure retention nodes' num <= 0.8 * maxConnection,
@@ -144,8 +146,8 @@ private void disconnectIsolated2() {
144146 }
145147 logger .info ("All peer Size:{}, plan size:{}, candidate size:{}, real size:{}" , peerSize ,
146148 disconnectSize , candidateSize , peers .size ());
147- peers .forEach (
148- peer -> disconnectFromPeer ( peer , ReasonCode . BAD_PROTOCOL , "isolate2 and passive" ));
149+ peers .forEach (peer -> disconnectFromPeer ( peer , ReasonCode . BAD_PROTOCOL ,
150+ DisConnectCause . ISOLATE2_PASSIVE ));
149151 }
150152 }
151153
@@ -177,13 +179,21 @@ private boolean isIsolateLand2() {
177179 return advPeerCount >= 1 && diff >= blockNotChangeThreshold ;
178180 }
179181
180- private void disconnectFromPeer (PeerConnection peer , ReasonCode reasonCode , String cause ) {
182+ private void disconnectFromPeer (PeerConnection peer , ReasonCode reasonCode ,
183+ DisConnectCause cause ) {
181184 int inactiveSeconds = (int ) ((System .currentTimeMillis () - peer .getLastActiveTime ()) / 1000 );
182185 logger .info ("Disconnect from peer {}, inactive seconds {}, cause: {}" ,
183186 peer .getInetSocketAddress (), inactiveSeconds , cause );
184187 peer .disconnect (reasonCode );
185188 }
186189
190+ private enum DisConnectCause {
191+ RANDOM_ELIMINATION ,
192+ LAN_NODE ,
193+ ISOLATE2_ACTIVE ,
194+ ISOLATE2_PASSIVE ,
195+ }
196+
187197 public void close () {
188198 ExecutorServiceManager .shutdownAndAwaitTermination (executor , esName );
189199 }
0 commit comments