Concurrent plan:
It's difficult to get rid of the locks on _pendingInboundRequests
since locked_satisyInboundAvailable() leaves Requests on the head
of the queue.
General helper methods for messing with files
These are static methods that do NOT convert arguments
to absolute paths for a particular context and directory.
Get the routers closest to that key in response to a remote lookup
Only used by ../HDLMJ
Set MAY INCLUDE our own router - add to peersToIgnore if you don't want
this needs to be long enough to give us time to start up,
but less than 20m (when we start accepting tunnels and could be a IBGW)
Actually no, we need this soon if we are a new router or
other routers have forgotten about us, else
we can't build IB exploratory tunnels.
If set, this packet is travelling as part of an interactive flow,
meaning it is more lag sensitive than throughput sensitive.
FLAG_RESET -
Static variable in class net.i2p.client.streaming.Packet
This packet is being sent to signify that the socket does not exist
(or, if in response to an initial synchronize packet, that the
connection was refused).
This packet is creating a new socket connection (if the receiveStreamId
is STREAM_ID_UNKNOWN) or it is acknowledging a request to
create a connection and in turn is accepting the socket.
Send a netDb lookup to a floodfill peer - If it is found, great,
but if they reply back saying they dont know it, queue up a store of the
key to a random floodfill peer again (via FloodfillStoreJob)
Try sending a search to some floodfill peers, but if we don't get a successful
match within half the allowed lookup time, give up and start querying through
the normal (kademlia) channels.
Handle fragments at the endpoint of a tunnel, peeling off fully completed
I2NPMessages when they arrive, and dropping fragments if they take too long
to arrive.