- Nov 08, 2004
-
-
* Remove spurious flush calls from I2PTunnel, and work with the I2PSocket's output stream directly (as the various implementations do their own buffering). * Another pass at a long standing JobQueue bug - dramatically simplify the job management synchronization since we dont need to deal with high contention (unlike last year when we had dozens of queue runners going at once). * Logging
-
- Nov 07, 2004
-
-
-
* Expose a drop down on the /configclients.jsp to enter the outbound tunnel depth. * Improved *hosts.txt loading * Explicitly override the JVM's timezone settings to use GMT so that any client applications which use timezones won't leak sensitive data (thanks gott!) * Bundle sam.jar in the update (thanks duck!)
-
- Nov 06, 2004
-
- Nov 05, 2004
-
-
* Bugfixes and unit tests for the SAM bridge to handle quoted message parameters, verify proper operation after multiple session lifetimes, as well as some synchronization problems. * New properties method on the DataHelper class. * Address a race on fast disconnecting clients
-
- Nov 02, 2004
-
- Nov 01, 2004
-
-
* Increase the tunnel test timeout rapidly if our tunnels are failing. * Honor message expirations for some tunnel jobs that were prematurely expired. * Streamline memory usage with temporary object caches and more efficient serialization for SHA256 calculation, logging, and both I2CP and I2NP message handling. * Fix some situations where we forward messages too eagerly. For a request at the tunnel endpoint, if the tunnel is inbound and the target is remote, honor the message by tunnel routing the data rather than sending it directly to the requested location.
-
- Oct 30, 2004
-
-
2004-10-30 jrandom * Cache the temporary objects used in the AES encryption/decryption process so that AES doesn't require any memory allocation to process data. * Dramatically reduce memory usage within various crypto implementations by avoiding unnecessary (though simplifying) buffers. * If we specify some tags to be sent in an I2CP message explicitly, use only those, not those plus a new set (otherwise we aren't sure on ACK which set was delivered) * Allow configuration for the partial send timeout (how long before resending a message down a different tunnel in a lease). This can be updated with the "router.clientPartialSendTimeout" router config prop. * Logging
-
- Oct 28, 2004
-
- Oct 24, 2004
-
-
* Allow explicit inclusion of session tags in the SDK, enabling the resending of tags bundled with messages that would not otherwise be ACKed. * Don't force mode=guaranteed for end to end delivery - if mode=bestEffort no DeliveryStatusMessage will be bundled (and as such, client apps using it will need to do their own session tag ack/nack). * Handle client errors when notifying them of message availability. * New StreamSinkSend which sends a file to a destination and disconnects. * Update the I2PSocketManagerFactory to build the specific I2PSocketManager instance based on the "i2p.streaming.manager" property, containing the class name of the I2PSocketManager implementation to instantiate.
-
- Oct 18, 2004
-
-
- Oct 17, 2004
-
- Oct 16, 2004
-
- Oct 15, 2004
-
- Oct 14, 2004
-
-
* Allow for a configurable tunnel "growth factor", rather than trying to achieve a steady state. This will let us grow gradually when the router is needed more, rather than blindly accepting the request or arbitrarily choking it at an averaged value. Configure this with "router.tunnelGrowthFactor" in the router.config (default "1.5"). * Adjust the tunnel test timeouts dynamically - rather than the old flat 30s (!!!) timeout, we set the timeout to 2x the average tunnel test time (the deviation factor can be adjusted by setting "router.tunnelTestDeviation" to "3.0" or whatever). This should help find the 'good' tunnels. * Added some crazy debugging to try and track down an intermittent hang.
-
- Oct 13, 2004
-
- Oct 12, 2004
-
-
* Disable the probabalistic drop by default (enable via the router config property "tcp.dropProbabalistically=true") * Disable the actual watchdog shutdown by default, but keep track of more variables and log a lot more when it occurs (enable via the router config property "watchdog.haltOnHang=true") * Implement some tunnel participation smoothing by refusing requests probabalistically as our participating tunnel count exceeds the previous hour's, or when the 10 minute average tunnel test time exceeds the 60 minute average tunnel test time. The probabilities in both cases are oldAverage / #current, so if you're suddenly flooded with 200 tunnels and you had previously only participated in 50, you'll have a 25% chance of accepting a subsequent request.
-
- Oct 10, 2004
-
-
-
* Added a watchdog timer to do some baseline liveliness checking to help debug some odd errors. * Added a pair of summary stats for bandwidth usage, allowing easy export with the other stats ("bw.sendBps" and "bw.receiveBps") * Trimmed another memory allocation on message reception.
-
- Oct 08, 2004
-
- Oct 07, 2004
-
- Oct 06, 2004
-
-
* Implement an active queue management scheme on the TCP transports, dropping messages probabalistically as the queue fills up. The estimated queue capacity is determined by the rate at which messages have been sent to the peer (averaged at 1, 5, and 60m periods). As we exceed 1/2 of the estimated capacity, we drop messages throughout the queue probabalistically with regards to their size. This is based on RFC 2309's RED, with the minimum threshold set to 1/2 the estimated connection capacity. We may want to consider using a send rate and queue size measured across all connections, to deal with our own local bandwidth saturation, but we'll try the per-con metrics first.
-
- Oct 05, 2004
-
- Oct 04, 2004
-
- Oct 03, 2004
-
-
* Add a new stat logging component to optionally dump the raw stats to disk as they are generated, rather than rely upon the summarized data. By default, this is off, but the router property "stat.logFilters" can be set to a comma delimited list of stats (e.g. "client.sendAckTime") which will be written to the file "stats.log" (or whatever the property "stat.logFile" is set to). This can also log profile related stats, such as "dbResponseTime" or "tunnelTestResponseTime".
-
- Oct 02, 2004
-