* 2013-03-08 0.9.5 released

2013-03-03 zzz
 * graphs.jsp: Fix saving settings (ticket #857)

2013-03-03 kytv
 * Update geoip.txt based on Maxmind GeoLite Country database from 2013-02-19

2013-02-22 kytv
 * French, German, Norwegian, and Portuguese translation updates from
   transifex.

2013-02-13 kytv
 * Flag for Curaçao (CW), public domain

2013-02-12 zzz
 * NetDB: Randomize delay before floodfill store verify

2013-02-10 zzz
 * Logs: Again fix setting log filename (ticket #805)
 * Update: Bump torrent update to 3% of routers
 * Wrapper: Update ARMv6 Java Service Wrapper to v3.5.17 (ticket #826).

2013-02-09 zzz
 * NetDB:
   - Encrypt DatabaseLookup messages out exploratory tunnels
     when we already have the RI of the ff
   - Don't use multiple routers from the same /16 in lookups or stores

2013-02-06 kytv
 * German, Polish, Portuguese, Spanish, and Swedish translation updates
   from Transifex

2013-02-04 str4d
 * i2ptunnel:
   - IP -> domain name mapping in SOCKS client tunnel:
     - Change SOCKS5 addressType on a successful mapping
     - Allow any domain name to be mapped, not just .i2p

2013-01-31 kytv
 * Add Norwegian Bokmål language to the router console
 * Add Bokmål translations from Transifex

2013-01-31 zzz
 * EepGet:
   - Fix URL when not proxied to conform to RFC 2616
   - Add port to Host header to conform to RFC 2616

2013-01-29 zzz
 * Console: Catch IllegalStateException storing nonces (tickets #836, #852, #858)
 * Translations:
   - Use JVM language name if available
   - Correct Estonian language code from ee to et

2013-01-27 zzz
 * BuildHandler:
   - Add early throttler based on previous hop
   - Limit concurrent next-hop lookups
 * NetDB: Increase floodfills again
 * RandomSource: Seed from SecureRandom too

2013-01-23 str4d
 * i2ptunnel: Added IP -> I2P URL mapping to SOCKS client tunnel
   (via custom option ipmapping.IP=URL)

2013-01-21 str4d
 * Console:
   - Added option to /configui to force the mobile console to be used
     (for cases where the UserAgent matching fails)
   - Added Opera Mobile to list of mobile UserAgents
   - Added a link to the summary bar for mobile users on /home

2013-01-19 str4d
 * Console:
   - Added proper support for mobile browsers with a CSS override file
     for each theme
   - Tweaked UserAgent detection so Android tablets get normal console

2013-01-17 kytv
* Hungrarian, Italian, Portuguese, Russian, and Swedish translation updates
  from Transifex

2013-01-12 zzz
 * EepGet: Don't retry if proxy isn't there
 * I2CP: Failsafe check for delivery job requeueing forever (ticket #819)
 * jobs.jsp: Add table of pending jobs
 * NetDB: Split up files into subdirectories
 * SAM: Force i2cp.messageReliability=None (ticket #819)

2013-01-02 zzz
 * DataHelper: new getASCII() method
 * DataStructures:
   - Convert SessionTag.hashCode() to SipHash to prevent collision attacks
   - Improve equals()
 * I2CP:
   - Remove unused equals() methods for message classes
   - Remove static logs
   - Fix leak if nonce = 0 but reliability != none (ticket #819)
   - More work on failure codes (ticket #788)
 * Logs: Fix setting log filename (ticket #805)
 * SAM: Synchronize dissector
 * Transport: Fix early NPE (ticket #824)

2013-01-01 kytv
 * Update Java Service Wrapper to v3.5.17 (ticket #826).
    - Windows: Self-compiled with VS2010 in Windows 7. The icon has been
      changed from Tanuki's default to Itoopie.
    - FreeBSD: Self-compiled in FreeBSD 7.4 to eliminate the dependency on the
      compat6x port.
    - Linux x86, Linux x64, Linux ARMv5, Linux-PPC32, MacOSX & Solaris: Binares
      are from the "community edition" deltapack offered by Tanuki. The Linux
      binaries have been stripped.

2012-12-29 zzz
 * i2psnark: Redirect after post
 * Javadocs: Fix javax links
 * Tunnels: Handle duplicate tunnel IDs (ticket #812)

2012-12-26 zzz
 * I2CP:
   - Prep for delivery of detailed failure codes to the client (ticket #788)
   - Minor optimizations and cleanups
 * i2psnark: Create torrent form tweaks
 * NetDB: Split routerInfo files into subdirectories, disabled for now,
   enable with router.networkDatabase.flat=false
 * Stats: Clean up some duplicate createRateStat calls (ticket #787 comment 2)
 * Tunnels: Catch rare BuildExecutor IAE only in Java 7 (ticket #811)

2012-12-24 kytv
 * Javadocs: Fix javadoc errors in the cybergarage package. Upstream bug #3598391 has been
   filed for this issue.  If these javadoc fixes need to be reverted in the future,
   MTN rev 5bdb7fc27e35f174001bd6105a502fd5094842e5 covers it.

2012-12-22 zzz
 * i2psnark: Add announce list support (BEP 12) (ticket #778)
 * i2ptunnel: Add more tunnel quantity options for servers
 * Jetty: Update to Apache Tomcat 6.0.36

2012-12-22 kytv
 * French language translation update from Transifex

2012-12-19 zzz
 * Update: Hide the update buttons when router.updateDisabled=true, as is the case
   for Debian packages. Broken in 0.9.4. (Ticket #817)

* 2012-12-17 0.9.4 released

2012-12-14 kytv
 * German and Swedish translation updates from Transifex
 * Update geoip.txt based on Maxmind GeoLite Country database from 2012-12-04

2012-12-11 zzz
 * Wrapper: Use Tanuki's binary for armv7

2012-12-08 zzz
 * susimail: Button CSS tweak

2012-12-07 zzz
 * RouterClock: Reduce log level (ticket #790)

2012-12-05 zzz
 * GarlicMessage: Fix notes and log in GarlicMessageHandler and HandleGarlicMessageJob,
   they are used for netdb messages received by floodfills http://zzz.i2p/topics/1282
 * I2CP: Fix external I2CP apps, including i2ping, caused by 0 nonce value,
   broken in 0.9.2 (tickets #799, #801). Allow nonces == 0.
 * Reseed: Don't go on to the next host if we have enough http://zzz.i2p/topics/1287
 * SSU: Fix rare NPE (ticket #798)

2012-11-28 kytv
 * Chinese, French, Italian, Polish, and Ukrainian translation updates from
   Transifex.

2012-11-24 zzz
 * Addressbook: Disable unused wakeup via http
 * Codel: Make stats non-required (ticket #786)
 * Profiles: Small optimization in coalesceOnly() (ticket #765)

2012-11-21 zzz
 * Wrapper: Add armv6 files for Raspberry Pi

2012-11-21 kytv
 * Update Java Service Wrapper to v3.5.16.
    - Windows: Self-compiled with VS2010 in Windows 7. The icon has been
      changed from Tanuki's default to Itoopie.
    - FreeBSD: Self-compiled in FreeBSD 7.4 to eliminate the dependency on the
      compat6x port.
    - Linux PPC32: Self-compiled in Debian Squeeze
    - Linux x86, Linux x64, Linux ARMv5, MacOSX & Solaris: Binares are from the
      "community edition" deltapack offered by Tanuki. The Linux binaries have
      been stripped.

2012-11-20 zzz
 * Transport: Fix bug that inadvertently reduced default max
   SSU connections in 0.9.2, thus reducing tunnel build success rates

2012-11-19 kytv
 * Add support for kFreeBSD to NBI and CPUID
 * Improve kFreeBSD support in jcupid/jbigi scripts

2012-11-19 zzz
 * BuildHandler: Disable CoDel, wasn't helping
 * NetDB: Add negative lookup cache
 * Profiles: Split up files into subdirectories

2012-11-17 zzz
 * error500.jsp: Add servlet version
 * i2psnark: Clear PEX peers set after use, cause of bad peer counts
 * Tunnels: Set default priorities for tunnels (ticket #719)

2012-11-16 zzz
 * i2psnark: Fix rare IOOBE (ticket #777)
 * NetDB:
   - Implement automatic reseeding (ticket #521)
   - Increase minimum routers
   - Log reseeds in event log
 * Tunnels: Fix outbound tunnel message priority (ticket #719)

2012-11-13 zzz
 * Bandwidth Limiter: Fix stats broken in -1
 * HTTP Proxy: Store referrer of new addresses in address book
 * NTCP:
   - Fix NPE (ticket #770)
   - Use ByteCache for buffers
 * SOCKS: Reduce log level of connect errors
 * SSU: Fix bug that would drop 512 byte messages
 * stats.jsp: Link to graph page, not single image

2012-11-10 kytv
 * eepget: Add logic to figure out the path to java.exe (java isn't always added to the system path
   in Windows) (ticket #769)

2012-11-05 zzz
 * Console:
   - Fix NPE after restart (ticket #763)
   - Move more nonces out of system properties
 * i2psnark:
   - More DHT limits
   - Announce to backup trackers if DHT is empty
   - Use PEX and DHT info in torrent peer count
   - Don't use temp files for announces
 * PeerManager: Don't reorganize as often if it takes too long (ticket #765)
 * RequestLeaseSetJob: Only disconnect client after multiple dropped
   lease set requests; reduce timeout, other cleanups
 * Unsigned Update: Fix notification on failure

2012-11-02 kytv
 * German, Portuguese, and Swedish translation updates from Transifex
 * Refreshed English po files to push to TX.

2012-11-02 zzz
 * configstats: Fix group sorting, translate groups
 * I2CP:
   - Better fix for logging dropped messages (ticket #758)
   - Implement fast receive to reduce per-message handshakes
   - Make messageReliability=none the default
 * i2psnark:
   - Split buckets correctly
   - More exploration fixes
 * i2ptunnel:
   - Better privkey backup file name
   - Revert increment of privkey tunnel name
   - Move deleted privkeys to backup dir
   - Fix jsp build dependencies
   - Fix layout issue on Chrome (ticket #757)
 * KeyManager: Eliminate races, buffer I/O, eliminate periodic syncing

2012-10-31 zzz
 * FIFOBandwidthRefiller: Reduce refill interval to smooth output
 * I2CP: Reduce log level when outbound queue is full (ticket #758)
 * i2ptunnel: Fix NPE in zzzot plugin
 * PriBlockingQueue: Enforce max size
 * Streaming: New disableRejectLogging option (default false), enable for snark

2012-10-30 zzz
 * i2psnark:
   - Add kbucket debugging
   - Eliminate redundant explore keys
   - Add more limits to DHT tracker
   - Delay expiration at startup
   - Only enable updates for dev builds and 1% of release builds
 * i2ptunnel:
   - Create backup privkey files (ticket #752)
   - Fix NPE in Android startup
 * Installer: Drop news.xml and old certs
 * logs.jsp:
   - Don't display dup message if last
   - Spacing tweaks
 * OutNetMessage: Properly clean up when dropped by codel (but unused for now
   since codel is disabled for ONM)
 * SSU:
   - Adjust RTT/RTO calculations
   - Better bandwidth tracking
   - Cleanup of OutboundMessageState
   - Stat tweaks
 * StatisticsManager: Publish stats less often
 * Transports: Increase min peer port to 1024
 * Tunnels: Implement per-client outbound tunnel message priority (ticket #719)
 * Update Manager: Warn on dup registration

2012-10-30 sponge
 * cleanups as requested

2012-10-28 zzz
 * Addresses:
   - Add methods for connectivity detection
   - Remove Hamachi restriction
 * Banlist: renamed
 * Clients: New interface for clients started via clients.config, and a new
   manager to track the lifecycle and start/stop clients on demand.
   (ticket #347)
 * Console:
   - Add console password form to configui.jsp
   - Consolidate all the jsp formhandler boilerplate in the new formhandler.jsi
   - Store form handler nonces in the servlet session instead of system properties,
     to prevent cross-session interference
   - Bypass nonces if console password enabled
   - Remove ports from port mapper on shutdown, other changes to
     track actual ports better (ticket #731)
   - Prep for RouterApp interface by storing context in a field,
     shuffle around what's static and what's not (ticket #347)
   - Convert to RouterApp interface
   - Convert from basic to digest authentication (ticket #652)
   - Use new password manager (ticket #731)
 * Core: New password manager for storing passwords in router.config
   in consistent ways, including salting and hashing if possible.
   (ticket #731)
 * i2ptunnel:
   - Convert HTTP and CONNECT proxies from basic to digest authentication
   - Bypass nonces if console password enabled
   - Convert to ClientApp interface
   - Synchronization improvements
 * Streaming: Add pcap debug facility, from i2p.i2p.zzz.pcap
 * Transport:
   - Add a simple network monitor
   - Add new reachability state for network disconnected
   - Prevent any tunnel building when disconnected (ticket #519)
   - Don't unleash watchdog when disconnected
   - Split up NTCPConnection's single _bwRequests Set into inbound and outbound,
     make FIFOBandwithLimiter.Request unidirectional (ticket #719)
 * Update: Major redesign of the update facilities:
   - Generic interfaces for updating and checking things
   - Allow checkers and updaters outside router context
   - Hide update buttons after downloading update (ticket #484)
   - Add update-via-i2psnark facility
   - Don't hold references to updaters after completion

* 2012-10-27 0.9.3 released

2012-10-25 zzz
 * BuildHandler: Fix "too slow" rejections due to internal clock skew

2012-10-24 zzz
 * I2PSnark:
   - Fix several partial piece (temp file) leaks
   - Don't lose all DHT peers if we stop quickly	
   - Explore a kbucket if it's less than 3/4 full

2012-10-24 str4d
 * i2ptunnel: Truncate long client destinations (ticket #581)

2012-10-21 zzz
 * Watchdog: Don't dump threads too often (ticket #519)

2012-10-20 zzz
 * Transport: Back out CoDel for SSU PeerState and NTCP

2012-10-19 zzz
 * UDP: Fix peer test NPE (ticket # 748)

2012-10-18 kytv
* Portuguese and Spanish updates from Transifex
 * Update geoip.txt based on Maxmind GeoLite Country database from 2012-10-02

2012-10-15 kytv
* Italian and Swedish updates from Transifex

2012-10-14 zzz
 * Console: Use non-nio connector for Java 5 and JamVM/gij
            (tickets #715 and #743)
 * i2psnark: Fix request tracking bug preventing piece requests

2012-10-11 kytv
* Italian translation updates from Transifex
* i2prouter:
  - Support for installing as a daemon with systemd on Arch Linux and Suse
  - Support installing as a daemon on Slackware

2012-10-10 zzz
 * ShellCommand: Fix launching all browsers at startup (ticket #453)
 * stats.jsp: Sort groups by translated name

2012-10-09 zzz
 * Console, i2ptunnel: Warn on low ports
 * EventLog: Add more events
 * NetDB: Increase floodfills again
 * RouterInfo: Exit 1 on error in main()
 * SSU:
   - Add peer test throttling
   - Peer test packet count fixes
   - Adjust peer test timeouts and add backoff
   - Reject relays and peer tests from same /16
   - More peer test cleanup and log tweaks
 * Transports:
   - Enforce minimum peer port
   - Warn on low router ports

2012-10-08 zzz
 * SSU:
   - Fix relay request handling bug from -10
   - Fix peer test reply handling bug from -10
   - Fix NPE from -6

2012-10-07 zzz
 * I2PAppContext: Improved synching in constructor
 * i2ptunnel:
   - Set default read timeout in standard server
   - Reduce header timeout, enforce total header timeout
     in IRC and HTTP servers (ticket #723)
 * Logs:
   - Flush buffers in logs.jsp
   - Add dup message to buffers, was in file only
 * Streaming: Don't ignore option or force connect timeout to 5 minutes
 * UPnP: Workaround NPE (ticket #728)

2012-10-06 zzz
 * configlogging.jsp: Fix IAE
 * error500.jsp: Fix whitespace
 * i2psnark:
   - Add allocating and checking indications (ticket #695)
   - Add bandwidth message at startup
   - More checks at torrent creation
 * SSU:
   - Throttle outbound destroys on shutdown
   - Limit outbound introduction offers
   - Validate port/IP in received peer tests

2012-10-05 zzz
 * configservice.jsp: Add GC button
 * DataHelper: Sanity checks in storeProps(), use
               storeProps() for router config again
 * SSU:
   - More synchronization fixes
   - Reduce chance of dup acks in a single message
   - Reduce max unsent acks to 50
   - Use last ack time in ping decision too
   - Reduce ack delay
 * TunnelPoolManager: Fix early NPE (ticket #724)

2012-10-03 zzz
 * NTCP: Reduce conLock contention
 * SSU:
   - Increase max outbound establishments based on bandwidth
   - Synchronization fix for Java 5
   - Use multiple buffer sizes in OutboundMessageState to
     reduce memory usage
   - Adjust skew calculation, synchronize too
   - Ping loop improvements

2012-10-02 zzz
 * I2CP: Delay after sending disconnect message to
         help it get through
 * i2psnark: Fix delete download message
 * i2ptunnel: Fix log message
 * NTCP: Only set keepalive if firewalled
 * OOMListener: Dump threads on OOM
 * PRNG, LogWriter: Use I2PThread to catch OOM
 * SimpleByteCache: Fix ABQ/LBQ selection
 * SSU:
   - Fix memory leak in _peersByRemoteHost map caused by not
     removing peers that change IP or port
   - Send keepalives if firewalled
   - Handle peers that change ports on an established session
   - Synchronize adds and drops
   - Don't use peers with high RTTs in clock skew calculation
   - Reduce initial RTT/RTO

2012-09-28 zzz
 * i2psnark:
   - Fix bugs in rarest-first tracking
   - Fix requesting of partial piece when there are multiple seeds
   - Synch fix in BitField
 * i2ptunnel: Fix wrong server IP in log message
 * peers.jsp: Remove SSU "Dev" column
 * SessionKeyManager: Store original tagset size for debugging
 * Streaming: Don't send RST on globally-blackisted conns

2012-09-26 zzz
 * Addresses: Reject numeric IPs of the form n, n.n, and n.n.n
 * Console, i2ptunnel: More validation of address and port in forms
 * ConvertToHash:
   - Add support for b64hash.i2p
   - Cleanup and use cache
 * i2psnark: Enable DHT by default
 * RFC822Date: Synchronization fix
 * Streaming:
   - Implement changing connection limits on a running session
   - Implement global blacklist

2012-09-25 zzz
 * Context: Make files final
 * EventLog: Fix IAE on portable
 * Jetty: Add non-NIO selector option (ticket #715)
 * OutboundEstablishState: Cleanup (ticket #671)
 * SimpleByteCache: Concurrent fix
 * UPnP: Cleanup & final
 * URLLauncher: Add xdg-open (ticket #717)

2012-09-21 zzz
 * BuildHandler: Use CoDel for inbound queue
 * ByteCache:
   - Prevent release of wrong size
   - Move all 16/32 byte users to SimpleByteCache
   - Increase SimpleByteCache default size.
 * ClientConnectionRunner:
   - Run HandleJob and MessageReceivedJob inline for speed
   - Remove payload from message map if availability announce fails
   - Cleanups
 * ClientManager:
   - Concurrent client map for faster lookup
   - Add by-hash client map for faster lookup by hash
 * ClientWriterRunner: Limit queue size
 * Clock: Synchronization, log large shifts to event log
 * Console: Mark all restarts on graphs using the event log.
 * FortunaRandomSource:
   - Fix bug that wasted entropy in nextInt()
   - Improved synchronization
 * GarlicMessage:
   - Add notes about GarlicMessageHandler and HandleGarlicMessageJob
     being unused in practice
 * I2CP:
   - Limit router/client queue sizes and queue wait times
   - Buffer output streams
 * i2psnark:
   - Implement blacklist for unreachable DHT peers
   - Reduce threshold for unreachable
   - Use ByteCache for chunks in/out
 * IP Lookup:
   - Add caching in RouterAddress with secondary caching
     in Addresses; use caches to speed up transport bids,
     blocklist checks, geoip lookups, and profile organizer
     checks (ticket #707)
   - Limit IP cache size in TransportImpl
   - Clear caches at shutdown
 * JobQueue: Reduce lock contention
 * LHMCache: New util, replacing several private versions
 * LogWriter:
   -  Duplicate log message removal
   -  Increase buffer time
 * NTCP: Move NTCPConnection outbound queue to CoDelPriority
 * OutNetMessage:
   - Centralize priority definitions
   - Raise netdb store and reply priority
 * Router:
   - Boost priority of shutdown thread
   - Replace ident log with new, general-purpose event log;
     use for stops, starts, and updates, and others.
   - New AQM CoDel queue utilities
   - Startup/shutdown synchronization fixes
 * RouterAddress: Remove unused expiration field to save space
 * SimpleTimer (ticket #653):
   - Move all remaining uses to SimpleTimer2
   - Deprecate
 * SSU:
   - Move MessageReceiver, UDPSender and UDPReceiver queues to CoDel
   - Separate PeerState outbound message list into a queue for unsent messages
     and a list for sent messages awaiting ack
   - Implement PeerState outbound queue as CoDelPriority
   - Implement backlogged indication like in NTCP
   - Increase initial and max RTO
   - Don't count ack-only packets in bandwidth allocation
 * Streaming: Don't send a RST to an hour/day limited peer,
   or blacklisted, or non-whitelisted, to not waste outbound bandwidth
 * SystemVersion: New util, to consolidate duplicate code,
   and determine Java version on Android
 * TunnelGateway:
   - Refactor TunnelGateway.Pending to its own file PendingGatewayMesasge
   - Move OBGW queue to CoDelPriority
   - Move IBGW queue to CoDel
   - Limit queue sizes
   - Add stat for overflow
   - Remove some stats
   - Change pumper to LinkedHashSet for efficiency
     (like NTCP Reader/Writer)
   - Limit messages pumped per cycle to increase
     round-robin fairness
   - Implement pushback from a backlogged transport
     queue to the pre-fragmentation queue
   - Comment out some unused code

* 2012-09-21 0.9.2 released

2012-09-15 zzz
 * Build: Fix unpack problem on Java 5: http://forum.i2p/viewtopic.php?t=7334

2012-09-14 zzz
 * SSU: Fix shutdown NPE (ticket #709)

2012-09-13 kytv
 * Update geoip.txt based on Maxmind GeoLite Country database from 2012-09-05

2012-09-12 kytv
 * Czech translation updates from Transifex

2012-09-10 meeh
 * Added fix for startup issues on newer versions of launchd (osx startup scripts)

2012-09-05 meeh
 * Added startup scripts for osx

2012-09-04 zzz
 * I2PTunnelServer: Clean shutdown after session exception
 * OutNetMessage: Speedup after profiling (ticket #707 - thx dg, kytv, zab)
 * SSU: Fix some issues with queueing outbound establishments

2012-08-31 zzz
 * i2psnark: Remove * from magnet and download names
 * Router: Lengthen shutdown spinner life
 * Startup: Don't complain about clients.config missing on Android

2012-08-29 zzz
 * ClientManager: Cleanups
 * i2psnark:
   - Fix NPE on destroy() if init() failed
   - Add new flood-resistant KBucket trim policy
   - Limit received MsgID size
 * NTCP: Reduce lock contention (ticket #697)
 * RandomIterator: Workaround for Android bug (ticket #703)

2012-08-27 zzz
 * i2psnark:
   - Notify threads awaiting DHT replies at shutdown
   - Fix cases where we weren't using the session for b32 lookup
 * Reseed: Remove forum.i2p2.de
 * Streaming: Limit amount of slow-start exponential growth
 * SSU:
   - Limit UDPSender queue size
   - Increase UDPSender max packet lifetime
   - Clear UDPSender queue before sending destroys to all
   - Increase PeerState queue size so large streaming windows
     don't get dropped right away, especially at slow start
   - Various improvements on iterating over pending outbound
     messages in PeerState
 * Wrapper: Update armv7 to 3.5.15

2012-08-27 kytv
 * Update Java Service Wrapper to v3.5.15.
    - Windows: Self-compiled with VS2010 in Windows 7. The icon has been
      changed from Tanuki's default to Itoopie.
    - FreeBSD: Self-compiled in FreeBSD 7.4 to eliminate the dependency on the
      compat6x port.
    - Linux ARMv5, Linux PPC32: Self-compiled in Debian Squeeze
    - Linux x86, Linux x64, MacOSX & Solaris: Binares are from the "community
      edition" deltapack offered by Tanuki. The x86 and x64 binaries for Linux
      have been stripped.

2012-08-26 zzz
 * DataHelper: Trim trailing whitespace when loading properties
 * NetDB: Increase floodfills, decrease flood redundancy
 * SendMessageOptions: Increase tag fields to 4 bits and use
                       table lookup for more flexibility
 * Streaming: Use packet type and current window size to adjust
              number of tags sent and tag threshold, to improve
              efficiency and reliability

2012-08-25 kytv
 * Dutch and German translation updates from Transifex
 * Router console typo fixes (#701)

2012-08-25 zzz
 * SDSCache: Reduce min and increase max size
 * SimpleByteCache: Change from LBQ to ABQ to reduce object churn
 * Other object churn cleanups (ticket #699)

2012-08-24 zzz
 * I2CP:
   - Add methods for sending a message with extended options
   - Fix cases where the efficient sendNoEffort() wasn't being used
 * i2psnark:
   - Use extended I2CP options for datagrams
   - Fix timeout for sent datagrams
   - Add link for local torrent file on details page
   - Show totals line even if only one torrent
   - Reduce token timeout
   - Check token age before use
   - Limit incoming token size
 * OCMOSJ:
   - Implement per-message overrides for tag threshold,
     tags to send, and bundle leaseset
   - Fix bug adjusting timeouts
   - Warn on client expiration time bugs

2012-08-23 zzz
 * Crypto: Rename bouncycastle HMAC libs so they don't conflict
   with older Android versions which bundle them
 * NTCP: Reduce lock contention (ticket #697)
 * SSU:
   - Don't relay or introduce to/from privileged ports
   - Various spoof detections

2012-08-22 zzz
 * NetDB: Add hash collision detection
 * SimpleTimer2: Synchronization improvements (ticket #653)
 * SSU:
   - Fail establishment immediately on SessionCreated
     validation fail
   - Defer outbound DH generation until required
   - Validate address/port in RelayIntro messages
   - Throttle hole punches
   - Workaround for Android ICS bug
   - More cleanups

2012-08-21 zzz
 * NetDB: Decrease stat publish probability
 * SSU:
   - Use external, not internal port to sign SessionCreated message.
     Together with previous fix to allow external port change, this
     should fix session establish fails when NAT changes our port
   - Track outbound establishments by both Hash and IP/port,
     to improve lookups of establishments in progress
   - Fix expiration of outbound establishments
   - Validate address/port in RelayResponse messages
   - Change RemoteHostID to store Hash instead of byte[] for the peer hash
   - Log tweaks

2012-08-20 zzz
 * I2CP: MessageStatus cleanup
 * i2psnark: Add minimum tracker and DHT announce intervals
 * I2PTunnelRunner: Remove unnecessary lock (ticket #690)
 * SSU: Allow port change if firewalled
 * Streaming: Increase max connection timeout
 * UPnP:
   - Prep for UPnP returning different external port
   - Better logging of errors

2012-08-18 kytv
 * Fix hang during uninstallation experienced by some users in Windows

2012-08-17 zzz
 * i2psnark:
   - Adjust DHT timeouts
   - Add max peers per-torrent in tracker
   - Remove duplicate clean task for nodes
   - Fix another DHT warning message
 * SSU:
   - Use remote MTU when published (ticket #682)
   - Queue outbound msgs during inbound establish
   - IntroManager cleanups
   - More synchronization

2012-08-17 sponge
 * BOB: just some cleanup of old, dead meaningless commentedout code
        and a little reformatting.

2012-08-16 zzz
 * Utils: Drop unused BufferedRandomSource, PooledRandomSource,
   EepGetScheduler, EepPost and HTTPSendData, moved to i2p.scripts

2012-08-15 zzz
 * i2psnark:
   - Fix bug preventing completion announcement, broken in 0.9.1
   - Fix setting short retry time after initial announce failure
   - Fix DHT announce and getPeers
   - Fix DHT warning message
 * UPnP: Update to CyberLink 2.1 (ticket #427, possibly others)

2012-08-13 zzz
 * SSU EstablishmentManager:
   - Remove use of outbound timers in EstablishmentManager; drive all events in Establisher thread
   - Don't change nonces when retransmitting intro packets
   - More synchronization in EstablishmentManager
   - Increase establishment timeouts and implement timeouts for individual phases (ticket #669)
   - Fix bug where InboundEstablishState.createdPacketSent() wasn't being called,
     so SessionCreated packets weren't retransmitted
   - Increase retransmission timeout for SessionCreated and implement backoff
   - Send destroy if establishment times out in the middle
   - Fix code that pulls outbound states off a deferred queue
   - Improve UDPPacket.toString() for debugging
   - More logging of packets dropped in EstablishmentManager
   - Change establish states to enums

2012-08-12 zzz
 * Jetty: Don't use direct byte buffers that may be leaking (ticket #679)
 * PeerManager: Fix NPE on Android (ticket #687)
 * SSU:
   - Reject some packet types if they came in via fallback introKey
   - Increase retransmission timeout for SessionRequest, SessionConfirm,
     and RelayRequest; implement backoff
   - Move UDPFlooder to test
   - More volatiles, finals, cleanups, stat removals, log tweaks

2012-08-11 zzz
 * DataHelper: toString(byte[]) cleanup
 * i2psnark:
   - Fix DHT nodes not being saved at shutdown
 * RouterContext: Make the contexts list concurrent
 * SSLEepGet: Don't throw UOE in TrustManager
 * SSU MTU (ticket #682):
   - Use local MTU detection
   - i2np.udp.mtu now sets max MTU, not initial MTU
   - Put local MTU in netDb 
   - Fix receive MTU calculations
   - Track remote MTU based on actual received packet size
   - Display local MTU on peers page

2012-08-10 kytv
* German and Greek translation updates from Transifex

2012-08-09 zzz
 * Datagrams: Remove static logs
 * i2psnark:
   - Remove static SnarkManager instance
   - Allow DHT-only torrents
   - DHT debugging
 * NTCP: Stat cleanup
 * SAM:
   - Don't use direct byte buffers that may be leaking (ticket #679)
   - Volatiles and finals
 * SSU:
   - Don't send a packet that exceeds the MTU
   - Stub out local MTU detection (ticket #682)
   - More cleanups

2012-08-07 str4d
 * Console:
   - Theme updates from dr|z3d
   - Changed universal theming key so it is not mistaken as a theme
     name by the routerconsole
 * i2psnark:
   - Theme updates from dr|z3d
   - If universal theming is set and routerconsole theme is classic,
     use light theme explicitly
 * susidns: new midnight theme from dr|z3d

2012-08-06 zzz
 * Clone System properties before iterating to avoid
   ConcurrentModificationException (ticket #680)
 * Console: Fix flag links on /console to return to same page
 * i2psnark: Add support for DHT (disabled by default)
 * jbigi: Add ARMv6 libjbigi.so for Raspberry Pi

2012-08-05 zzz
 * I2PSessionImpl: One more volatile (ticket #659)
 * i2ptunnel, I2CP, EepGet: Buffer socket input streams (ticket #666)
 * UDP:
   - Limit PacketHandler threads to 1 (ticket #660)
   - Limit queue sizes between UDPReceiver and PacketHandler,
     and between PacketHandler and MessageReceiver, to prevent OOMs
     and/or excessive queue delays
   - Increase UDPPacket cache size based on max mem
   - Remove more stats

2012-08-03 zzz
 * build.xml: Add buildI2PTunnelJar target for Android
 * i2psnark: Finish migration to I2P logging to reduce object churn (ticket #673)
 * LogManager: Add logger.logBufferSize and logger.dropOnOverflow options (ticket #662)
 * JobQueue: Synch fix (ticket #670)
 * OutNetMessage: Fix NPE when log level = INFO (ticket #676)
 * SimpleScheduler, SimpleTimer2: Replace getInstance() calls
 * UDP:
   - Catch some cases where UDPPackets were not returned to the cache (ticket #675)
   - Fix inverted logging logic (ticket #663)
   - Remove check in UDPPacket.getLifetime() (ticket #664)
   - RemoteHostID cleanup, cache hashcode
   - Remove udp.fetchRemoteSlow stat
   - Remove some time stamping in UDPPacket
   - Other cleanups - see http://zzz.i2p/topics/1198

2012-08-03 str4d
 * Console: universal theming support - packaged apps will try and use the routerconsole
   theme if universal theming is enabled there and the same theme exists for the app.

2012-07-31 str4d
 * core, router:
   - Existing JUnit test framework fixed up and running.
   - Code coverage tools (Clover and Cobertura) integrated into unit test targets.
   - Implemented new test-related targets to provide a ScalaTest test framework.

2012-07-30 zzz
 * build.xml: Move more default properties to build.properties
 * DecayingBloomFilter, DecayingHashSet, xlattice filters:
   - Move from core to router
   - Comment out tests
 * ElGamal/AES/SessionTag:
   - Increase TX expire from 10 to 12 min, while keeping RX expire at 15 min.
     3 minutes should be plenty of clock skew + delay.
   - Move tags-to-send and low-threshold values to be per-SKM
   - New session config options crypto.tagsToSend and crypto.lowTagThreshold
   - Prep for per-packet override of tags and thresholds
   - Cleanups and Javadocs
 * GarlicMessageBuilder:
   - Put data clove last to speed acks and leaseset store on far end
 * I2PTunnel: Add some defaults for the new session config options
 * OCMOSJ:
   - Don't bundle LeaseSet just because we're requesting an ACK
   - Changed session config option shouldBundleReplyInfo to default to true
     and be used to disable bundling altogether when set to false.
     Was previously an undocumented option to force bundling with a certain probability.
   - Don't send tags unless we've already generated a reply token (race)
   - Cleanups and Javadocs
 * RoutingKeyGenerator: Cleanups (ticket #672)

* 2012-07-30 0.9.1 released

2012-07-28 str4d
 * Console: theme fixes

2012-07-26 kytv
* Update geoip.txt based on Maxmind GeoLite Country database from 2012-07-04
* Finnish, French, German, Spanish and Swedish translation updates from TX

2012-07-26 sponge
* BOB Fix static references to Log

2012-07-24 sponge
 * BOB reset spin flag to enable restart from zap command

2012-07-24 str4d
 * Summary bar: disable fallback iframe in summary.jsi (so when JS is disabled
   the summary bar will not refresh at all)
 * Home page:
   - Replaced 16x16 icons with 32x32 ones
   - Updated icon for git.repo.i2p
   - Moved RestartStatus back above LocalDestinations

2012-07-24 zzz
 * LookaheadInputStream: Fix bug causing gunzip fails, esp. on Android
 * Router: Don't create router.ping file on Android
 * SSLEepGet: Fix on Android (ticket #668)

2012-07-21 zzz
 * i2psnark: Remove dark theme
 * Reseed: Add new cert for cowpuncher
 * SSU: Remove exception creation (ticket #665)

2012-07-21 str4d
 * Home page: unlinked the iframed pages for i2psnark and susimail (the pages
   /webmail and /torrents still exist, but the console links to the apps
   directly instead for now)

2012-07-19 str4d
 * Home page: replaced itoopie with an eepsite icon (c/o dr|z3d) for eepsites
   with no icon of their own.
 * i2psnark:
   - New light theme (c/o dr|z3d) which integrates with console light theme
   - Moved table heading text into tooltips to reduce visual clutter

2012-07-18 str4d
 * Home page: Added id3nt.i2p and git.repo.i2p

2012-07-18 zzz
 * Home page: Add colombo-bt.i2p, remove keys.i2p
 * i2psnark: Clear rate stats when restarting torrent

2012-07-16 str4d
 * console: work towards better integration
   - Wrapped the bundled apps in iFrames (with a link in the page header to
     open the app in a new tab):
     - i2ptunnel
     - i2psnark
     - susimail
     - susidns
   - Theme improvements
     - Added theme support to susimail and susidns
       - "susimail.theme=foo" in susimail.config
       - "theme=foo" on susidns config page
     - Extensive work on dark console theme (dr|z3d)
       - Improved integration of i2ptunnel in iframe
       - General improvements
     - New dark themes for i2psnark, susimail and susidns which integrate well
       with dark console theme (dr|z3d)
     - Tweaks to other themes (console and i2psnark) to work with the various
       structural changes (dr|z3d)
     - Added per-theme favicons
     - Updated IE shim to fix some issues
   - Summary bar improvements
     - Updated every console page to use Ajax for the summary bar
       - Falls back to iFrame if JS disabled
       - Ajax refresh time is adjustable
     - The summary bar is now customizable; sections can be added, removed and
       reordered as desired
     - Added/updated tooltips
     - Added a new summary bar section to show news headings when the main news
       display is hidden
   - Changes to structure of /home to bring it in line with rest of console
 * i2psnark
   - Reworked the torrent info/file manager page to improve the layout

2012-07-15 zzz
 * XORComparator: Reduce object churn (Ticket #658)

2012-07-12 kytv
* Translations from Transifex:
  - Add new Greek translation
  - Dutch translation update

2012-07-01 zzz
 * i2psnark:
   - Don't send a keepalive to a peer we are going to disconnect
   - Disconnect peer when idle a long time
   - PeerCheckerTask cleanup
   - Static ref cleanup
   - Don't show a downloaded torrent file as "seeding"
   - Better torrent file download icon

2012-06-29 zzz
 * HTTP Proxy: Change the error code for unknown host from 404 to 500
 * SimpleTimer: Fix logging
 * Streaming:
   - Allow at least 3 packets and up to half the window to be active resends
     instead of just 1, to reduce stall time after a packet drop
   - Increase fast retransmit threshold back to 3 to reduce retransmissions
   - Don't fast retransmit if we recently retransmitted it already
   - Allow double the window as long as gaps are less than the window
   - Don't set the MSS in a resent packet (saves 2 bytes)
   - Remove redundant calls to updateAcks()
   - Update activity timer when resending a packet
   - Reset unackedPacketsReceived counter at all places where acks are sent
     so it isn't wrong
   - Fix some places where the activeResends count could become wrong
   - Prevent storm of CLOSE packets
   - Never resend the whole packet in ackImmediately(), just send an ack
   - Cancel flusher timer in MessageOutputStream when closed
   - Move some createRateStats to ConnectionManager to reduce repeated calls
   - Cleanups, javadocs, logging, volatile, finals
 * Update: Increase eepget timeouts

2012-06-24 zzz
 * ElGamalAESEngine: Fix bad size estimate when tags are included,
                     resulting in trailing zeros after the padding
                     in the unencrypted data
 * i2psnark: Don't create a new PeerCoordinator after restart, as the
             TrackerClient holds on to the old one and that causes it
             to not get peers. Possibly fixes ticket #563.
 * I2PTunnel: Fix NPE on shared client creation, thx kytv
 * Transport: Add Ethiopia to hidden mode list

2012-06-21 zzz
 * I2CP: Make separate message ID counters per-destination, use atomic,
         increase max (could have caused "local loopback" problems)
 * IRC Client: Don't flush output unless out of input, so the
               streaming messages don't get split up unnecessarily
 * OCMOSJ, ElG, Streaming: log tweaks
 * TunnelInfo: Change msg counter from long to int
 * TunnelPeerSelectors: Minor refactoring to store context
 * TunnelPool: Fix bug where a tunnel was marked as reused when it wasn't
 * TunnelPoolManager: Use one ClientPeerSelector for all pools

2012-06-20 zzz
 * I2PSession:
   - Greatly simplify the VerifyUsage timers
   - Constructor cleanup

2012-06-19 zzz
 * i2psnark:
   - Hide buttons while stopping all
 * Socks: Pass remote port through
 * Streaming:
   - Listen only on local port if set
   - Listen only for streaming protocol if configured (new option)
   - Javadocs re: ports

2012-06-18 zzz
 * i2psnark:
   - Improve torrent shutdown handling to maximize chance of
     announces getting to tracker
   - Thread task to open tunnel and improve UI feedback while open is pending
   - Clean up delete-torrent messages
   - Remove redundant shutdown hook
   - Avoid NPE in PEX message handling
   - Log tweaks

2012-06-15 zzz
 * I2PSocketEepGet: Use specified port
 * I2PTunnel:
   - Don't strip port from an I2P URL
   - More client options cleanups
   - Options changes now propagate to running
     socket managers and sessions, and through to the router
   - Better parsing of jump server URLs
 * NetDB: Only publish stats every so often, to improve
   anonymity while preserving the ability to monitor
   the network (effective next release)
 * SocketManager:
   - Simplify factory, use 4-arg constructor,
     make fields final, deprecate 0-arg constructor
   - Improve how options are updated
   - Javadocs

2012-06-13 zzz
 * I2PSocketEepGet: Set port to 80
 * I2PTunnel:
   - Pass port through HTTP client proxy
   - HTTP server proxy sets host header to
     the value of "spoofedhost.xx" option for port xx
   - Set client options more efficiently
 * i2psnark: Possible fix for piece-after-choke
 * Streaming:
   - Channel cleanups and comments
   - New I2PSocketAddress

2012-06-11 zzz
 * i2psnark:
   - Display torrent file downloads in torrent area
   - Sort magnets and downloads first
   - Fix sorting problem when torrent dir is a symlink
   - Reduce max file idle time
   - Reduce TrackerClient threads
   - Reduce delay between peer adds for faster startup
   - Thread the announces and reduce timeout when stopping
 * NativeBigInteger: Workaround for Raspberry Pi to load the correct lib
 * Router: Don't let shutdown tasks hang the shutdown (tickets #564, #566)

2012-06-08 zzz
 * i2psnark:
   - Move private tracker config from create box to torrent config
   - Refactor private and open tracker configuration
   - Add private indication on details page
 * netdb.jsp: Don't show our info on summary page

2012-06-04 zzz
 * i2psnark: Take tracker out of opentracker list when removed

2012-06-03 kytv
* Translation updates:
  - Add Hungarian language from Transifex (thanks AdminLMH!)
  - Italian language updates from Transifex (thanks ColumboBT)

2012-06-02 zzz
 * i2psnark: Improve opentracker configuration
 * Job Queue: Add failsafe check

2012-06-01 zzz
 * Console: Tab the netdb and profile pages
 * i2psnark: Fix partially-complete torrent not announcing
 * NetDB: Reduce flood redundancy from 8x to 6x

2012-05-31 zzz
 * i2psnark:
   - Add per-hour conn limit
   - Blacklist peer after two bad handshakes
   - Reduce connect timeout
   - Close connection immediately if bad protocol
   - Stop adding peers when we hit the limit
   - Lower limit for outbound connections so we give
     new peers a better chance in large swarms

2012-05-30 zzz
 * Graphs: Reduce log EOF error to warn
 * i2psnark:
   - Increase max upload (ticket #645)
   - Increase per-minute conn limit from 6 to 8
   - Improve rarest-first behavior
   - Handle URI encoding, UTF-8, and multiple trackers in magnet links
 * Timestamper:
   - Move from core to router, leave stub in core
     so it doesn't break compatibility. This removes a
     thread in app context and prevents any app context from
     running NTP; external clients must use the time
     received from the router.
   - Increase query interval

2012-05-28 kytv
 * i2prouter: Add support so that 'i2prouter install' will work in ArchLinux
 * jbigi/jcpuid scripts: Improve support for ArchLinux

2012-05-25 kytv
 * German, Italian, Spanish, and Swedish translation updates from Transifex

2012-05-23 zzz
 * i2psnark:
   - Fixes when complete except for skipped files
     (ticket #447) status in UI, don't connect outbound,
     disconnect seeds when done
   - Custom tracker map AIOOBE fix
   - More classes pkg private
 * jobs.jsp: Add more queue diagnostics

2012-05-22 zzz
 * i2psnark:
   - Refactor tracker map
   - Prevent torrent shutdown when changing file priority to skip
   - Fix deadlock when changing file priorities
 * RoutingKeyModifier: Update after large clock shift

2012-05-20 zzz
 * Console: Add full file path to thread dump message
 * i2psnark:
   - Create sparse files at torrent creation and delay
     "ballooning" until first write (ticket #641, #447)
   - Redo clear messages button
   - Concurrent message queue
 * Profiles: reduce same-country bonus
 * RoutingKeyModifier: Several changes to ensure the routing key
                       is correctly changed just after midnight.

2012-05-19 zzz
 * i2psnark:
   - Store received chunks in temp files
   - Don't allocate from heap for unneeded chunks
   - Remove peer count restriction for torrents with large pieces
   - Use priorities and rarest calculations to sort partials
   - Preserve p parameter in clear messages link

2012-05-13 zzz
 * Console: Add X-Frame-Options to headers,
   disable with routerconsole.disableXFrame=true

* 2012-05-02 0.9 released

2012-04-26 kytv
 * German, Spanish, and Swedish Translation updates
   from Transifex

2012-04-20 zzz
 * Remove search box
 * Fix i2psnark dir when started from Windows no-wrapper
   (ticket #627)

2012-04-14 kytv
 * Update wrapper to v3.5.14
 * Update geoip.txt from Maxmind's April 2012 database

2012-04-12 kytv
 * German, Spanish, and Swedish translation updates from Transifex

2012-04-12 zzz
  * Console:
    - Try again to fix console on Windows w/o IPv6
      by starting connectors individually
    - Fix whitespace issues on several pages
    - Prevent rare early NPE
    - Non-default theme cleanups
    - Theme and translate home page logo

2012-03-28 zzz
  * RouterInfo: Fix fatal NPE in last checkin

2012-03-27 zzz
  * FloodfillVerify:
    - Fix verifies stuck on one peer by blamimg the verify peer on failure
    - Follow DSRM in response to RI verifies
    - Increase floodfill verify timeout
  * Home page: Delay router down message until two consecutive fails
  * RouterInfo: Add method to validate sig during read-in for speed

2012-03-27 sponge
  * A hopeful fix to allow SHOUTcast/icecast to work over the http proxy.
  * A little more code clean up

2012-03-26 zzz
  * Code cleanups:
    - Remove unused imports
    - Remove unused local variables
    - Remove unused private fields
    - Remove unnecessary casts
  * Console:
    - Try again to fix console on Windows w/o IPv6 (ticket #621)
    - Move oldconsole rendering from Router to OldConsoleHelper

2012-03-24 zzz
  * GarlicConfig: Remove more unused methods
  * i2psnark:
    - Fix dup torrent msg with magnets (tickets #433 and #504)
    - Fix state when storage dies during transition out of magnet mode
    - Fix NPE in magnet mode
    - Error logging improvements
    - Support add-torrent with infohash alone
    - CSS tweaks

2012-03-22 zzz
  * Home page: CSS tweaks
  * Reseeder: Get rid of static instance, root in netDB,
              don't use system properties for status
  * RetransmissionTimer: Instantiate per-destination
  * Router: When removing a config setting, remove from context also
  * SimpleScheduler, SimpleTimer, SimpleTimer2: Replace static instances
    with I2PAppContext-rooted references

2012-03-20 zzz
  * i2psnark: Message area tweaks and clear link
  * NetDB:
    - Don't reread RI if netdb date is recent
    - Prevent LS/RI overwrites
    - Disallow hash mismatches in RI files
    - Reseed won't fetch our own RI
    - Reseed won't overwrite recent RIs
  * Router: Make runRouter() public

2012-03-19 sponge
  * Plugins: Less confusing message, fix CNFE by catch and ignore on delete.
             Order and reverse order plugin names for start/stop all cases.

2012-03-18 zzz
  * Jetty: Fix check alias override

2012-03-17 zzz
  * BuildHandler: Implement restart and shutdown to stop the thread
  * Jetty: Don't extract wars
  * FileUtil: Better logging of weird unpack200 errors
  * I2PTunnel: Make CLI-only methods private, and static where possible
  * Streaming: Scheduler cleanup

2012-03-16 zzz
  * FragmentHandler: Zero-copy read of unfragmented messages
                     for speed and to reduce object churn
  * Home page: Tag tooltip; CSS tweaks; news tweak
  * HTTP Proxy: Jump and addresshelper page tweaks
  * Jetty: Add I2P mime types to default eepsite config
  * OCMOSJ: Refactor cache to its own class, make non-static
  * TransportManager: Fix fatal exception on soft restart caused by DHSKB refactoring
  * TrustedUpdate: Preserve default key names even when keys are set
                   in advanced config

2012-03-15 sponge
  * Plugins:
    - String.isEmpty() [ java 6 ] -> (String.length() == 0) [ java 5 ]
    - for a file: URL, use "Attempting to copy plugin from" message
    - s/{0}// on non-translated string
    - grammar: "File copy failed {0}" -> "Failed to copy file from {0}"
    - use the context provided to get startup time
    - getCanonicalPath() -> getAbsolutePath()
    - install != update. Don't change the user's settings, and don't restart
      it on an update if "dont-start-at-install". This gives the same
      functionality as before.

2012-03-14 zzz
  * Blockfile, i2psnark: Remove static logs
  * DHSessionKeyBuilder:
    - Move from core to router/transport
    - Make non-static, instantiate in TransportManager
    - Generate keypair in constructor and make final
      to move more processing to the precalc thread
      and eliminate races
    - Synchronize getSessionKey() to eliminate races
    - Comment out unused methods
  * Jetty:
    - Set default cache-control for webapps and eepsite
    - Disable dir listing for console webapps
  * UDPTransport:
    - Make key builder final in InboundEstablishState to
      eliminate rare NPE (ticket #406)
    - Remove unused static instance
  * YKGenerator: Make non-static, instantiate in ElGamalEngine

2012-03-13 sponge
  * Add sponge.i2p :-D bump version.

2012-03-13 sponge
  * Plugins:
    - Fix a bug in the updater. It was not comparing the correct name.
    - Plugin updates can now be deferred if router-restart-required is set.
      The update happens at the next router restart.

2012-03-13 sponge
  * Plugins:
     - Handle 'file://' URLs for installation and updates (ticket #429).
       You must specify the entire path, e.g.
       file:///home/someone/magicplugin.xpi2p
       - This works for updates too!
       - Only tested on Linux, needs to be tested on Windows.

2012-03-12 zzz
  * Console:
    - Better IPv6 test, hopefully will work on Windows
    - Hide home page flags once language is selected
    - Home page shrinkage and other CSS tweaks

2012-03-11 sponge
  * Slackware package script updates

2012-03-11 zzz
  * Build:
    - Include old commons logging classes in commons-logging.jar
    - Preserve manifests in Jetty/Tomcat jars
  * Jetty Logger: Promote warns to errors when a Throwable is the second arg

2012-03-11 sponge
  * fix broken comment in jetty.xml

2012-03-10 zzz
  * Build: Add new jetty jars to router.jar classpath so it works
    on very old installs with individual jars specified in the
    wrapper.config classpath
  * configloggging: Fix clearing log overrides
  * Console: Test if IPv6 addresses will work before instantiating
             connectors, so Jetty will still start without them
  * HTTP Proxy: Fix generation of jump links (ticket #616),
                broken by refactoring in -1
  * Jetty Logger: Put a note in wrapper log saying where the logs went

2012-03-09 zzz
  * Update default eepsite base context to use DefaultServlet
    instead of ResourceHandler, to provide resume, directory
    indexes, caching, etc.
  * Simplify default eepsite base and CGI contexts to use a Context
    instead of a ContextHolder, ServletHandler, and ServletHolder

2012-03-08 zzz
  * GarlicConfig: Remove unused reply block methods
  * SessionKeyManager:
    - Don't use unacked tagsets after consecutive ack failures
      and revert to full ElGamal if necessary (ticket #574)
    - Synchronize creation of new sessions to prevent dups
    - Don't remove an unacked session until it's really out of tags
    - Failsafe removal of old unacked tagsets
    - Cleanups, final, comments, log tweaks, debug.jsp tweaks, synchronization tweaks

2012-03-06 kytv
 * German and Spanish translation updates from Transifex

2012-03-06 zzz
  * i2psnark: Fix NPE on magnet link addition
  * Jetty logger: Fix stack trace logging
  * viewstat.jsp: Properly close the ImageOutputStream to fix
    NPEs in the finalizer, probably was the root cause of
    what we blamed on Jetty
  * Webapp class loader: Fix dup classes in classpath
    caused by last checkin (symptom: i2psnark in wrong directory)

2012-03-05 zzz
  * Build: Make windows and non-windows installers for release
  * configclients: Tweaks
  * Graphs: Add time interval to legend
  * NetDB: Increase min ff to 250
  * Plugins: Fix setting webapp classpath on Jetty 6
  * UDP: Log tweaks
  * viewstat.jsp: Set Connection: Close to work around Jetty bug
    http://jira.codehaus.org/browse/JETTY-1346

2012-03-04 zzz
  * Jetty: Upgrade to Jetty 6.1.26, Tomcat 6.0.35, and JSTL 1.2.
    - Supports Servlet 2.5 / JSP 2.1 standards
    - Jetty and Tomcat jars are checked in, no more need to
      download Jetty in the build process.
    - Bundle Jetty 6 rewrite handler and JMX
    - Bundle sample Jetty config files for rewrite, JMX, and SSL
    - Use ant's ant.jar instead of the one from Jetty
    - Port router console, i2psnark, and I2PRequestLog code to Jetty 6
    - Remove all old Jetty 5 patches and the custom Server() constructor,
      this will break Seedless use of the custom constructor
    - Fix up all .jsps to JSP 2.1 standards
    - Include automatic migration of clients.config,
      and of jetty.xml files for an eepsite at port 7658.
      New config includes files in eepsite/contexts and eepsite/etc
      Any other Jetty-hosted eepsites,
      or an eepsite not at port 7658 or with custom
      modifications of the jetty.xml file, will require
      manual editing of the new Jetty config files.
      This includes modifications for the seedless server in jetty.xml.
    - The following plugins are not compatible with Jetty 6
      and will be disabled until updates are available:
         i2pcontrol, pebble, and zzzot
    - Users updating must use the updaterWithJetty build target once,
      to get the new Jetty and Tomcat.
    - Put I2PRequestLog in its own jetty-i2p.jar
    - Jetty logging moved from wrapper to I2P log using the new I2PLogger class,
      also in jetty-i2p.jar
  * Console: Start all wars after the main console war,
    for faster startup and to prevent one failed war from preventing
    startup of the entire console
  * i2psnark: Disable i2psnark RunStandalone, unused and instantiated Jetty 5
  * i2ptunnel: Move i2ptunnel Bean classes from the jar to the war.
    These were deprecated for external use long ago.
    This will break very old seedless plugins; updates have
    been available for months.
  * susimail: Copy MultiPartRequest and other required classes from Jetty 5.1.15
    and add it to susimail, as the replacement MultiPartFilter in
    Jetty 6 is difficult to migrate to, and does not support content-type

2012-03-03 zzz
  * Console:
    - New simplified home page, refreshing with AJAX
    - New home configuration page
  * i2psnark:
    - CSS tweaks
    - Ajax and link fixes
    - Move js to console in prep for merging w/ homepage
  * NetDB: Remove bw stats (effective next release)

2012-03-02 zzz
  * BlockfileNamingService: Add negative cache
  * Build: Add built-by to jars; check for corrupt jars on debug page
  * configstats.jsp: Hide log settings unless already enabled
  * DataStructures:
    - Remove static logs
    - Sort addresses in RouterInfo at initialization only;
      change from Set to List to save space
    - Remove unused counters in Lease to save space
    - Increase max leases to 16
  * Graphs:
    - New single graph page with easy resizing
    - Support graphing of previous intervals
  * i2pinstall.exe: Add icon
  * i2psnark:
    - Add tracker configuration form
    - Remove custom tracker option from create form
    - Add private torrent option
    - More icons in buttons
    - Use js for refresh
  * I2PTunnelHTTPClient:


----------------

EARLIER HISTORY IS AVAILABLE IN THE SOURCE PACKAGE"