Release sync from upstream.
Changes
- Added dynamic path re-balancing
- Added
set_max_request_sizetoDestinationAPI - Added
max_response_sizeto request API - Added interface gravity handling
- Added
autoconnect_interface_modeoption - Added
autoconnect_announces_to_internaloption - Added
autoconnect_interface_gravityoption - Added
default_gravityoption - Added
announces_to_internalinterface option - Added
gravityinterface option - Added gravity display and sorting option to
rnstatus - Added boundary -> boundary and boundary -> gateway path requests
- Optimized transport data persistence to avoid CPU spikes on low-powered systems
- Optimized interface hashes calculation and access to reduce overall processing load
- Implemented known destinations cleaning as background priority to avoid lock contention and reduce load on CPU-constrained systems
- Deprecated known destination on-disk recombination on background data persist to alleviate lock contention on CPU-constrained systems
- Implemented caching of invalid discovery stamps to reduce CPU load on low-powered systems
- Implemented valid discovery announce caching and sequential validation lock to reduce processing load on CPU-constrained systems
- Fixed
I2PInterfacetasks getting garbage-collected prematurely, thanks to welo - Fixed various minor bugs in
I2PInterface - Fixed ingress control burst active flag deadlocking until new announces arrived under burst timing patterns
- Fixed various memory inefficiencies
- Fixed loglevel
LOG_EXTREMEnot being usable in some cases - Fixed historical interface discoveries not being cleaned according to blackholed identities
- Fixed link stale teardown erroneously occurring due to missing keepalive from initiator side when destination continously sends packets but initiator stays silent
- Fixed race condition in link watchdog timing
- Fixed missing None-check in
BackboneInterfacefast-flap detection - Fixed invalid exception log handler in
BackboneInterface - Fixed a bug where recursive path requests would cause a division by zero error on uninitialized RNode interfaces.
- Fixed slow blackholed filtering for discovered interfaces on Android in some cases.
- Increased default discovery stamp value to 16
- Added blocked IPs list to ifstats
- Improved backbone interface logging
- Reduced overall logging noise