forked from Qortal/qortal
Move handling of GET_PEERS from Controller to Network. On sync fail, only update outbound peer info in repository to help prevent useless 'known peer' entries.
This commit is contained in:
parent
dcb8d67236
commit
de96e8347d
@ -292,9 +292,12 @@ public class Controller extends Thread {
|
||||
LOGGER.info(String.format("Failed to synchronize with peer %s (%s) - cooling off", peer, syncResult.name()));
|
||||
|
||||
// Don't use this peer again for a while
|
||||
try (final Repository repository = RepositoryManager.getRepository()) {
|
||||
PeerData peerData = peer.getPeerData();
|
||||
peerData.setLastMisbehaved(NTP.getTime());
|
||||
|
||||
// Only save to repository if outbound peer
|
||||
if (peer.isOutbound())
|
||||
try (final Repository repository = RepositoryManager.getRepository()) {
|
||||
repository.getNetworkRepository().save(peerData);
|
||||
repository.saveChanges();
|
||||
} catch (DataException e) {
|
||||
@ -616,12 +619,6 @@ public class Controller extends Thread {
|
||||
}
|
||||
break;
|
||||
|
||||
case GET_PEERS:
|
||||
// Send our known peers
|
||||
if (!peer.sendMessage(Network.getInstance().buildPeersMessage(peer)))
|
||||
peer.disconnect("failed to send peers list");
|
||||
break;
|
||||
|
||||
default:
|
||||
LOGGER.debug(String.format("Unhandled %s message [ID %d] from peer %s", message.getType().name(), message.getId(), peer));
|
||||
break;
|
||||
|
@ -472,6 +472,12 @@ public class Network extends Thread {
|
||||
mergePeers(peerV2Addresses);
|
||||
break;
|
||||
|
||||
case GET_PEERS:
|
||||
// Send our known peers
|
||||
if (!peer.sendMessage(buildPeersMessage(peer)))
|
||||
peer.disconnect("failed to send peers list");
|
||||
break;
|
||||
|
||||
default:
|
||||
// Bump up to controller for possible action
|
||||
Controller.getInstance().onNetworkMessage(peer, message);
|
||||
|
Loading…
Reference in New Issue
Block a user