Batching preprocessor that will briefly delay the sending of a message
if it doesn't fill up a full tunnel message, in which case it queues up
an additional flush task.
Gets the next indicator and returns either null when the stream
has ended or bdecodes the rest of the stream and returns the
appropriate BEValue encoded object.
On-disk format:
Magic number (6 bytes)
Version major/minor (2 bytes)
file length (long)
free list start (unsigned int)
is mounted (unsigned short) 0 = no, 1 = yes
span size (unsigned short)
Metaindex skiplist is on page 2
Pages are 1 KB and are numbered starting from 1.
Handle the received tunnel build message requests and replies,
including sending responsses to requests, updating the
lists of our tunnels and participating tunnels,
and updating stats.
Receive the build message at a certain hop, decrypt its encrypted record,
read the enclosed tunnel request, decide how to reply, write the reply,
encrypt the reply record, and return a TunnelBuildMessage to forward on to
the next hop
If the client's config specifies shouldBundleReplyInfo=true, messages sent from
that client to any peers will probabalistically include the sending destination's
current LeaseSet (allowing the recipient to reply without having to do a full
netDb lookup).
alreadyTransferred - total of all attempts, not including currentWrite
If nonzero on the first call, a partial file of that length was found,
_and_ the server supports resume.