- Explicitly specify shell when RUN_AS_USER is set. This allows I2P to start
under limited accounts that do not have a defined shell.
- When installing as a service, point out that I2P_CONFIG_DIR may need to be
set. I2P_CONFIG_DIR defaults to $HOME/.i2p for the user that installed I2P
and when running as a service this may not be desired.
(e.g., RUN_AS_USER=i2p & I2P_CONFIG_DIR=/root/.i2p)
(The RUN_AS_USER shell problem was spotted at https://github.com/mattias-ohlsson/i2p/blob/master/i2p.spec)
- 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()
support for Solaris (tested with Solaris 11 x86)
mbuild-all.sh:
- output correctly formatted file names (tested in Solaris x86, FreeBSD (x86 and x64) and Linux (x86 & x64))
- switch from echo -e to the more portable printf
- more error checking, comments
debian/patches: refreshed based on changes to core/c/*
libjcpuid-x86_64-solaris.so: built in solaris 11 x86 with
java 1.7.0_07 and gcc 4.5.2, stripped
* 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