use of com.radixdlt.network.p2p.NodeId in project radixdlt by radixdlt.
the class OutboundMessageEventTest method sensibleToString.
@Test
public void sensibleToString() {
NodeId peer = mock(NodeId.class);
Message message = mock(Message.class);
long nanoTimeDiff = 123456789L;
OutboundMessageEvent event = new OutboundMessageEvent(peer, message, nanoTimeDiff);
String s = event.toString();
assertThat(s).contains(OutboundMessageEvent.class.getSimpleName()).contains(peer.toString()).contains(message.toString()).contains(String.valueOf(nanoTimeDiff)).contains("priority=0");
}
use of com.radixdlt.network.p2p.NodeId in project radixdlt by radixdlt.
the class OutboundMessageEventTest method makeMessageEventFor.
private OutboundMessageEvent makeMessageEventFor(Class<? extends Message> cls) {
NodeId peer = mock(NodeId.class);
Message message = mock(cls);
long nanoTimeDiff = 123456789L;
return new OutboundMessageEvent(peer, message, nanoTimeDiff);
}
use of com.radixdlt.network.p2p.NodeId in project radixdlt by radixdlt.
the class OutboundMessageEventTest method peerPongToString.
@Test
public void peerPongToString() {
NodeId peer = mock(NodeId.class);
Message message = mock(PeerPongMessage.class);
long nanoTimeDiff = 123456789L;
OutboundMessageEvent event = new OutboundMessageEvent(peer, message, nanoTimeDiff);
String s = event.toString();
assertThat(s).contains(OutboundMessageEvent.class.getSimpleName()).contains(peer.toString()).contains(message.toString()).contains(String.valueOf(nanoTimeDiff)).contains("priority=" + Integer.MIN_VALUE);
}
use of com.radixdlt.network.p2p.NodeId in project radixdlt by radixdlt.
the class OutboundMessageEventTest method peerPingToString.
@Test
public void peerPingToString() {
NodeId peer = mock(NodeId.class);
Message message = mock(PeerPingMessage.class);
long nanoTimeDiff = 123456789L;
OutboundMessageEvent event = new OutboundMessageEvent(peer, message, nanoTimeDiff);
String s = event.toString();
assertThat(s).contains(OutboundMessageEvent.class.getSimpleName()).contains(peer.toString()).contains(message.toString()).contains(String.valueOf(nanoTimeDiff)).contains("priority=" + Integer.MIN_VALUE);
}
use of com.radixdlt.network.p2p.NodeId in project radixdlt by radixdlt.
the class AddressBook method banPeer.
void banPeer(NodeId nodeId, Duration banDuration) {
synchronized (lock) {
final var banUntil = Instant.now().plus(banDuration);
final var maybeExistingEntry = findById(nodeId);
if (maybeExistingEntry.isPresent()) {
final var existingEntry = maybeExistingEntry.get();
final var alreadyBanned = existingEntry.bannedUntil().filter(bu -> bu.isAfter(banUntil)).isPresent();
if (!alreadyBanned) {
final var updatedEntry = existingEntry.cleanupExpiredBlacklsitedUris().withBanUntil(banUntil);
this.knownPeers.put(nodeId, updatedEntry);
this.persistEntry(updatedEntry);
this.peerEventDispatcher.dispatch(new PeerBanned(nodeId));
}
} else {
final var newEntry = AddressBookEntry.createBanned(nodeId, banUntil);
this.knownPeers.put(nodeId, newEntry);
this.persistEntry(newEntry);
this.peerEventDispatcher.dispatch(new PeerBanned(nodeId));
}
}
}
Aggregations