* Revised the buffering when reading from the SAM client and writing
to the stream. Also added a thread (sigh) so we don't block the
SAM client from giving us more messages for abnormally long periods
of time.
* Display the router version in the logs on startup (oft requested)
* Fix a race during the closing of a messageOutputStream
* Don't do a 'passive flush' while there are already outbound messages
unacked.
* Show the reseed link if up to 10 peers profiles are active (thanks
dburton!)
* Don't do a 'passive flush' while there are already outbound messages
unacked.
* Show the reseed link if up to 10 peers profiles are active (thanks
dburton!)
* Default the I2CP listener to localhost only, unless overridden by
i2cp.tcp.bindAllInterfaces=true (thanks dm!)
* More SAM fixes for things recently broken (whee)
* Fix the recently broken SAM bridge (duh)
* Add a new pair of SAM apps - net.i2p.sam.client.SAMStreamSink and
net.i2p.sam.client.SAMStreamSend, mirroring the streaming lib's
StreamSink and StreamSend apps for transferring files.
* Make the passive flush timer fire more frequently.
* Toss in a small pool of threads (3) to execute the events queued up with
the SimpleTimer, as we do currently see the occational event
notification spiking up to a second or so.
* Implement a SAM client API in java, useful for event based streaming (or
for testing the SAM bridge)
* Added support to shut down the SAM bridge on OOM (useful if the SAM
bridge is being run outside of the router).
* Include the SAM test code in the sam.jar
* Remove an irrelevent warning message from SAM, which was caused by
perfectly normal operation due to a session being closed.
* Removed some unnecessary synchronization in the streaming lib's
PacketQueue
* More quickly clean up the memory used by the streaming lib by
immediately killing each packet's resend job as soon as it is ACKed (or
cancelled), so that there are no longer any valid pointers to the
(potentially 32KB) packet.
* Fixed the timestamps dumped to stdout when debugging the PacketHandler.
* Drop packets that would expand our inbound window beyond our maximum
buffer size (default 32 messages)
* Always read the ACK/NACK data from the verified packets received, even
if we are going to drop them
* Always adjust the window when there are messages ACKed, though do not
change its size except as before.
* Streamlined some synchronization in the router's I2CP handling
* Streamlined some memory allocation in the SAM bridge
* Default the streaming lib to disconnect on inactivity, rather than send
an empty message.
* Toss in a small pool of threads (3) to execute the events queued up with
the SimpleTimer, as we do currently see the occational event
notification spiking up to a second or so.
* Implement a SAM client API in java, useful for event based streaming (or
for testing the SAM bridge)
* Added support to shut down the SAM bridge on OOM (useful if the SAM
bridge is being run outside of the router).
* Include the SAM test code in the sam.jar
* Remove an irrelevent warning message from SAM, which was caused by
perfectly normal operation due to a session being closed.
* Removed some unnecessary synchronization in the streaming lib's
PacketQueue
* More quickly clean up the memory used by the streaming lib by
immediately killing each packet's resend job as soon as it is ACKed (or
cancelled), so that there are no longer any valid pointers to the
(potentially 32KB) packet.
* Fixed the timestamps dumped to stdout when debugging the PacketHandler.
* Drop packets that would expand our inbound window beyond our maximum
buffer size (default 32 messages)
* Always read the ACK/NACK data from the verified packets received, even
if we are going to drop them
* Always adjust the window when there are messages ACKed, though do not
change its size except as before.
* Streamlined some synchronization in the router's I2CP handling
* Streamlined some memory allocation in the SAM bridge
* Default the streaming lib to disconnect on inactivity, rather than send
an empty message.
this still doesnt get the BT to where it needs to be, or fix the timeout problem,
but i dont like having so many commits outstanding and these updates are sound
2004-12-01 jrandom
* Fixed a stupid typo that inadvertantly allowed persistent HTTP
connections to work (thanks duck!)
* Make sure we override the inactivity timeout too
2004-12-01 jrandom
* Fixed a stupid typo that inadvertantly allowed persistent HTTP
connections to work (thanks duck!)
* Make sure we override the inactivity timeout too
2004-12-01 jrandom
* Strip out any of the Accept-* HTTP header lines, and always make sure to
include the forged User-agent header.
* Adjust the default read timeout on the eepproxy to 60s, unless
overridden.
* Minor tweak on stream shutdown.
* Render the burst rate fields on /config.jsp properly (thanks ugha!)
* Build in a simple timeout to flush data queued into the I2PSocket but
not yet flushed.
* Don't explicitly flush after each SAM stream write, but leave it up to
the [nonblocking] passive flush.
* Don't whine about 10-99 connection events occurring in a second
* Don't wait for completion of packets that will not be ACKed (duh)
* Adjust the congestion window, even if the packet was resent (duh)
* Make sure to wake up any blocking read()'s when the MessageInputStream
is close()ed (duh)
* Never wait more than the disconnect timeout for a write to complete
* Reduced contention for local client delivery
* Drop the new code that munges the wrapper.config. Instead, updates that
need to change it will include their own wrapper.config in the
i2pupdate.zip, overwriting the existing file. If the file
"wrapper.config.updated" is included, it is deleted at first opportunity
and the router shut down, displaying a notice that the router must be
started again cleanly to allow the changes to the wrapper.config to take
effect.
* Properly stop accept()ing I2PSocket connections if we close down the
session (duh).
* Make sure we cancel any outstanding Packets in flight when a connection
is terminated (thanks susi!)
* Split up the I2PTunnel closing a little further.
* Reduced contention for local client delivery
* Drop the new code that munges the wrapper.config. Instead, updates that
need to change it will include their own wrapper.config in the
i2pupdate.zip, overwriting the existing file. If the file
"wrapper.config.updated" is included, it is deleted at first opportunity
and the router shut down, displaying a notice that the router must be
started again cleanly to allow the changes to the wrapper.config to take
effect.
* Properly stop accept()ing I2PSocket connections if we close down the
session (duh).
* Make sure we cancel any outstanding Packets in flight when a connection
is terminated (thanks susi!)
* Split up the I2PTunnel closing a little further.
* Accept IP address detection changes with a 2-out-of-3 minimum.
* As long as the router is up, keep retrying to bind the I2CP listener.
* Decrease the java service wrapper ping frequency to once every 10
minutes, rather than once every 5 seconds.
* Accept IP address detection changes with a 2-out-of-3 minimum.
* As long as the router is up, keep retrying to bind the I2CP listener.
* Decrease the java service wrapper ping frequency to once every 10
minutes, rather than once every 5 seconds.
* Some cleanup and bugfixes for the IP address detection code where we
only consider connections that have actually sent and received messages
recently as active, rather than the mere presence of a TCP socket as
activity.
* Removed the I2PTunnel inactivity timeout thread, since the new streaming
lib can do that (without an additional per-connection thread).
* Close the I2PTunnel forwarder threads more aggressively
* Fix for a fast loop caused by a race in the new streaming library (thanks
DrWoo, frontier, pwk_, and thetower!)
* Minor updates to the SimpleTimer and Connection to help track down a
high CPU usage problem (dumping debug info to stdout/wrapper.log if too
many events/tasks fire in a second)
* Minor fixes for races on client disconnects (causing NPEs)
* 2004-11-26 0.4.2 released
2004-11-26 jrandom
* Enable the new streaming lib as the default. That means, for any
substantial definition, it is NOT BACKWARDS COMPATIBLE.
* Revised the installer to include start menu and desktop shortcuts for
windows platforms, including pretty icons (thanks DrWoo!)
* Allow clients specified in clients.config to have an explicit startup
delay.
* Update the default install to launch a browser pointing at the console
whenever I2P starts up, rather than only the first time it starts up
(configurable on /configservice.jsp, or in clients.config)
* Bugfix to the clock skew checking code to monitor the delta between
offsets, not the offset itself (duh)
* Router console html update
* New (and uuuuugly) code to verify that the wrapper.config contains
the necessary classpath entries on update. If it has to update the
wrapper.config, it will stop the JVM and service completely, since the
java service wrapper doesn't reread the wrapper.config on JVM restart -
requiring the user to manually restart the service after an update.
* Increase the TCP connection timeout to 30s (which is obscenely long)
* Revised the installer to include start menu and desktop shortcuts for
windows platforms, including pretty icons (thanks DrWoo!)
* Allow clients specified in clients.config to have an explicit startup
delay.
* Update the default install to launch a browser pointing at the console
whenever I2P starts up, rather than only the first time it starts up
(configurable on /configservice.jsp, or in clients.config)
* Bugfix to the clock skew checking code to monitor the delta between
offsets, not the offset itself (duh)
* Router console html update
* New (and uuuuugly) code to verify that the wrapper.config contains
the necessary classpath entries on update. If it has to update the
wrapper.config, it will stop the JVM and service completely, since the
java service wrapper doesn't reread the wrapper.config on JVM restart -
requiring the user to manually restart the service after an update.
* Increase the TCP connection timeout to 30s (which is obscenely long)
------------------------------------------------
* Update to the SAM bridge to reduce some unnecessary memory allocation.
* New stat to keep track of slow jobs (ones that take more than a second
to excute). This is published in the netDb as jobQueue.jobRunSlow