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()));
|
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
|
// Don't use this peer again for a while
|
||||||
try (final Repository repository = RepositoryManager.getRepository()) {
|
|
||||||
PeerData peerData = peer.getPeerData();
|
PeerData peerData = peer.getPeerData();
|
||||||
peerData.setLastMisbehaved(NTP.getTime());
|
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.getNetworkRepository().save(peerData);
|
||||||
repository.saveChanges();
|
repository.saveChanges();
|
||||||
} catch (DataException e) {
|
} catch (DataException e) {
|
||||||
@ -616,12 +619,6 @@ public class Controller extends Thread {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GET_PEERS:
|
|
||||||
// Send our known peers
|
|
||||||
if (!peer.sendMessage(Network.getInstance().buildPeersMessage(peer)))
|
|
||||||
peer.disconnect("failed to send peers list");
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
LOGGER.debug(String.format("Unhandled %s message [ID %d] from peer %s", message.getType().name(), message.getId(), peer));
|
LOGGER.debug(String.format("Unhandled %s message [ID %d] from peer %s", message.getType().name(), message.getId(), peer));
|
||||||
break;
|
break;
|
||||||
|
@ -472,6 +472,12 @@ public class Network extends Thread {
|
|||||||
mergePeers(peerV2Addresses);
|
mergePeers(peerV2Addresses);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case GET_PEERS:
|
||||||
|
// Send our known peers
|
||||||
|
if (!peer.sendMessage(buildPeersMessage(peer)))
|
||||||
|
peer.disconnect("failed to send peers list");
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// Bump up to controller for possible action
|
// Bump up to controller for possible action
|
||||||
Controller.getInstance().onNetworkMessage(peer, message);
|
Controller.getInstance().onNetworkMessage(peer, message);
|
||||||
|
Loading…
Reference in New Issue
Block a user