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

Skip to content
Snippets Groups Projects
history.txt 511 KiB
Newer Older
  • Learn to ignore specific revisions
  • zzz's avatar
    zzz committed
    2014-01-04 zzz
     * Peermanager: Disable small same-country bonus
     * Tunnels: Change client default to 3 hops in router;
       change expl. default to 2+0 IB and 2 + 0-1 OB
    
    
    2014-01-04 dg
     * Streaming: Move streaming to new package (ticket #1135)
    
    
    dg2-new's avatar
    dg2-new committed
     * Console: Add 'advanced warning' to /configclients
    
     * SOCKS5Server: Remove redundant, commented out line from my previous findbugs
    
    
    zzz's avatar
    zzz committed
    2013-12-19 zzz
     * NetDB: Fixes for ExpireRoutersJob
      - Don't expire if too few routers
      - Don't expire if net is disconnected
      - Don't run in VMCommSystem
    
    2013-12-15 zzz
    * EepGet: Allow override of the User-Agent
    * i2psnark: Set User-Agent
    
    
    zzz's avatar
    zzz committed
    2013-12-14 zzz
    * NetDB:
     - Just before midnight, flood to new location too so lookups
       don't fail after keyspace rotation (ticket #510)
     - Refactor RoutingKeyGenerator and UpdateRoutingKeyModifierJob
       in support of the above
    
    
    zzz's avatar
    zzz committed
    2013-12-13 zzz
     * i2ptunnel: Show destination for persistent client key only if available;
                  show b32 for the key as well
     * NetDB:
       - Increase new kad size to K=24, B=4
       - Fix router count by counting in the data store, not the kbuckets
       - Randomize the order we load router infos at startup so we
         don't bias the kbuckets
    
    
    zzz's avatar
    zzz committed
    2013-12-10 zzz
    Prop from i2p.i2p.zzz.test2:
     * Config files: Allow empty values
     * Data: Deprecate Signature.FAKE_SIGNATURE
     * GeoIP: Thread the periodic lookup so it doesn't clog the timer queue
     * I2CP router-side: Disconnect client on attempt to publish invalid leaseset
     * i2psnark:
       - Make a set of the default trackers so the config array
         can be private and the lookup for the form is more efficient.
       - Disable streaming pings (ticket #1142)
     * i2ptunnel: Disable streaming pings for clients (ticket #1142)
     * i2ptunnel IRC client: Do not filter server PING or client PONG (ticket #1141)
     * Jetty 7.6.14.v20131031
     * PeerManager: Thread the periodic reorg so it doesn't clog the timer queue
     * PrivateKeyFile: Fix ISE (ticket #1145)
     * Startup: Wait a while and recheck if a recent ping file is there,
                so that a crashed router doesn't prevent a restart (ticket #633)
     * Transport: Reduce target connections from 60% to 45% of limit
       to improve network capacity. Apparent problems with lower limits were
       actually due to unrelated bugs, fixed in 0.9.8.1-22.
     * Translations:
       - Add support for country variants (ticket #1133)
       - Refactor data in ConfigUIHelper
     * UDP PeerState: findbugs volatile/atomic/synch
    Prop from i2p.i2p.zzz.netdbkad:
     * NetDB:
       - Move net.i2p.kademlia package from i2psnark to core, and convert
         netdb to use it.
       - Delete old implementation in netdb
       - Fixups in netdb for generics
       - Add debug output to /debug
     * Kad unit tests:
       - Move KBucketSetTest to new directory
       - Fix testSelf() as new implementation will never include myself
       - Delete KBucketImplTest, not applicable/useful now
       - Port KBSTest from i2p.zzz.kademlia branch
       - Fix RandomTrimmer so it always returns true, so it may be used
         as the trimmer in the unit tests
    
    
    zzz's avatar
    zzz committed
    * 2013-12-07 0.9.9 released
    
    
    zzz's avatar
    zzz committed
    2013-12-04 zzz
    i2psnark: Fix ConnectionAcceptor not restarting after tunnel
      restart, preventing incoming connections
    
    
    2013-12-01 kytv
     * Update geoip.txt based on Maxmind GeoLite Country database from 2013-11-05.
     * French, Italian, Romanian, Spanish, and Swedish translation updates from transifex
    
    
     * I2PTunnel: Don't send 'X-Powered-By' on HTTP server tunnels for anonymity reasons.
    
    2013-11-25 str4d
     * Reseed: Listen to "Require SSL" config option
    
    
    zzz's avatar
    zzz committed
    2013-11-23 zzz
     * i2ptunnel: Clean up old timer threads
    
    
    2013-11-23 str4d
     * susimail: Fix NPE when deleting last message (ticket #414)
    
    
    2013-11-19 kytv
     * Translation updates and start of Japanese translation pulled from Transifex
    
    
    2013-11-14 kytv
     * Update Java Service Wrapper to v3.5.22
        - Windows: Self-compiled with VS2010 in Windows 7. The icon has been
          changed from Tanuki's default to Itoopie.
        - Linux ARMv6: Compiled on a RaspberryPi using gcc 4.6.3-14+rpi1,
          Icedtea6 6b27-1.12.5-1+rpi1 and stripped
        - All other binaries are from the "community edition" deltapack offered by
          Tanuki.
    
    
    zzz's avatar
    zzz committed
    2013-11-14 zzz
     * Tunnels: Fix reception of encrypted responses to LS lookups (ticket #1125)
    
    
    2013-11-07 zzz
     * i2psnark: Fix file links, broken in -12 (ticket #1114)
     * Logging: Track duplicates across flush interval (ticket #1110)
     * NetDB: Fix RI publish interval, broken in -7
    
    
    2013-11-03 zzz
     * NetDB: Allow store of leaseset as long as one lease has not expired
     * Transport:
       - Expire wasUnreachable entries, so inbound tunnel build failures
         don't escalate
       - Add network status to event log
    
    2013-11-01 zzz
     * Transport: Fix GeoIPv6 (ticket #1096)
    
    
    zzz's avatar
    zzz committed
    2013-10-31 zzz
     * i2psnark: Always verify file lengths at startup (ticket #1099)
     * Transports: Increase threshold for idle timeout reduction
       (partially back out change from -10)
    
    
    2013-10-29 dg
     * i2psnark: Start torrents by default (ticket #1072)
    
    
    zzz's avatar
    zzz committed
    2013-10-29 zzz
    
     * i2psnark: Fix start and start-all buttons on text-mode browsers
       and Opera (ticket #1093)
    
    zzz's avatar
    zzz committed
     * InboundMessageDistributor:
       - Don't discard an encrypted DSRM received
         down a tunnel, just strip the hashes like we do for unencrypted
       - Send a store of our own encrypted LS received down a tunnel to
         the InNetMessagePool so the FloodfillVerifyStoreJob will see it.
     * NetDB: Fix LS store verifies with encrypted replies
       by storing the tagset with the correct SKM for the inbound tunnel used.
       Broken since 0.9.7 when it was introduced.
     * Tunnels:
       - Build a new exploratory fallback tunnel in the BuildExecutor
         loop if we run out.
       - Don't use closest expl. tunnel as the paired tunnel for a build,
         use a random one instead (partially back out change from -12)
    
    
    meeh's avatar
    meeh committed
    2013-10-29 meeh
     * Adding no.i2p registrar
    
    
    dg2-new's avatar
    dg2-new committed
    2013-10-28 dg
     * I2PTunnel: Enable persistent keying for SOCKS tunnels (ticket #1088)
    
    
    2013-10-27 zzz
     * Streaming; Fix crash caused by previous blacklist fix (ticket #1070)
    
    
    zzz's avatar
    zzz committed
    2013-10-26 zzz
    
    zzz's avatar
    zzz committed
     * i2psnark: Display base name, not torrent file name (ticket #985)
    
    zzz's avatar
    zzz committed
     * I2PTunnel HTTP server: New POST limiter
    
    zzz's avatar
    zzz committed
     * Profiles: Ensure we select random peers even before the first reorganization
     * Streaming: Randomize end of first conn limit period
     * Tunnels:
       - Don't use fallback expl. tunnels as the paired tunnel
         for a client tunnel build.
       - Fix selection of an expl. tunnel close to a hash
    
    zzz's avatar
    zzz committed
    
    
    zzz's avatar
    zzz committed
    2013-10-25 zzz
    
    zzz's avatar
    zzz committed
     * Router: Only log ping file error once (ticket #1086)
    
    zzz's avatar
    zzz committed
     * Streaming:
       - Check blacklist/whitelist before connection limits, so
         a blacklisted peer does not increment the counters
       - Don't increment total throttle if peer is throttled
       - Fix blacklist NPE after config change (ticket #1070)
     * Transports: Reduce connection idle time sooner
    
    
    2013-10-24 zzz
    
    zzz's avatar
    zzz committed
     * i2psnark: Drop incoming connections on HTTP port
     * I2PTunnel: Don't let uncaught exception kill server acceptor (ticket #1070)
    
     * I2PTunnel standard, HTTP, and IRC servers:
       Route connections to specific targets based on incoming I2P port
       with custom option targetForPort.xxxx=myserver:yyyy
       This allows multiple services on a single server tunnel (ticket #1066)
    
    
    zzz's avatar
    zzz committed
    2013-10-23 zzz
    
     * I2PTunnel standard and IRC clients:
       - Allow host:port targets; set defaults in i2ptunnel.config (ticket #1066)
       - Don't fail start if hostname is unresolvable; retry at connect time (ticket #946)
       - Output IRC message on connect exception
       - Update target list on-the-fly when configuration changes
    
    zzz's avatar
    zzz committed
     * NetDB:
       - Increase RI publish interval to reduce the connection load on ffs
       - Save RI-last-published time; check it before publishing
    
    
    2013-10-19 zzz
     * NetDB:
       - Reinstate ExpireRoutersJob
       - Reduce min part. tunnels for floodfill
       - Reduce floodfill redundancy
    
    
    2013-10-17 zzz
     * I2CP: Move SSL client socket code to util,
       move cert location to certificates/i2cp.
     * I2PTunnel: Support SSL for connection to local server
       for Standard, HTTP, and IRC server tunnels.
       Put server cert in certificates/i2ptunnel if necessary.
     * Streaming: Throw IOE if socket is closed (ticket #1077)
    
    
    2013-10-14 kytv
     * French translation updates from Transifex
    
    
    2013-10-14 zzz
     * Translations: Move country names to a new resource bundle
    
    
     Prop from branch i2p.i2p.zzz.test2:
     * Console:
       - Implement webapp state detection and stop button for webapps
         on /configclients (Ticket #1025)
       - Set per-connector acceptors back to 1, Jetty default changed to 2?
       - Tag strings on /jobs (ticket #969)
     * Data Structures:
       - Make Destination and RouterIdentity keys and cert immutable
       - Add Destination cache
     * i2psnark:
       - Combine getPeers and announce into a single method, as we must announce to
         the closest from the getPeers, not the closest from the kbuckets
       - Stop getPeers when nothing closer is found
       - Increase DHT dest lookup, search timeouts, and max search depth
       - Loop tracker client faster when in magnet mode or if DHT announce fails
       - Don't return an empty peers list in DHT if we only know about the requestor
       - Refactor Storage file data structures
       - Sort files when creating torrents
       - Add torrent auto-stop support; enable for update file
       - Add tunnel auto-close when no torrents are running
       - Close socket before closing output stream to avoid blocking in
         Peer.disconnect(), and prevent Peer.disconnect() loop
     * I2PTunnelHTTPServer: Don't thread a receiver for GET or HEAD
     * Jetty 7.6.13.v20130916
     * Logging:
       - Require strict match of class name component
       - parseLimits() cleanup
    
     * SSU: More efficient InboundMessageState
    
     * Streaming:
       - Fix active stream counting so it doesn't count streams
         that are closed and in TIME-WAIT state. Also, break out of the
         counting loop as soon as we know the answer. (Ticket #1039)
       - Consolidate scheduling of DisconnectEvent, and ensure
         we only do it once. (Ticket #1041)
       - Atomics for close/reset send/receive
         so we only do things once. (Ticket #1041)
       - Remove setCloseReceivedOn(), unused outside Connection
       - OR the isFlagSet parameter instead of multiple calls
       - Remove acked packets from _outboundPackets inside synced iterator
       - Short-circuit _outboundPackets iterator if empty
       - Small optimization if not logging in ConnectionPacketHandler
       - Stub out processing of close ack (ticket #1042)
       - Don't queue a message for an unknown connection on the SYN queue
         if it has a send ID set, it must be for a recently closed connection
       - Major rework of connection disconnect process. Tickets 1040-1042.
       - Prevent multiple calls or reentrancy in disconnect() (ticket #1041)
       - Implement processing of close to skip TIME-WAIT, and
         wait for all packets to be acked (not just the CLOSE) before
         doing so, if possible (ticket #1042)
       - Don't call disconnect() or disconnectComplete() from I2PSocketFull.destroy()
         so retransmissions and acks can still happen (removes some close loops)
       - Don't call disconnect() until we have both sent and received a CLOSE (ticket #1040)
       - Don't reset the connection from CPH just because we sent a CLOSE
         and it was acked (ticket #1040)
       - Ack packets even if we sent a CLOSE  (ticket #1040)
       - Retransmit CLOSE if not acked (ticket #1040)
       - Send received packets to the MessageInputStream even if we haven't received a SYN
       - Don't call MessageInputStream.messageReceived() for ack-only packets, that was pointless
       - Don't send a RESET after timeout of an outbound connection
       - Work around bugs on other end by limiting retransmission of CLOSE packets
       - Make I2PSocketFull.close() nonblocking; it will now cause any user-side
         writes blocked in I/O (Connection.packetSendChoke()) to throw
         an exception (tickets #629, #1041)
       - Don't ignore InterruptedExceptions; throw InterruptedIOException
       - MessageInputStream locking fixes
       - Make _isInbound final
       - More cleanups, javadocs, log tweaks
     * Transport: Treat more IPs as local
       - 25/8 Hamachi (moved from 5/8 Nov. 2012)
       - 2620:9b::/32 Hamachi
       - 3ffc::/16 6bone
       - 2001:db8::/32 example (RFC 3849)
       - 0::/8 Includes IPv4 compatibility addresses ::xxxx:xxxx
     * Update:
       - Support notification of updates that cannot be downloaded
         due to "constraints". Add constraint checks for java version,
         router version, configuration, and base permissions. (ticket #1024)
       - Thread news fetcher so it doesn't clog the scheduler
     * Watchdog: Format messages better
    
    
    zzz's avatar
    zzz committed
    2013-10-06 zzz
     Prop from branch i2p.i2p.zzz.ecdsa:
     * Build:
       - Generate su3 file in release target
       - Add zzz's new RSA 4096 pubkey cert for updates
       - Fix checkcerts.sh
     * Console: Move advanced setting to HelperBase
     * DSAEngine changes:
       - Implement raw sign/verify for other SigTypes
       - Add sign/verify methods using Java keys
     * ECDSA Support:
       - Add ECConstants which looks for named curves and falls back to
         explicitly defining the curves
       - Add support for ECDSA to SigType, DSAEngine and KeyGenerator
       - Attempt to add BC as a Provider
       - genSpec: fallback to BC provider
     * EepGet:
       - Fix non-proxied PartialEepGet
       - Prevent non-proxied eepget for an I2P host
     * KeyGenerator changes:
       - Generate key pairs for all supported SigTypes
       - KeyPairGen: Catch ProviderException, fallback to BC provider
       - Add KeyGenerator main() tests
     * KeyRing and DirKeyRing added: simple backend for storing X.509 certs
     * KeyStoreUtil added:
       - Consolidate KeyStore code from SSLEepGet, I2CPSSLSocketFactory,
         SSLClientListenerRunner, and RouterConsoleRunner into new
         KeyStoreUtil and CertUtil classes in net.i2p.crypto (ticket #744)
       - Change default to RSA 2048 (ticket #1017)
       - Set file modes on written keys
       - Overwrite check in createKeys()
       - New getCert(), getKey()
       - Extend keygen max wait
       - Read back private key to verify after keygen
       - Validate cert after reading from file
       - Validate CN in cert
       - Specify cert signature algorithm when generating keys
     * NativeBigInteger: Tweak to prevent early context instantiation
     * RSA support added: constants, parameters, sig types, support in DSAEngine, KeyGenerator, SigUtil
     * SHA1Hash: Add no-arg constructor
     * SigType changes:
       - Add parameters (curve specs) to SigTypes
       - Add getHashInstance()
       - Add RSA, fix ECDSA
       - Renumber, rename, comment out types that are too short.
     * SigUtil added:
       - Converters from Java formats (ASN.1, X.509, PKCS#8)
         to I2P formats for Signatures and SigningKeys
       - Move ASN.1 converter from DSAEngine to SigUtil, generalize
         for variable length, add support for longer sequences,
         add more sanity checks, add more exceptions
       - Move I2P-to-Java DSA key conversion from DSAEngine to SigUtil
       - Add Java-to-I2P DSA key conversion
       - Add Java key import
       - New split() and combine() methods
     * SSLEepGet: Move all certificates to certificates/ssl, in preparation
       for other certificate uses by SU3File
     * SU3File changes:
       - Support all SigTypes
       - Implement keygen
       - Readahead to get sigtype on verify, as we need the hash type
       - Enum for content type
       - Add unknown content type, make default
       - Fix NPE if private key not found or sign fails
       - Store generated keys in keystore, and get private key from keystore
         for signing, in Java format
       - Use Java keys to sign and verify so we don't
         lose the key parameters in the conversion to I2P keys
       - Type checking of Java private key vs. type when signing
       - Use certs instead of public keys for verification
       - Fix arg processing
       - Improve validate-without-extract
       - New extract command
       - Change static fields to avoid early context init
       - Reduce PRNG buffer size for faster signing
     * Update: Preliminary work for su3 router updates:
       - New ROUTER_SIGNED_SU3 UpdateType
       - Add support for torrent and HTTP
       - Refactor UpdateRunners to return actual UpdateType
       - Deal with signed/su3 conflicts
       - Verify and extract su3 files.
       - Stub out support for clearnet su3 updating
       - New config for proxying news, separate from proxying update
       - PartialEepGet and SSLEepGet tweaks to support clearnet update
       - Remove proxy, key, and url config from /configupdate
       - More URI checks in UpdateRunner
       - Add https support for news fetch
       - Add su3 mime type
       - Reset found version in update loop so we don't fetch from
         the next host too.
       - Prevent NPE on version after SSL fetch
    
    
    zzz's avatar
    zzz committed
    * 2013-10-02 0.9.8.1 released
    
    
    2013-10-01 zzz
     * Startup: Fix rekeying on Windows (tickets #1056, 1057)
    
    
    zzz's avatar
    zzz committed
    * 2013-09-30 0.9.8 released
    
    
    2013-09-26 kytv
     * French, German, Russian, and Swedish translation updates from Transifex
     * Update geoip.txt based on Maxmind GeoLite Country database from 2013-09-03
    
    
    2013-09-23 zzz
     * Console: Add /proof page which can copied to prove you run a router
    
    
    kytv's avatar
    kytv committed
    2013-09-20 kytv
    
     * Chinese, French, German, Russian, and Swedish translation updates from
       Transifex
    
     * Revert expl. default back to 2 hops, wait for next release
    
    2013-09-07 zzz
     * Crypto: Don't use "short exponent" on faster platforms.
       Rebuild router identity if key length doesn't match setting.
    
    
    2013-09-03 zzz
     * configui: Change pw restart warning to error so people dont miss it
     * Data: deprecate most of LeaseSetKeys
     * i2ptunnel: Reduce buffer size and use cache in HTTPServer
     * Jetty: Increase maxIdleTime
     * profiles: use different sort for floodfill profiles display
     * Utils: Consolidate maxMemory() calls
    
    
    zab2's avatar
    zab2 committed
    2013-08-31 zab
     * Streaming: Use only non-retransmitted packets when sampling RTT
    
    zab2's avatar
    zab2 committed
       (Ticket 1007, RFC 6298)
    
    zab2's avatar
    zab2 committed
    
    
     * Addressbook: Don't write to log file on Android (ticket #859)
    
     * Addresses: Treat Teredo addresses 2001:0::/32 as local
    
     * Console: Display "accepting tunnels" instead of "rejecting tunnels"
                after 20 minutes (ticket #902)
    
     * i2psnark: Highlight table rows on hover
    
     * NTCP: Handle race where peer's NTCP address goes away
    
     * SSU, confignet: Add support for specifiying multiple addresses
     * SusiDNS: Don't require last subscription to be terminated by newline (ticket #1000)
    
    
    zzz's avatar
    zzz committed
    2013-08-11 zzz
     * Jetty 7.6.12.v20130726
    
    
    2013-08-11 kytv
     * Update Java Service Wrapper to v3.5.20
        - Windows: Self-compiled with VS2010 in Windows 7. The icon has been
          changed from Tanuki's default to Itoopie.
        - Linux ARMv6: Compiled on a RaspberryPi using gcc 4.6.3-14+rpi1,
          Icedtea6 6b27-1.12.5-1+rpi1 and stripped
        - All other binaries are from the "community edition" deltapack offered by
          Tanuki.
    
     * Translations
       - French, Portugeuse, Russian, Spanish, and Turkish updates from Transifex
       - Start of Romanian translation from Transifex
    
    zab2's avatar
    zab2 committed
    2013-08-11 zab
     * Streaming:
       - reduce initial ack delay 2000->1000
       - rework the logic of acking duplicate packets
    
    
    zzz's avatar
    zzz committed
    * 2013-08-10 0.9.7.1 released
    
    
    zzz's avatar
    zzz committed
    2013-08-10 zzz
    
    zzz's avatar
    zzz committed
     * Prop from i2p.i2p.0971
     * Update:
       - New update hosts, thanks Meeh and dg
       - Increase update-via-torrent to 30%
    
    
    zzz's avatar
    zzz committed
    2013-07-30 zzz
    
     * i2psnark: Increase max piece size to 4 MB (ticket #993)
     * Tunnels: Extend local expiration of IB tunnels, to allow for
       more clock skew and not drop valid messages at their destination
    
    
    zzz's avatar
    zzz committed
    2013-07-29 zzz
    
    zzz's avatar
    zzz committed
     * Signatures:
       - Prep for new signature algorithms; new SigType enum;
         Signature, SigningPublicKey, SigningPrivateKey store type
       - New Hash384 and Hash512 classes
       - Remove length field in SimpleDataStructure
       - New SU3File generator/verifier/extractor
    
    zzz's avatar
    zzz committed
     * GeoIPv6: Fix NPE (ticket #992)
    
    zzz's avatar
    zzz committed
    
    
    zzz's avatar
    zzz committed
    2013-07-28 zzz
    
     * Addresses: Treat RFC 4193 addresses fc00::/7 as local
     * NetDB: Disable RI verifies for now
    
    
    zzz's avatar
    zzz committed
    2013-07-26 zzz
    
     * Transports:
       - Fix IPv6-only option 2nd try
       - Treat RFC 4193 addresses fc00::/7 as local
    
    
    zzz's avatar
    zzz committed
    2013-07-25 zzz
    
    zzz's avatar
    zzz committed
     * Transports:
       - Prefer IPv6 by default
       - Fix IPv6-only option
       - Don't try NTCP IPv6 addresses unless we have one
       - Fix non-%16 SSU padding; enable by default
     * Tunnels:
       - Make expl. default 3 hops  (ticket #966)
       - Allow expl. fallback up to -2 hops
    
    
    zzz's avatar
    zzz committed
    2013-07-24 zzz
    
     * GeoIP: Fix lookups, broken in IPv6 branch
    
     * UPnP:
       - main() tweaks for debugging
       - Fix for devices that return base URLs with trailing '/' (ticket #986)
    
    zzz's avatar
    zzz committed
    2013-07-22 zzz
    
     * BuildReplyHandler:
       - Make non-static
       - Don't pollute Hash cache with build response record hashes
       - Use SimpleByteCache
       - cleanups
     * HashComparator:
       - Don't pollute Hash cache with hashes
       - cleanups
    
    
    zzz's avatar
    zzz committed
    2013-07-21 zzz
    
     * I2CP:
       - Don't NPE when loglevel=warn
       - Don't enforce property length limits when inside router JVM
     * I2PSnark: Log uncaught error in ThreadedStarter to router log
     * I2PThread: Log uncaught error to wrapper log
    
    
    zzz's avatar
    zzz committed
    2013-07-20 zzz
    
     Prop from i2p.i2p.zzz.ipv6:
     * Addresses:
       - blocklist 192.88.88.0/24 6to4 anycast
       - invalidate 2002::/16
       - Strip scope from returned IPv6 addresses
     * Blocklist:
       - Add IPv6 in-memory single list
       - Limit in-memory single list size
       - Fix dup check in getAddresses()
     * CSFI: Pass TransportManager instead of CSFI to GetBidsJob; remove unused methods
     * Console:
       - Add IPv6 column on /peers
       - Other minor /peers cleanup
     * FloodfillPeerSelector, ProfileOrganizer: Use 8 bytes for IPv6 check
     * GeoIP:
       - Use cached IP in RouterAddresses
       - Use both NTCP and SSU addresses
     * GeoIPv6:
       - Handle gzipped input data in merge tool
       - Add script to generate compressed data
       - Add local additions
       - Add compressed data file, generated from Maxmind data fetched 2013-05-24
       - Include data in installer and updater
       - Update Maxmind license info, now CC-SA 3.0
       - Enable GeoIPv6 lookup in CSFI
     * NetDb:
       - Add floodfillEnabled() to NetworkDatabaseFacade so callers don't
         have to cast to FNDF, and Dummy NDF will work
       - Remove static FNDF.floodfillEnabled()
     * NTCP:
       - Move SSU address notification handling from CSFI to NTCPTransport
       - Drop NTCPAddress, just use RouterAddress
       - Drop _myAddress field, use super's currentAddress
       - Bad bind config not fatal
       - Fix publishing address when host specified but interface is not
       - Republish even if only changing cost
     * PacketPusher: Minor optimization
     * Peer tests:
       - Use only IPv4 peer for Alice and Bob in peer tests; Charlie may be an IPv6 peer.
       - Enforce IPv4 (Alice's) address inside PeerTest packet
     * RouterAddress and RouterInfo toString() cleanups; don't cache RI in _stringified
     * RouterAddress:
       - hashCode/equals tweaks
       - Add new constructor
       - Add add getHost() and deepEquals()
       - Compare host string, not IP, in equals()
       - Deprecate some setters
       - Add warning about setCost()
       - Change cost storage from int to short
       - Cost range checks
     * RouterContext: Fix disabling client manager with i2p.dummyClientFacade=true
     * SSU:
       - Change from single UDPEndpoint to a List of UDPEndpoints
       - Move (single) receive queue from UDPReceiver to PacketHandler
       - Multiple transmit queues (one for each UDPEndpoint/UDPSender),
         select queue in PacketPusher
       - Throw exception on UDPEndpoint.startup() failure
       - Remove all _external* fields; use _currentAddresses in super
       - Big rework of externalAddressReceived(), rebuildExternalAddress(),
         needsRebuild(), and replaceAddress() for multiple addresses and IPv6
       - Add caching in UDPAddress
       - More IPv6 flavors of utility methods
       - Remove two-arg replaceAddress()
       - Fixes for i2np.udp.allowLocal, log tweaks, sender/receiver thread name tweaks
       - Handle IPv6 in too-close checks
       - IPv6 SSU MTU adjustments
       - Hash IPv6 addresses in IPThrottler
     * SSU Introduction:
       - Document that Alice-Bob RelayRequest/RelayResponse may be IPv4 or IPv6,
         but don't implement IPv6 yet.
         Changes required in IntroductionManager and PacketBuilder to send Alice's
         IPv4 address in the RelayRequest packet over IPv6, and to publish
         IPv6 introducer IPs.
       - Bob-Charlie RelayIntro must be IPv4
       - Only offer/accept relay tags as Bob or Charlie if the Bob-Charlie session is IPv4
       - Alice-Charlie communication must be IPv4
     * SSUDemo:
       - Configuration fixes, delete RI on exit, log tweaks, cleanups
       - Use IPv6; don't use System properties
       - Adapt for NTCP testing too
     * Tests:
       - New buildTest and prepTest targets
       - Fix UDPEndpoint usage in unit tests: Restore receive(); Handle null UDPTransport
       - Fix UDPEndpointTestStandalone: init context; Add unit test buildPacket() method to PacketBuilder;
         Fix NPE in MessageHistory
     * Transports:
       - Add new TransportUtil for getting/setting IPv6 config
       - Prep for supporting multiple RouterAddresses per-transport
       - Prep for multiple address discovery
       - Fix multiple-detection code in externalAddressReceived()
       - Synchronize tracking of last IP/port
       - Don't accept IPv6 address changes from peers
       - Remove unused getLocalAddress()
       - Pkg private getLocalPort()
       - Start transports in a standard order to make testing easier
       - When transports learn of interface addresses before being started, save them
         and use them at startup
       - Pick SSU random port before startListening() and have the TransportManager
         pass it to NTCP before starting
       - Only restart NTCP after changing addresses when necessary;
         prevent thrashing at startup (ticket #459)
       - Always bind NTCP if we have port; not just when not firewalled
       - Only call rebuildRouterInfo() once at startup
       - More checking of min/max SSU port config
       - Invalid SSU bind config no longer fatal
       - Allow "true" for ipv6 config
       - SSU fixes for per-address and IPv6 MTU
       - MTU.main() print all interfaces
       - Add i2np.disable property for testing
     * Transports:
       - Sort multiple peer addresses by cost, with adjustment for local IPv6 preference
       - Add default IPv6Config for ease of changing later
       - Only treat IPv6 addresses as valid if we have a public IPv6 address
     * Tunnel GW pumper: Limit threads when testing
     * UDPAddress:
       - Reduce object churn, check intro key length,
         don't look for ihost3, reject ports < 1024, cleanups
       - Remove dependency in console; make package private
     * UPnP:
       - Fix UPnP address received before startListening(), broken by isAlive() check
       - Pass device IP back in forward port callback
       - Only declare success if forwarded IP is public
    
    
    zzz's avatar
    zzz committed
    2013-07-20 zzz
    
     Prop from i2p.i2p.zzz.test2:
    
    zzz's avatar
    zzz committed
     * DHSessionKeyBuilder: Fix for session and mac keys if DH key is between 32 and 63 bytes.
       Was: NPE. Now: mac key is hash of session key. Won't ever happen. (Ticket #963)
     * I2CP/I2PTunnel locking fixes (partial fixes for tickets 650. 722, 815, 946, 947, 953):
       - I2PSocketManagerFactory: New createDisconnectedManager(), javadocs
       - I2PSessionImpl: Rewrite state management and locking, prevent multiple
         connect() calls, but allow disconnect() to interrupt connect()
       - I2PSimpleSession: Changes to match I2PSessionImpl
       - I2PTunnelServer: Don't connect in constructor, use createDisconnectedManager()
         for a final manager, finals and cleanups
     * ClientManager:
       - Make classes extensible for router-side test stubs
       - Add router-side local-only test implementation, no full router required.
         Only tested with external clients, probably doesn't work in-JVM.
       - Don't start threads in ClientManager constructor
       - Remove unused Reader param in ClientMessageEventListener methods
       - Cleanups, volatiles, finals, javadocs
     * Translations:
       - New varargs method in Translate
       - New TranslateReader to translate static files on-the-fly using _("") tagging
       - Tag proxy error pages for TranslateReader
       - Drop static translated proxy error pages
       - Add new i2ptunnel bundle for the proxy alone, shipped in the jar.
       - Use TranslateReader in HTTP proxy for error pages
       - Move HTTP proxy strings from the web (war) to proxy (jar) bundle so they will be loaded
         Fixes translations for the lower half of the proxy pages that weren't accessible in the war.
       - Initial translations created by msgmerge from i2ptunnel and routerconsole po files, un-fuzzied
       - Tag initialNews.xml for TranslateReader
       - Drop static translated initialNews pages
       - Add new routerconsole bundle for the news alone, shipped in the jar
       - Use TranslateReader in HTTP proxy for initial news
       - Initial translations created manually from translated xml filesx
       - Add translated proxy error pages and initial news to deletelist.txt
     * Transports: Consolidate translation methods in TransportImpl;
       ngettext fix for "peers" string
    
    
    
    zzz's avatar
    zzz committed
    2013-07-19 zzz
    
    zzz's avatar
    zzz committed
     * PRNG:
       - Don't delay the refiller if we need more (don't limit max output)
       - Add FortunaRandomSource.main() to output to stdout for testing e.g. with dieharder
    
    
    zzz's avatar
    zzz committed
    2013-07-19 zab
    
    zzz's avatar
    zzz committed
     * Streaming:
       - initialize streaming RTT from sample, trac #979, RFC 6298
       - store rttDev in TCBCache
    
    zab2's avatar
    zab2 committed
    
    
    zzz's avatar
    zzz committed
    * 2013-07-15 0.9.7 released
    
    
    2013-07-11 kytv
     * Chinese, Russian, Spanish, and Turkish updates from Transifex
    
    kytv's avatar
    kytv committed
     * Update geoip.txt based on Maxmind GeoLite Country database from 2013-07-02
    
    2013-07-11 str4d
     * susimail: Improvements to layout in mobile browsers
    
    
    2013-07-06 zzz
     * TunnelPool: Don't reuse peers for exploratory tunnels
    
    
    zzz's avatar
    zzz committed
    2013-07-04 zzz
     * Streaming:
       - Don't stop timers when session disconnects (tickets #644, #810)
       - Throw exception on attempt to use destroyed socket manager
    
    
     * Console: Hide dead tunnel pools on /tunnels
    
     * Updater: Fix plugin update checker (ticket #897)
     * Utils: Reduce logging in wrapper log when extracting zip files
    
    
    zzz's avatar
    zzz committed
    2013-06-30 zzz
     * BuildHandler: Drop build request with bad flags
    
    2013-06-28 zzz
     * i2psnark:
       - Show more metadata on details page
       - Fix rar icon
       - More URL escaping
    
    
    2013-06-23 zzz
     * i2psnark: When receiving a metainfo via magnet and saving it to disk,
       preserve all non-standard fields (such as those created by Robert) so the
       infohash doesn't change on restart and split the swarm.
    
    
    2013-06-22 zzz
    
    zzz's avatar
    zzz committed
     * SSU:
       - Pad messages with random data instead of zeros
       - Implement non-mod-16 padding, disabled for now
    
    2013-06-22 meeh
     * I2PTunnel: Change connect proxy default to outproxy-tor.meeh.i2p after h2ik's AWOL
    
    
    2013-06-21 zzz
     * Crypto: AES decrypt speedups
     * NetDB, i2psnark: Speed up XORComparators
     * SSU: Ignore non-mod-16 padding
    
    2013-06-20 zzz
     * i2psnark: Show start-all button even if tunnel is open,
       if at least one torrent is stopped (ticket #808)
    
    
    2013-06-17 zzz
     * Console: Don't display 'unsupported' message when restart button clicked
     * I2CP: Don't send SendMessageEndMessages from client to router if
             in fast receive mode and the router doesn't require them.
     * NetDB:
       - Don't instantiate unused success job for republish LS
       - Add debug setting to encrypt RI lookups
     * NTCP: Extend interval for sending time sync messages
     * SusiMail: Fix classpath problem when started manually (ticket #957)
    
    
    2013-06-14 zzz
     * I2CP: Fix deserialization of new RVLSM; enable by default
     * i2psnark: Fix bug creating torrent with a single file in a directory
    
    2013-06-12 zzz
     * Console: Add missing jetty jars to classpath (ticket #952)
     * I2PTunnel: Add advanced quantity options
    
    
    2013-06-10 kytv
     * Translations (from Transifex)
       - Start of Turkish language translation
       - Update to French translation
    
    
    zzz's avatar
    zzz committed
    2013-06-10 zzz
     * Installer: Don't install Windows service by default
     * NetDB: Let class N routers become floodfill; scale max connections for non-O floodfills
     * Transports: Reduce idle timeouts to mitigate conn limit issues
    
    
    2013-06-09 zzz
     * NetDB: Prep for leasesets with different expire times
       - Add new I2CP RequestVariableLeaseSetMessage
       - Send RVLSM if client supports it; handle on client side;
         disabled by default for the moment.
       - Add LeaseSet.getLatestLeaseDate()
       - Check latest, not earliest, date too far in future in KNDF.validate()
       - Check latest date too far in past in KNDF.validate()
       - Only check gateway and tunnel ID for equality in OCMOSJ lease caching to reduce churn
       - Split up KNDF.validate(RI) for efficiency, don't need to check
         signature, netid, etc. before lookups, only on store
       - Remove enforeNetID config
       - Fix major bug causing newer leasesets to be treated as older, and not stored or published
       - Increase max adjustment time of earliest lease
       - TransientDataStore cleanups
       - RouterInfo and LeaseSet equals() speedups
    
    
    zzz's avatar
    zzz committed
    2013-06-07 zzz
     * BlockfileNamingService:
       - Fix bug that kept reverse index from being updated
       - Bump DB version to 3 to trigger repopulation of the reverse index
       - Make metaindex final
       - Add freelist check to the main() test
    
    2013-06-06 zzz
     * BuildRequestRecord: Don't waste entropy on bytes we will overwrite
    
    
    2013-06-05 zzz
     * DatabaseLookupMessage: Change format for encrypted reply request
       to allow multiple bundled reply tags
     * I2CP: Save client version for future reference
     * InboundMessageDistributor: Cleanups
     * LeaseSet: Don't allow changes after signature added
     * NetDB:
       - Debugging option for encrypting RI lookups
       - Remove unused classes
    
    
    2013-06-01 zzz
     * EepGet: Used cached byte array in uncompressor
     * i2psnark:
       - Add idle detector, reduce tunnel count when idle (prep for torrent updates)
       - Cancel CoordinatorAcceptor cleaner when halted
       - Make PeerCoordinatorSet an Iterable
       - Reduce max protocol errors to 1
       - Disable unused PeerMonitorTask
    
    
    zzz's avatar
    zzz committed
     * configtunnels.jsp: Allow more hops and tunnels when routerconsole.advanced=true
    
     * i2psnark: Fix details page on Windows
     * NetDB:
       - Add DLM fields for requesting an encrypted reply
       - Add support for encrypted DSRM and DSM in response to a DLM
       - Fix netDb.alwaysQuery debug setting so it works again, and always
         sends to that router first (move from FNDF to IterativeSearchJob)
     * PRNG: Cleanups using Collections.singletonMap()
     * Router utils: New RemovableSingletonSet
     * TransientSessionKeyManager:
       - Support variable expiration for inbound tag sets
       - Several efficiency improvements
     * VersionComparator: Add static method, use most places
    
    
    2013-05-30 kytv
    
    kytv's avatar
    kytv committed
     * Update Java Service Wrapper to v3.5.19
        - Windows: Self-compiled with VS2010 in Windows 7. The icon has been
          changed from Tanuki's default to Itoopie.
        - Linux ARMv6: Compiled on a RaspberryPi using gcc 4.6.3-14+rpi1,
          Icedtea6 6b27-1.12.5-1+rpi1 and stripped
        - All other binaries are from the "community edition" deltapack offered by
          Tanuki.
    
     * Allow themes to be used in IE >= 10
    
    
    2013-05-29 zzz
     * Console: Remove I2PDigestAuthenticator workaround, as Jetty 7.6.11 has the fix
     * i2ptunnel: Default to 3 hops (ticket #936)
     * Jetty 7.6.11
     * Tomcat 6.0.37
    
    
    zzz's avatar
    zzz committed
    * 2013-05-28 0.9.6 released
    
    
    kytv's avatar
    kytv committed
    2013-05-24 kytv
     * Update geoip.txt based on Maxmind GeoLite Country database from 2013-05-08
    
    
    2013-05-13 kytv
     * Misc. fixes to i2prouter script
     * German translation updates from Transifex
    
    
    2013-05-13 zzz
     * i2psnark:
       - Adjust target piece size calculation
       - Tweak to make it easier for new peers to connect
     * NetDB: Increase floodfill count for good
     * UPnP: Detect devices without port forwarding capability (ticket #930)
    
    2013-05-07 zzz
     * Streaming: Chain stored IOE to get correct location
    
    
     * Console: Fix Jetty thread pool policy and thread name
    
     * Transports: Clean up internal/external port confusion (ticket #873)
       - Bind SSU to configured internal, not external, port at startup
       - Use only internal ports for UPnP (getRequestedPort() fixups)
       - Don't have NTCP follow frequent SSU port changes
       - Don't use external SSU port for internal NTCP port
       - Display internal SSU port on /confignet
    
    2013-05-01 zzz
     * BuildRequestor: Slow down build loop if we have no exploratory tunnels
                       (ticket #926)
     * IRC Server tunnel: Reject bad protocols immediately
    
    
    2013-04-30 str4d
     * Console: Updates to readme_ar and a CSS tweak from hamada (ticket #489)
    
    
    zzz's avatar
    zzz committed
    2013-04-29 zzz
     * Transports:
       - Initial prep for multiple addresses per style
       - Simplify NTCP send pool
    
    
    2013-04-28 zzz
     * i2psnark:
       - Improve page nav
       - Ensure current stats and correct event delivered in announce
       - Only show lower section on first page
       - Dir page CSS tweaks
       - Parameter fixes
       - Support HTTP request ranges
    
    
    2013-04-26 zzz
    
     * Console: Show log location on /logs even if not opened yet (ticket #905)
    
     * HTTP proxy: Verify nonce count in digest auth
     * i2psnark: Use smaller piece size for small torrents
    
     * installer: Fix DOS line endings on misc. files (ticket #872)
    
     * Plugins: Track pending plugin clients better, don't hold references,
                start delayed clients from SimpleTimer2 instead of Job queue (ticket #670)
    
     * SusiDNS:
       - Trim and sort config form data
       - Fix DOS line endings on config files in Linux (ticket #872)
    
    kytv's avatar
    kytv committed
    2013-04-25 kytv
     * Portuguese, Russian, Spanish, and Swedish translation updates from Transifex
    
    
    2013-04-25 str4d
     * i2ptunnel: Allow the "AUTHENTICATE" command in IRC tunnels to enable SASL
                  authentication (ticket #904)
    
    
    2013-04-24 zzz
     * Console, i2ptunnel: Don't register shutdown hook if ClientAppManager is present
     * JettyStart: Fixes for use by plugins
     * RouterAppManager: Add shutdown hook
    
    
    2013-04-23 zzz
     * Console: Fix Jetty digest auth bug causing repeated password requests
     * i2ptunnel: Block b32.i2p supercookies
    
    
    zzz's avatar
    zzz committed
    2013-04-21 zzz
     * AppManager: Add HTML debug output
     * Installer: Fix installations to a different drive on Windows
       (prop from i2p.i2p.zzz.winfix095; ticket #912)
     * Streaming: Pcap window size fixes
    
    
    2013-04-21 str4d
     * i2ptunnel: Return "Invalid Request URI" instead of "Non-HTTP Protocol" for
                  URIs with illegal characters (ticket #891)
    
    
    2013-04-19 kytv
     * Installer: Run fixperms.bat under any version of Windows that's not XP or
       2003 to ensure it's run under Vista, 7, 8, and the upcoming "Blue"
    
    
    zzz's avatar
    zzz committed
    2013-04-19 zzz
     * AppManager: Register jetty, console, and SAM with manager
     * i2psnark: Disable spellcheck in more form fields
     * LogManager: Add support for saving properties added in recent releases
     * Updates:
       - Notify manager about all available update methods at once, so the priority
         system works and it doesn't only update via HTTP
       - Start router update download at startup if available
       - Only check plugins when core version increases, not decreases, so we
         don't update plugins when downgrading
       - Limit length of URL shown on summary bar
     * WorkingDir: Correctly strip DOS line endings while migrating,
                   to fix eepsite location on 0.9.5 Windows installs (ticket #919)
    
    
    2013-04-18 zzz
     * i2psnark: Fix params after P-R-G
     * i2ptunnel: Set target=_top in all external links to break out of console iframe
     * SusiMail: Fix loading of Jetty classes
    
    
    2013-04-17 zzz
     * Console: Better handling of missing font for graphing (ticket #915)
    
     * Eepsite: Fix jetty.xml configuration of ThreadPool
    
     * i2ptunnel: Fix default form action (ticket #882)
     * SusiDNS: Set target=_top in all external links to break out of console iframe
    
     * Systray: Better detection of 64-bit Windows (tickets #756, #912)
    
    
    2013-04-16 zzz
     * ClientAppManager: Add method to look up clients by class and args
     * Console: Implement stopping of clients using the ClientApp interface
                (ticket #347)
    
     * SAM: Implement ClientApp interface (ticket #347)
    
    
    2013-04-15 zzz
     * Console: Move from deprecated Jetty SSL methods to SslContextFactory
     * i2psnark:
       - Add data directory configuration to GUI (ticket #768)
       - Add page size configuration to GUI
       - Multiple instance DHT file cleanup
       - Mime type fixes
       - Remove web classes from jar
    
    
    2013-04-14 zzz
     * i2psnark:
       - Set unique tunnel nickname for additional instances
       - Increase page size to 50
     * Jetty logging: Fix logging using I2PLogger class;
       log ignored messages at debug level
    
    
    2013-04-13 zzz
     * Console: Add /graph support for bw.combined, consolidate
                rendering code (ticket #890)
     * i2psnark:
       - Limit number of torrents displayed; add previous/next page buttons
       - Only register one instance with UpdateManager