Skip to content

FCPv2 PersistentGet

DC* edited this page Aug 29, 2020 · 3 revisions

PersistentGet is a message from the node replying to a ClientGet message, confirming the details of the request (possibly for clients other than the one that issued the ClientGet, if it is on the global queue).

Example

 PersistentGet
 Identifier=Request Number Two
 URI=KSK@sample.txt
 Verbosity=0
 ReturnType=disk
 Filename=/home/toad/sample.txt
 TempFilename=/home/toad/sample.txt.freenet-temp
 ClientToken=hello again
 PriorityClass=3
 Persistence=forever
 PersistenceType=forever
 Global=true
 MaxRetries=3
 RealTime=false
 EndMessage
Field Possible values Mandatory Default Criteria Description
URI A freenet URI yes The URI of the Freenet file being downloaded e.g. KSK@gpl.txt.
Identifier Arbitrary text yes A string to uniquely identify to the client the file you are receiving.
Verbosity Bitmask no 0
MaxSize A positive integer no Maximum size of returned data in bytes.
MaxRetries An integer, -1 to ? no 0 Number of times the node will automatically retry to get the data. -1 means retry forever, and will use ULPRs to maintain the request efficiently.
PriorityClass no 4 (Bulk offline splitfile fetches, usually to disk) How to prioritize the download.
  • 0 = maximum priority
  • 6 = minimum priority
PersistenceType no connection Whether the download stays on the queue across new client connections, Freenet restarts, or forever. (Duplicated as PersistenceType for backward compatibility; that will be removed eventually).
Persistence no connection Duplicate of attribute Persistance for backward compatibility; will be removed eventually
ClientToken An arbitrary string no Arbitrary string that the client set in ClientGet, to record its own state e.g. what to do with the download (note that you should not rely on this for security as other clients might be able to change it).
Global no false Whether the download is visible on the global queue or not.
Started no false Whether the download has started yet.
ReturnType no direct
  • direct: return the data directly to the client via an AllData message, once we have all of it. (For persistent requests, the client will get a DataFound message but must send a GetRequestStatus to ask for the AllData).
  • none: don't return the data at all, just fetch it to the node and tell the client when we have finished.
  • disk: write the data to disk. If you download to disk, you have to do a TestDDARequest.
  • In the future, chunked may also be supported (return it in segments as they are ready), but this is not yet implemented.
BinaryBlob no If true, return the data blocks required to fetch this site as a binary blob (.fblob) file.
RealTime no false Whether to fetch the data with the real-time flag set to realtime (true) or bulk (false). (since 1311)
Filename A filename with full path yes ReturnType is disk Name and path of the file where the download is to be stored.
TempFilename A filename with full path no ReturnType is disk Name and path of a temporary file where the partial download is to be stored.
Clone this wiki locally