I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
history.txt 128 KiB
Newer Older
  • Learn to ignore specific revisions
  • jrandom's avatar
    jrandom committed
    $Id: history.txt,v 1.379 2006/01/08 15:54:39 jrandom Exp $
    
    2005-01-09  jrandom
        * Bugfix for a rare SSU error (thanks cervantes!)
        * More progress on the blog interface, allowing customizable blog-wide
          links.
    
    jrandom's avatar
    jrandom committed
    
    2006-01-08  jrandom
        * First pass of the new blog interface, though without much of the useful
          customization features (coming soon)
    
    jrandom's avatar
    jrandom committed
    
    2006-01-04  jrandom
        * Rather than profile individual tunnels for throughput over their
          lifetime, do so at 1 minute intervals (allowing less frequently active
          tunnels to be more fairly measured).
        * Run the live tunnel load test across two tunnels at a time, by default.
          The load test runs for a random period from 90s to the tunnel lifetime,
          self paced.  This should help gathering data for profiling peers that
          are in exploratory tunnels.
    
    2006-01-03  jrandom
        * Calculate the overall peer throughput across the 3 fastest one minute
          tunnel throughput values, rather than the single fastest throughput.
        * Degrade the profiled throughput data over time (cutting the profiled
          peaks in half once a day, on average)
        * Enable yet another new speed calculation for profiling peers, using the
          peak throughput from individual tunnels that a peer is participating in,
          rather than across all tunnels they are participating in.  This helps
          gather a fairer peer throughput measurement, since it won't allow a slow
          high capacity peer seem to have a higher throughput (pushing a little
          data across many tunnels at once, as opposed to lots of data across a
          single tunnel).  This degrades over time like the other.
        * Add basic OS/2 support to the jbigi code (though we do not bundle a
          precompiled OS/2 library)
    
    jrandom's avatar
    jrandom committed
    
    2006-01-01  jrandom
        * Disable multifile torrent creation in I2PSnark's web UI for the moment
          (though it can still seed and participate in multifile swarms)
        * Enable a new speed calculation for profiling peers, using their peak 
          1 minute average tunnel throughput as their speed.
    
    jrandom's avatar
    jrandom committed
    
    2005-12-31  jrandom
        * Include a simple torrent creator in the I2PSnark web UI
        * Further streaming lib closing improvements
        * Refactored the load test components to run off live tunnels (though,
          still not safe for normal/anonymous load testing)
    
    jrandom's avatar
    jrandom committed
    
    2005-12-30  jrandom
        * Close streams more gracefully
    
    jrandom's avatar
    jrandom committed
    
    2005-12-30  jrandom
        * Small streaming lib bugfixes for the modified timeouts
        * Minor Syndie/Sucker RSS html fix
        * Small synchronization fix in I2PSnark (thanks fsm!)
    
    jrandom's avatar
    jrandom committed
    
    2005-12-30  jrandom
        * Replaced the bundled linux jcpuid (written in C++) with scintilla's
          jcpuid (written in C), removing the libg++.so.5 dependency that has bit
          some distros (e.g. mandriva)
    
    jrandom's avatar
    jrandom committed
    
    2005-12-29  jrandom
        * Minor fix to the new ERR-ClockSkew to deal with people whose clocks are
          actually correct
    
    jrandom's avatar
    jrandom committed
    
    2005-12-27  jrandom
        * Add a new Status: line on the router console - "ERR-ClockSkew", in case
          the clock is too skewed to do anything useful (check the year and month,
          not just the hour and minute).
        * Fixed the read/write timeouts in the streaming lib (so that it actually
          honors them now)
        * Minor I2PSnark cleanups (no read timeout, more careful shutdown and
          torrent closing)
        * Handle an oddball tunnel creation failure (thanks Xunk)
    
    complication's avatar
    complication committed
    
    2005-12-26  Complication
        * Fix some integer typecasting in I2PSnark (caused >2GB torrents to fail)
        * HTML readability cosmetics on "Peers" page
    
    jrandom's avatar
    jrandom committed
    
    * 2005-12-22  0.6.1.8 released
    
    2005-12-22  jrandom
        * Bundle the standalone I2PSnark launcher in the installer and update
          process (launch as "java -jar launch-i2psnark.jar", viewing the 
          interface on http://localhost:8002/)
        * Don't autostart swarming torrents by default so that you can run a
          standalone I2PSnark from the I2P install dir and not have the embedded
          I2PSnark autolaunch the torrents that the standalone instance is running
        * Fixed a rare streaming lib bug that could let a blocking call wait
          forever.
    
    jrandom's avatar
    jrandom committed
    
    2005-12-22  jrandom
        * Cleaned up some buffer synchronization issues in I2PSnark that could
    
    jrandom's avatar
    jrandom committed
          cause blockage.
    
    jrandom's avatar
    jrandom committed
    
    2005-12-21  jrandom
        * Adjusted I2PSnark's usage of the streaming lib (tweaking it for BT's
          behavior)
        * Fixed the I2PSnark bug that would lose track of live peers
    
    2005-12-20  jrandom
        * Enabled the control in I2PSnark to toggle whether torrents should be
          started automatically or not
        * Hopefully finished the last hook to close down torrents completely when
          they're stopped.
    
    jrandom's avatar
    jrandom committed
    
    2005-12-19  jrandom
        * Fix for old Syndie blog bookmarks (thanks Complication!)
        * Fix for I2PSnark to accept incoming connections again (oops)
        * Randomize the order that peers from the tracker are contacted
    
    jrandom's avatar
    jrandom committed
    
    2005-12-19  jrandom
        * I2PSnark logging, disconnect old inactive peers rather than new ones,
          memory usage reduction, better OOM handling, and a shared connection
          acceptor.
        * Cleaned up the Syndie blog page and the resulting filters (viewing a
          blog from the blog page shows threads started by the selected author,
          not those that they merely participate in)
    
    jrandom's avatar
    jrandom committed
    
    2005-12-18  jrandom
        * Added a standalone runner for the I2PSnark web ui (build with the
          command "ant i2psnark", unzip i2psnark-standalone.zip somewhere, run
          with "java -jar launch-i2psnark.jar", and go to http://localhost:8002/).
        * Further I2PSnark error handling
    
    2005-12-17  jrandom
        * Let multiuser accounts authorize themselves to access the remote
          functionality again (thanks Ch0Hag!)
        * Adjust the JVM heap size to 128MB for new installs (existing users can
          accomplish this by editing wrapper.config, adding the line
          "wrapper.java.maxmemory=128", and then doing a full shutdown and startup
          of the router).  This is relevent for heavy usage of I2PSnark in the
          router console.
    
    jrandom's avatar
    jrandom committed
    
    2005-12-17  jrandom
        * Use our faster SHA1, rather than the JVM's within I2PSnark, and let
          'piece' sizes grow larger than before.
    
    jrandom's avatar
    jrandom committed
    
    2005-12-16  jrandom
        * Added some I2PSnark sanity checks, an OOMListener when running
          standalone, and a guard against keeping memory tied up indefinitely.
        * Sanity check on the watchdog (thanks zzz!)
        * Handle invalid HTTP requests in I2PTunnel a little better
    
    jrandom's avatar
    jrandom committed
    
    2005-12-16  jrandom
        * Moved I2PSnark from using Threads to I2PThreads, so we handle OOMs
          properly (thanks Complication!)
        * More guards in I2PSnark for zany behavior (I2PSession recon w/ skew,
          b0rking in the DirMonitor, etc)
    
    jrandom's avatar
    jrandom committed
    
    2005-12-16  jrandom
        * Try to run a torrent in readonly mode if we can't write to the file, and
          handle failures a little more gracefully (thanks polecat!)
    
    jrandom's avatar
    jrandom committed
    
    2005-12-16  jrandom
        * Refuse torrents with too many files (128), avoiding ulimit errors.
        * Remove an fd leak in I2PSnark
        * Further I2PSnark web UI cleanup
    
    jrandom's avatar
    jrandom committed
    
    2005-12-15  jrandom
        * Added a first pass to the I2PSnark web UI (see /i2psnark/)
    
    jrandom's avatar
    jrandom committed
    
    2005-12-15  jrandom
        * Added multitorrent support to I2PSnark, accessible currently by running
          "i2psnark.jar --config i2psnark.config" (which may or may not exist).
          It then joins the swarm for any torrents in ./i2psnark/*.torrent, saving
          their data in that directory as well.  Removing the .torrent file stops
          participation, and it is currently set to seed indefinitely.  Completion
          is logged to the logger and standard output, with further UI interaction
          left to the (work in progress) web UI.
    
    jrandom's avatar
    jrandom committed
    
    2005-12-14  jrandom
        * Fix to drop peer references when we shitlist people again (thanks zzz!)
        * Further I2PSnark fixes to deal with arbitrary torrent info attributes
          (thanks Complication!)
    
    jrandom's avatar
    jrandom committed
    
    2005-12-13  zzz
        * Don't test tunnels expiring within 90 seconds
        * Defer Test Tunnel jobs if job lag too large
        * Use JobQueue.getMaxLag() rather than the jobQueue.jobLag stat to measure
          job lag for tunnel build backoff, allowing for more agile handling
          (since the stat is only updated once a minute)
        * Use tunnel length override if all tunnels are expiring within one
          minute.
    
    jrandom's avatar
    jrandom committed
    
    2005-12-13  jrandom
        * Fixed I2PSnark's handling of some torrent files to deal with those
          created by Azureus and I2PRufus (it didn't know how to deal with
          additional meta info, such as path.utf-8 or name.utf-8).
    
    jrandom's avatar
    jrandom committed
    
    2005-12-09  zzz
        * Create different strategies for exploratory tunnels (which are difficult
          to create) and client tunnels (which are much easier)
        * Gradually increase number of parallel build attempts as tunnel expiry
          nears.
        * Temporarily shorten attempted build tunnel length if builds using
          configured tunnel length are unsuccessful
        * React more aggressively to tunnel failure than routine tunnel
          replacement
        * Make tunnel creation times randomized - there is existing code to
          randomize the tunnels but it isn't effective due to the tunnel creation 
          strategy. Currently, most tunnels get built all at once, at about 2 1/2
          to 3 minutes before expiration. The patch fixes this by fixing the 
          randomization, and by changing the overlap time (with old tunnels) to a
          range of 2 to 4 minutes.
        * Reduce number of excess tunnels. Lots of excess tunnels get created due
          to overlapping calls. Just about anything generated a call which could
          build many tunnels all at once, even if tunnel building was already in
          process.
        * Miscellaneous router console enhancements
    
    jrandom's avatar
    jrandom committed
    
    2005-12-08  jrandom
        * Minor bugfix in SSU for dealing with corrupt packets
        * Added some hooks for load testing
    
    jrandom's avatar
    jrandom committed
    
    2005-12-07  jrandom
        * Added a first pass at a blog view in Syndie
    
    jrandom's avatar
    jrandom committed
    
    2005-12-07  jrandom
        * Expand the thread we're viewing to its leaf
        * Bugfix on intraday ordering (children are always newer than parents)
    
    jrandom's avatar
    jrandom committed
    
    2005-12-05  jrandom
        * Added an RDF and XML thread export to Syndie, reachable at 
          .../threadnav/rdf or .../threadnav/xml, accepting the parameters
          count=$numThreads and offset=$threadIndex.  If the $numThreads is -1, it
          displays all threads.
    
    jrandom's avatar
    jrandom committed
    
    2005-12-04  TLorD
        * Patch for the C SAM library to null terminate strings on copy (thanks!)
    
    jrandom's avatar
    jrandom committed
    
    2005-12-04  jrandom
        * Bugfix in Syndie for a problem in the threaded indexer (thanks CofE!)
        * Always include ourselves in the favorite authors (since we don't
          bookmark ourselves)
    
    jrandom's avatar
    jrandom committed
    
    2005-12-03  jrandom
        * Use newgroup-like tags by default in Syndie's interface
    
    jrandom's avatar
    jrandom committed
    
    2005-12-03  jrandom
        * Added support for a 'most recent posts' view that CofE requested, which
          includes the ability to filter by age (e.g. posts by your favorite
          authors in the last 5 days).
    
    jrandom's avatar
    jrandom committed
    
    2005-12-03  jrandom
        * Adjusted Syndie to use the threaded view that cervantes suggested, which
          displays a a single thread path at a time - from root to leaf - rather
          than a depth first traversal.
    
    jrandom's avatar
    jrandom committed
    
    2005-12-03  jrandom
        * Package up a standalone Syndie install into a "syndie-standalone.zip",
          buildable with "ant syndie".  It extracts into ./syndie/, launches with
          "java -jar launchsyndie.jar" (or javaw, on windows, to avoid a dos box),
          running a single user Syndie instance (by default).  It also creates a
          default subscription to syndiemedia without any anonymity (using no
          proxy).  Upgrades can be done by just replacing the syndie.war with the
          one from I2P.
    
    jrandom's avatar
    jrandom committed
    
    * 2005-12-01  0.6.1.7 released
    
    2005-12-01  jrandom
        * Add a new criteria to the tunnel join throttle, backing off people if we
          are failing to talk to our peers more than usual.
    
    jrandom's avatar
    jrandom committed
    
    2005-11-30  jrandom
        * Cleaned up the build process to deal with Jetty 5.1.6 and rename the
          new commons-logging-api.jar to commons-logging.jar, which it replaces.
          Jetty 5.1.6 is pushed with all updates.  Also, no need to push a
          separate jdom or rome, as they're inside syndie.war.
    
    jrandom's avatar
    jrandom committed
    
    2005-11-30  jrandom
        * Don't let the TCP transport alone shitlist a peer, since other
          transports may be working.  Also display whether TCP connections are
          inbound or outbound on the peers page.
        * Fixed some substantial bugs in the SSU introducers where we wouldn't
          talk to anyone who didn't expose an IP (even if they had introducers),
          among other goofy things.
        * When dealing with SSU introducers, send them all a packet at 3s/6s/9s,
          rather than sending one a packet at 3s, then another a packet at 6s,
          and a third a packet at 9s.
        * Fixed Syndie attachments (oops)
    
    jrandom's avatar
    jrandom committed
    
    2005-11-29  zzz
        * Added a link to orion's jump page on the 'key not found' error page.
    
    jrandom's avatar
    jrandom committed
    
    2005-11-29  jrandom
        * Further Syndie UI cleanup
        * Bundled our patched MultiPartRequest code from jetty (APL2 licensed),
          since it hasn't been applied to the jetty CVS yet [1].  Its packaged
          into syndie.jar and renamed to net.i2p.syndie.web.MultiPartRequest, but
          will be removed as soon as its integrated into Jetty.  This patch allows
          posting content in various character sets.
          [1] http://article.gmane.org/gmane.comp.java.jetty.general/6031
        * Upgraded new installs to the latest stable jetty (5.1.6), though this
          isn't pushed as part of the update yet, as there aren't any critical
          bugs.
    
    jrandom's avatar
    jrandom committed
    
    2005-11-29  jrandom
        * Added back in the OSX jbigi, which was accidentally removed a few revs
          back (thanks for the bug report stoerte!)  New installs will get the
          full jbigi, or you can pull the jbigi.jar from CVS by going to
          http://dev.i2p.net/cgi-bin/cvsweb.cgi/i2p/installer/lib/jbigi/jbigi.jar
          and clicking on the first "download" link, saving that jbigi.jar to
          lib/jbigi.jar in your I2P installation directory.  After restarting your
          router, it should load up fine.
    
    jrandom's avatar
    jrandom committed
    
    2005-11-27  jrandom
        * Inlined the Syndie CSS to reduce the number of HTTP requests (and
          because firefox [and others?] delay rendering until they fetch the css).
        * Make sure we fire the shutdown tasks when regenerating a new identity
          (thanks picsou!)
        * Cleaned up some of the things I b0rked in the 'dynamic keys' mode
        * Don't drop SSU sessions if they're still transmitting data successfully,
          even if there are transmission failures
        * Adjusted the time summarization to display hours after 119m, not 90m
        * Further EepGet cleanup (grr)
    
    jrandom's avatar
    jrandom committed
    
    * 2005-11-26 0.6.1.6 released
    
    jrandom's avatar
    jrandom committed
    
    2005-11-26  jrandom
        * Update the sorting in Syndie to consider children 'newer' than parents,
          even if they have the same message ID (duh)
        * Cleaned up some nav links in Syndie (good idea gloin, spaetz!)
        * Added a bunch of tooltips to Syndie's fields (thanks polecat!)
        * Force support for nonvalidating XML in Jetty (so we can handle GCJ/etc
          better)
    
    jrandom's avatar
    jrandom committed
    
    2005-11-26  jrandom 
        * Be more explicit about what messages we will handle through a client
          tunnel, and how we will handle them.  This cuts off a set of attacks
          that an active adversary could mount, though they're probably nonobvious
          and would require at least some sophistication.
    
    jrandom's avatar
    jrandom committed
    
    2005-11-26  Raccoon23
        * Added support for 'dynamic keys' mode, where the router creates a new
          router identity whenever it detects a substantial change in its public
          address (read: SSU IP or port).  This only offers minimal additional
          protection against trivial attackers, but should provide functional
          improvement for people who have periodic IP changes, since their new
          router address would not be shitlisted while their old one would be.
        * Added further infrastructure for restricted route operation, but its use
          is not recommended.
    
    jrandom's avatar
    jrandom committed
    
    2005-11-25  jrandom
        * Further Syndie UI cleanups
        * Logging cleanup
        * Fixed link to fproxy.tino.i2p (thanks zzz!)
    
    jrandom's avatar
    jrandom committed
    
    2005-11-25  jrandom
        * Don't publish stats for periods we haven't reached yet (thanks zzz!)
        * Cleaned up the syndie threaded display to show the last updated date for
          a subthread, and to highlight threads updated in the last two days.
    
    jrandom's avatar
    jrandom committed
    
    2005-11-24  jrandom
        * Fix to save syndication settings in Syndie (thanks spaetz!)
    
    jrandom's avatar
    jrandom committed
    
    2005-11-23  jrandom
        * Removed spurious streaming lib RTO increase (it wasn't helpful)
        * Streamlined the tunnel batching to schedule batch transmissions more
          appropriately.
        * Default tunnel pool variance to 2 +0-1 hops
    
    jrandom's avatar
    jrandom committed
    
    2005-11-21  jrandom
        * IE doesn't strip SPAN from <button> form fields, so add in a workaround
          within I2PTunnel.
        * Increase the maximum SSU retransmission timeout to accomodate slower or
          more congested links (though SSU's RTO calculation will usually use a
          much lower timeout)
        * Moved the streaming lib timed events off the main timer queues and onto
          a streaming lib specific set of timer queues.  Streaming lib timed
          events are more likely to have lock contention on the I2CP socket while
          other timed events in the router are (largely) independent.
        * Fixed a case sensitive lookup bug (thanks tino!)
        * Syndie cleanup - new edit form on the preview page, and fixed some blog
          links (thanks tino!)
    
    jrandom's avatar
    jrandom committed
    
    2005-11-19  jrandom
        * Implemented a trivial pure java PMTU backoff strategy, switching between
          a 608 byte MTU and a 1350 byte MTU, depending upon retransmission rates.
        * Fixed new user registration in Syndie (thanks Complication!)
    
    jrandom's avatar
    jrandom committed
    
    2005-11-17  jrandom
        * More cautious file handling in Syndie
    
    jrandom's avatar
    jrandom committed
    
    2005-11-16  jrandom
        * More aggressive I2PTunnel content encoding munging to work around some
          rare HTTP behavior (ignoring q values on Accept-encoding, using gzip
          even when only identity is specified, etc).  I2PTunnelHTTPServer now
          sends "Accept-encoding: \r\n" plus "X-Accept-encoding: x-i2p-gzip\r\n",
          and I2PTunnelHTTPServer handles x-i2p-gzip in either the Accept-encoding
          or X-Accept-encoding headers.  Eepsite operators who do not know to
          check for X-Accept-encoding will simply use the identity encoding.
    
    jrandom's avatar
    jrandom committed
    
    * 2005-11-15  0.6.1.5 released
    
    jrandom's avatar
    jrandom committed
    
    2005-11-14  jrandom
        * Migrate to the new Syndie interface
    
    jrandom's avatar
    jrandom committed
    
    2005-11-11  jrandom
        * Add filtering threads by author to Syndie, populated with authors in the
          user's addressbook
        * When creating the default user, add
          "http://syndiemedia.i2p/archive/archive.txt" to their addressbook,
          configured to automatically pull updates.  (what other archives should
          be included?)
        * Tiny servlet to help dole out the new routerconsole themes, and bundle
          the installer/resources/themes/** into ./docs/themes/** on both install
          and update.
    
    cervantes's avatar
    cervantes committed
    
    2005-11-11  cervantes
    
    jrandom's avatar
    jrandom committed
        * Initial pass of the routerconsole revamp, starting with I2PTunnel and
          being progressively rolled out to other sections at later dates.
          Featuring abstracted W3C strict XHTML1.0 markup, with CSS providing
          layout and styling.
        * Implemented console themes. Users can create their own themes by
          creating css files in: {i2pdir}/docs/themes/console/{themename}/
          and activating it using the routerconsole.theme={themename} advanced
          config property. Look at the example incomplete "defCon1" theme.
          Note: This is very much a work in progress. Folks might want to hold-off
          creating their own skins until the markup has solidified.
        * Added "routerconsole.javascript.disabled=true" to disable console
          client-side scripting and "routerconsole.css.disabled=true" to remove 
          css styling (only rolled out in the i2ptunnel interface currently)
        * Fixed long standing bug with i2ptunnel client and server edit screens
          where tunnel count and depth properties would fail to save. Added
          backup quantity and variance configuration options.
        * Added basic accessibility support (key shortcuts, linear markup, alt and 
          title information and form labels).
        * So far only tested on IE6, Firefox 1.0.6, Opera 8 and lynx.
    
    jrandom's avatar
    jrandom committed
    
    2005-11-11  jrandom
        * Default Syndie to single user mode, and automatically log into a default
          user account (additional accounts can be logged into with the 'switch'
          or login pages, and new accounts can be created with the register page).
        * Disable the 'automated' column on the Syndie addressbook unless the user
          is appropriately authorized (good idea Polecat!)
    
    jrandom's avatar
    jrandom committed
    
    2005-11-10  jrandom
        * First pass to a new threaded Syndie interface, which isn't enabled by
          default, as its not done yet.
    
    jrandom's avatar
    jrandom committed
    
    2005-11-06  jrandom
        * Include SSU establishment failure in the peer profile as a commError,
          as we do for TCP establishment failures.
        * Don't throttle the initial transmission of a message because of ongoing
          retransmissions to a peer, since the initial transmission of a message
          is more valuable than a retransmission (since it has less latency).
        * Cleaned up links to SusiDNS and I2PTunnel (thanks zzz!)
    
    jrandom's avatar
    jrandom committed
    
    2005-11-05  jrandom
        * Include the most recent ACKs with packets, rather than only sending an
          ack exactly once.  SSU differs from TCP in this regard, as TCP has ever
          increasing sequence numbers, while each message ID in SSU is random, so
          we don't get the benefit of later ACKs implicitly ACKing earlier
          messages.
        * Reduced the max retransmission timeout for SSU
        * Don't try to send messages queued up for a long time waiting for
          establishment.
    
    dust's avatar
    dust committed
    
    2005-11-05  dust
        * Fix sucker to delete its temporary files.
        * Improve sucker's sml output some.
        * Fix Exception in SMLParser for weird sml.
    
    jrandom's avatar
    jrandom committed
    
    2005-11-03  zzz
        * Added a new error page to the eepproxy to differentiate the full 60
          second timeout from the immediate "I don't know this base64" failure.
    
    jrandom's avatar
    jrandom committed
    
    2005-11-01  jrandom
        * Added a few more css elements (thanks identiguy!)
    
    jrandom's avatar
    jrandom committed
    
    2005-10-31  jrandom
        * Fix for some syndie reply scenarios (thanks identiguy and CofE!)
        * Removed a potentially infinitely recursive call (oops)
    
    dust's avatar
    dust committed
    
    2005-10-30  dust
        * Merge sucker into syndie with a rssimport.jsp page.
        * Add getContentType() to EepGet.
        * Make chunked transfer work (better) with EepGet.
        * Do replaceAll("<","&lt;") for logs.
    
    jrandom's avatar
    jrandom committed
    
    * 2005-10-29  0.6.1.4 released
    
    jrandom's avatar
    jrandom committed
    
    2005-10-29  jrandom
        * Improved the bandwidth throtting on tunnel participation, especially for
          low bandwidth peers.
        * Improved failure handling in SSU with proactive reestablishment of
          failing idle peers, and rather than shitlisting a peer who failed too
          much, drop the SSU session and allow a new attempt (which, if it fails,
          will cause a shitlisting)
        * Clarify the cause of the shitlist on the profiles page, and include
          bandwidth limiter info at the bottom of the peers page.
    
    jrandom's avatar
    jrandom committed
    
    2005-10-26  jrandom
        * In Syndie, propogate the subject and tags in a reply, and show the parent
          post on the edit page for easy quoting.  (thanks identiguy and CofE!)
        * Streamline some netDb query handling to run outside the jobqueue -
          which means they'll run on the particular SSU thread that handles the
          message.  This should help out heavily loaded netDb peers.
    
    jrandom's avatar
    jrandom committed
    
    2005-10-25  jrandom
        * Defer netDb searches for newly referenced peers until we actually want
          them
        * Ignore netDb references to peers on our shitlist
        * Set the timeout for end to end client messages to the max delay after
          finding the leaseSet, so we don't have as many expired messages floating
          around.
        * Add a floor to the streaming lib window size
        * When we need to send a streaming lib ACK, try to retransmit one of the
          unacked packets instead (with updated ACK/NACK fields, of course).  The
          bandwidth cost of an unnecessary retransmission should be minor as
          compared to both an ACK packet (rounded up to 1KB in the tunnels) and
          the probability of a necessary retransmission.
        * Adjust the streaming lib cwin algorithm to allow growth after a full
          cwin messages if the rtt is trending downwards.  If it is not, use the
          existing algorithm.
        * Increased the maximum rto size in the streaming lib.
        * Load balancing bugfix on end to end messages to distribute across
          tunnels more evenly.
    
    jrandom's avatar
    jrandom committed
    
    2005-10-22  jrandom
        * Integrated GNU-Crypto's Fortuna PRNG, seeding it off /dev/urandom and
          ./prngseed.rnd (if they exist), and reseeding it with data out of
          various crypto operations (unused bits in a DH exchange, intermediary
          bits in a DSA signature generation, extra bits in an ElGamal decrypt).
          The Fortuna implementation under gnu.crypto.prng has been modified to
          use BouncyCastle's SHA256 and Cryptix's AES (since those are the ones
          I2P uses), and the resulting gnu.crypto.prng.* are therefor available
          under GPL+Classpath's linking exception (~= LGPL).  I2P's SecureRandom
          wrapper around it is, of course, public domain.
    
    dust's avatar
    dust committed
    
    2005-10-20  dust
        * Fix bug in ircclient that prevented it to use its own dest (i.e. was
          always shared. (thx for info Ragnarok)
        * Fix crash in Sucker with some bad html.
    
    jrandom's avatar
    jrandom committed
    
    2005-10-20  jrandom
        * Workaround a bug in GCJ's Calendar implementation
        * Propery throw an exception in the streaming lib if we try to write to a
          closed stream.  This will hopefully help clear some I2Phex bugs (thanks
          GregorK!)
    
    jrandom's avatar
    jrandom committed
    
    2005-10-19  jrandom
        * Ported the snark bittorrent client to I2P such that it is compatible
          with i2p-bt and azneti2p.  For usage information, grab an update and run
          "java -jar lib/i2psnark.jar".  It isn't currently multitorrent capable,
          but adding in support would be fairly easy (see PeerAcceptor.java:49)
        * Don't allow leaseSets expiring too far in the future (thanks postman)
    
    jrandom's avatar
    jrandom committed
    
    2005-10-19  jrandom
        * Bugfix for the auto-update code to handle different usage patterns
        * Decreased the addressbook recheck frequency to once every 12 hours
          instead of hourly.
        * Handle dynamically changing the HMAC size (again, unless your nym is
          toad or jrandom, ignore this ;)
        * Cleaned up some synchronization/locking code
    
    dust's avatar
    dust committed
    
    2005-10-17  dust
        * Exchange the remaining URL with EepGet in Sucker.
        * Allow /TOPIC irc command.
    
    jrandom's avatar
    jrandom committed
    
    2005-10-17  jrandom
        * Allow an env prop to configure whether we want to use the backwards
          compatible (but not standards compliant) HMAC-MD5, or whether we want
          to use the not-backwards compatible (but standards compliant) one.  No
          one should touch this setting, unless your name is toad or jrandom ;)
        * Added some new dummy facades
        * Be more aggressive on loading up the router.config before building the
          router context
        * Added new hooks for apps to deal with previously undefined I2NP message
          types without having to modify any code.
        * Demo code for using a castrated router for SSU comm (SSUDemo.java)
    
    jrandom's avatar
    jrandom committed
    
    2005-10-14  jrandom
        * More explicit filter for linux/PPC building (thanks anon!)
    
        * Fixed Syndie's Sucker to not explicitly reference something only found
          in sun's JVM (thanks cervantes!)
    
        * Don't filter IRC "MAP" messages (not critical, but it doesn't hurt)
    
    jrandom's avatar
    jrandom committed
    
    * 2005-10-14  0.6.1.3 released
    
    2005-10-14  jrandom
        * Added a key explaining peers.jsp a bit (thanks tethra!)
    
    jrandom's avatar
    jrandom committed
    
    2005-10-13  dust
        * Bundled dust's Sucker for pulling RSS/Atom content into SML, which can
          then be injected into Syndie with the Syndie CLI.
        * Bundled ROME and JDOM (BSD and Apache licensed, respectively) for
          RSS/Atom parsing.
    
    jrandom's avatar
    jrandom committed
    
    2005-10-13  jrandom
        * SSU retransmission choke bugfix (== != !=)
        * Include initial transmissions in the retransmission choke, so that
          if we are already retransmitting a message, we won't send anything
          to that peer other than that message (or ACKs, if necessary)
    
    jrandom's avatar
    jrandom committed
    
    2005-10-12  jrandom
        * Choke SSU retransmissions to a peer while there is already a
          retransmission in flight to them.  This currently lets other initial
          transmissions through, since packet loss is often sporadic, but maybe
          this should block initial transmissions as well?
        * Display the retransmission bytes stat on peers.jsp (thanks bar!)
        * Filter QUIT messages in the I2PTunnelIRCClient proxy
    
    jrandom's avatar
    jrandom committed
    
    2005-10-11  jrandom
        * Piggyback the SSU partial ACKs with data packets.  This is backwards
          compatible.
        * Syndie RSS renderer bugfix, plus now include the full entry instead of
          just the blurb before the cut.
    
    jrandom's avatar
    jrandom committed
    
    2005-10-11  jrandom
        * Piggyback the SSU explicit ACKs with data packets (partial ACKs aren't
          yet piggybacked).  This is backwards compatible.
        * SML parser cleanup in Syndie
    
    jrandom's avatar
    jrandom committed
    
    2005-10-10  dust
        * Implemented a new I2PTunnelIRCClient which locally filters inbound and
          outbound IRC commands for anonymity and security purposes, removing all
          CTCP messages except ACTION, as well as stripping the hostname from the
          USER message (while leaving the nick and 'full name').  The IRC proxy
          doesn't use this by default, but you can enable it by creating a new 
          "IRC proxy" tunnel on the web interface, or by changing the tunnel type
          to "ircclient" in i2ptunnel.config.
    
    2005-10-10  jrandom
        * I2PTunnel http client config cleanup and stats
        * Minor SSU congestion tweaks and stats
        * Reduced netDb exploration period
    
    jrandom's avatar
    jrandom committed
    
    2005-10-09  jrandom
        * Syndie CLI cleanup for simpler CLI posting.  Usage shown with
          java -jar lib/syndie.jar
        * Beginnings of the Syndie logging cleanup
        * Delete corrupt Syndie posts
    
    jrandom's avatar
    jrandom committed
    
    2005-10-09  jrandom
        * Now that the streaming lib works reasonably, set the default inactivity 
          event to send a 0 byte keepalive payload, rather than disconnecting the
          stream.  This should cut the irc netsplits and help out with other long
          lived streams.  The default timeout is now less than the old timeout as
          well, so the keepalive will be sent before earlier builds fire their
          fatal timeouts.
    
    jrandom's avatar
    jrandom committed
    
    2005-10-08  jrandom
        * Use the OS clock for stat timing, since it doesn't jump around (though
          still use the NTP'ed clock for display)
        * Added new DH stats
    
    jrandom's avatar
    jrandom committed
    
    * 2005-10-07  0.6.1.2 released
    
    2005-10-07  jrandom
        * Include the 1 second bandwidth usage on the console rather than the 
          1 minute rate, as the 1 second value doesn't have the 1m/5m quantization
          issues.
    
    jrandom's avatar
    jrandom committed
    
    2005-10-07  jrandom
        * Allow the I2PTunnelHTTPServer to send back the first few packets of an
          HTTP response quicker, and initialize the streaming lib's cwin more 
          carefully.
        * Added a small web UI to the new Syndie scheduled updater.  If you log in
          as a user authorized to use the remote archive funtionality, you can
          request remote archives in your address book to be automatically pulled
          down by checking the "scheduled?" checkbox.
    
    jrandom's avatar
    jrandom committed
    
    2005-10-05  jrandom
        * Allow the first few packets in the stream to fill in their IDs during
          handshake (thanks cervantes, Complication, et al!)  This should fix at 
          least some of the intermittent HTTP POST issues.
    
    jrandom's avatar
    jrandom committed
    
    2005-10-04  jrandom
        * Syndie patch for single user remote archives (thanks nickless_head!)
        * Handle an invalid netDb store (thanks Complication!)
    
    jrandom's avatar
    jrandom committed
    
    2005-10-04  jrandom
        * Further reduction in unnecessary streaming packets.
    
    jrandom's avatar
    jrandom committed
    
    2005-10-03  jrandom
        * Properly reject unroutable IP addresses *cough*
    
    
    2005-10-03  rangarok
        * Changed default update delay to twelve hours, and enforced a minimum 
          delay of one hour.
    
    
    2005-10-03  ragnarok
        * Implemented a Syndie auto-updater.  It will automatically pull new posts
          from selected syndie archives.  To try it out, add 
          syndie.updateArchives=<comma seperated list of syndie archives> to your 
          syndie.config.  Archives must be specified as the full url to archive.txt
          (e.g. http://syndiemedia.i2p/archive/archive.txt).  By default, it checks
          for new posts every hour.  This can be modified by setting 
          syndie.updateDelay=<delay in hours> also in syndie.config. 
    
    jrandom's avatar
    jrandom committed
    
    * 2005-10-01  0.6.1.1 released
    
    
    2005-09-30  ragnarok
        * Implemented conditional get for syndie remote archive imports. 
    
    jrandom's avatar
    jrandom committed
    
    2005-09-30  jrandom
        * Killed three more streaming lib bugs, one of which caused excess packets
          to be transmitted (dupacking dupacks), one that was the root of many of
          the old hung streams (shrinking highest received), and another that was
          releasing data too soon.
    
    jrandom's avatar
    jrandom committed
    
    2005-09-30  jrandom
        * Only allow autodetection of our IP address if we haven't received an
          inbound connection in the last two minutes.
        * Increase the default max streaming resends to 8 from 5 (and down from
          the earlier 10)
    
    jrandom's avatar
    jrandom committed
    
    
    ragnarok's avatar
    ragnarok committed
        * Export petnames from syndie to the router's petname db instead of 
          userhosts.txt.
    
    jrandom's avatar
    jrandom committed
    2005-09-29  jrandom
        * Support noreseed.i2p in addition to .i2pnoreseed for disabling automatic
          reseeding - useful on OSes that make it hard to create dot files.  
          Thanks Complication (and anon)!
        * Fixed the installer version string (thanks Frontier!)
        * Added cleaner rejection of invalid IP addresses, shitlist those who send
          us invalid IP addresses, verify again that we are not sending invalid IP
          addresses, and log an error if it happens. (Thanks Complication, ptm,
          and adab!)
    
    jrandom's avatar
    jrandom committed
    
    * 2005-09-29  0.6.1 released
    
    2005-09-29  jrandom
        * Let syndie users modify their metadata.
        * Reseed the router on startup if there aren't enough peer references 
          known locally.  This can be disabled by creating the file .i2pnoreseed
          in your home directory, and the existing detection and reseed handling
          on the web interface is unchanged.
    
    jrandom's avatar
    jrandom committed
    
    2005-09-28  jrandom
        * Fix for at least some (all?) of the wrong stream errors in the streaming
          lib
    
    jrandom's avatar
    jrandom committed
    
    2005-09-27  jrandom
        * Properly suggest filenames for attachments in Syndie (thanks all!)
        * Fixed the Syndie authorization scheme for single user vs. multiuser
    
    jrandom's avatar
    jrandom committed
    
    2005-09-27  jrandom
        * I2PTunnel bugfix (thanks Complication!)
        * Increase the SSU cwin slower during congestion avoidance (at k/cwin^2 
          instead of k/cwin)
        * Limit the number of inbound SSU sessions being built at once (using
          half of the i2np.udp.maxConcurrentEstablish config prop)
        * Don't shitlist on a message send failure alone (unless there aren't any
          common transports).
        * More careful bandwidth bursting
    
    jrandom's avatar
    jrandom committed
    
    2005-09-26  jrandom
        * Reworded the SSU introductions config section (thanks duck!)
        * Force identity content encoding for I2PTunnel httpserver requests 
          (thanks redzara!)
        * Further x-i2p-gzip bugfixes for the end of streams
        * Reduce the minimum bandwidth limits to 3KBps steady and burst (though
          I2P's performance at 3KBps is another issue)
        * Cleaned up some streaming lib structures
    
    jrandom's avatar
    jrandom committed
    
    2005-09-25  jrandom
        * Allow reseeding on the console if the netDb knows less than 30 peers,
          rather than less than 10 (without internet connectivity, we keep the 
          last 15 router references)
        * Reenable the x-i2p-gzip HTTP processing by default, flushing the stream
          more aggressively.
        * Show the status that used to be called "ERR-Reject" as "OK (NAT)"
        * Reduced the default maximum number of streaming lib resends of a packet
          (10 retransmits is a bit much with a reasonable RTO)
    
    jrandom's avatar
    jrandom committed
    
    2005-09-25  Complication
        * Better i2paddresshelper handling in the I2PTunnel httpclient, plus a new
          conflict resolution page if the i2paddresshelper parameter differs from
          an existing name to destination mapping.
    
    2005-09-25  jrandom
        * Fix a long standing streaming lib bug (in the inactivity detection code)
        * Improved handling of initial streaming lib packet retransmissions to 
          kill the "lost first packet" bug (where a page shows up with the first
          few KB missing)
        * Add support for initial window sizes greater than 1 - useful for 
          eepsites to transmit e.g. 4 packets full of data along with the initial
          ACK, thereby cutting down on the rtt latency.  The congestion window 
          size can and does still shrink down to 1 packet though.
        * Adjusted the streaming lib retransmission calculation algorithm to be
          more TCP-like.
    
    jrandom's avatar
    jrandom committed
    
    2005-09-21  redzara
        * Use ISO-8859-1 for the susidns xml
    
    jrandom's avatar
    jrandom committed
    
    2005-09-21  susi
        * Bugfix in susidns for deleting entries
    
    2005-09-21  jrandom
        * Add support for HTTP POST to EepGet
        * Use HTTP POST for syndie bulk fetches, since there's a lot of data to 
          put in that URL.
    
    jrandom's avatar
    jrandom committed
    
    2005-09-18  jrandom
        * Added support for pure 64bit linux with jbigi and the java service 
          wrapper (no need for jcpuid if we're on os.arch=amd64).  Thanks mule 
          et al for help testing!
        * UI cleanup in Syndie (thanks gloin and bar!)
    
    ragnarok's avatar
    ragnarok committed
    
    
    2005-09-18  Ragnarok
        * Made MetaNamingService the default naming service.
    
    
    ragnarok's avatar
    ragnarok committed
    2005-09-17  Ragnarok
        * Implemented a naming service using Syndie's petname db.  It's not enabled
          by default, but you can try it out by setting
          i2p.naming.impl=net.i2p.client.naming.PetNameNamingService in 
          router.config.
    
        * Implemented a meta naming service that will first lookup names in the 
          PetNameNamingService then fallback on the HostTxtNamingService.  Which
          naming services are checked and in which order is specified by 
          i2p.nameservicelist.  This will probably become the default naming service
          so please help test it out by setting
          i2p.naming.impl=net.i2p.client.naming.MetaNamingService in router.config.
          
    
    jrandom's avatar
    jrandom committed
    * 2005-09-17  0.6.0.6 released
    
    2005-09-17  jrandom
        * Clean up syndie a bit more and bundle a default introductory post with 
          both new installs and updates.
        * Typo fixes on the console (thanks bar!)
    
    jrandom's avatar
    jrandom committed
    
    2005-09-17  jrandom
    
    jrandom's avatar
    jrandom committed
        * Updated the bandwidth limiter to use two tiers of bandwidth - our normal
          steady state rate, plus a new limit on how fast we transfer when 
          bursting.  This is different from the old "burst as fast as possible 
          until we're out of tokens" policy, and should help those with congested
          networks.  See /config.jsp to manage this rate.
    
    jrandom's avatar
    jrandom committed
        * Bugfixes in Syndie to handle missing cache files (no data was lost, the
          old posts just didn't show up).
        * Log properly in EepPost
    
    jrandom's avatar
    jrandom committed
    
    2005-09-17  jrandom
        * Added the natively compiled jbigi and patched java service wrapper for
          OS X.  Thanks Bill Dorsey for letting me use your machine!
        * Don't build i2p.exe or i2pinstall.exe when run on OS X machines, as we
          don't bundle the binutils necessary (and there'd be a naming conflict
          if we did).
        * Added 'single user' functionality to syndie - if the single user 
          checkbox on the admin page is checked, all users are allowed to control
          the instance and sync up with remote syndie nodes.
        * Temporarily disable the x-i2p-gzip in i2ptunnel until it is more closely
          debugged.
    
    jrandom's avatar
    jrandom committed
    
    2005-09-16  jrandom
        * Reject unroutable IPs in SSU like we do for the TCP transport (unless
          you have i2np.udp.allowLocal=true defined - useful for private nets)
    
    jrandom's avatar
    jrandom committed
    
    2005-09-16  jrandom
        * Adjust I2PTunnelHTTPServer so it can be used for outproxy operators 
          (just specify the spoofed host as an empty string), allowing them to
          honor x-i2p-gzip encoding.
        * Let windows users build the exes too (thanks bar and redzara!)
        * Allow I2PTunnel httpserver operators to disable gzip compression on 
          individual tunnels with the i2ptunnel.gzip=false client option 
          (good idea susi!)
    
    jrandom's avatar
    jrandom committed
    
    2005-09-16  jrandom
        * Added the i2p.exe and i2pinstall.exe for windows users, using launch4j.
        * Added runplain.sh for *nix/osx users having problems using the java
          service wrapper (called from the install dir as: sh runplain.sh)
        * Bundle susidns and syndie, with links on the top nav
        * Have I2PTunnelHTTPClient and I2PTunnelHTTPServer use the x-i2p-gzip 
          content-encoding (if offered), reducing the payload size before it
          reaches the streaming lib.  The existing compression is at the i2cp
          level, so we've been packetizing 4KB of uncompressed data and then
          compressing those messages, rather than compressing and then packetizing
          4KB of compressed data.  This should reduce the number of round trips
          to fetch web pages substantially.
        * Adjust the startup and timing of the addressbook so that susidns always
          has config to work off, and expose a method for susidns to tell it to
          reload its config and rerun.
    
    jrandom's avatar
    jrandom committed
    
    2005-09-15  jrandom
        * Error handling for failed intro packets (thanks red.hand!)
        * More carefully verify intro addresses
    
    jrandom's avatar
    jrandom committed
    
    2005-09-13  jrandom
        * More careful error handling with introductions (thanks dust!)
        * Fix the forceIntroducers checkbox on config.jsp (thanks Complication!)
        * Hide the shitlist on the summary so it doesn't confuse new users.
    
    comwiz's avatar
    comwiz committed
    
    2005-09-12  comwiz
        * Migrated the router tests to junit
    
    jrandom's avatar
    jrandom committed
    
    2005-09-12  jrandom
        * Removed guaranteed delivery mode entirely (so existing i2phex clients
          using it can get the benefits of mode=best_effort).  Guaranteed delivery
          is offered at the streaming lib level.
        * Improve the peer selection code for peer testing, as everyone now 
          supports tests.
        * Give the watchdog its fangs - if it detects obscene job lag or if 
          clients have been unable to get a leaseSet for more than 5 minutes,
          restart the router.  This was disabled a year ago due to spurious 
          restarts, and can be disabled by "watchdog.haltOnHang=false", but the
          cause of the spurious restarts should be gone.
    
    jrandom's avatar
    jrandom committed
    
    2005-09-12  jrandom
        * Bugfix for skewed store which could kill a UDP thread (causing complete
          comm failure and eventual OOM)
    
    jrandom's avatar
    jrandom committed
    
    2005-09-12  jrandom
        * More aggressively publish updated routerInfo.
        * Expose the flag to force SSU introductions on the router console
        * Don't give people the option to disable SNTP time sync, at least not
          through the router console, because there is no reason to disable it.
          No, not even if your OS is "ntp synced", because chances are, its not.
    
    jrandom's avatar
    jrandom committed
    
    2005-09-10  jrandom
        * Test the router's reachability earlier and more aggressively
        * Use the low level bandwidth limiter's rates for the router console, and
          if the router has net.i2p.router.transport.FIFOBandwidthLimiter=INFO in
          the logger config, keep track of the 1 second transfer rates as the stat
          'bw.sendBps1s' and 'bw.recvBps1s', allowing closer monitoring of burst 
          behavior.
    
    jrandom's avatar
    jrandom committed
    
    2005-09-09  jrandom
        * Added preliminary support for NAT hole punching through SSU introducers
        * Honor peer test results from peers that we have an SSU session with if
          those sessions are idle for 3 minutes or more.
    
    cervantes's avatar
    cervantes committed
    
    2005-09-09  cervantes
    
    jrandom's avatar
    jrandom committed
        * New build due to change in build number :P (thanks ugha!)
    
    jrandom's avatar
    jrandom committed
    
    2005-09-07  BarkerJr
        * HTML cleanup for the router console (thanks!)
    
    2005-09-07  jrandom
        * Lay the foundation for 'client routers' - the ability for peers to opt 
          out of participating in tunnels entirely due to firewall/NAT issues.  
          Individual routers have control over where those peers are used in 
          tunnels - in outbound or inbound, exploratory or client tunnels, or 
          none at all.  The defaults with this build are to simply act as before -
          placing everyone as potential participants in any tunnel.
        * Another part of the foundation includes the option for netDb 
          participants to refuse to answer queries regarding peers who are marked
          as unreachable, though this too is disabled by default (meaning the 
          routerInfo is retrievable from the netDb).
    
    jrandom's avatar
    jrandom committed
    
    2005-09-05  jrandom
        * Expose the HTTP headers to EepGet status listeners
        * Handle DSA key failures properly (if the signature is not invertable, it
          is obviously invalid)
    
    jrandom's avatar
    jrandom committed
    
    2005-09-04  jrandom
        * Don't persist peer profiles until we are shutting down, as the 
          persistence process gobbles RAM and wall time.
        * Bugfix to allow you to check/uncheck the sharedClient setting on the
    
    jrandom's avatar
    jrandom committed
          I2PTunnel web interface (thanks BarkerJr!)
    
    jrandom's avatar
    jrandom committed
        * Be more careful when expiring a failed tunnel message fragment so we 
          don't drop the data while attempting to read it.
    
    jrandom's avatar
    jrandom committed
    
    * 2005-09-02  0.6.0.5 released
    
    jrandom's avatar
    jrandom committed
    
    2005-09-02  jrandom
        * Don't refuse to send a netDb store if the targetted peer has failed a 
          bit (the value was an arbitrary amount).
        * Logging changes
    
    jrandom's avatar
    jrandom committed
    
    * 2005-09-01  0.6.0.4 released
    
    jrandom's avatar
    jrandom committed
    
    2005-09-01  jrandom
        * Don't send out a netDb store of a router if it is more than a few hours
          old, even if someone asked us for it.
    
    jrandom's avatar
    jrandom committed
    
    2005-08-31  jrandom
        * Don't publish leaseSets to the netDb if they will never be looked for -
          namely, if they are for destinations that only establish outbound
          streams.  I2PTunnel's 'client' and 'httpclient' proxies have been 
          modified to tell the router that it doesn't need to publish their 
          leaseSet (by setting the I2CP config option 'i2cp.dontPublishLeaseSet'
          to 'true').
        * Don't publish the top 10 peer rankings of each router in the netdb, as
          it isn't being watched right now.
    
    jrandom's avatar
    jrandom committed
    
    2005-08-29  jrandom
        * Added the new test Floodfill netDb
    
    jrandom's avatar
    jrandom committed
    
    2005-08-27  jrandom
        * Minor logging and optimization tweaks in the router and SDK
        * Use ISO-8859-1 in the XML files (thanks redzara!)
        * The consolePassword config property can now be used to bypass the router
          console's nonce checking, allowing CLI restarts
    
    jrandom's avatar
    jrandom committed
    
    2005-08-24  jrandom
        * Catch errors with corrupt tunnel messages more gracefully (no need to 
          kill the thread and cause an OOM...)
        * Don't skip shitlisted peers for netDb store messages, as they aren't 
          necessarily shitlisted by other people (though they probably are). 
        * Adjust the netDb store per-peer timeout based on each particular peer's
          profile (timeout = 4x their average netDb store response time)   
        * Don't republish leaseSets to *failed* peers - send them to peers who
          replied but just didn't know the value.
        * Set a 5 second timeout on the I2PTunnelHTTPServer reading the client's
          HTTP headers, rather than blocking indefinitely.  HTTP headers should be
          sent entirely within the first streaming packet anyway, so this won't be
          a problem.
        * Don't use the I2PTunnel*Server handler thread pool by default, as it may