1500 lines
70 KiB
Plaintext
1500 lines
70 KiB
Plaintext
$Id: history.txt,v 1.190 2005/04/08 07:39:20 smeghead Exp $
|
|
|
|
2005-04-08 smeghead
|
|
* Added NativeBigInteger benchmark to scripts/i2pbench.sh.
|
|
|
|
2005-04-08 smeghead
|
|
* Security improvements to TrustedUpdate: signing and verification of the
|
|
version string along with the data payload for signed update files
|
|
(consequently the positions of the DSA signature and version string fields
|
|
have been swapped in the spec for the update file's header); router will
|
|
no longer perform a trusted update if the signed update's version is lower
|
|
than or equal to the currently running router's version.
|
|
* Added two new CLI commands to TrustedUpdate: showversion, verifyupdate.
|
|
* Extended TrustedUpdate public API for use by third party applications.
|
|
|
|
* 2005-04-06 0.5.0.6 released
|
|
|
|
2005-04-05 jrandom
|
|
* Retry I2PTunnel startup if we are unable to build a socketManager for a
|
|
client or httpclient tunnel.
|
|
* Add some basic sanity checking on the I2CP settings (thanks duck!)
|
|
|
|
2005-04-05 jrandom
|
|
* After a successfull netDb search for a leaseSet, republish it to all of
|
|
the peers we have tried so far who did not give us the key (up to 10),
|
|
rather than the old K closest (which may include peers who had given us
|
|
the key)
|
|
* Don't wait 5 minutes to publish a leaseSet (duh!), and rather than
|
|
republish it every 5 minutes, republish it every 3. In addition, always
|
|
republish as soon as the leaseSet changes (duh^2).
|
|
* Minor fix for oddball startup race (thanks travis_bickle!)
|
|
* Minor AES update to allow in-place decryption.
|
|
|
|
2005-04-03 jrandom
|
|
* EepGet fix for open-ended HTTP fetches (such as the news.xml
|
|
feeding the NewsFetcher)
|
|
|
|
2005-04-01 jrandom
|
|
* Allow editing I2PTunnel server instances with five digit ports
|
|
(thanks nickless_head!)
|
|
* More NewsFetcher debugging for reported weirdness
|
|
|
|
2005-04-01 jrandom
|
|
* Fix to check for missing news file (thanks smeghead!)
|
|
* Added destination display CLI:
|
|
java -cp lib/i2p.jar net.i2p.data.Destination privKeyFilename
|
|
* Added destination display to the web interface (thanks pnspns)
|
|
* Installed CIA backdoor
|
|
|
|
* 2005-03-29 0.5.0.5 released
|
|
|
|
2005-03-29 jrandom
|
|
* Decreased the initial RTT estimate to 10s to allow more retries.
|
|
* Increased the default netDb store replication factor from 2 to 6 to take
|
|
into consideration tunnel failures.
|
|
* Address some statistical anonymity attacks against the netDb that could
|
|
be mounted by an active internal adversary by only answering lookups for
|
|
leaseSets we received through an unsolicited store.
|
|
* Don't throttle lookup responses (we throttle enough elsewhere)
|
|
* Fix the NewsFetcher so that it doesn't incorrectly resume midway through
|
|
the file (thanks nickster!)
|
|
* Updated the I2PTunnel HTML (thanks postman!)
|
|
* Added support to the I2PTunnel pages for the URL parameter "passphrase",
|
|
which, if matched against the router.config "i2ptunnel.passphrase" value,
|
|
skips the nonce check. If the config prop doesn't exist or is blank, no
|
|
passphrase is accepted.
|
|
* Implemented HMAC-SHA256.
|
|
* Enable the tunnel batching with a 500ms delay by default
|
|
* Dropped compatability with 0.5.0.3 and earlier releases
|
|
|
|
2005-03-26 jrandom
|
|
* Added some error handling and fairly safe to cache data to the streaming
|
|
lib (good call Tom!)
|
|
|
|
2005-03-25 jrandom
|
|
* Fixed up building dependencies for the routerconsole on some more
|
|
aggressive compilers (thanks polecat!)
|
|
|
|
* 2005-03-24 0.5.0.4 released
|
|
|
|
2005-03-23 jrandom
|
|
* Added more intelligent version checking in news.xml, in case we have a
|
|
version newer than the one specified.
|
|
|
|
2005-03-23 jrandom
|
|
* Added support for Transfer-Encoding: chunked to the EepGet, so that the
|
|
cvsweb.cgi doesn't puke on us.
|
|
|
|
2005-03-23 Connelly
|
|
* Fixed Bugzilla Bug #99 in the SAM Bridge, which caused pending
|
|
stream send data to not be sent if STREAM CLOSE is issued too fast.
|
|
|
|
2005-03-23 jrandom
|
|
* Implemented the news fetch / update policy code, as configurated on
|
|
/configupdate.jsp. Defaults are to grab the news every 24h (or if it
|
|
doesn't exist yet, on startup). No action is taken however, though if
|
|
the news.xml specifies that a new release is available, an option to
|
|
update will be shown on the router console.
|
|
* New initialNews.xml delivered with new installs, and moved news.xml out
|
|
of the i2pwww module and into the i2p module so that we can bundle it
|
|
within each update.
|
|
|
|
2005-03-23 jrandom
|
|
* New /configupdate.jsp page for controlling the update / notification
|
|
process, as well as various minor related updates. Note that not all
|
|
options are exposed yet, and the update detection code isn't in place
|
|
in this commit - it currently says there is always an update available.
|
|
* New EepGet component for reliable downloading, with a CLI exposed in
|
|
java -cp lib/i2p.jar net.i2p.util.EepGet url
|
|
* Added a default signing key to the TrustedUpdate component to be used
|
|
for verifying updates. This signing key can be authenticated via
|
|
gpg --verify i2p/core/java/src/net/i2p/crypto/TrustedUpdate.java
|
|
* New public domain SHA1 implementation for the DSA code so that we can
|
|
handle signing streams of arbitrary size without excess memory usage
|
|
(thanks P.Verdy!)
|
|
* Added some helpers to the TrustedUpdate to work off streams and to offer
|
|
a minimal CLI:
|
|
TrustedUpdate keygen pubKeyFile privKeyFile
|
|
TrustedUpdate sign origFile signedFile privKeyFile
|
|
TrustedUpdate verify signedFile
|
|
|
|
2005-03-22 smeghead
|
|
* New TrustedUpdate component for signing/verifying files with a DSA
|
|
signature.
|
|
|
|
2005-03-21 jrandom
|
|
* Fixed the tunnel fragmentation handler to deal with multiple fragments
|
|
in a single message properly (rather than release the buffer into the
|
|
cache after processing the first one) (duh!)
|
|
* Added the batching preprocessor which will bundle together multiple
|
|
small messages inside a single tunnel message by delaying their delivery
|
|
up to .5s, or whenever the pending data will fill a full message,
|
|
whichever comes first. This is disabled at the moment, since without the
|
|
above bugfix widely deployed, lots and lots of messages would fail.
|
|
* Within each tunnel pool, stick with a randomly selected peer for up to
|
|
.5s before randomizing and selecting again, instead of randomizing the
|
|
pool each time a tunnel is needed.
|
|
|
|
* 2005-03-18 0.5.0.3 released
|
|
|
|
2005-03-18 jrandom
|
|
* Minor tweak to the timestamper to help reduce small skews
|
|
* Adjust the stats published to include only the relevent ones
|
|
* Only show the currently used speed calculation on the profile page
|
|
* Allow the full max # resends to be sent, rather than piggybacking the
|
|
RESET packet along side the final resend (duh)
|
|
* Add irc.postman.i2p to the default list of IRC servers for new installs
|
|
* Drop support for routers running 0.5 or 0.5.0.1 while maintaining
|
|
backwards compatability for users running 0.5.0.2.
|
|
|
|
2005-03-18 jrandom
|
|
* Eepproxy Fix for corrupted HTTP headers (thanks nickster!)
|
|
* Fixed case sensitivity issues on the HTTP headers (thanks duck!)
|
|
|
|
2005-03-17 jrandom
|
|
* Update the old speed calculator and associated profile data points to
|
|
use a non-tiered moving average of the tunnel test time, avoiding the
|
|
freshness issues of the old tiered speed stats.
|
|
* Explicitly synchronize all of the methods on the PRNG, rather than just
|
|
the feeder methods (sun and kaffe only need the feeder, but it seems ibm
|
|
needs all of them synchronized).
|
|
* Properly use the tunnel tests as part of the profile stats.
|
|
* Don't flood the jobqueue with sequential persist profile tasks, but
|
|
instead, inject a brief scheduling delay between them.
|
|
* Reduce the TCP connection establishment timeout to 20s (which is still
|
|
absurdly excessive)
|
|
* Reduced the max resend delay to 30s so we can get some resends in when
|
|
dealing with client apps that hang up early (e.g. wget)
|
|
* Added more alternative socketManager factories (good call aum!)
|
|
|
|
2005-03-16 jrandom
|
|
* Adjust the old speed calculator to include end to end RTT data in its
|
|
estimates, and use that as the primary speed calculator again.
|
|
* Use the mean of the high capacity speeds to determine the fast
|
|
threshold, rather than the median. Perhaps we should use the mean of
|
|
all active non-failing peers?
|
|
* Updated the profile page to sort by tier, then alphabetically.
|
|
* Added some alternative socketManager factories (good call aum!)
|
|
|
|
2005-03-14 jrandom
|
|
* New strict speed calculator that goes off the actual number of messages
|
|
verifiably sent through the peer by way of tunnels. Initially, this only
|
|
contains the successful message count on inbound tunnels, but may be
|
|
augmented later to include verified outbound messages, peers queried in
|
|
the netDb, etc. The speed calculation decays quickly, but should give
|
|
a better differential than the previous stat (both values are shown on
|
|
the /profiles.jsp page)
|
|
|
|
2005-03-11 jrandom
|
|
* Rather than the fixed resend timeout floor (10s), use 10s+RTT as the
|
|
minimum (increased on resends as before, of course).
|
|
* Always prod the clock update listeners, even if just to tell them that
|
|
the time hasn't changed much.
|
|
* Added support for explicit peer selection for individual tunnel pools,
|
|
which will be useful in debugging but not recommended for use by normal
|
|
end users.
|
|
* More aggressively search for the next hop's routerInfo on tunnel join.
|
|
* Give messages received via inbound tunnels that are bound to remote
|
|
locations sufficient time (taking into account clock skew).
|
|
* Give alternate direct send messages sufficient time (10s min, not 5s)
|
|
* Always give the end to end data message the explicit timeout (though the
|
|
old default was sufficient before)
|
|
* No need to give end to end messages an insane expiration (+2m), as we
|
|
are already handling skew on the receiving side.
|
|
* Don't complain too loudly about expired TunnelCreateMessages (at least,
|
|
not until after all those 0.5 and 0.5.0.1 users upgrade ;)
|
|
* Properly keep the sendBps stat
|
|
* When running the router with router.keepHistory=true, log more data to
|
|
messageHistory.txt
|
|
* Logging updates
|
|
* Minor formatting updates
|
|
|
|
2005-03-08 jrandom
|
|
* More aggressively adjust the clock
|
|
|
|
2005-03-07 jrandom
|
|
* Fix the HTTP response header filter to allow multiple headers with the
|
|
same name (thanks duck and spotteri!)
|
|
|
|
* 2005-03-06 0.5.0.2 released
|
|
|
|
2005-03-06 jrandom
|
|
* Allow the I2PTunnel web interface to select streaming lib options for
|
|
individual client tunnels, rather than sharing them across all of them,
|
|
as we do with the session options. This way people can (and should) set
|
|
the irc proxy to interactive and the eepproxy to bulk.
|
|
* Added a startRouter.sh script to new installs which simply calls
|
|
"sh i2prouter start". This should make it clear how people should start
|
|
I2P.
|
|
* Properly expand the HTTP response header buffer (thanks shendaras!)
|
|
|
|
2005-03-04 jrandom
|
|
* Filter HTTP response headers in the eepproxy, forcing Connection: close
|
|
so that broken (/malicious) webservers can't allow persistent
|
|
connections. All HTTP compliant browsers should now always close the
|
|
socket.
|
|
* Enabled the GZIPInputStream's cache (they weren't cached before)
|
|
* Make sure our first send is always a SYN (duh)
|
|
* Workaround for some buggy compilers
|
|
|
|
2005-03-03 jrandom
|
|
* Loop while starting up the I2PTunnel instances, in case the I2CP
|
|
listener isn't up yet (thanks detonate!)
|
|
* Implement custom reusable GZIP streams to both reduce memory churn
|
|
and prevent the exposure of data in the standard GZIP header (creation
|
|
time, OS, etc). This is RFC1952 compliant, and backwards compatible,
|
|
though has only been tested within the confines of I2P's compression use
|
|
(DataHelper.[de]compress).
|
|
* Preemptively support the next protocol version, so that after the 0.5.0.2
|
|
release, we'll be able to drop protocol=2 to get rid of 0.5 users.
|
|
|
|
2005-03-02 jrandom
|
|
* Fix one substantial OOM cause (session tag manager was only dropping
|
|
tags once the critical limit was met, rather than honoring their
|
|
expiration) (duh)
|
|
* Lots of small memory fixes
|
|
* Double the allowable concurrent outstanding tunnel build tasks (20)
|
|
|
|
2005-03-01 jrandom
|
|
* Really disable the streaming lib packet caching
|
|
* Synchronized a message handling point in the SDK (even though its use is
|
|
already essentially single threaded, its better to play it safe)
|
|
* Don't add new RepublishLeaseSetJobs on failure, just requeue up the
|
|
existing one (duh)
|
|
* Throttle the number of concurrent pending tunnel builds across all
|
|
pools, in addition to simply throttling the number of new requests per
|
|
minute for each pool individually. This should avoid the cascading
|
|
failure when tunnel builds take too long, as no new builds will be
|
|
created until the previous ones are handled.
|
|
* Factored out and extended the DataHelper's unit tests for dealing with
|
|
long and date formatting.
|
|
* Explicitly specify the HTTP auth realm as "i2prouter", though this
|
|
alone doesn't address the bug where jetty asks for authentication too
|
|
much. (thanks orion!)
|
|
* Updated the StreamSinkServer to ignore all read bytes, rather than write
|
|
them to the filesystem.
|
|
|
|
2005-02-27 jrandom
|
|
* Don't rerequest leaseSets if there are already pending requests
|
|
* Reverted the insufficiently tested caching in the DSA/SHA1 impl, and
|
|
temporary disabled the streaming lib packet caching.
|
|
* Reduced the resend RTT penalty to 10s
|
|
|
|
2005-02-26 jrandom
|
|
* Force 1.3-isms on the precompiled jsps too (thanks laberhost)
|
|
|
|
2005-02-26 jrandom
|
|
* Further streaming lib caching improvements
|
|
* Reduce the minimum RTT (used to calculate retry timeouts), but also
|
|
increase the RTT on resends.
|
|
* Lower the default message size to 4KB from 16KB to further reduce the
|
|
chance of failed fragmentation.
|
|
* Extend tunnel rebuild throttling to include fallback rebuilds
|
|
* If there are less than 20 routers known, don't drop the last 20 (to help
|
|
avoid dropping all peers under catastrophic failures)
|
|
* New stats for end to end messages - "client.leaseSetFoundLocally",
|
|
"client.leaseSetFoundRemoteTime", and "client.leaseSetFailedRemoteTime"
|
|
|
|
2005-02-24 jrandom
|
|
* Throttle the number of tunnel rebuilds per minute, preventing CPU
|
|
overload under catastrophic failures (thanks Tracker and cervantes!)
|
|
* Block the router startup process until we've initialized the clock
|
|
|
|
2005-02-24 jrandom
|
|
* Cache temporary memory allocation in the DSA's SHA1 impl, and the packet
|
|
data in the streaming lib.
|
|
* Fixed a streaming lib bug where the connection initiator would fail the
|
|
stream if the ACK to their SYN was lost.
|
|
|
|
2005-02-23 jrandom
|
|
* Now that we don't get stale SAM sessions, it'd be nice if we didn't
|
|
get stale tunnel pools, don't you think?
|
|
|
|
* 2005-02-23 0.5.0.1 released
|
|
|
|
2005-02-22 jrandom
|
|
* Reworked the tunnel (re)building process to remove the tokens and
|
|
provide cleaner controls on the tunnels built.
|
|
* Fixed situations where the timestamper wanted to test more servers than
|
|
were provided (thanks Tracker!)
|
|
* Get rid of the dead SAM sessions by using the streaming lib's callbacks
|
|
(thanks Tracker!)
|
|
|
|
2005-02-22 jrandom
|
|
* Temporary workaround for the I2CP disconnect bug (have the streaminglib
|
|
try to automatically reconnect on accept()/connect(..)).
|
|
* Loop check for expired lease republishing (just in case)
|
|
|
|
2005-02-22 jrandom
|
|
* Adjusted (and fixed...) the timestamper change detection
|
|
* Deal with a rare reordering bug at the beginning of a stream (so we
|
|
don't drop it unnecessarily)
|
|
* Cleaned up some dropped message handling in the router
|
|
* Reduced job queue churn when dealing with a large number of tunnels by
|
|
sharing an expiration job
|
|
* Keep a separate list of the most recent CRIT messages (shown on the
|
|
logs.jsp). This way they don't get buried among any other messages.
|
|
* For clarity, display the tunnel variance config as "Randomization" on
|
|
the web console.
|
|
* If lease republishing fails (boo! hiss!) try it again
|
|
* Actually fix the negative jobLag in the right place (this time)
|
|
* Allow reseeding when there are less than 10 known peer references
|
|
* Lots of logging updates.
|
|
|
|
2005-02-20 jrandom
|
|
* Allow the streaming lib resend frequency to drop down to 20s as the
|
|
minimum, so that up to 2 retries can get sent on an http request.
|
|
* Add further limits to failsafe tunnels.
|
|
* Keep exploratory and client tunnel testing and building stats separate.
|
|
* Only use the 60s period for throttling tunnel requests due to transient
|
|
network overload.
|
|
* Rebuild tunnels earlier (1-3m before expiration, by default)
|
|
* Cache the next hop's routerInfo for participating tunnels so that the
|
|
tunnel participation doesn't depend on the netDb.
|
|
* Fixed a long standing bug in the streaming lib where we wouldn't always
|
|
unchoke messages when the window size grows.
|
|
* Make sure the window size never reaches 0 (duh)
|
|
|
|
2005-02-20 jrandom
|
|
* Only build failsafe tunnels if we need them
|
|
* Properly implement the selectNotFailingPeers so that we get a random
|
|
selection of peers, rather than using the strictOrdering (thanks dm!)
|
|
* Don't include too many "don't tell me about" peer references in the
|
|
lookup message - only send the 10 peer references closest to the target.
|
|
|
|
2005-02-19 jrandom
|
|
* Only build new extra tunnels on failure if we don't have enough
|
|
* Fix a fencepost in the tunnel building so that e.g. a variance of
|
|
2 means +/- 2, not +/- 1 (thanks dm!)
|
|
* Avoid an NPE on client disconnect
|
|
* Never select a shitlisted peer to participate in a tunnel
|
|
* Have netDb store messages timeout after 10s, not the full 60s (duh)
|
|
* Keep session tags around for a little longer, just in case (grr)
|
|
* Cleaned up some closing event issues on the streaming lib
|
|
* Stop bundling the jetty 5.1.2 and updated wrapper.config in the update
|
|
so that 0.4.* users will need to do a clean install, but we don't need
|
|
to shove an additional 2MB in each update to those already on 0.5.
|
|
* Imported the susimail css (oops, thanks susi!)
|
|
|
|
* 2005-02-18 0.5 released
|
|
|
|
2005-02-17 jrandom
|
|
* If the clock is adjusted during a job run, don't act as if the job took
|
|
negative time.
|
|
|
|
2005-02-17 jrandom
|
|
* Included the GPL'ed susimail 0.13 by default (thanks susi23!)
|
|
|
|
2005-02-17 jrandom
|
|
* Fixed the braindead tunnel testing logic
|
|
* If a large number of tunnels are failing (within the last 5-10 minutes)
|
|
and the current tunnel pool's configuration allows it, randomly build a
|
|
zero hop tunnel to replace failed tunnels.
|
|
* Enable postman's POP3 and SMTP tunnels by default
|
|
|
|
2005-02-16 jrandom
|
|
* Added some error handling when the number of session tags exceeds the
|
|
realistic capacity, dropping a random chunk of received tag sets and
|
|
conducting some minor analysis of the remaining ones. This is a part
|
|
of a pretty serious error condition, and logs as CRIT (if/when people
|
|
see "TOO MANY SESSION TAGS!", please let me know the full log line it
|
|
puts in the wrapper.log or /logs.jsp)
|
|
* Update the addressbook to only write to the published hosts location
|
|
if the addressbook's config contains "should_publish=true" (by default,
|
|
it contains "should_publish=false")
|
|
|
|
2005-02-16 jrandom
|
|
* (Merged the 0.5-pre branch back into CVS HEAD)
|
|
* Replaced the old tunnel routing crypto with the one specified in
|
|
router/doc/tunnel-alt.html, including updates to the web console to view
|
|
and tweak it.
|
|
* Provide the means for routers to reject tunnel requests with a wider
|
|
range of responses:
|
|
probabalistic rejection, due to approaching overload
|
|
transient rejection, due to temporary overload
|
|
bandwidth rejection, due to persistent bandwidth overload
|
|
critical rejection, due to general router fault (or imminent shutdown)
|
|
The different responses are factored into the profiles accordingly.
|
|
* Replaced the old I2CP tunnel related options (tunnels.depthInbound, etc)
|
|
with a series of new properties, relevent to the new tunnel routing code:
|
|
inbound.nickname (used on the console)
|
|
inbound.quantity (# of tunnels to use in any leaseSets)
|
|
inbound.backupQuantity (# of tunnels to keep in the ready)
|
|
inbound.length (# of remote peers in the tunnel)
|
|
inbound.lengthVariance (if > 0, permute the length by adding a random #
|
|
up to the variance. if < 0, permute the length
|
|
by adding or subtracting a random # up to the
|
|
variance)
|
|
outbound.* (same as the inbound, except for the, uh, outbound tunnels
|
|
in that client's pool)
|
|
There are other options, and more will be added later, but the above are
|
|
the most relevent ones.
|
|
* Replaced Jetty 4.2.21 with Jetty 5.1.2
|
|
* Compress all profile data on disk.
|
|
* Adjust the reseeding functionality to work even when the JVM's http proxy
|
|
is set.
|
|
* Enable a poor-man's interactive-flow in the streaming lib by choking the
|
|
max window size.
|
|
* Reduced the default streaming lib max message size to 16KB (though still
|
|
configurable by the user), also doubling the default maximum window
|
|
size.
|
|
* Replaced the RouterIdentity in a Lease with its SHA256 hash.
|
|
* Reduced the overall I2NP message checksum from a full 32 byte SHA256 to
|
|
the first byte of the SHA256.
|
|
* Added a new "netId" flag to let routers drop references to other routers
|
|
who we won't be able to talk to.
|
|
* Extended the timestamper to get a second (or third) opinion whenever it
|
|
wants to actually adjust the clock offset.
|
|
* Replaced that kludge of a timestamp I2NP message with a full blown
|
|
DateMessage.
|
|
* Substantial memory optimizations within the router and the SDK to reduce
|
|
GC churn. Client apps and the streaming libs have not been tuned,
|
|
however.
|
|
* More bugfixes than you can shake a stick at.
|
|
|
|
2005-02-13 jrandom
|
|
* Updated jbigi source to handle 64bit CPUs. The bundled jbigi.jar still
|
|
only contains 32bit versions, so build your own, placing libjbigi.so in
|
|
your install dir if necessary. (thanks mule!)
|
|
* Added support for libjbigi-$os-athlon64 to NativeBigInteger and CPUID
|
|
(thanks spaetz!)
|
|
|
|
2005-02-10 smeghead
|
|
* Initial check-in of Pants, a new utility to help us manage our 3rd-party
|
|
dependencies (Fortuna, Jetty, Java Service Wrapper, etc.). Some parts of
|
|
Pants are still non-functional at this time so don't mess with it yet
|
|
unless you want to potentially mangle your working copy of CVS.
|
|
|
|
2005-02-09 duck
|
|
* Allow an unneeded newline in the SAM client connection without
|
|
disconnecting.
|
|
|
|
2005-02-07 jrandom
|
|
* Fixed a race in the streaming lib's delayed flush algorithm (thanks anon!)
|
|
|
|
2005-02-06 Sugadude
|
|
* Added a filter to the addressbook to remove entries that dont end in ".i2p"
|
|
|
|
2005-02-03 smeghead
|
|
* Added Ant buildfile in apps/fortuna for creating a custom Fortuna PRNG jar
|
|
library from GNU Crypto's CVS HEAD sources.
|
|
|
|
2005-01-26 smeghead
|
|
* i2pProxy.pac, i2pbench.sh, and i2ptest.sh are now shipped with the dist
|
|
packages and installed to $i2pinstalldir/scripts.
|
|
* Added command line params to i2ptest.sh and i2pbench.sh: --gij to run them
|
|
using gij + libgcj, and --sourcedir to run them from the source tree
|
|
instead of the installation directory.
|
|
* Fixed unreachable for() statement clause in the KBucketImpl class that was
|
|
causing gcj to toss a compilation warning (jrandom++).
|
|
|
|
2005-01-26 smeghead
|
|
* Added a couple of scripts, i2ptest.sh and i2pbench.sh, to manage the core
|
|
tests and benchmarks.
|
|
* Routerconsole now builds under gcj 3.4.3.
|
|
* Corrected divide by zero error in TunnelId class under gcj (jrandom++).
|
|
|
|
2005-01-25 smeghead
|
|
* Tweaked some classes to enable gcj 3.4.3 to compile the router and
|
|
supporting apps (except for the routerconsole which is still being
|
|
investigated).
|
|
|
|
2005-01-24 smeghead
|
|
* C#-ification of sam-sharp: interface greatly simplified using delegates
|
|
and events; SamBaseEventHandler provides basic implementation and helper
|
|
methods but is now optional.
|
|
* NAnt buildfile and README added for sam-sharp.
|
|
|
|
2005-01-23 smeghead
|
|
* Port the java SAM client library to mono/C# and released into the
|
|
public domain. The 0.1 version of this port is available in CVS as
|
|
i2p/apps/sam/csharp/src/I2P.SAM.Client. The other nonfunctional C#
|
|
library has been removed.
|
|
|
|
2005-01-21 Jhor
|
|
* Updated jbigi build scripts for OSX.
|
|
|
|
2005-01-21 jrandom
|
|
* Added support for OSX to the NativeBigInteger code so that it will look
|
|
in the classpath for libjbigi-osx-none.jnilib. At the moment, that file
|
|
is not bundled with the shipped jbigi.jar yet though.
|
|
|
|
2005-01-18 jrandom
|
|
* Increased the max # session tags maintained and decreased slightly the
|
|
period over which they are gathered.
|
|
|
|
2005-01-17 jrandom
|
|
* Added meaningful support for adjusting the preferred message size in the
|
|
streaming lib by setting the i2p.streaming.maxMessageSize=32768 (or
|
|
whatever). The other side will mimic a reduction (but never an increase).
|
|
* Always make sure to use distinct ConnectionOption objects for each
|
|
connection (duh)
|
|
* Reduced the default ACK delay to 500ms on in the streaming lib
|
|
* Only shrink the streaming window once per window
|
|
* Don't bundle a new jetty.xml with updates
|
|
* Catch another local routerInfo corruption issue on startup.
|
|
|
|
2005-01-15 cervantes
|
|
* Added support to the eepproxy for URLs such as
|
|
http://localhost:4444/eepproxy/foo.i2p/bar/baz or even
|
|
http://localhost:4444/eepproxy/foo.i2p/?i2paddresshelper=base64
|
|
|
|
2005-01-15 jrandom
|
|
* Caught a series of (previously unhandled) errors caused by requeueing
|
|
messages that had timed out on the TCP transport (thanks mae^!)
|
|
* Reduce the barrier to dropping session tags on streaming lib resends -
|
|
every fourth send should drop the tags, forcing ElGamal encryption. This
|
|
will help speed up the recovery after a disconnect, rather than the drop
|
|
every fifth send.
|
|
|
|
* 2005-01-06 0.4.2.6 released
|
|
|
|
2005-01-06 jrandom
|
|
* Added a startup message to the addressbook, printing its version number
|
|
to stdout (which is sent to wrapper.config) when it loads.
|
|
* Updated the addressbook to reread the config file periodically
|
|
* Added orion.i2p to the list of eepsites on the default homepage
|
|
|
|
2005-01-05 jrandom
|
|
* Handle unexpected network read errors more carefully (thanks parg!)
|
|
* Added more methods to partially compare (DataHelper) and display
|
|
arrays (Base64.encode).
|
|
* Exposed the AES encryptBlock/decryptBlock on the context.aes()
|
|
* Be more generous on the throttle when just starting up the router
|
|
* Fix a missing scheduled event in the streaming lib (caused after reset)
|
|
* Add a new DisconnectListener on the I2PSocketManager to allow
|
|
notification of session destruction.
|
|
* Make sure our own router identity is valid, and if it isn't, build a new
|
|
one and restart the router. Alternately, you can run the Router with
|
|
the single command line argument "rebuild" and it will do the same.
|
|
|
|
2004-12-31 ragnarok
|
|
* Integrated latest addressbook changes (2.0.3) which include support for
|
|
deploying as a .war file with no existing addressbook configuration.
|
|
* Updated main build process to bundle the addressbook.war in the
|
|
i2pinstall.jar and i2pupdate.zip.
|
|
|
|
2004-12-31 jrandom
|
|
* Speling fxi (thanks digum!)
|
|
* Bugfix for the I2PTunnel web interface so that it now properly launches
|
|
newly added tunnels that are defined to be run on startup (thanks ugha!)
|
|
|
|
2004-12-30 jrandom
|
|
* Revised the I2PTunnel client and httpclient connection establishment
|
|
throttles. There is now a pool of threads that build the I2PSocket
|
|
connections with a default size of 5, configurable via the I2PTunnel
|
|
client option 'i2ptunnel.numConnectionBuilders' (if set to 0, it will
|
|
not throttle the number of concurrent builders, but will launch a thread
|
|
per socket during establishment). In addition, sockets accepted but
|
|
not yet allocated to one of the connection builders will be destroyed
|
|
after 30 seconds, configurable via 'i2ptunnel.maxWaitTime' (if set to
|
|
0, it will wait indefinitely).
|
|
|
|
2004-12-29 jrandom
|
|
* Imported Ragnarok's addressbook source (2.0.2) which is built but not
|
|
deployed in the i2pinstall.jar/i2pupdate.zip (yet).
|
|
* Don't treat connection inactivity closure as a connection error.
|
|
|
|
2004-12-29 jrandom
|
|
* Add in a new keepalive event on each TCP connection, proactively sending
|
|
a (tiny) time message every minute or two, as well as killing the
|
|
connection if no message has been fully sent within 5 minutes or so.
|
|
This should help deal with hung connections from IP address changes.
|
|
|
|
2004-12-28 jrandom
|
|
* Cleaned up the resending and choking algorithm in the streaming lib.
|
|
* Removed the read timeout override for I2PTunnel's httpclient, allowing
|
|
it to use the default for the streaming lib.
|
|
* Revised ack triggers in the streaming lib.
|
|
* Logging.
|
|
|
|
* 2004-12-21 0.4.2.5 released
|
|
|
|
2004-12-21 jrandom
|
|
* Track a new stat for expired client leases (client.leaseSetExpired).
|
|
|
|
2004-12-21 jrandom
|
|
* Cleaned up the postinstall/startup scripts a bit more to handle winME,
|
|
and added windows info to the headless docs. (thanks ardvark!)
|
|
* Fixed a harmless (yet NPE inspiring) race during the final shutdown of
|
|
a stream (thanks frosk!)
|
|
* Add a pair of new stats for monitoring tunnel participation -
|
|
tunnel.participatingBytesProcessed (total # bytes transferred) and
|
|
tunnel.participatingBytesProcessedActive (total # bytes transferred for
|
|
tunnels whose byte count exceed the 10m average). This should help
|
|
further monitor congestion issues.
|
|
* Made the NamingService factory property public (thanks susi!)
|
|
|
|
2004-12-20 jrandom
|
|
* No longer do a blocking DNS lookup within the jobqueue (thanks mule!)
|
|
* Set a 60s dns cache TTL, instead of 0s. Most users who used to use
|
|
dyndns/etc now just use IP autodetection, so the old "we need ttl=0"
|
|
reasoning is gone.
|
|
|
|
2004-12-19 jrandom
|
|
* Fix for a race on startup wrt the new stats (thanks susi!)
|
|
|
|
2004-12-19 jrandom
|
|
* Added three new stats - router.activePeers, router.fastPeers, and
|
|
router.highCapacityPeers, updated every minute
|
|
|
|
2004-12-19 jrandom
|
|
* Added a new i2ptunnel type: 'httpserver', allowing you to specify what
|
|
hostname should be sent to the webserver. By default, new installs will
|
|
have an httpserver pointing at their jetty instance with the spoofed
|
|
name 'mysite.i2p' (editable on the /i2ptunnel/edit.jsp page).
|
|
|
|
2004-12-19 scintilla
|
|
* Convert native jcpuid code from C++ to C. This should alleviate build
|
|
problems experienced by some users.
|
|
|
|
* 2004-12-18 0.4.2.4 released
|
|
|
|
2004-12-16 jrandom
|
|
* Catch another oddball case for a reset connection in the streaming lib.
|
|
* Add a dumpprofile.jsp page, called with ?peer=base64OfPeerHash, which
|
|
dumps the current state of that peer's profile. Instead of the full
|
|
base64, you can pass in however many characters you have and it will
|
|
return the first match found.
|
|
|
|
2004-12-16 jrandom
|
|
* Remove the randomized factor in the tunnel rejection by bandwidth -
|
|
we now accept the request if we've allocated less than our limit
|
|
and reject it if we've allocated more.
|
|
* Stick to the standard capacity scale on tunnel rejection, even for
|
|
the 10m period.
|
|
* Build the time message at the very last possible moment
|
|
|
|
2004-12-15 jrandom
|
|
* Handle hard disconnects more gracefully within the streaming lib, and
|
|
log unmonitored events more aggressively.
|
|
* If we drop a peer after connection due to clock skew, log it to the
|
|
/logs.jsp#connectionlogs with relevent info. In addition, toss it in
|
|
the stat 'tcp.disconnectAfterSkew'.
|
|
* Fixed the formatting in the skew display
|
|
* Added an ERROR message that is fired once after we run out of
|
|
routerInfo files (thanks susi!)
|
|
* Set the connect timeout equal to the streaming lib's disconnect timeout
|
|
if not already specified (the I2PTunnel httpclient already enforces a
|
|
60s connect timeout)
|
|
* Fix for another connection startup problem in the streaming lib.
|
|
* Fix for a stupid error in the probabalistic drop (rand <= P, not > P)
|
|
* Adjust the capacity calculations so that tunnel failures alone in the
|
|
last 10m will not trigger a 0 capacity rank.
|
|
|
|
2004-12-14 jrandom
|
|
* Periodically send a message along all I2NP connections with the router's
|
|
current time, allowing the receiving peer to determine that the clock
|
|
has skewed too much, and hence, disconnect. For backwards compatability
|
|
reasons, this is being kludged into a DeliveryStatusMessage (ewww). The
|
|
next time we have a backwards compatability break, we can put in a proper
|
|
message setup for it.
|
|
|
|
2004-12-14 jrandom
|
|
* Reenable the probabalistic drop on the TCP queues to deal with good old
|
|
fashioned bandwidth limiting. However, by default the probability is
|
|
rigged to reserve 0% of the queue free - meaning we just aggressively
|
|
fail messages in the queue if we're transferring too slowly. That
|
|
reservation factor can be increased with 'tcp.queueFreeFactor=0.25'
|
|
(or whatever) and the drop code can be disabled with the parameter
|
|
'tcp.dropProbabalistically=false'.
|
|
* Still penalize a peer on tunnel failure, but don't immediately drop
|
|
their capacity to 0.
|
|
* More aggressively ACK duplicates
|
|
* Randomize the timestamper period
|
|
* Display the clock skew on the connection logs when a peer sends it.
|
|
* Allow the timestamper to fix skews of up to 10 minutes
|
|
* Logging
|
|
|
|
2004-12-13 jrandom
|
|
* Added some error checking on the new client send job (thanks duck!)
|
|
* Implemented tunnel rejection based on bandwidth usage (rejecting tunnels
|
|
proportional to the bytes allocated in existing tunnels vs the bytes
|
|
allowed through the bandwidth limiter).
|
|
* Enable a new configuration parameter for triggering a tunnel rebuild
|
|
(tunnel.maxTunnelFailures), where that is the max allowed test failures
|
|
before killing the tunnel (default 0).
|
|
* Gather more data that we rank capacity by (now we monitor and balance the
|
|
data from 10m/30m/60m/1d instead of just 10m/60m/1d).
|
|
* Fix a truncation/type conversion problem on the long term capacity
|
|
values (we were ignoring the daily stats outright)
|
|
|
|
2004-12-11 jrandom
|
|
* Fix the missing HTTP timeout, which was caused by the deferred syn used
|
|
by default. This, in turn, meant the I2PSocket creation doesn't fail
|
|
on .connect, but is unable to transfer any data in any direction. We now
|
|
detect that condition for the I2PTunnelHTTPClient and throw up the right
|
|
error page.
|
|
* Logging
|
|
|
|
2004-12-11 jrandom
|
|
* Use a simpler and less memory intensive job for processing outbound
|
|
client messages when the session is in mode=bestEffort. We can
|
|
immediately discard the data as soon as its sent the first time,
|
|
rather than wait for an ack, since we will never internally resend.
|
|
* Reduce some synchronization to avoid a rare deadlock
|
|
* Replaced 'localhost' with 127.0.0.1 in the i2ptunnel config, and special
|
|
case it within the tunnel controller.
|
|
* Script cleanup for building jbigi/jcpuid
|
|
* Logging
|
|
|
|
* 2004-12-08 0.4.2.3 released
|
|
|
|
2004-12-08 jrandom
|
|
* 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
|
|
|
|
2004-12-06 jrandom
|
|
* 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!)
|
|
|
|
2004-12-06 jrandom
|
|
* Don't propogate streaming connection failures out to the SAM bridge as
|
|
fatal errors.
|
|
* Dont barf on repeated I2CP closure.
|
|
|
|
2004-12-05 jrandom
|
|
* Explicitly use "127.0.0.1" to bind the I2CP listener, not the JVM's
|
|
getLocalhost call
|
|
|
|
2004-12-05 jrandom
|
|
* Default the I2CP listener to localhost only, unless overridden by
|
|
i2cp.tcp.bindAllInterfaces=true (thanks dm!)
|
|
* More SAM fixes for things recently broken (whee)
|
|
|
|
2004-12-05 jrandom
|
|
* 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.
|
|
|
|
2004-12-05 jrandom
|
|
* Fixed some links in the console (thanks ugha!) and the javadoc
|
|
(thanks dinoman!)
|
|
* Fix the stream's passive flush timer (oh, its supposed to work?)
|
|
|
|
2004-12-03 jrandom
|
|
* 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.
|
|
|
|
2004-12-01 jrandom
|
|
* Fix for a race in the streaming lib as caused by some odd SAM activity
|
|
|
|
* 2004-12-01 0.4.2.2 released
|
|
|
|
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 0.4.2.1 released
|
|
|
|
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.
|
|
|
|
2004-11-30 jrandom
|
|
* 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
|
|
|
|
2004-11-29 jrandom
|
|
* Minor fixes to avoid unnecessary errors on shutdown (thanks susi!)
|
|
|
|
2004-11-29 jrandom
|
|
* 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.
|
|
|
|
2004-11-28 jrandom
|
|
* 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.
|
|
|
|
2004-11-27 jrandom
|
|
* 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.
|
|
|
|
2004-11-27 jrandom
|
|
* 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
|
|
|
|
2004-11-27 jrandom
|
|
* 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.
|
|
|
|
2004-11-25 jrandom
|
|
* 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)
|
|
|
|
2004-11-22 jrandom
|
|
* 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
|
|
|
|
2004-11-21 jrandom
|
|
* Update the I2PTunnel web interface to include an option for the new
|
|
streaming lib (which is ignored until the 0.4.2 release).
|
|
* Revised the I2PTunnel web interface to keep the I2CP options of client
|
|
and httpclient tunnels in sync, as they all share the same I2CP session.
|
|
|
|
2004-11-21 jrandom
|
|
* Only allow small clock skews after the first 10 minutes of operation
|
|
(to prevent later network lag bouncing us way off course - yes, we
|
|
really need an NTP impl to balance out the network burps...)
|
|
* Revamp the I2PTunnel web interface startup process so that everything
|
|
is shown immediately, so that different pieces hanging don't hang
|
|
the rest, and other minor bugfixes.
|
|
* Take note of SAM startup error (in case you're already running a SAM
|
|
bridge...)
|
|
* Increase the bandwidth limiter burst values available to 10-60s (or
|
|
whatever is placed in /configadvanced.jsp, of course)
|
|
|
|
2004-11-21 jrandom
|
|
* Allow end of line comments in the hosts.txt and other config files,
|
|
using '#' to begin the comments (thanks susi!)
|
|
* Add support to I2PTunnel's 'client' feature for picking between multiple
|
|
target destinations (e.g. 'client 6668 irc.duck.i2p,irc.baffled.i2p')
|
|
* Add a quick link on the left hand nav to reseed if there aren't enough
|
|
known peers, as well as link to the config page if there are no active
|
|
peers. Revised config page accordingly.
|
|
|
|
2004-11-21 jrandom
|
|
* Destroy ElGamal/AES+SessionTag keys after 15 minutes of inactivity
|
|
rather that every 15 minutes, and increase the warning period in which
|
|
we refresh tags from 30s to 2 minutes.
|
|
* Bugfix for a rare problem closing an I2PTunnel stream where we'd fail
|
|
to close the I2PSocket (leaving it to timeout).
|
|
|
|
2004-11-19 jrandom
|
|
* Off-by-one fix to the tunnel pool management code, along side some
|
|
explicit initialization. This can affect clients whose lengths are
|
|
shorter than the router's default (thanks duck!)
|
|
|
|
2004-11-17 jrandom
|
|
* Fix to propogate i2psocket options into the SAM bridge correctly (thanks
|
|
Ragnarok!)
|
|
|
|
2004-11-17 jrandom
|
|
* Minor logging update.
|
|
|
|
2004-11-16 jrandom
|
|
* Clean up the propogation of i2psocket options so that various streaming
|
|
libs can honor them more precisely
|
|
|
|
2004-11-16 jrandom
|
|
* Minor logging update
|
|
|
|
2004-11-14 jrandom
|
|
* Fix a long standing leak in I2PTunnel (hanging on to i2psocket objects)
|
|
* Fix a leak injected into the SimpleTimer
|
|
* Fix a race condition in the tunnel message handling
|
|
|
|
2004-11-13 jrandom
|
|
* Added throttles on how many I2PTunnel client connections we open at once
|
|
* Replaced some buffered streams in I2PTunnel with unbuffered streams, as
|
|
the streaming library used should take care of any buffering.
|
|
* Added a cache for some objects used in I2PTunnel, especially useful when
|
|
there are many short lived connections.
|
|
* Trimmed the SimpleTimer's processing a bit
|
|
|
|
2004-11-10 jrandom
|
|
* Allow loading the (mini)streaming connection options from the
|
|
environment.
|
|
* More defensive programming in the DSA implementation.
|
|
|
|
2004-11-08 jrandom
|
|
* 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
|
|
|
|
2004-11-08 jrandom
|
|
* Make the SAM bridge more resiliant to bad handshakes (thanks duck!)
|
|
|
|
* 2004-11-06 0.4.1.4 released
|
|
|
|
2004-11-06 jrandom
|
|
* 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!)
|
|
|
|
2004-11-06 jrandom
|
|
* Fix for a long standing synchronization bug in the SDK that in rare
|
|
instances can add a few seconds of lag.
|
|
|
|
2004-11-05 jrandom
|
|
* 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
|
|
|
|
2004-11-02 jrandom
|
|
* Fix for a long standing synchronization bug in the JobQueue (and added
|
|
some kooky flags to make sure it stays dead)
|
|
* Update the ministreaming lib to force mode=guaranteed if the default
|
|
lib is used, and mode=best_effort for all other libs.
|
|
|
|
2004-11-02 jrandom
|
|
* Fixed up the configuration overrides for the streaming socket lib
|
|
integration so that it properly honors env settings.
|
|
* More memory usage streamlining (last major revamp for now, i promise)
|
|
|
|
2004-11-01 jrandom
|
|
* 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.
|
|
|
|
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
|
|
|
|
2004-10-29 jrandom
|
|
* Strip the Referer, Via, and From headers completely, rather than
|
|
inserting a bogus value ("i2p"). This should help with the use of
|
|
SnipSnap and Geeklog (thanks nickster and DrWoo!)
|
|
|
|
2004-10-27 jrandom
|
|
* Fix a strange race condition on i2cp client disconnect.
|
|
* win98 startup fixes (thanks tester-1 and ardvark!)
|
|
* include build scripts for the new streaming lib (which is NOT ready
|
|
for use yet, but you can hack around with it)
|
|
|
|
2004-10-24 jrandom
|
|
* 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 to instantiate.
|
|
|
|
2004-10-23 jrandom
|
|
* Minor ministreaming lib refactoring to simplify integration of the full
|
|
streaming lib.
|
|
* Minor bugfixes to data structure serialization.
|
|
|
|
* 2004-10-18 0.4.1.3 released
|
|
|
|
2004-10-18 jrandom
|
|
* Allow sending messages with a section of a byte array.
|
|
* Reduced stats published.
|
|
|
|
2004-10-17 jrandom
|
|
* Don't b0rk on whitespace in the router address.
|
|
|
|
2004-10-16 jrandom
|
|
* More aggressively reduce the capacity of peers if their tunnels are
|
|
failing so that we move off them quicker.
|
|
* Simplify some data structure serialization for reuse in the streaming
|
|
lib, as well as add support for signing and verifying partial byte
|
|
arrays.
|
|
* Logging updates
|
|
|
|
2004-10-16 jrandom
|
|
* Increased the default minimum tunnel test time to 5 seconds, since we
|
|
still see the occational message processing time spike to 2 seconds.
|
|
* Update the SimpleTimer to allow rescheduling a task thats already
|
|
queued (useful for the new streaming lib).
|
|
|
|
2004-10-15 jrandom
|
|
* Replaced old minimum tunnel test timeout of 1s with a configurable
|
|
value (router.config property "router.tunnelTestMinimum", with the
|
|
default of 2s).
|
|
|
|
2004-10-14 jrandom
|
|
* Tunnel rejection is no longer a sign of an overwhelmingly loaded
|
|
peer, so don't use it as a key point of the IsFailing calculator.
|
|
We still use it as a key point of the Capacity calculator, however.
|
|
|
|
2004-10-14 jrandom
|
|
* 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.
|
|
|
|
2004-10-13 jrandom
|
|
* Fix the probabalistic tunnel reject (we always accepted everything,
|
|
since the docs on java.util.Random.nextDouble() are wrong..)
|
|
* Fixed a race on startup (thanks Quadn!)
|
|
|
|
2004-10-12 jrandom
|
|
* 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.
|
|
|
|
* 2004-10-10 0.4.1.2 released
|
|
|
|
2004-10-10 cervantes
|
|
* Update the I2PTunnel HTTP proxy to strip out the i2paddresshelper from
|
|
the request.
|
|
|
|
2004-10-09 jrandom
|
|
* 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.
|
|
|
|
2004-10-08 jrandom
|
|
* Revamp the AESInputStream so it doesn't allocate any temporary objects
|
|
during its operation.
|
|
|
|
2004-10-08 jrandom
|
|
* Don't kill the establisher threads during a soft restart.
|
|
* Attempt to validate the peer's routerInfo earlier during handshaking.
|
|
* Revamp the AESOutputStream so it doesn't allocate any temporary objects
|
|
during its operation.
|
|
|
|
2004-10-07 jrandom
|
|
* Reimplement the I2NP reading with less temporary memory allocation.
|
|
There is still significant GC churn, especially under load, but this
|
|
should help.
|
|
* Catch some oddball errors in the transport (message timeout while
|
|
establishing).
|
|
|
|
2004-10-07 jrandom
|
|
* Expire queued messages even when the writer is blocked.
|
|
* Reimplement most of the I2NP writing with less temporary memory
|
|
allocations (I2NP reading still gobbles memory).
|
|
|
|
2004-10-06 jrandom
|
|
* 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.
|
|
|
|
2004-10-06 jrandom
|
|
* Enable explicit disabling of the systray entirely for windows machines
|
|
with strange configurations: add -Dsystray.disable=true to the java
|
|
command line. (thanks mihi!)
|
|
|
|
2004-10-05 jrandom
|
|
* Allow peers on the same LAN to communicate with each other safely even
|
|
when they cannot talk to each other through the external address.
|
|
|
|
2004-10-05 jrandom
|
|
* Display how much time is left before the graceful shutdown is complete.
|
|
* Debug some improperly failed messages on timeout or disconnection.
|
|
|
|
2004-10-05 jrandom
|
|
* Don't go into a fast busy if an I2PTunnel 'server' is explicitly killed
|
|
(thanks mule!)
|
|
* Handle some more error conditions regarding abruptly closing sockets
|
|
(thanks Jonva!)
|
|
|
|
2004-10-04 jrandom
|
|
* Update the shitlist to reject a peer for an exponentially increasing
|
|
period of time (with an upper bounds of an hour).
|
|
* Various minor stat and debugging fixes
|
|
|
|
2004-10-03 jrandom
|
|
* 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".
|
|
|
|
2004-10-02 jrandom
|
|
* Assure that we quickly fail messages bound for shitlisted peers.
|
|
* Address a race on startup where the first peer contacted could hang the
|
|
router (thanks Romster!)
|
|
* Only whine about an intermittent inability to query the time server once
|
|
|
|
2004-10-02 jrandom
|
|
* Command line utility to verify a peer's reachability - simply run
|
|
net.i2p.router.transport.tcp.ConnectionHandler hostname port# and it
|
|
will print out whether that peer is reachable or not (using a simple
|
|
verification handshake).
|
|
|
|
* 2004-10-01 0.4.1.1 released
|
|
|
|
2004-10-01 jrandom
|
|
* Handle partial reseeds, caused by seeds going away before the download
|
|
completes (thanks Sugadude!)
|
|
|
|
2004-10-01 jrandom
|
|
* Explicitly refuse IPv6 addresses, since only some peers support
|
|
them and we want fully reachable peers.
|
|
|
|
2004-10-01 jrandom
|
|
* Additional error handling for a variety of transport layer errors.
|
|
|
|
* 2004-09-30 0.4.1 released (not backwards compatible)
|
|
|
|
2004-09-30 jrandom
|
|
* Bundle the configuration necessary to run an eepsite out of the box
|
|
with Jetty - simply edit ./eepsite/docroot/index.html and give people
|
|
the key listed on the I2PTunnel configuration page, and its up.
|
|
* Router console cleanup, and some (off by default) tunnels -
|
|
smtp.postman.i2p (port 7659), pop.postman.i2p (port 7660), and
|
|
irc.baffled.i2p (port 7661)
|
|
|
|
2004-09-29 jrandom
|
|
* Always wipe the Jetty work directory on startup, so that web updates
|
|
are reflected immediately (Jetty does not honor the cache across
|
|
multiple executions)
|
|
|
|
2004-09-27 jrandom
|
|
* Limit the number of connection tags saved to 10,000. This is a huge
|
|
limit, but consumes no more than 1MB of RAM. For now, we drop them
|
|
randomly after reaching that size, forcing those dropped peers to use
|
|
a full DH negotiation.
|
|
* HTML cleanup in the console.
|
|
|
|
2004-09-26 jrandom
|
|
* Complete rewrite of the TCP transport with IP autodetection and
|
|
low CPU overhead reconnections. More concise connectivity errors
|
|
are listed on the /oldconsole.jsp as well. The IP autodetection works
|
|
by listening to the first person who tells you what your IP address is
|
|
when you have not defined one yourself and you have no other TCP
|
|
connections.
|
|
* Update to the I2NP message format to add transparent verification at
|
|
the I2NP level (beyond standard TCP verification).
|
|
* Remove a potential weakness in our AESEngine's safeEncrypt and safeDecrypt
|
|
implementation (rather than verifying with E(H(key)), we now verify with
|
|
E(H(iv))).
|
|
* The above changes are NOT BACKWARDS COMPATIBLE.
|
|
* Removed all of the old unused PHTTP code.
|
|
* Refactor various methods and clean up some javadoc.
|
|
|
|
2004-09-21 jrandom
|
|
* Have two tiers of hosts.txt files - the standard "hosts.txt" and
|
|
the new "userhosts.txt". Updates to I2P will only overwrite the former,
|
|
but values stored in the later take precedence. Both are queried on
|
|
lookup.
|
|
|
|
2004-09-16 jrandom
|
|
* Refactor the TCP transport to deal with changing identities gracefully,
|
|
and to prevent some wasted effort by keeping track of what host+port
|
|
combinations we are connected to (rather than just the identities). Also
|
|
catch a few configuration errors earlier.
|
|
* Removed no longer relevent methods from the Transport API that were
|
|
exposing ideas that probably shouldn't be exposed.
|
|
* Removed the 0.4.0.1 specific files from i2pupdate.zip (relating to script
|
|
updates)
|
|
|
|
2004-09-13 jrandom
|
|
* Update for the SDK reconnection to deal with overflow.
|
|
* Web improvements (@ not # on the /logs.jsp [thanks ugha!] and fixed the
|
|
rounding on lifetime bandwidth used [thanks gott!]).
|
|
|
|
* 2004-09-08 0.4.0.1 released
|
|
|
|
2004-09-08 jrandom
|
|
* Updated the "Active:" peer count to display the # of connections as well
|
|
as the number of recently active router identities.
|
|
* Implement some basic updating code - on startup, if there is a file named
|
|
"i2pupdate.zip" in the I2P installation directory, extract it, delete it,
|
|
then restart.
|
|
* Added an ugly little script to allow launching the router on win9x
|
|
machines without a dos box (using javaw to run a .bat file).
|
|
* Logging updates.
|
|
* Updated VERSION constants to 0.4.0.1
|
|
|
|
2004-09-08 hypercubus
|
|
* Bugfix: Running the installer as a non-privileged user on Red Hat (and
|
|
hopefully any other affected *nix systems) now properly discards non-
|
|
essential directories after installation.
|
|
* Support for Win9x in the installer and postinstall.bat.
|
|
* Changed the name of the default installation directory on all platforms
|
|
from "I2P" to "i2p" in the installer.
|
|
* Changed "wrapper.conf" to "wrapper.config" for naming consistency with the
|
|
other configuration files.
|
|
|
|
2004-09-07 cervantes:
|
|
* Proxy recursion disabled by default (strict)
|
|
* Password Authentication for session commands
|
|
* Support for http://path?i2paddresshelper=BASE64
|
|
* Support for http://i2p/BASE64/path syntax
|
|
|
|
2004-09-07 jrandom
|
|
* Make sure that peers placed in the 'fast' group are ones we both know
|
|
how to reach and have been able to reach recently. These peers may
|
|
still be placed in the 'high capacity' group however (though that group
|
|
is only queried if the 'fast' group is too small)
|
|
* Include some updates to the ProgileOrganizer's CLI.
|
|
|
|
2004-09-07 jrandom
|
|
* Disable the timestamper by default for all applications except the router
|
|
(enable via -Dtime.disabled=false)
|
|
* Simplify the retrieval of the full destination with text based browsers.
|
|
* Bundle the updated wrapper.config and hosts.txt in the i2pupdate.tar.bz2
|
|
|
|
2004-09-07 jrandom
|
|
* Write the native libraries to the current directory when they are loaded
|
|
from a resource, and load them from that file on subsequent runs (in
|
|
turn, we no longer *cough* delete the running libraries...)
|
|
* Added support for a graceful restart.
|
|
* Added new pseudo-shutdown hook specific to the router, allowing
|
|
applications to request tasks to be run when the router shuts down. We
|
|
use this for integration with the service manager, since otherwise a
|
|
graceful shutdown would cause a timeout, followed by a forced hard
|
|
shutdown.
|
|
* Made the capacity calculator a bit more dynamic by not outright ignoring
|
|
the otherwise valid capacity data for a period with a single rejected
|
|
tunnel (except for the 10 minute period). In addition, peers with an
|
|
equal capacity are ordered by speed rather than by their hashes.
|
|
* Cleaned up the SimpleTimer, addressing some threading and synchronization
|
|
issues.
|
|
* When an I2PTunnel client or httpclient is explicitly closed, destroy the
|
|
associated session (unless there are other clients using it), and deal
|
|
with a closed session when starting a new I2PTunnel instance.
|
|
* Refactoring and logging.
|
|
|
|
2004-09-06 jrandom
|
|
* Address a race condition in the key management code that would manifest
|
|
itself as a corrupt router identity.
|
|
* Properly clear old transport addresses from being displayed on the old
|
|
console after soft restarts.
|
|
* Properly refuse to load the client applications more than once in the
|
|
same JVM.
|
|
* Added support for a graceful restart (a graceful shutdown followed by a
|
|
full JVM restart - useful for restarting client apps).
|
|
* More defensive programming, HTML cleanup, logging
|
|
* wrapper.config cleanup of duplicate lines
|
|
|
|
2004-09-04 jrandom
|
|
* Added some basic guards to prevent multiple instances from running.
|
|
Specifically, a file "router.ping" in the install directory which is
|
|
written to once a minute - if that file exists and has been modified
|
|
within the last minute, refuse to start up. In turn, adjust the
|
|
service wrapper to wait a minute before restarting a crashed JVM.
|
|
* Create a "work" directory in the I2P install dir which Jetty will
|
|
use for all of its temporary files.
|
|
* Tell the browser not to cache most of the router console's pages.
|
|
|
|
2004-09-04 jrandom
|
|
* Update the SDK to automatically reconnect indefinitely with an
|
|
exponential delay on retries (capped at 5 minutes).
|
|
|
|
* 2004-09-03 0.4 released
|
|
|
|
2004-09-03 jrandom
|
|
* Updated default wrapper.config to deal with the hard restart option
|
|
* Include the history.txt in the /help.jsp page
|
|
* HTML updates (wrapper.log, and no more unix scripts)
|
|
* Updated VERSION constants to 0.4
|
|
|
|
2004-09-03 hypercubus
|
|
* Bugfix: Installer launches postinstall.bat on WinNT/2K properly.
|
|
* Temporarily removed install_i2p_service_unix and
|
|
uninstall_i2p_service_unix from distribution packages.
|
|
* postinstall.bat/postinstall.sh cleans installation directory of all files
|
|
not applicable to the host OS.
|
|
|
|
2004-09-03 oOo
|
|
* Added some filters to the HTTP request, replacing the User-Agent,
|
|
Referrer, Via, and From headers, which helps until we have a more
|
|
comprehensive filtering system.
|
|
|
|
2004-09-03 jrandom
|
|
* Disabled the old listener on port 7655.
|
|
|
|
2004-09-02 jrandom
|
|
* Cleaned up the base build.xml, adding a new target ("updater") which
|
|
builds the file i2pupdate.tar.bz2 which can be safely extracted over
|
|
existing installs.
|
|
|
|
2004-xx-xx jrandom
|
|
* Implemented the new web architecture and router console
|
|
* Implemented I2PTunnel web interface, and revamped startup process.
|
|
* Revamped peer selection code to address skew.
|
|
* Removed all temporary threads from the router and the SDK.
|
|
* Bugfix dealing with timeouts and resends.
|
|
* Integrated Iakin's jcpuid library and jbigi update, with modifications.
|
|
|
|
2004-xx-xx hypercubus
|
|
* Implemented the new installation process.
|
|
* Integrated systray
|
|
* Integrated service manager
|
|
|
|
2004-xx-xx oOo
|
|
* Implemented ?i2paddresshelper= hook
|
|
* Many small bugfixes to the web interface, router, i2ptunnel, and core.
|
|
|
|
2004-xx-xx Nightblade
|
|
* libSAM updates.
|
|
|
|
2004-xx-xx cervantes
|
|
* Imported i2pProxy.pac proxy script in with the build.
|
|
|
|
* 2004-08-20 0.3.4.3 released
|
|
* 2004-08-12 0.3.4.2 released
|
|
* 2004-08-08 0.3.4.1 released
|
|
* 2004-07-29 0.3.4 released
|
|
* 2004-07-23 0.3.3 released
|
|
* 2004-07-16 0.3.2.3 released
|
|
* 2004-07-14 0.3.2.2 released
|
|
* 2004-07-11 0.3.2.1 released
|
|
* 2004-07-07 0.3.2 released
|
|
* 2004-06-25 0.3.1.5 released
|
|
* 2004-05-23 0.3.1.4 released
|
|
* 2004-05-20 0.3.1.3 released
|
|
* 2004-05-13 0.3.1.2 released
|
|
* 2004-05-07 0.3.1.1 released
|
|
* 2004-04-30 0.3.1 released
|
|
* 2004-04-20 0.3.0.4 released
|
|
* 2004-04-04 0.3.0.3 released
|
|
* 2004-03-30 0.3.0.2 released
|
|
* 2004-03-25 0.3.0.1 released
|
|
* 2004-03-21 0.3.0 released
|
|
* 2004-03-10 0.2.5.4 released
|
|
* 2004-03-04 0.2.5.3 released
|
|
* 2004-02-28 0.2.5.2 released
|
|
* 2004-02-27 0.2.5.1 released
|
|
* 2004-02-25 0.2.5 released
|
|
* 2004-02-19 0.2.4.2 released
|
|
* 2004-02-15 0.2.4.1 released
|
|
* 2004-02-14 0.2.4 released
|
|
* 2004-01-27 0.2.3.6 released
|
|
* 2004-01-21 0.2.3.5 released
|
|
* 2004-01-14 0.2.3.4 released
|
|
* 2003-12-29 0.2.3.3 released
|
|
* 2003-12-27 0.2.3.2 released
|
|
* 2003-12-25 0.2.3.1 released
|
|
* 2003-12-13 0.2.3 released
|
|
* 2003-12-01 0.2.2 released
|
|
* 2003-11-18 0.2.1.1 released
|
|
* 2003-11-12 0.2.1 released
|
|
* 2003-11-09 0.2.0.3 released
|
|
* 2003-11-08 0.2.0.2 released
|
|
* 2003-11-03 0.2.0.1 released
|
|
* 2003-11-01 0.2 released
|