so that torrents stop when the router stops and restart when the router restarts.
- Use BWLimits from the DirMonitor as a periodic test that the router is there
- DirMonitor does not attempt to autostart torrents if BWLimits test fails
- DirMonitor does autostart existing torrents when BWLimits test passes again
- Register disconnect listener with socket manger and stop all torrents on disconnect
- Use stopTorrent(true) on router errors to prevent changing the persisted torrent running status
- Change autostart default to true for standalone
Possibly more todo for corner cases or other start/stop/fail scenarios.
- Add fromPort and toPort to Sink interface (breaking API change)
- Change cache maps from Destination to I2PSocketAddress to include port
- Accept host:port for destination in Streamr Client, use port
as toPort in pinger
- Change to muxed listener in I2PSource, only listen for
specified protocols
- Eliminate thread and queue in I2PSource, process messages inline
in the listener
- Add support for handling both repliable and raw datagrams in
a single I2PSource instance
- Remove verify option from I2PSource and I2PTunnelUDPServerBase,
always verify repliable datagrams
- Add getPort() method to UDPSource
- Add a constructor to UDPSink to pass in an existing DatagramSocket
- Change I2PTunnelUDPClientBase to receive both repliable and raw
- Change SOCKSUDPTunnel reply handling strategy to key on I2CP toPort;
remove ReplyTracker; the tunnel would not have worked before, because
it expected raw replies only but MultiSink required a destination
to look up where to forward the reply.
- Mark SOCKSUDPTunnel as preliminary; note lack of support
for raw replies; untested
- Change Streamr Client Pinger to support fromPort
- Change Streamr Server to remember fromPort in subscriptions
and use it as toPort in data stream
- Move fields to top of classes for sanity
- Cleanups and log tweaks