public class OpennetPeerNode extends PeerNode
PeerNode.IncomingLoadSummaryStats, PeerNode.SlotWaiter
backedOffPercent, backedOffPercentBulk, backedOffPercentRT, BLACK_MAGIC_BACKOFF_PRUNING_PERCENTAGE, BLACK_MAGIC_BACKOFF_PRUNING_TIME, crypto, disableRouting, disableRoutingHasBeenSetLocally, disableRoutingHasBeenSetRemotely, fullFieldSet, hmacKey, incommingKey, ivKey, ivNonce, jfkContextLifetime, jfkKa, jfkKe, jfkMyRef, jfkNoncesSent, neverConnected, nominalPeer, ourInitialMsgID, ourInitialSeqNum, outgoingKey, peerAddedTime, peerECDSAPubKey, peerECDSAPubKeyHash, peerNodeStatus, resendByteCounter, SELECTION_MAX_SAMPLES, SELECTION_MIN_PEERS, SELECTION_PERCENTAGE_WARNING, SELECTION_SAMPLING_PERIOD, sendHandshakeTime, sendingUOMLegacyExtJar, sendingUOMMainJar, testnetEnabled, theirInitialMsgID, theirInitialSeqNum, unroutableNewerVersion, unroutableOlderVersion
Constructor and Description |
---|
OpennetPeerNode(SimpleFieldSet fs,
Node node2,
NodeCrypto crypto,
OpennetManager opennet,
boolean fromLocal) |
Modifier and Type | Method and Description |
---|---|
boolean |
canAcceptAnnouncements()
Can we accept announcements from this node?
|
boolean |
equals(java.lang.Object o) |
SimpleFieldSet |
exportMetadataFieldSet(long now)
Export metadata about the node as a SimpleFieldSet
|
void |
fatalTimeout()
After a fatal timeout - that is, a timeout that we reasonably believe originated
on the node rather than downstream - we do not know whether or not the node thinks
the request is still running.
|
OpennetManager.ConnectionType |
getAddedReason() |
PeerNodeStatus |
getStatus(boolean noHeavy)
Get a PeerNodeStatus for this node.
|
boolean |
isDarknet() |
boolean |
isDroppable(boolean ignoreDisconnect) |
freenet.node.OpennetPeerNode.NOT_DROP_REASON |
isDroppableWithReason(boolean ignoreDisconnect)
Is the peer droppable?
SIDE EFFECT: If we are now outside the grace period, we reset peerAddedTime and opennetPeerAddedReason.
|
boolean |
isOpennet() |
boolean |
isOpennetForNoderef() |
boolean |
isRealConnection()
Does this peernode want to be returned by for example PeerManager.getByPeer() ?
False = seednode etc, never going to be routable.
|
boolean |
isRoutingCompatible()
Returns true if (apart from actually knowing the peer's location), it is presumed that this peer could route requests.
|
boolean |
isSeed() |
freenet.node.OpennetManager.LinkLengthClass |
linkLengthClass() |
protected void |
maybeClearPeerAddedTimeOnConnect() |
protected void |
maybeClearPeerAddedTimeOnRestart(long now) |
protected void |
onConnect()
A method to be called once at the beginning of every time isConnected() is true
|
void |
onRemove()
Called when the peer is removed from the PeerManager
|
void |
onSuccess(boolean insert,
boolean ssk)
Called when a request or insert succeeds.
|
boolean |
recordStatus() |
void |
setAddedReason(OpennetManager.ConnectionType connectionType) |
boolean |
shallWeRouteAccordingToOurPeersLocation(int htl) |
boolean |
shouldDisconnectAndRemoveNow()
Should this peer be disconnected and removed immediately?
|
protected boolean |
shouldExportPeerAddedTime() |
long |
timeLastSuccess() |
static boolean |
validateRef(SimpleFieldSet ref)
Is the SimpleFieldSet a valid noderef?
|
protected void |
writePeers()
Write the peers list affecting this node.
|
acceptedAny, addToLocalNodeReceivedMessagesFromStatistic, addToLocalNodeSentMessagesToStatistic, allowLocalAddresses, averagePingTime, averagePingTimeCorrected, backoffOnResend, calcNextHandshake, calculateMaxTransfersOut, changedIP, checkForLostPackets, checkRoutableConnectionStatus, completedAnnounce, completedHandshake, couldNotSendHandshake, countFailedRevocationTransfers, create, decrementHTL, decrementUOMSends, disconnected, dontRoute, dumpTracker, enterMandatoryBackoff, exportDiskFieldSet, exportFieldSet, exportVolatileFieldSet, failedRevocationTransfer, fatalTimeout, finishedSendingUOMJar, forceCancelDisconnecting, forceDisconnect, fromAnonymousInitiator, fullPacketQueued, getBootID, getClockDelta, getClosestPeerLocation, getCurrentKeyTracker, getDegree, getFullNoderef, getHandshakeCount, getHandshakeIP, getHandshakeIPs, getIdentityHash, getIdentityString, getIncomingLoadStats, getJFKBuffer, getKeyAgreementSchemeContext, getLastBackoffReason, getLocalNodeReceivedMessagesFromStatistic, getLocalNoderef, getLocalNodeSentMessagesToStatistic, getLocation, getLocSetTime, getMainJarOfferedVersion, getMaxPacketSize, getMessageQueue, getMessageQueueLengthBytes, getNextUrgentTime, getOutgoingBootID, getOutgoingMangler, getPeer, getPeerAddedTime, getPeerNodeStatus, getPeerNodeStatus, getPeerNodeStatusCSSClassName, getPeerNodeStatusCSSClassName, getPeerNodeStatusString, getPeerNodeStatusString, getPercentTimeRoutableConnection, getPollingPriorityNormal, getPollingPriorityProgress, getPRejected, getPreviousBackoffReason, getPreviousKeyTracker, getProbableSendQueueTime, getPubKeyHash, getRemoteDetectedPeer, getResendBytesSent, getReusableTrackerID, getRoutingBackedOffUntil, getRoutingBackedOffUntilBulk, getRoutingBackedOffUntilMax, getRoutingBackedOffUntilRT, getRoutingBackoffLength, getSimpleVersion, getSocketHandler, getThrottle, getThrottleWindowSize, getTMCIPeerInfo, getTotalInputBytes, getTotalInputSinceStartup, getTotalOutputBytes, getTotalOutputSinceStartup, getUnverifiedKeyTracker, getUptime, getVersion, getVersionNumber, getWeakRef, gotARK, grabQueuedMessageItems, grabSendLoadStatsASAP, handleMessage, handleReceivedPacket, handshakeSetupType, handshakeUnknownInitiator, hasFullNoderef, hashCode, hasLiveHandshake, ignoreLastGoodVersion, incrementNumberOfSelections, incrementUOMSends, innerCalcNextHandshake, innerProcessNewNoderef, isBurstOnly, isConnected, isDisabled, isDisconnecting, isFetchingARK, isIgnoreSource, isLowCapacity, isLowUptime, isRoutable, isRoutingBackedOff, isRoutingBackedOff, isRoutingBackedOffEither, isSignatureVerificationSuccessfull, isUnroutableNewerVersion, isUnroutableOlderVersion, lastReceivedAckTime, lastReceivedDataPacketTime, lastReceivedPacketTime, lastSentPacketTime, loadSender, localRejectedOverload, makeLoadStats, matchesIP, matchesPeerAndPort, maxTimeBetweenReceivedAcks, maxTimeBetweenReceivedPackets, maybeOnConnect, maybeRekey, maybeSendPacket, maybeUpdateHandshakeIPs, neverConnected, noContactDetails, noLongerRoutable, noLongerRoutingTo, notifyDisconnecting, offer, onFound, onNotificationOnlyPacketSent, onSetMaxOutputTransfers, onSetMaxOutputTransfersPeerLimit, onSetPeerAllocation, outputLoadTracker, paddingGen, ping, postUnlock, processDiffNoderef, processNewNoderef, publicInvalidVersion, publicReverseInvalidVersion, queueN2NM, receivedAck, receivedPacket, registerPeerNodeStatusChangeListener, rejectedGuaranteed, reportIncomingBytes, reportLoadStatus, reportOutgoingBytes, reportPing, reportRoutedTo, reportThrottledPacketSendTime, resentBytes, resetMandatoryBackoff, selectionRate, selectNegType, sendAsync, sendConnectedDiffNoderef, sendEncryptedPacket, sendingUOMJar, sendInitialMessages, sendNodeToNodeMessage, sendSync, sentHandshake, sentPacket, sentThrottledBytes, setJFKBuffer, setKeyAgreementSchemeContext, setLastBackoffReason, setMainJarOfferedVersion, setPeerNodeStatus, setPeerNodeStatus, setRemoteDetectedPeer, setSendLoadStatsASAP, setTimeDelta, setUptime, shortToString, shouldAcceptAnnounce, shouldBeExcludedFromPeerList, shouldPadDataPackets, shouldRejectProbeRequest, shouldRejectSwapRequest, shouldSendHandshake, shouldThrottle, shouldThrottle, startProcessingDecryptedMessages, startRekeying, stopARKFetcher, successNotOverload, throttleRekey, timeCheckForLostPackets, timeLastConnected, timeLastConnectionCompleted, timeLastDisconnect, timeLastRoutable, timeSendAcks, timeSendHandshake, timeSinceAddedOrRestarted, timeSinceSentUOM, toString, transferFailed, transferSuccess, unqueueMessage, updateLocation, userToString, verified, wakeUpSender, write
public OpennetPeerNode(SimpleFieldSet fs, Node node2, NodeCrypto crypto, OpennetManager opennet, boolean fromLocal) throws FSParseException, PeerParseException, ReferenceSignatureVerificationException, PeerTooOldException
public PeerNodeStatus getStatus(boolean noHeavy)
PeerNode
public boolean isRoutingCompatible()
PeerNode
isRoutingCompatible
in class PeerNode
public boolean isDarknet()
public boolean isOpennet()
public boolean isSeed()
public boolean isDroppable(boolean ignoreDisconnect)
public freenet.node.OpennetPeerNode.NOT_DROP_REASON isDroppableWithReason(boolean ignoreDisconnect)
public void onSuccess(boolean insert, boolean ssk)
PeerNode
public void onRemove()
PeerNode
public SimpleFieldSet exportMetadataFieldSet(long now)
PeerNode
exportMetadataFieldSet
in class PeerNode
public final long timeLastSuccess()
public static boolean validateRef(SimpleFieldSet ref)
public boolean isRealConnection()
PeerNode
isRealConnection
in class PeerNode
public boolean recordStatus()
recordStatus
in class PeerNode
public final boolean shouldDisconnectAndRemoveNow()
PeerNode
shouldDisconnectAndRemoveNow
in class PeerNode
protected void onConnect()
PeerNode
public void setAddedReason(OpennetManager.ConnectionType connectionType)
setAddedReason
in class PeerNode
public OpennetManager.ConnectionType getAddedReason()
getAddedReason
in class PeerNode
protected void maybeClearPeerAddedTimeOnConnect()
maybeClearPeerAddedTimeOnConnect
in class PeerNode
protected boolean shouldExportPeerAddedTime()
shouldExportPeerAddedTime
in class PeerNode
protected void maybeClearPeerAddedTimeOnRestart(long now)
maybeClearPeerAddedTimeOnRestart
in class PeerNode
public void fatalTimeout()
PeerNode
fatalTimeout
in class PeerNode
public boolean shallWeRouteAccordingToOurPeersLocation(int htl)
shallWeRouteAccordingToOurPeersLocation
in class PeerNode
public freenet.node.OpennetManager.LinkLengthClass linkLengthClass()
public boolean isOpennetForNoderef()
isOpennetForNoderef
in class PeerNode
public boolean canAcceptAnnouncements()
PeerNode
canAcceptAnnouncements
in class PeerNode
protected void writePeers()
PeerNode
writePeers
in class PeerNode