public class DarknetPeerNode extends PeerNode
Modifier and Type | Class and Description |
---|---|
static class |
DarknetPeerNode.FRIEND_TRUST |
static class |
DarknetPeerNode.FRIEND_VISIBILITY |
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 |
---|
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, write
public 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.PeerTooOldException
FSParseException
PeerParseException
ReferenceSignatureVerificationException
public Peer getPeer()
getPeer
in interface PeerContext
getPeer
in class PeerNode
public boolean shouldSendHandshake()
shouldSendHandshake
in class PeerNode
protected boolean innerProcessNewNoderef(SimpleFieldSet fs, boolean forARK, boolean forDiffNodeRef, boolean forFullNodeRef) throws FSParseException
PeerNode
innerProcessNewNoderef
in class PeerNode
FSParseException
public SimpleFieldSet exportFieldSet()
PeerNode
exportFieldSet
in class PeerNode
public SimpleFieldSet exportMetadataFieldSet(long now)
PeerNode
exportMetadataFieldSet
in class PeerNode
public java.lang.String getName()
protected int getPeerNodeStatus(long now, long backedOffUntilRT, long backedOffUntilBulk, boolean overPingThreshold, boolean noLoadStats)
getPeerNodeStatus
in class PeerNode
public void enablePeer()
public void disablePeer()
public boolean isDisabled()
PeerNode
isDisabled
in class PeerNode
public 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()
PeerNode
isIgnoreSource
in class PeerNode
public boolean isBurstOnly()
isBurstOnly
in class PeerNode
public boolean allowLocalAddresses()
PeerNode
allowLocalAddresses
in class PeerNode
public 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)
PeerNode
public void unqueueN2NM(int fileNumber)
public void sendQueuedN2NMs()
public java.lang.String getTMCIPeerInfo()
getTMCIPeerInfo
in class PeerNode
protected 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.IOException
public int sendFileOffer(HTTPUploadedFile file, java.lang.String message) throws java.io.IOException
java.io.IOException
public 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 PeerNode
public PeerNodeStatus getStatus(boolean noHeavy)
PeerNode
public boolean isDarknet()
public boolean isOpennet()
public boolean isSeed()
public void onSuccess(boolean insert, boolean ssk)
PeerNode
public void onRemove()
PeerNode
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 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 DarknetPeerNode.FRIEND_TRUST getTrustLevel()
public boolean shallWeRouteAccordingToOurPeersLocation(int htl)
shallWeRouteAccordingToOurPeersLocation
in class PeerNode
public 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()
PeerNode
sendInitialMessages
in class PeerNode
public boolean isOpennetForNoderef()
isOpennetForNoderef
in class PeerNode
public boolean canAcceptAnnouncements()
PeerNode
canAcceptAnnouncements
in class PeerNode
protected void writePeers()
PeerNode
writePeers
in class PeerNode