- Deprecate some setters
- Add warning about setCost()
- Change cost storage from int to short
- Cost range checks
* NTCP:
- Republish even if only changing cost
* Transports:
- Sort multiple peer addresses by cost, with adjustment for local IPv6 preference
- Add default IPv6Config for ease of changing later
* RouterAddress and RouterInfo toString() cleanups; don't cache RI in _stringified
* NTCP: Fix publishing address when host specified but interface is not
* log tweaks
- Add floodfillEnabled() to NetworkDatabaseFacade so callers don't
have to cast to FNDF, and Dummy NDF will work
- Remove static FNDF.floodfillEnabled()
* SSUDemo: cleanups
- Pass device IP back in forward port callback
- Only declare success if forwarded IP is public
NTCP: Bad bind config not fatal
GeoIP:
- Use cached IP in RouterAddresses
- Use both NTCP and SSU addresses
- Skip IPv6 for now
Blocklist:
- Add IPv6 in-memory single list
- Limit in-memory single list size
- Fix dup check in getAddresses()
* Start transports in a standard order to make testing easier
* When transports learn of interface addresses before being started, save them
and use them at startup
* Pick SSU random port before startListening() and have the TransportManager
pass it to NTCP before starting
* Only restart NTCP after changing addresses when necessary;
prevent thrashing at startup (ticket #459)
* Only call rebuildRouterInfo() once at startup
* More checking of min/max SSU port config
* Invalid SSU bind config no longer fatal
* Allow "true" for ipv6 config
* log tweaks
* javadocs
- Add new constructor
- Add add getHost() and deepEquals()
- Compare host string, not IP, in equals()
SSU:
- Remove all _external* fields; use _currentAddresses in super
- Big rework of externalAddressReceived(), rebuildExternalAddress(),
needsRebuild(), and replaceAddress() for multiple addresses and IPv6
- Add caching in UDPAddress
- More IPv6 flavors of utility methods
- Remove two-art replaceAddress()
* SSU Introduction:
- Document that Alice-Bob RelayRequest/RelayResponse may be IPv4 or IPv6,
but don't implement IPv6 yet.
Changes required in IntroductionManager and PacketBuilder to send Alice's
IPv4 address in the RelayRequest packet over IPv6, and to publish
IPv6 introducer IPs.
- Bob-Charlie RelayIntro must be IPv4
- Only offer/accept relay tags as Bob or Charlie if the Bob-Charlie session is IPv4
- Alice-Charlie communication must be IPv4
- javadocs
- Bind SSU to configured internal, not external, port at startup
- Use only internal ports for UPnP (getRequestedPort() fixups)
- Don't have NTCP follow frequent SSU port changes
- Don't use external SSU port for internal NTCP port
- Display internal SSU port on /confignet
- Synchronize tracking of last IP/port
- Don't accept IPv6 address changes from peers
- Remove unused getLocalAddress()
- Pkg private getLocalPort()
Peer tests:
- Use only IPv4 peer for Alice and Bob in peer tests; Charlie may be an IPv6 peer.
- Enforce IPv4 (Alice's) address inside PeerTest packet
- Change from single UDPEndpoint to a List of UDPEndpoints
- Move (single) receive queue from UDPReceiver to PacketHandler
- Multiple transmit queues (one for each UDPEndpoint/UDPSender),
select queue in PacketPusher
- Throw exception on UDPEndpoint.startup() failure