public class DarknetPeerNode extends PeerNode
| Modifier and Type | Class and Description |
|---|---|
static class |
DarknetPeerNode.FRIEND_TRUST |
static class |
DarknetPeerNode.FRIEND_VISIBILITY |
PeerNode.IncomingLoadSummaryStats, PeerNode.SlotWaiterbackedOffPercent, 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 |
|---|
DarknetPeerNode(SimpleFieldSet fs,
Node node2,
NodeCrypto crypto,
boolean fromLocal,
DarknetPeerNode.FRIEND_TRUST trust,
DarknetPeerNode.FRIEND_VISIBILITY visibility2)
Create a darknet PeerNode from a SimpleFieldSet
|
| Modifier and Type | Method and Description |
|---|---|
void |
acceptTransfer(long id) |
boolean |
allowLocalAddresses()
Is this peer allowed local addresses? If false, we will never connect to this peer via
a local address even if it advertises them.
|
boolean |
canAcceptAnnouncements()
Can we accept announcements from this node?
|
void |
deleteExtraPeerDataFile(int fileNumber) |
void |
disablePeer() |
void |
enablePeer() |
boolean |
equals(java.lang.Object o) |
SimpleFieldSet |
exportFieldSet()
Export the peer's noderef as a SimpleFieldSet
|
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.
|
java.lang.String |
getName() |
DarknetPeerNode.FRIEND_VISIBILITY |
getOurVisibility() |
Peer |
getPeer()
Normally this is the address that packets have been received from from this node.
|
protected int |
getPeerNodeStatus(long now,
long backedOffUntilRT,
long backedOffUntilBulk,
boolean overPingThreshold,
boolean noLoadStats) |
java.lang.String |
getPrivateDarknetCommentNote() |
PeerNodeStatus |
getStatus(boolean noHeavy)
Get a PeerNodeStatus for this node.
|
DarknetPeerNode.FRIEND_VISIBILITY |
getTheirVisibility() |
java.lang.String |
getTMCIPeerInfo() |
DarknetPeerNode.FRIEND_TRUST |
getTrustLevel() |
DarknetPeerNode.FRIEND_VISIBILITY |
getVisibility()
FIXME This should be the worse of our visibility for the peer and that which the peer has told us.
|
void |
handleFproxyBookmarkFeed(SimpleFieldSet fs,
int fileNumber) |
void |
handleFproxyDownloadFeed(SimpleFieldSet fs,
int fileNumber) |
void |
handleFproxyFileOffer(SimpleFieldSet fs,
int fileNumber) |
void |
handleFproxyFileOfferAccepted(SimpleFieldSet fs,
int fileNumber) |
void |
handleFproxyFileOfferRejected(SimpleFieldSet fs,
int fileNumber) |
void |
handleFproxyN2NTM(SimpleFieldSet fs,
int fileNumber) |
void |
handleFullNoderef(Message m) |
void |
handleVisibility(Message m) |
protected boolean |
innerProcessNewNoderef(SimpleFieldSet fs,
boolean forARK,
boolean forDiffNodeRef,
boolean forFullNodeRef)
The synchronized part of processNewNoderef
|
boolean |
isBurstOnly() |
boolean |
isDarknet() |
boolean |
isDisabled()
Is this peer disabled? I.e.
|
boolean |
isIgnoreSource()
Is this peer set to ignore source address? If so, we will always reply to the peer's official
address, even if we get packets from somewhere else.
|
boolean |
isListenOnly() |
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 |
isSeed() |
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.
|
int |
queueN2NM(SimpleFieldSet fs)
A method to queue an N2NM in a extra peer data file, only implemented by DarknetPeerNode.
|
boolean |
readExtraPeerData() |
boolean |
readExtraPeerDataFile(java.io.File extraPeerDataFile,
int fileNumber) |
boolean |
recordStatus() |
void |
rejectTransfer(long id) |
void |
removeExtraPeerDataDir() |
boolean |
rereadExtraPeerDataFile(int fileNumber) |
boolean |
rewriteExtraPeerDataFile(SimpleFieldSet fs,
int extraPeerDataType,
int fileNumber) |
int |
sendBookmarkFeed(FreenetURI uri,
java.lang.String name,
java.lang.String description,
boolean hasAnActiveLink) |
int |
sendDownloadFeed(FreenetURI URI,
java.lang.String description) |
int |
sendFileOffer(java.io.File file,
java.lang.String message) |
int |
sendFileOffer(HTTPUploadedFile file,
java.lang.String message) |
int |
sendFileOfferAccepted(long uid) |
int |
sendFileOfferRejected(long uid) |
void |
sendFullNoderef() |
protected void |
sendInitialMessages()
Send any high level messages that need to be sent on connect.
|
void |
sendQueuedN2NMs() |
int |
sendTextFeed(java.lang.String message) |
void |
setAllowLocalAddresses(boolean setting) |
void |
setBurstOnly(boolean setting) |
void |
setIgnoreSourcePort(boolean setting) |
void |
setListenOnly(boolean setting) |
void |
setPrivateDarknetCommentNote(java.lang.String comment) |
void |
setRoutingStatus(boolean shouldRoute,
boolean localRequest)
Change the routing status of a peer
|
void |
setTrustLevel(DarknetPeerNode.FRIEND_TRUST trust) |
void |
setVisibility(DarknetPeerNode.FRIEND_VISIBILITY visibility) |
boolean |
shallWeRouteAccordingToOurPeersLocation(int htl) |
boolean |
shouldDisconnectAndRemoveNow()
Should this peer be disconnected and removed immediately?
|
protected boolean |
shouldExportPeerAddedTime() |
boolean |
shouldSendHandshake() |
void |
unqueueN2NM(int fileNumber) |
java.lang.String |
userToString() |
int |
writeNewExtraPeerDataFile(SimpleFieldSet fs,
int extraPeerDataType) |
protected void |
writePeers()
Write the peers list affecting this node.
|
acceptedAny, addToLocalNodeReceivedMessagesFromStatistic, addToLocalNodeSentMessagesToStatistic, averagePingTime, averagePingTimeCorrected, backoffOnResend, calcNextHandshake, calculateMaxTransfersOut, changedIP, checkForLostPackets, checkRoutableConnectionStatus, completedAnnounce, completedHandshake, couldNotSendHandshake, countFailedRevocationTransfers, create, decrementHTL, decrementUOMSends, disconnected, dontRoute, dumpTracker, enterMandatoryBackoff, exportDiskFieldSet, exportVolatileFieldSet, failedRevocationTransfer, fatalTimeout, finishedSendingUOMJar, forceCancelDisconnecting, forceDisconnect, fromAnonymousInitiator, fullPacketQueued, getAddedReason, 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, getPeerAddedTime, 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, getTotalInputBytes, getTotalInputSinceStartup, getTotalOutputBytes, getTotalOutputSinceStartup, getUnverifiedKeyTracker, getUptime, getVersion, getVersionNumber, getWeakRef, gotARK, grabQueuedMessageItems, grabSendLoadStatsASAP, handleMessage, handleReceivedPacket, handshakeSetupType, handshakeUnknownInitiator, hasFullNoderef, hashCode, hasLiveHandshake, ignoreLastGoodVersion, incrementNumberOfSelections, incrementUOMSends, innerCalcNextHandshake, isConnected, isDisconnecting, isFetchingARK, isLowCapacity, isLowUptime, isRoutable, isRoutingBackedOff, isRoutingBackedOff, isRoutingBackedOffEither, isRoutingCompatible, 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, receivedAck, receivedPacket, registerPeerNodeStatusChangeListener, rejectedGuaranteed, reportIncomingBytes, reportLoadStatus, reportOutgoingBytes, reportPing, reportRoutedTo, reportThrottledPacketSendTime, resentBytes, resetMandatoryBackoff, selectionRate, selectNegType, sendAsync, sendConnectedDiffNoderef, sendEncryptedPacket, sendingUOMJar, sendNodeToNodeMessage, sendSync, sentHandshake, sentPacket, sentThrottledBytes, setAddedReason, setJFKBuffer, setKeyAgreementSchemeContext, setLastBackoffReason, setMainJarOfferedVersion, setPeerNodeStatus, setPeerNodeStatus, setRemoteDetectedPeer, setSendLoadStatsASAP, setTimeDelta, setUptime, shortToString, shouldAcceptAnnounce, shouldBeExcludedFromPeerList, shouldPadDataPackets, shouldRejectProbeRequest, shouldRejectSwapRequest, shouldThrottle, shouldThrottle, startProcessingDecryptedMessages, startRekeying, stopARKFetcher, successNotOverload, throttleRekey, timeCheckForLostPackets, timeLastConnected, timeLastConnectionCompleted, timeLastDisconnect, timeLastRoutable, timeSendAcks, timeSendHandshake, timeSinceAddedOrRestarted, timeSinceSentUOM, toString, transferFailed, transferSuccess, unqueueMessage, updateLocation, verified, wakeUpSender, writepublic DarknetPeerNode(SimpleFieldSet fs, Node node2, NodeCrypto crypto, boolean fromLocal, DarknetPeerNode.FRIEND_TRUST trust, DarknetPeerNode.FRIEND_VISIBILITY visibility2) throws FSParseException, PeerParseException, ReferenceSignatureVerificationException, PeerTooOldException
fs - The SimpleFieldSet to parsenode2 - The running Node we are part of.trust - If this is a new node, we will use this parameter to set the initial trust level.PeerTooOldExceptionFSParseExceptionPeerParseExceptionReferenceSignatureVerificationExceptionpublic Peer getPeer()
getPeer in interface PeerContextgetPeer in class PeerNodepublic boolean shouldSendHandshake()
shouldSendHandshake in class PeerNodeprotected boolean innerProcessNewNoderef(SimpleFieldSet fs, boolean forARK, boolean forDiffNodeRef, boolean forFullNodeRef) throws FSParseException
PeerNodeinnerProcessNewNoderef in class PeerNodeFSParseExceptionpublic SimpleFieldSet exportFieldSet()
PeerNodeexportFieldSet in class PeerNodepublic SimpleFieldSet exportMetadataFieldSet(long now)
PeerNodeexportMetadataFieldSet in class PeerNodepublic java.lang.String getName()
protected int getPeerNodeStatus(long now,
long backedOffUntilRT,
long backedOffUntilBulk,
boolean overPingThreshold,
boolean noLoadStats)
getPeerNodeStatus in class PeerNodepublic void enablePeer()
public void disablePeer()
public boolean isDisabled()
PeerNodeisDisabled in class PeerNodepublic void setListenOnly(boolean setting)
public boolean isListenOnly()
public void setBurstOnly(boolean setting)
public void setIgnoreSourcePort(boolean setting)
public void setRoutingStatus(boolean shouldRoute,
boolean localRequest)
shouldRoute - localRequest - (true everywhere but in NodeDispatcher)public boolean isIgnoreSource()
PeerNodeisIgnoreSource in class PeerNodepublic boolean isBurstOnly()
isBurstOnly in class PeerNodepublic boolean allowLocalAddresses()
PeerNodeallowLocalAddresses in class PeerNodepublic void setAllowLocalAddresses(boolean setting)
public boolean readExtraPeerData()
public boolean rereadExtraPeerDataFile(int fileNumber)
public boolean readExtraPeerDataFile(java.io.File extraPeerDataFile,
int fileNumber)
public int writeNewExtraPeerDataFile(SimpleFieldSet fs, int extraPeerDataType)
public void deleteExtraPeerDataFile(int fileNumber)
public void removeExtraPeerDataDir()
public boolean rewriteExtraPeerDataFile(SimpleFieldSet fs, int extraPeerDataType, int fileNumber)
public java.lang.String getPrivateDarknetCommentNote()
public void setPrivateDarknetCommentNote(java.lang.String comment)
public int queueN2NM(SimpleFieldSet fs)
PeerNodepublic void unqueueN2NM(int fileNumber)
public void sendQueuedN2NMs()
public java.lang.String getTMCIPeerInfo()
getTMCIPeerInfo in class PeerNodeprotected void onConnect()
public int sendBookmarkFeed(FreenetURI uri, java.lang.String name, java.lang.String description, boolean hasAnActiveLink)
public int sendDownloadFeed(FreenetURI URI, java.lang.String description)
public int sendTextFeed(java.lang.String message)
public int sendFileOfferAccepted(long uid)
public int sendFileOfferRejected(long uid)
public int sendFileOffer(java.io.File file,
java.lang.String message)
throws java.io.IOException
java.io.IOExceptionpublic int sendFileOffer(HTTPUploadedFile file, java.lang.String message) throws java.io.IOException
java.io.IOExceptionpublic void handleFproxyN2NTM(SimpleFieldSet fs, int fileNumber)
public void handleFproxyFileOffer(SimpleFieldSet fs, int fileNumber)
public void acceptTransfer(long id)
public void rejectTransfer(long id)
public void handleFproxyFileOfferAccepted(SimpleFieldSet fs, int fileNumber)
public void handleFproxyFileOfferRejected(SimpleFieldSet fs, int fileNumber)
public void handleFproxyBookmarkFeed(SimpleFieldSet fs, int fileNumber)
public void handleFproxyDownloadFeed(SimpleFieldSet fs, int fileNumber)
public java.lang.String userToString()
userToString in class PeerNodepublic PeerNodeStatus getStatus(boolean noHeavy)
PeerNodepublic boolean isDarknet()
public boolean isOpennet()
public boolean isSeed()
public void onSuccess(boolean insert,
boolean ssk)
PeerNodepublic void onRemove()
PeerNodepublic boolean isRealConnection()
PeerNodeisRealConnection in class PeerNodepublic boolean recordStatus()
recordStatus in class PeerNodepublic final boolean shouldDisconnectAndRemoveNow()
PeerNodeshouldDisconnectAndRemoveNow in class PeerNodeprotected void maybeClearPeerAddedTimeOnConnect()
maybeClearPeerAddedTimeOnConnect in class PeerNodeprotected boolean shouldExportPeerAddedTime()
shouldExportPeerAddedTime in class PeerNodeprotected void maybeClearPeerAddedTimeOnRestart(long now)
maybeClearPeerAddedTimeOnRestart in class PeerNodepublic void fatalTimeout()
PeerNodefatalTimeout in class PeerNodepublic DarknetPeerNode.FRIEND_TRUST getTrustLevel()
public boolean shallWeRouteAccordingToOurPeersLocation(int htl)
shallWeRouteAccordingToOurPeersLocation in class PeerNodepublic void setTrustLevel(DarknetPeerNode.FRIEND_TRUST trust)
public DarknetPeerNode.FRIEND_VISIBILITY getVisibility()
public DarknetPeerNode.FRIEND_VISIBILITY getOurVisibility()
public void setVisibility(DarknetPeerNode.FRIEND_VISIBILITY visibility)
public void handleVisibility(Message m)
public DarknetPeerNode.FRIEND_VISIBILITY getTheirVisibility()
public void sendFullNoderef()
public void handleFullNoderef(Message m)
protected void sendInitialMessages()
PeerNodesendInitialMessages in class PeerNodepublic boolean isOpennetForNoderef()
isOpennetForNoderef in class PeerNodepublic boolean canAcceptAnnouncements()
PeerNodecanAcceptAnnouncements in class PeerNodeprotected void writePeers()
PeerNodewritePeers in class PeerNode