The data contained in this repository can be downloaded to your computer using one of several clients.
Please see the documentation of your version control software client for more information.

Please select the desired protocol below to get the URL.

This URL has Read-Only access.

Statistics
| Branch: | Revision:

main_repo / history.txt @ 1fb2672b

History | View | Annotate | Download (511 KB)

1
2014-01-11 str4d
2
 * BOB: Pass through I2CP host/port (ticket #827)
3

    
4
2014-01-10 str4d
5
 * BOB: Implement ClientApp interface (ticket #347)
6

    
7
2014-01-09
8
 * Translations
9
  - Updates to French, German, Romanian, and Russian
10
  - New Brazilian Portuguese translation
11
  - Mass pull of translations from Transifex
12
  - Update of English strings
13

    
14
2014-01-09 str4d
15
 * susimail:
16
  - Fixed pagination with zero entries (ticket #1168)
17
  - UTF-8 support from wockenfuss (ticket #508)
18
 * Console: Fixed overlapping text issue in midnight theme
19

    
20
2014-01-04 zzz
21
 * Peermanager: Disable small same-country bonus
22
 * Tunnels: Change client default to 3 hops in router;
23
   change expl. default to 2+0 IB and 2 + 0-1 OB
24

    
25
2014-01-04 dg
26
 * Streaming: Move streaming to new package (ticket #1135)
27
 * Console: Change /configclients 'advanced warning' to include 'toopie, no red
28

    
29
2013-12-25 dg
30
 * Console: Add 'advanced warning' to /configclients
31
 * SOCKS5Server: Remove redundant, commented out line from my previous findbugs
32

    
33
2013-12-19 zzz
34
 * NetDB: Fixes for ExpireRoutersJob
35
  - Don't expire if too few routers
36
  - Don't expire if net is disconnected
37
  - Don't run in VMCommSystem
38

    
39
2013-12-15 zzz
40
* EepGet: Allow override of the User-Agent
41
* i2psnark: Set User-Agent
42

    
43
2013-12-14 zzz
44
* NetDB:
45
 - Just before midnight, flood to new location too so lookups
46
   don't fail after keyspace rotation (ticket #510)
47
 - Refactor RoutingKeyGenerator and UpdateRoutingKeyModifierJob
48
   in support of the above
49

    
50
2013-12-13 zzz
51
 * i2ptunnel: Show destination for persistent client key only if available;
52
              show b32 for the key as well
53
 * NetDB:
54
   - Increase new kad size to K=24, B=4
55
   - Fix router count by counting in the data store, not the kbuckets
56
   - Randomize the order we load router infos at startup so we
57
     don't bias the kbuckets
58

    
59
2013-12-10 zzz
60
Prop from i2p.i2p.zzz.test2:
61
 * Config files: Allow empty values
62
 * Data: Deprecate Signature.FAKE_SIGNATURE
63
 * GeoIP: Thread the periodic lookup so it doesn't clog the timer queue
64
 * I2CP router-side: Disconnect client on attempt to publish invalid leaseset
65
 * i2psnark:
66
   - Make a set of the default trackers so the config array
67
     can be private and the lookup for the form is more efficient.
68
   - Disable streaming pings (ticket #1142)
69
 * i2ptunnel: Disable streaming pings for clients (ticket #1142)
70
 * i2ptunnel IRC client: Do not filter server PING or client PONG (ticket #1141)
71
 * Jetty 7.6.14.v20131031
72
 * PeerManager: Thread the periodic reorg so it doesn't clog the timer queue
73
 * PrivateKeyFile: Fix ISE (ticket #1145)
74
 * Startup: Wait a while and recheck if a recent ping file is there,
75
            so that a crashed router doesn't prevent a restart (ticket #633)
76
 * Transport: Reduce target connections from 60% to 45% of limit
77
   to improve network capacity. Apparent problems with lower limits were
78
   actually due to unrelated bugs, fixed in 0.9.8.1-22.
79
 * Translations:
80
   - Add support for country variants (ticket #1133)
81
   - Refactor data in ConfigUIHelper
82
 * UDP PeerState: findbugs volatile/atomic/synch
83
Prop from i2p.i2p.zzz.netdbkad:
84
 * NetDB:
85
   - Move net.i2p.kademlia package from i2psnark to core, and convert
86
     netdb to use it.
87
   - Delete old implementation in netdb
88
   - Fixups in netdb for generics
89
   - Add debug output to /debug
90
 * Kad unit tests:
91
   - Move KBucketSetTest to new directory
92
   - Fix testSelf() as new implementation will never include myself
93
   - Delete KBucketImplTest, not applicable/useful now
94
   - Port KBSTest from i2p.zzz.kademlia branch
95
   - Fix RandomTrimmer so it always returns true, so it may be used
96
     as the trimmer in the unit tests
97

    
98
* 2013-12-07 0.9.9 released
99

    
100
2013-12-04 zzz
101
i2psnark: Fix ConnectionAcceptor not restarting after tunnel
102
  restart, preventing incoming connections
103

    
104
2013-12-01 kytv
105
 * Update geoip.txt based on Maxmind GeoLite Country database from 2013-11-05.
106
 * French, Italian, Romanian, Spanish, and Swedish translation updates from transifex
107

    
108
2013-11-28 dg
109
 * I2PTunnel: Don't send 'X-Powered-By' on HTTP server tunnels for anonymity reasons.
110

    
111
2013-11-25 str4d
112
 * Reseed: Listen to "Require SSL" config option
113

    
114
2013-11-23 zzz
115
 * i2ptunnel: Clean up old timer threads
116

    
117
2013-11-23 str4d
118
 * susimail: Fix NPE when deleting last message (ticket #414)
119

    
120
2013-11-19 kytv
121
 * Translation updates and start of Japanese translation pulled from Transifex
122

    
123
2013-11-14 kytv
124
 * Update Java Service Wrapper to v3.5.22
125
    - Windows: Self-compiled with VS2010 in Windows 7. The icon has been
126
      changed from Tanuki's default to Itoopie.
127
    - Linux ARMv6: Compiled on a RaspberryPi using gcc 4.6.3-14+rpi1,
128
      Icedtea6 6b27-1.12.5-1+rpi1 and stripped
129
    - All other binaries are from the "community edition" deltapack offered by
130
      Tanuki.
131

    
132
2013-11-14 zzz
133
 * Tunnels: Fix reception of encrypted responses to LS lookups (ticket #1125)
134

    
135
2013-11-07 zzz
136
 * i2psnark: Fix file links, broken in -12 (ticket #1114)
137
 * Logging: Track duplicates across flush interval (ticket #1110)
138
 * NetDB: Fix RI publish interval, broken in -7
139

    
140
2013-11-03 zzz
141
 * NetDB: Allow store of leaseset as long as one lease has not expired
142
 * Transport:
143
   - Expire wasUnreachable entries, so inbound tunnel build failures
144
     don't escalate
145
   - Add network status to event log
146

    
147
2013-11-01 zzz
148
 * Transport: Fix GeoIPv6 (ticket #1096)
149

    
150
2013-10-31 zzz
151
 * i2psnark: Always verify file lengths at startup (ticket #1099)
152
 * Transports: Increase threshold for idle timeout reduction
153
   (partially back out change from -10)
154

    
155
2013-10-29 dg
156
 * i2psnark: Start torrents by default (ticket #1072)
157

    
158
2013-10-29 zzz
159
 * i2psnark: Fix start and start-all buttons on text-mode browsers
160
   and Opera (ticket #1093)
161
 * InboundMessageDistributor:
162
   - Don't discard an encrypted DSRM received
163
     down a tunnel, just strip the hashes like we do for unencrypted
164
   - Send a store of our own encrypted LS received down a tunnel to
165
     the InNetMessagePool so the FloodfillVerifyStoreJob will see it.
166
 * NetDB: Fix LS store verifies with encrypted replies
167
   by storing the tagset with the correct SKM for the inbound tunnel used.
168
   Broken since 0.9.7 when it was introduced.
169
 * Tunnels:
170
   - Build a new exploratory fallback tunnel in the BuildExecutor
171
     loop if we run out.
172
   - Don't use closest expl. tunnel as the paired tunnel for a build,
173
     use a random one instead (partially back out change from -12)
174

    
175
2013-10-29 meeh
176
 * Adding no.i2p registrar
177

    
178
2013-10-28 dg
179
 * I2PTunnel: Enable persistent keying for SOCKS tunnels (ticket #1088)
180

    
181
2013-10-27 zzz
182
 * Streaming; Fix crash caused by previous blacklist fix (ticket #1070)
183

    
184
2013-10-26 zzz
185
 * i2psnark: Display base name, not torrent file name (ticket #985)
186
 * I2PTunnel HTTP server: New POST limiter
187
 * Profiles: Ensure we select random peers even before the first reorganization
188
 * Streaming: Randomize end of first conn limit period
189
 * Tunnels:
190
   - Don't use fallback expl. tunnels as the paired tunnel
191
     for a client tunnel build.
192
   - Fix selection of an expl. tunnel close to a hash
193

    
194
2013-10-25 zzz
195
 * Router: Only log ping file error once (ticket #1086)
196
 * Streaming:
197
   - Check blacklist/whitelist before connection limits, so
198
     a blacklisted peer does not increment the counters
199
   - Don't increment total throttle if peer is throttled
200
   - Fix blacklist NPE after config change (ticket #1070)
201
 * Transports: Reduce connection idle time sooner
202

    
203
2013-10-24 zzz
204
 * i2psnark: Drop incoming connections on HTTP port
205
 * I2PTunnel: Don't let uncaught exception kill server acceptor (ticket #1070)
206
 * I2PTunnel standard, HTTP, and IRC servers:
207
   Route connections to specific targets based on incoming I2P port
208
   with custom option targetForPort.xxxx=myserver:yyyy
209
   This allows multiple services on a single server tunnel (ticket #1066)
210

    
211
2013-10-23 zzz
212
 * I2PTunnel standard and IRC clients:
213
   - Allow host:port targets; set defaults in i2ptunnel.config (ticket #1066)
214
   - Don't fail start if hostname is unresolvable; retry at connect time (ticket #946)
215
   - Output IRC message on connect exception
216
   - Update target list on-the-fly when configuration changes
217
 * NetDB:
218
   - Increase RI publish interval to reduce the connection load on ffs
219
   - Save RI-last-published time; check it before publishing
220

    
221
2013-10-19 zzz
222
 * NetDB:
223
   - Reinstate ExpireRoutersJob
224
   - Reduce min part. tunnels for floodfill
225
   - Reduce floodfill redundancy
226

    
227
2013-10-17 zzz
228
 * I2CP: Move SSL client socket code to util,
229
   move cert location to certificates/i2cp.
230
 * I2PTunnel: Support SSL for connection to local server
231
   for Standard, HTTP, and IRC server tunnels.
232
   Put server cert in certificates/i2ptunnel if necessary.
233
 * Streaming: Throw IOE if socket is closed (ticket #1077)
234

    
235
2013-10-14 kytv
236
 * French translation updates from Transifex
237

    
238
2013-10-14 zzz
239
 * Translations: Move country names to a new resource bundle
240

    
241
2013-10-13 zzz
242
 Prop from branch i2p.i2p.zzz.test2:
243
 * Console:
244
   - Implement webapp state detection and stop button for webapps
245
     on /configclients (Ticket #1025)
246
   - Set per-connector acceptors back to 1, Jetty default changed to 2?
247
   - Tag strings on /jobs (ticket #969)
248
 * Data Structures:
249
   - Make Destination and RouterIdentity keys and cert immutable
250
   - Add Destination cache
251
 * i2psnark:
252
   - Combine getPeers and announce into a single method, as we must announce to
253
     the closest from the getPeers, not the closest from the kbuckets
254
   - Stop getPeers when nothing closer is found
255
   - Increase DHT dest lookup, search timeouts, and max search depth
256
   - Loop tracker client faster when in magnet mode or if DHT announce fails
257
   - Don't return an empty peers list in DHT if we only know about the requestor
258
   - Refactor Storage file data structures
259
   - Sort files when creating torrents
260
   - Add torrent auto-stop support; enable for update file
261
   - Add tunnel auto-close when no torrents are running
262
   - Close socket before closing output stream to avoid blocking in
263
     Peer.disconnect(), and prevent Peer.disconnect() loop
264
 * I2PTunnelHTTPServer: Don't thread a receiver for GET or HEAD
265
 * Jetty 7.6.13.v20130916
266
 * Logging:
267
   - Require strict match of class name component
268
   - parseLimits() cleanup
269
 * SSU: More efficient InboundMessageState
270
 * Streaming:
271
   - Fix active stream counting so it doesn't count streams
272
     that are closed and in TIME-WAIT state. Also, break out of the
273
     counting loop as soon as we know the answer. (Ticket #1039)
274
   - Consolidate scheduling of DisconnectEvent, and ensure
275
     we only do it once. (Ticket #1041)
276
   - Atomics for close/reset send/receive
277
     so we only do things once. (Ticket #1041)
278
   - Remove setCloseReceivedOn(), unused outside Connection
279
   - OR the isFlagSet parameter instead of multiple calls
280
   - Remove acked packets from _outboundPackets inside synced iterator
281
   - Short-circuit _outboundPackets iterator if empty
282
   - Small optimization if not logging in ConnectionPacketHandler
283
   - Stub out processing of close ack (ticket #1042)
284
   - Don't queue a message for an unknown connection on the SYN queue
285
     if it has a send ID set, it must be for a recently closed connection
286
   - Major rework of connection disconnect process. Tickets 1040-1042.
287
   - Prevent multiple calls or reentrancy in disconnect() (ticket #1041)
288
   - Implement processing of close to skip TIME-WAIT, and
289
     wait for all packets to be acked (not just the CLOSE) before
290
     doing so, if possible (ticket #1042)
291
   - Don't call disconnect() or disconnectComplete() from I2PSocketFull.destroy()
292
     so retransmissions and acks can still happen (removes some close loops)
293
   - Don't call disconnect() until we have both sent and received a CLOSE (ticket #1040)
294
   - Don't reset the connection from CPH just because we sent a CLOSE
295
     and it was acked (ticket #1040)
296
   - Ack packets even if we sent a CLOSE  (ticket #1040)
297
   - Retransmit CLOSE if not acked (ticket #1040)
298
   - Send received packets to the MessageInputStream even if we haven't received a SYN
299
   - Don't call MessageInputStream.messageReceived() for ack-only packets, that was pointless
300
   - Don't send a RESET after timeout of an outbound connection
301
   - Work around bugs on other end by limiting retransmission of CLOSE packets
302
   - Make I2PSocketFull.close() nonblocking; it will now cause any user-side
303
     writes blocked in I/O (Connection.packetSendChoke()) to throw
304
     an exception (tickets #629, #1041)
305
   - Don't ignore InterruptedExceptions; throw InterruptedIOException
306
   - MessageInputStream locking fixes
307
   - Make _isInbound final
308
   - More cleanups, javadocs, log tweaks
309
 * Transport: Treat more IPs as local
310
   - 25/8 Hamachi (moved from 5/8 Nov. 2012)
311
   - 2620:9b::/32 Hamachi
312
   - 3ffc::/16 6bone
313
   - 2001:db8::/32 example (RFC 3849)
314
   - 0::/8 Includes IPv4 compatibility addresses ::xxxx:xxxx
315
 * Update:
316
   - Support notification of updates that cannot be downloaded
317
     due to "constraints". Add constraint checks for java version,
318
     router version, configuration, and base permissions. (ticket #1024)
319
   - Thread news fetcher so it doesn't clog the scheduler
320
 * Watchdog: Format messages better
321

    
322
2013-10-06 zzz
323
 Prop from branch i2p.i2p.zzz.ecdsa:
324
 * Build:
325
   - Generate su3 file in release target
326
   - Add zzz's new RSA 4096 pubkey cert for updates
327
   - Fix checkcerts.sh
328
 * Console: Move advanced setting to HelperBase
329
 * DSAEngine changes:
330
   - Implement raw sign/verify for other SigTypes
331
   - Add sign/verify methods using Java keys
332
 * ECDSA Support:
333
   - Add ECConstants which looks for named curves and falls back to
334
     explicitly defining the curves
335
   - Add support for ECDSA to SigType, DSAEngine and KeyGenerator
336
   - Attempt to add BC as a Provider
337
   - genSpec: fallback to BC provider
338
 * EepGet:
339
   - Fix non-proxied PartialEepGet
340
   - Prevent non-proxied eepget for an I2P host
341
 * KeyGenerator changes:
342
   - Generate key pairs for all supported SigTypes
343
   - KeyPairGen: Catch ProviderException, fallback to BC provider
344
   - Add KeyGenerator main() tests
345
 * KeyRing and DirKeyRing added: simple backend for storing X.509 certs
346
 * KeyStoreUtil added:
347
   - Consolidate KeyStore code from SSLEepGet, I2CPSSLSocketFactory,
348
     SSLClientListenerRunner, and RouterConsoleRunner into new
349
     KeyStoreUtil and CertUtil classes in net.i2p.crypto (ticket #744)
350
   - Change default to RSA 2048 (ticket #1017)
351
   - Set file modes on written keys
352
   - Overwrite check in createKeys()
353
   - New getCert(), getKey()
354
   - Extend keygen max wait
355
   - Read back private key to verify after keygen
356
   - Validate cert after reading from file
357
   - Validate CN in cert
358
   - Specify cert signature algorithm when generating keys
359
 * NativeBigInteger: Tweak to prevent early context instantiation
360
 * RSA support added: constants, parameters, sig types, support in DSAEngine, KeyGenerator, SigUtil
361
 * SHA1Hash: Add no-arg constructor
362
 * SigType changes:
363
   - Add parameters (curve specs) to SigTypes
364
   - Add getHashInstance()
365
   - Add RSA, fix ECDSA
366
   - Renumber, rename, comment out types that are too short.
367
 * SigUtil added:
368
   - Converters from Java formats (ASN.1, X.509, PKCS#8)
369
     to I2P formats for Signatures and SigningKeys
370
   - Move ASN.1 converter from DSAEngine to SigUtil, generalize
371
     for variable length, add support for longer sequences,
372
     add more sanity checks, add more exceptions
373
   - Move I2P-to-Java DSA key conversion from DSAEngine to SigUtil
374
   - Add Java-to-I2P DSA key conversion
375
   - Add Java key import
376
   - New split() and combine() methods
377
 * SSLEepGet: Move all certificates to certificates/ssl, in preparation
378
   for other certificate uses by SU3File
379
 * SU3File changes:
380
   - Support all SigTypes
381
   - Implement keygen
382
   - Readahead to get sigtype on verify, as we need the hash type
383
   - Enum for content type
384
   - Add unknown content type, make default
385
   - Fix NPE if private key not found or sign fails
386
   - Store generated keys in keystore, and get private key from keystore
387
     for signing, in Java format
388
   - Use Java keys to sign and verify so we don't
389
     lose the key parameters in the conversion to I2P keys
390
   - Type checking of Java private key vs. type when signing
391
   - Use certs instead of public keys for verification
392
   - Fix arg processing
393
   - Improve validate-without-extract
394
   - New extract command
395
   - Change static fields to avoid early context init
396
   - Reduce PRNG buffer size for faster signing
397
 * Update: Preliminary work for su3 router updates:
398
   - New ROUTER_SIGNED_SU3 UpdateType
399
   - Add support for torrent and HTTP
400
   - Refactor UpdateRunners to return actual UpdateType
401
   - Deal with signed/su3 conflicts
402
   - Verify and extract su3 files.
403
   - Stub out support for clearnet su3 updating
404
   - New config for proxying news, separate from proxying update
405
   - PartialEepGet and SSLEepGet tweaks to support clearnet update
406
   - Remove proxy, key, and url config from /configupdate
407
   - More URI checks in UpdateRunner
408
   - Add https support for news fetch
409
   - Add su3 mime type
410
   - Reset found version in update loop so we don't fetch from
411
     the next host too.
412
   - Prevent NPE on version after SSL fetch
413

    
414
* 2013-10-02 0.9.8.1 released
415

    
416
2013-10-01 zzz
417
 * Startup: Fix rekeying on Windows (tickets #1056, 1057)
418

    
419
* 2013-09-30 0.9.8 released
420

    
421
2013-09-26 kytv
422
 * French, German, Russian, and Swedish translation updates from Transifex
423
 * Update geoip.txt based on Maxmind GeoLite Country database from 2013-09-03
424

    
425
2013-09-23 zzz
426
 * Console: Add /proof page which can copied to prove you run a router
427

    
428
2013-09-20 kytv
429
 * Chinese, French, German, Russian, and Swedish translation updates from
430
   Transifex
431

    
432
2013-09-17 zzz
433
 * Revert expl. default back to 2 hops, wait for next release
434

    
435
2013-09-07 zzz
436
 * Crypto: Don't use "short exponent" on faster platforms.
437
   Rebuild router identity if key length doesn't match setting.
438

    
439
2013-09-03 zzz
440
 * configui: Change pw restart warning to error so people dont miss it
441
 * Data: deprecate most of LeaseSetKeys
442
 * i2ptunnel: Reduce buffer size and use cache in HTTPServer
443
 * Jetty: Increase maxIdleTime
444
 * profiles: use different sort for floodfill profiles display
445
 * Utils: Consolidate maxMemory() calls
446

    
447
2013-08-31 zab
448
 * Streaming: Use only non-retransmitted packets when sampling RTT
449
   (Ticket 1007, RFC 6298)
450

    
451
2013-08-30 zzz
452
 * Addressbook: Don't write to log file on Android (ticket #859)
453
 * Addresses: Treat Teredo addresses 2001:0::/32 as local
454
 * Console: Display "accepting tunnels" instead of "rejecting tunnels"
455
            after 20 minutes (ticket #902)
456
 * i2psnark: Highlight table rows on hover
457
 * NTCP: Handle race where peer's NTCP address goes away
458
 * SSU, confignet: Add support for specifiying multiple addresses
459
 * SusiDNS: Don't require last subscription to be terminated by newline (ticket #1000)
460

    
461
2013-08-11 zzz
462
 * Jetty 7.6.12.v20130726
463

    
464
2013-08-11 kytv
465
 * Update Java Service Wrapper to v3.5.20
466
    - Windows: Self-compiled with VS2010 in Windows 7. The icon has been
467
      changed from Tanuki's default to Itoopie.
468
    - Linux ARMv6: Compiled on a RaspberryPi using gcc 4.6.3-14+rpi1,
469
      Icedtea6 6b27-1.12.5-1+rpi1 and stripped
470
    - All other binaries are from the "community edition" deltapack offered by
471
      Tanuki.
472
 * Translations
473
   - French, Portugeuse, Russian, Spanish, and Turkish updates from Transifex
474
   - Start of Romanian translation from Transifex
475

    
476
2013-08-11 zab
477
 * Streaming:
478
   - reduce initial ack delay 2000->1000
479
   - rework the logic of acking duplicate packets
480

    
481
* 2013-08-10 0.9.7.1 released
482

    
483
2013-08-10 zzz
484
 * Prop from i2p.i2p.0971
485
 * Update:
486
   - New update hosts, thanks Meeh and dg
487
   - Increase update-via-torrent to 30%
488

    
489
2013-07-30 zzz
490
 * i2psnark: Increase max piece size to 4 MB (ticket #993)
491
 * Tunnels: Extend local expiration of IB tunnels, to allow for
492
   more clock skew and not drop valid messages at their destination
493

    
494
2013-07-29 zzz
495
 * Signatures:
496
   - Prep for new signature algorithms; new SigType enum;
497
     Signature, SigningPublicKey, SigningPrivateKey store type
498
   - New Hash384 and Hash512 classes
499
   - Remove length field in SimpleDataStructure
500
   - New SU3File generator/verifier/extractor
501
 * GeoIPv6: Fix NPE (ticket #992)
502

    
503
2013-07-28 zzz
504
 * Addresses: Treat RFC 4193 addresses fc00::/7 as local
505
 * NetDB: Disable RI verifies for now
506

    
507
2013-07-26 zzz
508
 * Transports:
509
   - Fix IPv6-only option 2nd try
510
   - Treat RFC 4193 addresses fc00::/7 as local
511

    
512
2013-07-25 zzz
513
 * Transports:
514
   - Prefer IPv6 by default
515
   - Fix IPv6-only option
516
   - Don't try NTCP IPv6 addresses unless we have one
517
   - Fix non-%16 SSU padding; enable by default
518
 * Tunnels:
519
   - Make expl. default 3 hops  (ticket #966)
520
   - Allow expl. fallback up to -2 hops
521

    
522
2013-07-24 zzz
523
 * GeoIP: Fix lookups, broken in IPv6 branch
524
 * UPnP:
525
   - main() tweaks for debugging
526
   - Fix for devices that return base URLs with trailing '/' (ticket #986)
527

    
528
2013-07-22 zzz
529
 * BuildReplyHandler:
530
   - Make non-static
531
   - Don't pollute Hash cache with build response record hashes
532
   - Use SimpleByteCache
533
   - cleanups
534
 * HashComparator:
535
   - Don't pollute Hash cache with hashes
536
   - cleanups
537

    
538
2013-07-21 zzz
539
 * I2CP:
540
   - Don't NPE when loglevel=warn
541
   - Don't enforce property length limits when inside router JVM
542
 * I2PSnark: Log uncaught error in ThreadedStarter to router log
543
 * I2PThread: Log uncaught error to wrapper log
544

    
545
2013-07-20 zzz
546
 Prop from i2p.i2p.zzz.ipv6:
547
 * Addresses:
548
   - blocklist 192.88.88.0/24 6to4 anycast
549
   - invalidate 2002::/16
550
   - Strip scope from returned IPv6 addresses
551
 * Blocklist:
552
   - Add IPv6 in-memory single list
553
   - Limit in-memory single list size
554
   - Fix dup check in getAddresses()
555
 * CSFI: Pass TransportManager instead of CSFI to GetBidsJob; remove unused methods
556
 * Console:
557
   - Add IPv6 column on /peers
558
   - Other minor /peers cleanup
559
 * FloodfillPeerSelector, ProfileOrganizer: Use 8 bytes for IPv6 check
560
 * GeoIP:
561
   - Use cached IP in RouterAddresses
562
   - Use both NTCP and SSU addresses
563
 * GeoIPv6:
564
   - Handle gzipped input data in merge tool
565
   - Add script to generate compressed data
566
   - Add local additions
567
   - Add compressed data file, generated from Maxmind data fetched 2013-05-24
568
   - Include data in installer and updater
569
   - Update Maxmind license info, now CC-SA 3.0
570
   - Enable GeoIPv6 lookup in CSFI
571
 * NetDb:
572
   - Add floodfillEnabled() to NetworkDatabaseFacade so callers don't
573
     have to cast to FNDF, and Dummy NDF will work
574
   - Remove static FNDF.floodfillEnabled()
575
 * NTCP:
576
   - Move SSU address notification handling from CSFI to NTCPTransport
577
   - Drop NTCPAddress, just use RouterAddress
578
   - Drop _myAddress field, use super's currentAddress
579
   - Bad bind config not fatal
580
   - Fix publishing address when host specified but interface is not
581
   - Republish even if only changing cost
582
 * PacketPusher: Minor optimization
583
 * Peer tests:
584
   - Use only IPv4 peer for Alice and Bob in peer tests; Charlie may be an IPv6 peer.
585
   - Enforce IPv4 (Alice's) address inside PeerTest packet
586
 * RouterAddress and RouterInfo toString() cleanups; don't cache RI in _stringified
587
 * RouterAddress:
588
   - hashCode/equals tweaks
589
   - Add new constructor
590
   - Add add getHost() and deepEquals()
591
   - Compare host string, not IP, in equals()
592
   - Deprecate some setters
593
   - Add warning about setCost()
594
   - Change cost storage from int to short
595
   - Cost range checks
596
 * RouterContext: Fix disabling client manager with i2p.dummyClientFacade=true
597
 * SSU:
598
   - Change from single UDPEndpoint to a List of UDPEndpoints
599
   - Move (single) receive queue from UDPReceiver to PacketHandler
600
   - Multiple transmit queues (one for each UDPEndpoint/UDPSender),
601
     select queue in PacketPusher
602
   - Throw exception on UDPEndpoint.startup() failure
603
   - Remove all _external* fields; use _currentAddresses in super
604
   - Big rework of externalAddressReceived(), rebuildExternalAddress(),
605
     needsRebuild(), and replaceAddress() for multiple addresses and IPv6
606
   - Add caching in UDPAddress
607
   - More IPv6 flavors of utility methods
608
   - Remove two-arg replaceAddress()
609
   - Fixes for i2np.udp.allowLocal, log tweaks, sender/receiver thread name tweaks
610
   - Handle IPv6 in too-close checks
611
   - IPv6 SSU MTU adjustments
612
   - Hash IPv6 addresses in IPThrottler
613
 * SSU Introduction:
614
   - Document that Alice-Bob RelayRequest/RelayResponse may be IPv4 or IPv6,
615
     but don't implement IPv6 yet.
616
     Changes required in IntroductionManager and PacketBuilder to send Alice's
617
     IPv4 address in the RelayRequest packet over IPv6, and to publish
618
     IPv6 introducer IPs.
619
   - Bob-Charlie RelayIntro must be IPv4
620
   - Only offer/accept relay tags as Bob or Charlie if the Bob-Charlie session is IPv4
621
   - Alice-Charlie communication must be IPv4
622
 * SSUDemo:
623
   - Configuration fixes, delete RI on exit, log tweaks, cleanups
624
   - Use IPv6; don't use System properties
625
   - Adapt for NTCP testing too
626
 * Tests:
627
   - New buildTest and prepTest targets
628
   - Fix UDPEndpoint usage in unit tests: Restore receive(); Handle null UDPTransport
629
   - Fix UDPEndpointTestStandalone: init context; Add unit test buildPacket() method to PacketBuilder;
630
     Fix NPE in MessageHistory
631
 * Transports:
632
   - Add new TransportUtil for getting/setting IPv6 config
633
   - Prep for supporting multiple RouterAddresses per-transport
634
   - Prep for multiple address discovery
635
   - Fix multiple-detection code in externalAddressReceived()
636
   - Synchronize tracking of last IP/port
637
   - Don't accept IPv6 address changes from peers
638
   - Remove unused getLocalAddress()
639
   - Pkg private getLocalPort()
640
   - Start transports in a standard order to make testing easier
641
   - When transports learn of interface addresses before being started, save them
642
     and use them at startup
643
   - Pick SSU random port before startListening() and have the TransportManager
644
     pass it to NTCP before starting
645
   - Only restart NTCP after changing addresses when necessary;
646
     prevent thrashing at startup (ticket #459)
647
   - Always bind NTCP if we have port; not just when not firewalled
648
   - Only call rebuildRouterInfo() once at startup
649
   - More checking of min/max SSU port config
650
   - Invalid SSU bind config no longer fatal
651
   - Allow "true" for ipv6 config
652
   - SSU fixes for per-address and IPv6 MTU
653
   - MTU.main() print all interfaces
654
   - Add i2np.disable property for testing
655
 * Transports:
656
   - Sort multiple peer addresses by cost, with adjustment for local IPv6 preference
657
   - Add default IPv6Config for ease of changing later
658
   - Only treat IPv6 addresses as valid if we have a public IPv6 address
659
 * Tunnel GW pumper: Limit threads when testing
660
 * UDPAddress:
661
   - Reduce object churn, check intro key length,
662
     don't look for ihost3, reject ports < 1024, cleanups
663
   - Remove dependency in console; make package private
664
 * UPnP:
665
   - Fix UPnP address received before startListening(), broken by isAlive() check
666
   - Pass device IP back in forward port callback
667
   - Only declare success if forwarded IP is public
668

    
669
2013-07-20 zzz
670
 Prop from i2p.i2p.zzz.test2:
671
 * DHSessionKeyBuilder: Fix for session and mac keys if DH key is between 32 and 63 bytes.
672
   Was: NPE. Now: mac key is hash of session key. Won't ever happen. (Ticket #963)
673
 * I2CP/I2PTunnel locking fixes (partial fixes for tickets 650. 722, 815, 946, 947, 953):
674
   - I2PSocketManagerFactory: New createDisconnectedManager(), javadocs
675
   - I2PSessionImpl: Rewrite state management and locking, prevent multiple
676
     connect() calls, but allow disconnect() to interrupt connect()
677
   - I2PSimpleSession: Changes to match I2PSessionImpl
678
   - I2PTunnelServer: Don't connect in constructor, use createDisconnectedManager()
679
     for a final manager, finals and cleanups
680
 * ClientManager:
681
   - Make classes extensible for router-side test stubs
682
   - Add router-side local-only test implementation, no full router required.
683
     Only tested with external clients, probably doesn't work in-JVM.
684
   - Don't start threads in ClientManager constructor
685
   - Remove unused Reader param in ClientMessageEventListener methods
686
   - Cleanups, volatiles, finals, javadocs
687
 * Translations:
688
   - New varargs method in Translate
689
   - New TranslateReader to translate static files on-the-fly using _("") tagging
690
   - Tag proxy error pages for TranslateReader
691
   - Drop static translated proxy error pages
692
   - Add new i2ptunnel bundle for the proxy alone, shipped in the jar.
693
   - Use TranslateReader in HTTP proxy for error pages
694
   - Move HTTP proxy strings from the web (war) to proxy (jar) bundle so they will be loaded
695
     Fixes translations for the lower half of the proxy pages that weren't accessible in the war.
696
   - Initial translations created by msgmerge from i2ptunnel and routerconsole po files, un-fuzzied
697
   - Tag initialNews.xml for TranslateReader
698
   - Drop static translated initialNews pages
699
   - Add new routerconsole bundle for the news alone, shipped in the jar
700
   - Use TranslateReader in HTTP proxy for initial news
701
   - Initial translations created manually from translated xml filesx
702
   - Add translated proxy error pages and initial news to deletelist.txt
703
 * Transports: Consolidate translation methods in TransportImpl;
704
   ngettext fix for "peers" string
705

    
706

    
707
2013-07-19 zzz
708
 * PRNG:
709
   - Don't delay the refiller if we need more (don't limit max output)
710
   - Add FortunaRandomSource.main() to output to stdout for testing e.g. with dieharder
711

    
712
2013-07-19 zab
713
 * Streaming:
714
   - initialize streaming RTT from sample, trac #979, RFC 6298
715
   - store rttDev in TCBCache
716

    
717
* 2013-07-15 0.9.7 released
718

    
719
2013-07-11 kytv
720
 * Chinese, Russian, Spanish, and Turkish updates from Transifex
721
 * Update geoip.txt based on Maxmind GeoLite Country database from 2013-07-02
722

    
723
2013-07-11 str4d
724
 * susimail: Improvements to layout in mobile browsers
725

    
726
2013-07-06 zzz
727
 * TunnelPool: Don't reuse peers for exploratory tunnels
728

    
729
2013-07-04 zzz
730
 * Streaming:
731
   - Don't stop timers when session disconnects (tickets #644, #810)
732
   - Throw exception on attempt to use destroyed socket manager
733

    
734
2013-07-03 zzz
735
 * Console: Hide dead tunnel pools on /tunnels
736
 * Updater: Fix plugin update checker (ticket #897)
737
 * Utils: Reduce logging in wrapper log when extracting zip files
738

    
739
2013-06-30 zzz
740
 * BuildHandler: Drop build request with bad flags
741

    
742
2013-06-28 zzz
743
 * i2psnark:
744
   - Show more metadata on details page
745
   - Fix rar icon
746
   - More URL escaping
747

    
748
2013-06-23 zzz
749
 * i2psnark: When receiving a metainfo via magnet and saving it to disk,
750
   preserve all non-standard fields (such as those created by Robert) so the
751
   infohash doesn't change on restart and split the swarm.
752

    
753
2013-06-22 zzz
754
 * SSU:
755
   - Pad messages with random data instead of zeros
756
   - Implement non-mod-16 padding, disabled for now
757

    
758
2013-06-22 meeh
759
 * I2PTunnel: Change connect proxy default to outproxy-tor.meeh.i2p after h2ik's AWOL
760

    
761
2013-06-21 zzz
762
 * Crypto: AES decrypt speedups
763
 * NetDB, i2psnark: Speed up XORComparators
764
 * SSU: Ignore non-mod-16 padding
765

    
766
2013-06-20 zzz
767
 * i2psnark: Show start-all button even if tunnel is open,
768
   if at least one torrent is stopped (ticket #808)
769

    
770
2013-06-17 zzz
771
 * Console: Don't display 'unsupported' message when restart button clicked
772
 * I2CP: Don't send SendMessageEndMessages from client to router if
773
         in fast receive mode and the router doesn't require them.
774
 * NetDB:
775
   - Don't instantiate unused success job for republish LS
776
   - Add debug setting to encrypt RI lookups
777
 * NTCP: Extend interval for sending time sync messages
778
 * SusiMail: Fix classpath problem when started manually (ticket #957)
779

    
780
2013-06-14 zzz
781
 * I2CP: Fix deserialization of new RVLSM; enable by default
782
 * i2psnark: Fix bug creating torrent with a single file in a directory
783

    
784
2013-06-12 zzz
785
 * Console: Add missing jetty jars to classpath (ticket #952)
786
 * I2PTunnel: Add advanced quantity options
787

    
788
2013-06-10 kytv
789
 * Translations (from Transifex)
790
   - Start of Turkish language translation
791
   - Update to French translation
792

    
793
2013-06-10 zzz
794
 * Installer: Don't install Windows service by default
795
 * NetDB: Let class N routers become floodfill; scale max connections for non-O floodfills
796
 * Transports: Reduce idle timeouts to mitigate conn limit issues
797

    
798
2013-06-09 zzz
799
 * NetDB: Prep for leasesets with different expire times
800
   - Add new I2CP RequestVariableLeaseSetMessage
801
   - Send RVLSM if client supports it; handle on client side;
802
     disabled by default for the moment.
803
   - Add LeaseSet.getLatestLeaseDate()
804
   - Check latest, not earliest, date too far in future in KNDF.validate()
805
   - Check latest date too far in past in KNDF.validate()
806
   - Only check gateway and tunnel ID for equality in OCMOSJ lease caching to reduce churn
807
   - Split up KNDF.validate(RI) for efficiency, don't need to check
808
     signature, netid, etc. before lookups, only on store
809
   - Remove enforeNetID config
810
   - Fix major bug causing newer leasesets to be treated as older, and not stored or published
811
   - Increase max adjustment time of earliest lease
812
   - TransientDataStore cleanups
813
   - RouterInfo and LeaseSet equals() speedups
814

    
815
2013-06-07 zzz
816
 * BlockfileNamingService:
817
   - Fix bug that kept reverse index from being updated
818
   - Bump DB version to 3 to trigger repopulation of the reverse index
819
   - Make metaindex final
820
   - Add freelist check to the main() test
821

    
822
2013-06-06 zzz
823
 * BuildRequestRecord: Don't waste entropy on bytes we will overwrite
824

    
825
2013-06-05 zzz
826
 * DatabaseLookupMessage: Change format for encrypted reply request
827
   to allow multiple bundled reply tags
828
 * I2CP: Save client version for future reference
829
 * InboundMessageDistributor: Cleanups
830
 * LeaseSet: Don't allow changes after signature added
831
 * NetDB:
832
   - Debugging option for encrypting RI lookups
833
   - Remove unused classes
834

    
835
2013-06-01 zzz
836
 * EepGet: Used cached byte array in uncompressor
837
 * i2psnark:
838
   - Add idle detector, reduce tunnel count when idle (prep for torrent updates)
839
   - Cancel CoordinatorAcceptor cleaner when halted
840
   - Make PeerCoordinatorSet an Iterable
841
   - Reduce max protocol errors to 1
842
   - Disable unused PeerMonitorTask
843

    
844
2013-05-31 zzz
845
 * configtunnels.jsp: Allow more hops and tunnels when routerconsole.advanced=true
846
 * i2psnark: Fix details page on Windows
847
 * NetDB:
848
   - Add DLM fields for requesting an encrypted reply
849
   - Add support for encrypted DSRM and DSM in response to a DLM
850
   - Fix netDb.alwaysQuery debug setting so it works again, and always
851
     sends to that router first (move from FNDF to IterativeSearchJob)
852
 * PRNG: Cleanups using Collections.singletonMap()
853
 * Router utils: New RemovableSingletonSet
854
 * TransientSessionKeyManager:
855
   - Support variable expiration for inbound tag sets
856
   - Several efficiency improvements
857
 * VersionComparator: Add static method, use most places
858

    
859
2013-05-30 kytv
860
 * Update Java Service Wrapper to v3.5.19
861
    - Windows: Self-compiled with VS2010 in Windows 7. The icon has been
862
      changed from Tanuki's default to Itoopie.
863
    - Linux ARMv6: Compiled on a RaspberryPi using gcc 4.6.3-14+rpi1,
864
      Icedtea6 6b27-1.12.5-1+rpi1 and stripped
865
    - All other binaries are from the "community edition" deltapack offered by
866
      Tanuki.
867
 * Allow themes to be used in IE >= 10
868

    
869
2013-05-29 zzz
870
 * Console: Remove I2PDigestAuthenticator workaround, as Jetty 7.6.11 has the fix
871
 * i2ptunnel: Default to 3 hops (ticket #936)
872
 * Jetty 7.6.11
873
 * Tomcat 6.0.37
874

    
875
* 2013-05-28 0.9.6 released
876

    
877
2013-05-24 kytv
878
 * Update geoip.txt based on Maxmind GeoLite Country database from 2013-05-08
879

    
880
2013-05-13 kytv
881
 * Misc. fixes to i2prouter script
882
 * German translation updates from Transifex
883

    
884
2013-05-13 zzz
885
 * i2psnark:
886
   - Adjust target piece size calculation
887
   - Tweak to make it easier for new peers to connect
888
 * NetDB: Increase floodfill count for good
889
 * UPnP: Detect devices without port forwarding capability (ticket #930)
890

    
891
2013-05-07 zzz
892
 * Streaming: Chain stored IOE to get correct location
893

    
894
2013-05-06 zzz
895
 * Console: Fix Jetty thread pool policy and thread name
896
 * Transports: Clean up internal/external port confusion (ticket #873)
897
   - Bind SSU to configured internal, not external, port at startup
898
   - Use only internal ports for UPnP (getRequestedPort() fixups)
899
   - Don't have NTCP follow frequent SSU port changes
900
   - Don't use external SSU port for internal NTCP port
901
   - Display internal SSU port on /confignet
902

    
903
2013-05-01 zzz
904
 * BuildRequestor: Slow down build loop if we have no exploratory tunnels
905
                   (ticket #926)
906
 * IRC Server tunnel: Reject bad protocols immediately
907

    
908
2013-04-30 str4d
909
 * Console: Updates to readme_ar and a CSS tweak from hamada (ticket #489)
910

    
911
2013-04-29 zzz
912
 * Transports:
913
   - Initial prep for multiple addresses per style
914
   - Simplify NTCP send pool
915

    
916
2013-04-28 zzz
917
 * i2psnark:
918
   - Improve page nav
919
   - Ensure current stats and correct event delivered in announce
920
   - Only show lower section on first page
921
   - Dir page CSS tweaks
922
   - Parameter fixes
923
   - Support HTTP request ranges
924

    
925
2013-04-26 zzz
926
 * Console: Show log location on /logs even if not opened yet (ticket #905)
927
 * HTTP proxy: Verify nonce count in digest auth
928
 * i2psnark: Use smaller piece size for small torrents
929
 * installer: Fix DOS line endings on misc. files (ticket #872)
930
 * Plugins: Track pending plugin clients better, don't hold references,
931
            start delayed clients from SimpleTimer2 instead of Job queue (ticket #670)
932
 * SusiDNS:
933
   - Trim and sort config form data
934
   - Fix DOS line endings on config files in Linux (ticket #872)
935

    
936
2013-04-25 kytv
937
 * Portuguese, Russian, Spanish, and Swedish translation updates from Transifex
938

    
939
2013-04-25 str4d
940
 * i2ptunnel: Allow the "AUTHENTICATE" command in IRC tunnels to enable SASL
941
              authentication (ticket #904)
942

    
943
2013-04-24 zzz
944
 * Console, i2ptunnel: Don't register shutdown hook if ClientAppManager is present
945
 * JettyStart: Fixes for use by plugins
946
 * RouterAppManager: Add shutdown hook
947

    
948
2013-04-23 zzz
949
 * Console: Fix Jetty digest auth bug causing repeated password requests
950
 * i2ptunnel: Block b32.i2p supercookies
951

    
952
2013-04-21 zzz
953
 * AppManager: Add HTML debug output
954
 * Installer: Fix installations to a different drive on Windows
955
   (prop from i2p.i2p.zzz.winfix095; ticket #912)
956
 * Streaming: Pcap window size fixes
957

    
958
2013-04-21 str4d
959
 * i2ptunnel: Return "Invalid Request URI" instead of "Non-HTTP Protocol" for
960
              URIs with illegal characters (ticket #891)
961

    
962
2013-04-19 kytv
963
 * Installer: Run fixperms.bat under any version of Windows that's not XP or
964
   2003 to ensure it's run under Vista, 7, 8, and the upcoming "Blue"
965

    
966
2013-04-19 zzz
967
 * AppManager: Register jetty, console, and SAM with manager
968
 * i2psnark: Disable spellcheck in more form fields
969
 * LogManager: Add support for saving properties added in recent releases
970
 * Updates:
971
   - Notify manager about all available update methods at once, so the priority
972
     system works and it doesn't only update via HTTP
973
   - Start router update download at startup if available
974
   - Only check plugins when core version increases, not decreases, so we
975
     don't update plugins when downgrading
976
   - Limit length of URL shown on summary bar
977
 * WorkingDir: Correctly strip DOS line endings while migrating,
978
               to fix eepsite location on 0.9.5 Windows installs (ticket #919)
979

    
980
2013-04-18 zzz
981
 * i2psnark: Fix params after P-R-G
982
 * i2ptunnel: Set target=_top in all external links to break out of console iframe
983
 * SusiMail: Fix loading of Jetty classes
984

    
985
2013-04-17 zzz
986
 * Console: Better handling of missing font for graphing (ticket #915)
987
 * Eepsite: Fix jetty.xml configuration of ThreadPool
988
 * i2ptunnel: Fix default form action (ticket #882)
989
 * SusiDNS: Set target=_top in all external links to break out of console iframe
990
 * Systray: Better detection of 64-bit Windows (tickets #756, #912)
991

    
992
2013-04-16 zzz
993
 * ClientAppManager: Add method to look up clients by class and args
994
 * Console: Implement stopping of clients using the ClientApp interface
995
            (ticket #347)
996
 * SAM: Implement ClientApp interface (ticket #347)
997

    
998
2013-04-15 zzz
999
 * Console: Move from deprecated Jetty SSL methods to SslContextFactory
1000
 * i2psnark:
1001
   - Add data directory configuration to GUI (ticket #768)
1002
   - Add page size configuration to GUI
1003
   - Multiple instance DHT file cleanup
1004
   - Mime type fixes
1005
   - Remove web classes from jar
1006

    
1007
2013-04-14 zzz
1008
 * i2psnark:
1009
   - Set unique tunnel nickname for additional instances
1010
   - Increase page size to 50
1011
 * Jetty logging: Fix logging using I2PLogger class;
1012
   log ignored messages at debug level
1013

    
1014
2013-04-13 zzz
1015
 * Console: Add /graph support for bw.combined, consolidate
1016
            rendering code (ticket #890)
1017
 * i2psnark:
1018
   - Limit number of torrents displayed; add previous/next page buttons
1019
   - Only register one instance with UpdateManager
1020

    
1021
2013-04-10 zzz
1022
 * Jetty: Upgrade to Jetty 7.6.10.v20130312
1023
    - Jetty build.xml improvements
1024
    - MigrateJetty improvements
1025
    - Lots of changes in RouterConsoleRunner and WebApp classes
1026
    - Lots of eepsite config file changes
1027
    - Changes to I2PLogger and I2PRequestLog
1028
    - Use JettyStart class to start Jetty from clients.config
1029
 * i2psnark: Eliminate Jetty dependencies in i2psnark for good.
1030
    Required due to webapp classloader changes in Jetty 7,
1031
    we can no longer access or extend Jetty classes.
1032
    - Extend javax HttpServlet instead of Jetty's DefaultServlet
1033
    - Implement BasicServlet to replace functions of DefaultServlet
1034
    - Add MimeTypes implementation to add to servlet's defaults
1035
    - Add local mime.properties file, remove checks in I2PSnarkServlet for those
1036
      we were missing
1037
    - Eliminate all use of Jetty utility classes including MimeType, Resource,
1038
      Buffer, Cache, URIUtil, ...
1039
    - Use servlet path everywhere, so the war can be renamed
1040
    - Use servlet path as base for config file and data directory names,
1041
      so we may have multiple instances running together
1042
    - Don't override service(), use doGet() and doPost() instead
1043
 * I2NP: Ignore unused 7 bits of the Database Lookup Message,
1044
   so we can use them later
1045

    
1046
* 2013-03-08 0.9.5 released
1047

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
1191
* 2012-12-17 0.9.4 released
1192

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

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

    
1200
2012-12-08 zzz
1201
 * susimail: Button CSS tweak
1202

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
1345
2012-10-30 sponge
1346
 * cleanups as requested
1347

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

    
1392
* 2012-10-27 0.9.3 released
1393

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

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

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

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

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

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

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

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

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

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

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

    
1437
2012-10-09 zzz
1438
 * Console, i2ptunnel: Warn on low ports
1439
 * EventLog: Add more events
1440
 * NetDB: Increase floodfills again
1441
 * RouterInfo: Exit 1 on error in main()
1442
 * SSU:
1443
   - Add peer test throttling
1444
   - Peer test packet count fixes
1445
   - Adjust peer test timeouts and add backoff
1446
   - Reject relays and peer tests from same /16
1447
   - More peer test cleanup and log tweaks
1448
 * Transports:
1449
   - Enforce minimum peer port
1450
   - Warn on low router ports
1451

    
1452
2012-10-08 zzz
1453
 * SSU:
1454
   - Fix relay request handling bug from -10
1455
   - Fix peer test reply handling bug from -10
1456
   - Fix NPE from -6
1457

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

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

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

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

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

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

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

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

    
1553
2012-09-21 zzz
1554
 * BuildHandler: Use CoDel for inbound queue
1555
 * ByteCache:
1556
   - Prevent release of wrong size
1557
   - Move all 16/32 byte users to SimpleByteCache
1558
   - Increase SimpleByteCache default size.
1559
 * ClientConnectionRunner:
1560
   - Run HandleJob and MessageReceivedJob inline for speed
1561
   - Remove payload from message map if availability announce fails
1562
   - Cleanups
1563
 * ClientManager:
1564
   - Concurrent client map for faster lookup
1565
   - Add by-hash client map for faster lookup by hash
1566
 * ClientWriterRunner: Limit queue size
1567
 * Clock: Synchronization, log large shifts to event log
1568
 * Console: Mark all restarts on graphs using the event log.
1569
 * FortunaRandomSource:
1570
   - Fix bug that wasted entropy in nextInt()
1571
   - Improved synchronization
1572
 * GarlicMessage:
1573
   - Add notes about GarlicMessageHandler and HandleGarlicMessageJob
1574
     being unused in practice
1575
 * I2CP:
1576
   - Limit router/client queue sizes and queue wait times
1577
   - Buffer output streams
1578
 * i2psnark:
1579
   - Implement blacklist for unreachable DHT peers
1580
   - Reduce threshold for unreachable
1581
   - Use ByteCache for chunks in/out
1582
 * IP Lookup:
1583
   - Add caching in RouterAddress with secondary caching
1584
     in Addresses; use caches to speed up transport bids,
1585
     blocklist checks, geoip lookups, and profile organizer
1586
     checks (ticket #707)
1587
   - Limit IP cache size in TransportImpl
1588
   - Clear caches at shutdown
1589
 * JobQueue: Reduce lock contention
1590
 * LHMCache: New util, replacing several private versions
1591
 * LogWriter:
1592
   -  Duplicate log message removal
1593
   -  Increase buffer time
1594
 * NTCP: Move NTCPConnection outbound queue to CoDelPriority
1595
 * OutNetMessage:
1596
   - Centralize priority definitions
1597
   - Raise netdb store and reply priority
1598
 * Router:
1599
   - Boost priority of shutdown thread
1600
   - Replace ident log with new, general-purpose event log;
1601
     use for stops, starts, and updates, and others.
1602
   - New AQM CoDel queue utilities
1603
   - Startup/shutdown synchronization fixes
1604
 * RouterAddress: Remove unused expiration field to save space
1605
 * SimpleTimer (ticket #653):
1606
   - Move all remaining uses to SimpleTimer2
1607
   - Deprecate
1608
 * SSU:
1609
   - Move MessageReceiver, UDPSender and UDPReceiver queues to CoDel
1610
   - Separate PeerState outbound message list into a queue for unsent messages
1611
     and a list for sent messages awaiting ack
1612
   - Implement PeerState outbound queue as CoDelPriority
1613
   - Implement backlogged indication like in NTCP
1614
   - Increase initial and max RTO
1615
   - Don't count ack-only packets in bandwidth allocation
1616
 * Streaming: Don't send a RST to an hour/day limited peer,
1617
   or blacklisted, or non-whitelisted, to not waste outbound bandwidth
1618
 * SystemVersion: New util, to consolidate duplicate code,
1619
   and determine Java version on Android
1620
 * TunnelGateway:
1621
   - Refactor TunnelGateway.Pending to its own file PendingGatewayMesasge
1622
   - Move OBGW queue to CoDelPriority
1623
   - Move IBGW queue to CoDel
1624
   - Limit queue sizes
1625
   - Add stat for overflow
1626
   - Remove some stats
1627
   - Change pumper to LinkedHashSet for efficiency
1628
     (like NTCP Reader/Writer)
1629
   - Limit messages pumped per cycle to increase
1630
     round-robin fairness
1631
   - Implement pushback from a backlogged transport
1632
     queue to the pre-fragmentation queue
1633
   - Comment out some unused code
1634

    
1635
* 2012-09-21 0.9.2 released
1636

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

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

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

    
1646
2012-09-12 kytv
1647
 * Czech translation updates from Transifex
1648

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

    
1652
2012-09-05 meeh
1653
 * Added startup scripts for osx
1654

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
1853
2012-08-09 zzz
1854
 * Datagrams: Remove static logs
1855
 * i2psnark:
1856
   - Remove static SnarkManager instance
1857
   - Allow DHT-only torrents
1858
   - DHT debugging
1859
 * NTCP: Stat cleanup
1860
 * SAM:
1861
   - Don't use direct byte buffers that may be leaking (ticket #679)
1862
   - Volatiles and finals
1863
 * SSU:
1864
   - Don't send a packet that exceeds the MTU
1865
   - Stub out local MTU detection (ticket #682)
1866
   - More cleanups
1867

    
1868
2012-08-07 str4d
1869
 * Console:
1870
   - Theme updates from dr|z3d
1871
   - Changed universal theming key so it is not mistaken as a theme
1872
     name by the routerconsole
1873
 * i2psnark:
1874
   - Theme updates from dr|z3d
1875
   - If universal theming is set and routerconsole theme is classic,
1876
     use light theme explicitly
1877
 * susidns: new midnight theme from dr|z3d
1878

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

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

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

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

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

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

    
1947
* 2012-07-30 0.9.1 released
1948

    
1949
2012-07-28 str4d
1950
 * Console: theme fixes
1951

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

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

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

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

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

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

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

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

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

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

    
1999
2012-07-16 str4d
2000
 * console: work towards better integration
2001
   - Wrapped the bundled apps in iFrames (with a link in the page header to
2002
     open the app in a new tab):
2003
     - i2ptunnel
2004
     - i2psnark
2005
     - susimail
2006
     - susidns
2007
   - Theme improvements
2008
     - Added theme support to susimail and susidns
2009
       - "susimail.theme=foo" in susimail.config
2010
       - "theme=foo" on susidns config page
2011
     - Extensive work on dark console theme (dr|z3d)
2012
       - Improved integration of i2ptunnel in iframe
2013
       - General improvements
2014
     - New dark themes for i2psnark, susimail and susidns which integrate well
2015
       with dark console theme (dr|z3d)
2016
     - Tweaks to other themes (console and i2psnark) to work with the various
2017
       structural changes (dr|z3d)
2018
     - Added per-theme favicons
2019
     - Updated IE shim to fix some issues
2020
   - Summary bar improvements
2021
     - Updated every console page to use Ajax for the summary bar
2022
       - Falls back to iFrame if JS disabled
2023
       - Ajax refresh time is adjustable
2024
     - The summary bar is now customizable; sections can be added, removed and
2025
       reordered as desired
2026
     - Added/updated tooltips
2027
     - Added a new summary bar section to show news headings when the main news
2028
       display is hidden
2029
   - Changes to structure of /home to bring it in line with rest of console
2030
 * i2psnark
2031
   - Reworked the torrent info/file manager page to improve the layout
2032

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

    
2036
2012-07-12 kytv
2037
* Translations from Transifex:
2038
  - Add new Greek translation
2039
  - Dutch translation update
2040

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

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

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

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

    
2093
2012-06-20 zzz
2094
 * I2PSession:
2095
   - Greatly simplify the VerifyUsage timers
2096
   - Constructor cleanup
2097

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

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

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

    
2134
2012-06-13 zzz
2135
 * I2PSocketEepGet: Set port to 80
2136
 * I2PTunnel:
2137
   - Pass port through HTTP client proxy
2138
   - HTTP server proxy sets host header to
2139
     the value of "spoofedhost.xx" option for port xx
2140
   - Set client options more efficiently
2141
 * i2psnark: Possible fix for piece-after-choke
2142
 * Streaming:
2143
   - Channel cleanups and comments
2144
   - New I2PSocketAddress
2145

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
2253
* 2012-05-02 0.9 released
2254

    
2255
2012-04-26 kytv
2256
 * German, Spanish, and Swedish Translation updates
2257
   from Transifex
2258

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
2371
2012-03-14 zzz
2372
  * Blockfile, i2psnark: Remove static logs
2373
  * DHSessionKeyBuilder:
2374
    - Move from core to router/transport
2375
    - Make non-static, instantiate in TransportManager
2376
    - Generate keypair in constructor and make final
2377
      to move more processing to the precalc thread
2378
      and eliminate races
2379
    - Synchronize getSessionKey() to eliminate races
2380
    - Comment out unused methods
2381
  * Jetty:
2382
    - Set default cache-control for webapps and eepsite
2383
    - Disable dir listing for console webapps
2384
  * UDPTransport:
2385
    - Make key builder final in InboundEstablishState to
2386
      eliminate rare NPE (ticket #406)
2387
    - Remove unused static instance
2388
  * YKGenerator: Make non-static, instantiate in ElGamalEngine
2389

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

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

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

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

    
2413
2012-03-11 sponge
2414
  * Slackware package script updates
2415

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

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

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

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

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

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

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

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

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

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

    
2525
2012-03-02 zzz
2526
  * BlockfileNamingService: Add negative cache
2527
  * Build: Add built-by to jars; check for corrupt jars on debug page
2528
  * configstats.jsp: Hide log settings unless already enabled
2529
  * DataStructures:
2530
    - Remove static logs
2531
    - Sort addresses in RouterInfo at initialization only;
2532
      change from Set to List to save space
2533
    - Remove unused counters in Lease to save space
2534
    - Increase max leases to 16
2535
  * Graphs:
2536
    - New single graph page with easy resizing
2537
    - Support graphing of previous intervals
2538
  * i2pinstall.exe: Add icon
2539
  * i2psnark:
2540
    - Add tracker configuration form
2541
    - Remove custom tracker option from create form
2542
    - Add private torrent option
2543
    - More icons in buttons
2544
    - Use js for refresh
2545
  * I2PTunnelHTTPClient:
2546
    - Refactoring to use Java URI parser to better handle
2547
      escapes, IPv6 addresses, ports
2548
    - Rewrite i2paddresshelper scanning/removal
2549
    - Refactor out local server code
2550
    - Nicer address helper error page
2551
  * NetDB:
2552
    - Reenable verify of RI stores, disabled in 0.7.9,
2553
      checkin comments claim reenabled in 0.7.10 but didn't happen.
2554
    - Synchronize StoreJob.sendNext() to avoid dups
2555
  * netdb.jsp: Fix debug leaseset count again
2556
  * susidns: Add b64 hash to details page
2557

    
2558
* 2012-02-27 0.8.13 released
2559

    
2560
2012-02-22 kytv
2561
  * Updated German, Italian, Spanish, Swedish, and Ukrainian translations
2562
    from Transifex.
2563

    
2564
2012-02-22 zzz
2565
  * ExploratoryPeerSelector: Use fast peers if hidden for
2566
    inbound tunnels to improve success
2567
  * NetDB:
2568
    - Don't publish our RI if it has no addresses
2569
    - Publish our RI sooner after startup
2570
      to facilitate our IB tunnel builds
2571

    
2572
2012-02-20 zzz
2573
  * i2ptunnel:
2574
    - Fix streamr session registration
2575
    - Don't delete privkey file for a non-persistent client tunnel
2576
      (ticket #599)
2577
  * Streaming: Fix race NPE (thx echelon)
2578

    
2579
2012-02-17 zzz
2580
  * i2psnark: Escape fixes
2581
  * netdb.jsp: Fix debug median calculation
2582

    
2583
2012-02-17 kytv
2584
  * Add Czech language from Transifex (thanks Waseihou)
2585

    
2586
2012-02-12 str4d
2587
  * i2ptunnel: Tunnel creation wizard
2588

    
2589
2012-02-10 zzz
2590
  * WorkingDir: Fix detection of migrated directory
2591

    
2592
2012-02-09 zzz
2593
  * i2psnark: Escape semicolons
2594

    
2595
2012-02-04 zzz
2596
  * Deprecate util classes used only by installer
2597
  * ProfileOrganizer: Add profileOrganizer.sameCountryBonus config
2598
  * WorkingDir: Reset dates of eepsite files while migrating
2599
                to avoid exposing install time (thx Z6)
2600
  * Wrapper files:
2601
    - Move PID and status files to config dir in i2prouter
2602
    - Don't set PID files in wrapper.config as Windows doesn't need them
2603
      and the wrapper won't start if the dir doesn't exist
2604
    - Move wrapper.log to config dir using override in i2prouter,
2605
      Windows stays in system temp dir
2606
    - Move wrapper.log to config dir for no wrapper
2607
    - Move wrapper.log setup for no wrapper from RouterLaunch
2608
      to WorkingDir
2609
    - Redirect stderr too when no wrapper
2610
    - Create config dir in i2prouter for Linux/Mac
2611

    
2612
2012-02-02 kytv
2613
 * Ukrainian and Polish translation updates from Transifex
2614

    
2615
2012-01-30 zzz
2616
  * i2psnark: More illegal chars
2617
  * LogWriter: Don't rotate and open file until first message
2618
  * SusiDNS: Reduce listings to 50/page
2619

    
2620
2012-01-27 zzz
2621
  * Build: Repack release jars with pack200 -r, saves about 1% and
2622
           might save a little memory at runtime too
2623
  * confignet: Add UDP disable option
2624
  * SAM: Remove client demo classes from sam.jar
2625

    
2626
2012-01-26 zzz
2627
  * configclients: Fix form action default
2628
  * NetDB: Increase min ff to 200
2629
  * Plugins: Fix updated count
2630
  * SusiDNS: Make UI 1-based
2631

    
2632
2012-01-24 zzz
2633
  * Addresses: Fix NPE if no interfaces found http://forum.i2p/viewtopic.php?t=6365
2634
  * i2ptunnel: Fix white-on-white buttons on hover
2635
  * Plugins: Add completion message after all-update check
2636
  * susidns, susimail: Add icons to buttons
2637

    
2638
2012-01-22 zzz
2639
  * Transports: Bind only to a single interface if specified
2640
                as the host address and it's available (ticket #591)
2641
  * VMCommSystem: Move to dummy directory
2642

    
2643
2012-01-21 zzz
2644
  * Build: Fix Windows build, version checking for release
2645
  * Console summary bar: Move some code around
2646

    
2647
2012-01-20 sponge
2648
  * Fix too short of delay for http. It is up to the browser to time out
2649
    in a shorter time, not the proxy. This is wreaking havoc on large
2650
    downloads, similar to the issues that we had in the distant past with
2651
    jetty's default timeout being too short.
2652

    
2653
2012-01-18 zzz
2654
  * I2PTunnel: Register ports with the PortMapper
2655
  * Router:
2656
    - Use new synchronized change-and-save-config methods
2657
      to eliminate races with ReadConfigJob
2658
  * Tunnels:
2659
    - When a peer is shitlisted, fail all our tunnels where
2660
      that peer is the adjacent hop. In particular this
2661
      will remove outbound tunnels when we can't contact
2662
      the first hop, and enable quicker recovery.
2663
  * Update: Find the proxy port in the PortMapper
2664

    
2665
2012-01-16 hottuna
2666
  * Router:
2667
    - Don't throttle tunnel creation if using a higher
2668
    - than default router.maxParticipatingTunnels setting.
2669

    
2670
2012-01-16 zzz
2671
  * Build: Put Implementation-Version in manifests
2672
  * NetDB: Hopefully fix rare NPE (ticket #589)
2673
  * Plugins:
2674
    - Only stop a plugin before update if it was running
2675
    - Only stop a plugin at shutdown if it was running
2676
    - Don't start a plugin after update if it was disabled
2677
    - Disable plugin if it fails version checks at startup
2678
    - Auto-update plugins after a router update
2679
    - Add update-all button and more cancel buttons
2680
  * Router:
2681
    - Add synchronized change-and-save-config methods to avoid races
2682
    - Save previous version in config so we know when we updated
2683
  * Transport: Revert change from -2, put addresses back in RouterInfo
2684
               when hidden, broke inbound tunnel building
2685

    
2686
2012-01-14 zzz
2687
  * i2ptunnel: Partial fix for dest formatting (ticket #581)
2688
  * jars.jsp: New debug page
2689
  * logs.jsp: Use wrapper method to find wrapper log if available
2690
  * Stats:
2691
    - Cleanups
2692
    - Remove some locking
2693
    - Change some longs to ints to save space
2694
    - Remove static logs
2695

    
2696
2012-01-13 zzz
2697
  * i2prouter: Add translation infrastructure
2698

    
2699
2012-01-10 zzz
2700
  * Console:
2701
    - Add info to error 500 page
2702
    - Add indication on summary bar when in VM comm system
2703
    - Make graceful the default for HUP (ticket #580)
2704
    - Fix class error on wrapper 3.1.1
2705
  * i2prouter: Don't attempt to translate strings from script
2706
  * Router:
2707
    - Auto-hidden mode for bad countries
2708
    - Don't put addresses in our RouterInfo when hidden
2709

    
2710
2012-01-08 zzz
2711
  * Plugins:
2712
    - Enforce min and max Jetty versions at plugin installation
2713
    - Enforce I2P, Java, and Jetty versions at plugin startup too
2714
  * Router:
2715
    - No longer check for updates or start any threads in the Router constructor,
2716
    - for ease in building multiple routers in the JVM,
2717
    - and also because starting threads in a constructor is bad practice.
2718
    - All threads now start in runRouter().
2719
    - Installation of updates now only happens via Router.main().
2720
  * RouterInfo, RouterAddress: Optimizations and integrity checks
2721
    - Remove synchronization
2722
    - Do not allow contents to change after being set, throw IllegalStateException
2723
    - Do not copy contents out in getters
2724
    - Make options final
2725
    - Add getOption() and getOptionsMap() methods
2726
  * Router shutdown:
2727
    - Fix failsafe shutdown hook broken in 0.8.8;
2728
      HUP, INT, and TERM signals should now shut down cleanly.
2729
    - Shutdown hook no longer prevents other hooks from running
2730
    - Trap HUP, if router.gracefulHUP=true, and do graceful shutdown.
2731
      Only under wrapper, non-Windows.
2732
    - i2prouter stop now uses SIGTERM
2733
    - Implement i2prouter graceful using SIGHUP (ticket #580)
2734
    - Configure wrapper to ignore SIGUSR1 and SIGUSR2 as they will shut down
2735
      or crash the JVM
2736

    
2737
2012-01-06 kytv
2738
  * EepGet: If transfer fails, exit with status 1 (fixes #576)
2739

    
2740
* 2012-01-06 0.8.12 released
2741

    
2742
2012-01-04 kytv
2743
  * Update geoip.txt based on Maxmind GeoLite Country database from 2011-12-08
2744

    
2745
2012-01-02 kytv
2746
  * Wrapper 3.5.13 for everything other than armv7.
2747

    
2748
2012-01-02 zzz
2749
  * Fix webapp PortMapper lookup for SSL-only console
2750
  * Wrapper 3.5.13 for arm v7
2751

    
2752
2011-12-31 zzz
2753
  * Fix log NPE when saveConfig() fails at startup, thx kytv
2754
   (backport from jetty6 branch)
2755

    
2756
2011-12-30 zzz
2757
  * New Estonian translation thanks ajutine
2758

    
2759
2011-12-27 kytv
2760
  * Spanish and Swedish translation updates from Transifex
2761

    
2762
2011-12-23 zzz
2763
  * Logging: Eliminate LogWriter/LogManager deadlock
2764

    
2765
2011-12-18 zzz
2766
  * Addresses: Add utility toString() methods
2767
  * Blocklist: Buffer input to speed lookup
2768
  * PersistentDataStore: Buffer file writes and reads
2769
  * Router: Cleanup startup jobs and router.config reading; javadocs
2770
  * Transport: Log tweaks
2771

    
2772
2011-12-17 kytv
2773
  * Ukrainian translation updates from Transifex
2774
  * Add my key to TrustedUpdate.java
2775

    
2776
2011-12-17 zzz
2777
  * i2psnark:
2778
    - Replace file name characters not supported in default charset
2779
    - Add torrent file name to local details page
2780
  * GeoIP: Reduce thread priority during lookup
2781
  * ProfileManager: Make some methods non-blocking to reduce
2782
                    lock contention in transports
2783

    
2784
2011-12-15 kytv
2785
  * Swedish translation updates from Transifex
2786

    
2787
2011-12-14 zzz
2788
  * BuildHandler: Increase next hop timeout again
2789
  * DataHelper:
2790
    - Speed up heavily used long/byte[] converters
2791
    - Add little endian versions of the converters
2792
    - Cache common properties keys
2793
  * GarlicMessageParser: Use cached cert
2794
  * GeoIP: Buffer input to speed lookup by 10x
2795
  * I2NP: Disable pass-through checksum debugging
2796
  * MessageHistory:
2797
    - Flush at shutdown
2798
    - Fix file location, only delete if enabled
2799
    - Cleanups, concurrent
2800
  * ResettableGZIPInputStream: Better footer log errors
2801
  * RouterAddress: Cache transport names
2802
  * TransportBid: Remove unused stuff
2803

    
2804
2011-12-13 kytv
2805
  * Don't require that full stats are enabled to be able to graph
2806
    router.highCapacityPeers. (closes #450)
2807

    
2808
2011-12-12 kytv
2809
  * German and Spanish translation updates from Transifex
2810

    
2811
2011-12-12 zzz
2812
  * ExploreJob: Tweaks to handle DatabaseLookupMessage changes
2813
  * I2NP:
2814
    - Deprecate unused stream methods and I2NPMessageReader since
2815
      all transports provide encapsulation.
2816
    - Don't throw IOE from byte array methods
2817
    - Use cached null cert in GarlicClove
2818
    - Add method to limit size of buffer to read
2819
    - Don't check checksum at input, in most cases
2820
    - Reuse checksum at output, for unmodified pass-through messages
2821
      (but recalculating it now and logging on a mismatch for testing)
2822
    - Fix DatabaseLookupMessage to internally store the don't include peers as
2823
      a List, not a Set, so it doesn't get reordered and break the checksum
2824
    - Log cleanup
2825
  * NTCP:
2826
    - Zero-copy and limit size when handing buffer to I2NP
2827
    - Log hex dump message on I2NPMessageException, like in SSU
2828
    - Don't close connection on I2NPMessageException
2829
  * PortMapper: New service for registering application ports in the context
2830
  * ReusableGZIPInputStream: Fix 3 major bugs, all present since 2005:
2831
    - Payloads an exact multiple of 512 bytes failed to decompress
2832
    - Data at the end of the stream could be lost
2833
    - read() returned -1 when the data was 0xff
2834
  * SearchState: generics and cleanups
2835

    
2836
2011-12-11 sponge
2837
  * HTTP server tunnel, use log.WARN for 3 first minutes. (closes #460)
2838

    
2839
2011-12-10 kytv
2840
  * Replace eepget's whitelist of accepted characters with the
2841
    blacklist from i2psnark. (closes #562)
2842

    
2843
2011-12-09 zzz
2844
  * Base64: Add decodestring command in main()
2845
  * Console, i2psnark: More button CSS tweaks
2846
  * I2NP:
2847
    - Earlier detection and better logging of
2848
      truncated TunnelGatewayMessage and DatabaseStoreMessage
2849
    - Fix and enhance UnknownI2NPMessage implementation
2850
    - Don't deserialize or verify the checksum of the
2851
      embeddedI2NP message in the TunnelGatewayMessage
2852
      at the IBGW, just use UnknownI2NPMessage and pass it along,
2853
      except if zero hop; Still to do: similar thing at OBEP
2854
    - Cleanups and javadoc
2855
  * LeaseSet: Fix size calculations
2856
  * UDP:
2857
    - Fix major bug from 2005 that corrupted outbound messages
2858
      that were an exact multiple of the fragment size.
2859
    - Round expiration times when converting to seconds
2860
    - Zero-copy of single-fragment messages in MessageReceiver
2861
    - Optimizations, log tweaks, comments
2862

    
2863
2011-12-06 zzz
2864
  * Router:
2865
    - More refactoring tasks to their own files
2866
    - Adjust some thread priorities
2867
  * Susimail: Adjust login form sizes
2868
  * Tunnels: Increase next hop send timeout
2869
  * UDP: Fix major MTU bug introduced in 0.8.9.
2870
    - Change large MTU from 1492 to 1484 and small from 608 to 620
2871
      for encryption padding efficiency
2872
    - Enforce sent MTU limit
2873
    - Increase receive buffer size from 1536 to 1572 so that excessive-sized
2874
      packets sent by 0.8.9-0.8.11 routers aren't dropped
2875
    - Limit the max acks in a data packet
2876
    - Limit the duplicate acks in successive data packets
2877
    - Only include acks that will fit in the mtu in a data packet
2878
    - Correctly remove acks from the pending set after they are sent,
2879
      so they aren't sent repeatedly
2880
    - Don't pad data packets unless necessary
2881
    - Debug logging and javadocs
2882

    
2883
2011-12-04 zzz
2884
  * Console:
2885
    - Less icons on configclients.jsp
2886
    - Fix some browsers breaking line on negative numbers
2887
    - Tab CSS tweaks
2888
  * i2psnark: Fix directories not always deleted when torrent is deleted
2889
  * IRC Client: Lower log level for connect error to warn (thx echelon/sponge)
2890
  * Tunnel RED:
2891
    - Complete rework of participating traffic RED.
2892
      Implement an accurate bandwidth tracker in FIFOBandwidthRefiller.
2893
    - Fix drop priority of VTBM at OBEP
2894
    - Lower drop priority of VTBRM at IBGW
2895
    - Raise threshold from 95% to 120%
2896
    - Remove unused things in HopConfig
2897
  * UDP: Fix i2np.udp.allowLocal operation (thx Quizzers)
2898

    
2899
2011-12-02 zzz
2900
  * Console:
2901
    - Summary bar tweaks
2902
    - Config nav CSS tabs
2903
    - CSS cleanups from last checkin
2904
  * Susimail:
2905
    - Login screen tweaks
2906
    - Cleanups, generics, static
2907

    
2908
2011-12-01 zzz
2909
  * Console:
2910
    - Split up config network page
2911
    - CSS tweaks in summary bar
2912
    - Spiff up the buttons
2913
  * i2psnark:
2914
    - Retry link on torrent download fail
2915
    - Clear URL after clicking 'add torrent'
2916
    - Message tweaks
2917
    - CSS tweaks
2918
  * IRC Server: Fix IOOBE (ticket #559)
2919
  * Throttle: Update throttle status immediately on shutdown request;
2920
              clear starting-up message after 20 minutes
2921

    
2922
2011-11-29 zzz
2923
  * Random: Use new nextBytes(buf, off, len) for efficiency
2924
  * Router: Refactor periodic tasks to their own files
2925

    
2926
2011-11-28 zzz
2927
  * Specify locale in all toLowerCase() and toUpperCase() calls to
2928
    avoid the "Turkish four i problem";
2929
    replace most equalsIgnoreCase() calls too.
2930
  * Update: Files listed in deletelist.txt will be deleted
2931

    
2932
2011-11-28 kytv
2933
  * IRCClient: Add IRCop commands (and other safe commands) to the whitelist
2934

    
2935
2011-11-27 zzz
2936
  * IRCClient: Outbound whitelist optimization
2937
  * Reseed:
2938
    - Restore i2pbote (ticket #516)
2939
    - Remove r31453 (cert expiring, host soon to be shut down permanently)
2940

    
2941
2011-11-26 zzz
2942
  * DCCServer: Socket error log fix
2943
  * NTCP: Fix pumper NPE (ticket #555)
2944

    
2945
2011-11-23 zzz
2946
  * CryptixAESEngine: Fix bogus bounds checks
2947
  * NTCP:
2948
    - More optimizations in recvEncrypted()
2949
    - More efficient XOR
2950
    - Reduce bandwidth stat update frequency
2951
    - Check for repeated zero-length reads
2952
  * RandomSource: Add new method getBytes(buf, offset, length)
2953
  * Tunnel encryption: More efficient XOR
2954

    
2955
2011-11-21 zzz
2956
  * NTCP Pumper:
2957
    - Ensure failsafe pumper code gets run on schedule
2958
    - Don't copy the read buffers
2959
    - Adjust minimum read buffers based on memory
2960
    - New i2np.ntcp.useDirectBuffer option (default false)
2961
    - Mark peer unreachable when read failure is during establishment
2962
    - Change some Reader Lists to Sets to avoid linear search
2963
    - Log tweaks, debugging, new loop stats
2964

    
2965
2011-11-18 zzz
2966
  * NTCP:
2967
    - First cut at improving EventPumper performance (ticket #551)
2968
    - Establishment timeout cleanup/concurrent
2969
    - Remove some logging and stats
2970
    - Switch some Queues from LBQ to CLQ
2971
    - Static ByteBuffer cache
2972

    
2973
2011-11-16 zzz
2974
  * Console: Add Jetty version to logs page
2975
  * NTCP: Reduce log level for race (ticket #392)
2976
  * NTCPConnection: Concurrent PrepBufs
2977
  * OutNetMessage: Remove some fields and methods used only in NTCP debugging
2978
  * Router: Move router.ping file from temp directory to config directory
2979

    
2980
2011-11-14 zzz
2981
  * Console: Remove % chart at bottom of tunnels.jsp
2982
  * Profiles: Only use same-country metric for countries with
2983
    lots of I2P users
2984
  * SusiDNS: Remove .jsp suffixes
2985

    
2986
2011-11-12 zzz
2987
  * Installer: Fix Ukrainian translation (ticket #550) thx rndnick
2988

    
2989
2011-11-11 zzz
2990
  * Console:
2991
    - Less magic and fix img sizes, for speed and less artifacts while rendering
2992
    - CSS tweaks
2993

    
2994
2011-11-09 zzz
2995
  * Console: Add ability to hide news
2996
  * I2PTunnel IRC Client: Don't filter PASS (ticket #549)
2997
  * Licenses: Update information
2998
  * Router: Clean up config map methods and uses
2999
  * wrapper.config: Increase shutdown timeout
3000

    
3001
* 2011-11-08 0.8.11 released
3002

    
3003
2011-11-05 kytv
3004
  * Update geoip.txt based on Maxmind GeoLite Country
3005
    database from 2011-11-02
3006

    
3007
2011-11-02 zzz
3008
  * HTTP Proxy: Error page tweak
3009
  * Reseed:
3010
    - Add new host
3011
    - Handle % escaping in file URLs
3012
    - Do basic validation of router hash
3013
    - Add some more sanity checks
3014

    
3015
2011-11-01 kytv
3016
  * Update Ukrainian translations from Transifex
3017
  * Update i2prouter script for better compatibility with Gentoo
3018

    
3019
2011-10-31 zzz
3020
  * NetDB: Reduce max RI publish interval
3021
  * ProfileOrganizer:
3022
    - Fix expiration of old profiles
3023
    - Don't exceed high cap limit between reorgs
3024
    - Reduce max reorg cycle time
3025
    - Reduce new bonus values
3026
    - Fix rare NSEE thx sponge
3027
  * SSU: Increase threshold for incremented cost
3028
  * Tunnels:
3029
    - Restore and implement lengthOverride()
3030
    - Adjust quantity override
3031

    
3032
2011-10-29 zzz
3033
  * BuildHandler: Add router.buildHandlerThreads config setting
3034
  * CapacityCalculator: Small adjustment for XOR distance to
3035
    break ties and encourage closeness
3036
  * ProfileOrganizer: Reduce min expire time
3037
  * SSU: Limit max peers to use as introducers
3038

    
3039
2011-10-28 zzz
3040
  * BuildHandler: Move inbound request handling to its own thread(s)
3041
    (ticket #542, see also http://zzz.i2p/topics/996)
3042
  * CapacityCalculator: Small boost for connected peers, new peers, and
3043
    same-country peers; deduct for recently-unreachable peers
3044
  * DecayingBloomFilter: Whups fix NPE from previous checkin if log=INFO
3045
  * NTCP: Reduce min idle time
3046
  * SSU:
3047
    - Increase default max connections again
3048
    - Reduce min idle time
3049
    - Separate out introducer pinger from introducer selection
3050
      so it can be run separately and more often
3051
    - Only ping introducers if we need them
3052
  * Tunnels:
3053
     - Reduce exploratory tunnel quantity if build success rate
3054
       is very low, but may disable this later
3055
     - Try rebuilding same tunnel (some of the time)
3056

    
3057
2011-10-25 zzz
3058
  * BloomSHA1, DecayingBloomFilter:
3059
    - Refactor for concurrent, at some small risk of false negatives
3060
    - Optimizations to cache objects and reuse offsets
3061
  * Tunnels:
3062
    - Make most classes package private
3063
    - Final, static, logs, cleanups
3064
    - Consolidate createRateStat calls
3065
    - Add getTotalLength()
3066
    - Remove unused lengthOverride()
3067
  * UDP: Mark only first fragment as a duplicate
3068

    
3069
* 2011-10-20 0.8.10 released
3070

    
3071
2011-10-19 kytv
3072
  * Update Italian translation from Transifex (thanks danimoth)
3073

    
3074
2011-10-19 zzz
3075
  * I2PTunnel: Fix timeout message on POST (ticket #531)
3076
  * NetDB: Reduce RI max expiration again
3077

    
3078
2011-10-18 zzz
3079
  * StoreJob: Ensure nonzero token
3080
  * Tunnels: Connection limit mitigation:
3081
    - Disable tunnel testing
3082
    - Implement closest-to-the-key tunnel selection
3083
    - Use closest-selection in NetDB lookups, stores, and verifies;
3084
      OCMOSJ; and in BuildRequestor
3085

    
3086
2011-10-17 zzz
3087
  * BuildExecutor: Efficiency tweak
3088
  * Console: Hide tunnel lag if tunnel testing is disabled
3089
  * NetDB: Fix rare NPE from netdb.jsp (ticket #539)
3090
  * Router: Change all shutdown CRITs to ERRORs; shutdown
3091
    the stat manager last to reduce chance of NPEs
3092
    (similar to that in tickets #534,535)
3093
  * SSU: Increase max concurrent outbound attempts;
3094
    fix udp.establishRejected stat
3095

    
3096
2011-10-15 zzz
3097
  * BuildExecutor: Add tunnel.buildConfigTime stat
3098
  * configupdate.jsp:
3099
    - Fix setting to 'never' (ticket #523)
3100
    - Fix always saying trusted keys changed
3101
    - Parameterize tags
3102
  * EepGet:
3103
    - Add gunzip support (nonproxied only)
3104
    - Clean up progress formatting
3105
  * FloodfillMonitorJob: Log tweak (ticket #533)
3106
  * I2CP: Improve error message (ticket #533)
3107
  * JobQueue:
3108
    - Log error when queue is out of order
3109
    - Log tweaks
3110
  * FloodfillPeerSelector: Fix stat NPE (tickets #534,535)
3111
  * RouterThrottle:
3112
    - Fix stat NPE (tickets #534,535)
3113
    - Increase max tunnels and max delay again
3114
  * OutNetMessagePool: Log tweak (ticket #533)
3115
  * Router:
3116
    - Add OOM help (ticket #533)
3117
    - Prevent parallel shutdowns after multiple OOMs (tickets #534,535)
3118
  * Stats: Add API methods for zero duration
3119
  * SSLEepGet:
3120
    - Add gunzip support
3121
    - Increase buffer size
3122
  * SSU: Fix concurrency errors (ticket #536)          \
3123

    
3124
2011-10-13 kytv
3125
  * Updated translations from Transifex
3126
    - Swedish: debconf and i2psnark
3127
    - Finnish: router console
3128

    
3129
* 2011-10-11 0.8.9 released
3130

    
3131
2011-10-10 zzz
3132
  * Lower max netdb RI expiration again
3133
  * Increase default max tunnels
3134
  * Cleanups after review
3135
  * Exorcism (ticket #476)
3136

    
3137
2011-10-07 kytv
3138
  * GeoIP:
3139
    - Switch to Maxmind's GeoIP service (it's better maintained
3140
      than our old provider)
3141
    - Update based on Maxmind GeoLite Country database from 2011-10-07
3142
  * Translation updates from Transifex:
3143
    - I2PSnark: de, es, and pt
3144
    - I2PTunnel: de and es
3145
    - RouterConsole: de and es
3146
    - SusiDNS: de and es
3147
    - SusiMail: de and es
3148

    
3149
2011-10-07 zzz
3150
  * Reseed:
3151
    - Add an https reseed, thx h2ik
3152
    - Restore ovh reseeds, thx mathiasdm
3153
  * Tunnels:
3154
    - For expl. tunnels, fall back to high cap sooner
3155
    - Tweak build rejections for class N
3156

    
3157
2011-10-06 kytv
3158
  * Add diftracker.i2p to I2PSnark
3159

    
3160
2011-10-06 zzz
3161
  * RepublishLeaseSetJob:
3162
    - Out-of-order JobQueue 3nd try to fix
3163
    - Lower timeouts
3164
  * Reseed:
3165
    - Update host lists
3166
    - Switch back to https by default
3167
  * Throttle: Increase max message delay
3168
  * Transport:
3169
    - Add per-style send processing time stat
3170
    - Increase default SSU conn limit
3171

    
3172
2011-10-05 zzz
3173
  * Streaming: Fix build
3174
  * UDP: Catch address without key sooner
3175

    
3176
2011-09-30 zzz
3177
  * logs.jsp: Add wrapper version
3178
  * Shitlist: Shorten time
3179
  * Wrapper: Update armv7 to 3.5.12
3180

    
3181
2011-09-30 kytv
3182
  * fix umask bug by upgrading to wrapper v3.5.12. Binaries are from Tanuki's
3183
    delta pack for the community edition, except:
3184
    - Win64: not available from Tanuki--compiled with VS2010
3185
    - FreeBSD: Tanuki's binaries are compiled in FBSD v6.  I compiled the
3186
      wrapper in FreeBSD 7.4 to eliminate the dependency on the compat6x port.
3187
    - Linux ARM: not available from Tanuki
3188
    - OSX: Tanuki offers separate binaries for 32bit VS 64bit. Our
3189
      wrapper is quad-fat supporting PPC32/PPC64 and x86/x86_64.
3190

    
3191
2011-09-29 zzz
3192
  * Bandwidth refiller: Reinitialize at restart, avoid
3193
    issues from clock skews
3194

    
3195
2011-09-27 kytv
3196
  * Remove exotrack.i2p from i2psnark
3197

    
3198
2011-09-24 zzz
3199
  * HTTPClient: Fix error page not appearing, broken by
3200
                StreamForwarder change
3201
  * HTTPServer: More mime types not to compress
3202

    
3203
2011-09-23 kytv
3204
  * Update Italian, Spanish, and Swedish translations
3205
    from Transifex
3206

    
3207
2011-09-20 zzz
3208
  * Crypto: Comment out some main()
3209
  * ClientMessage: Remove unused MessageReceptionInfo
3210
  * i2psnark: File allocation cleanup to use less heap
3211
  * i2ptunnel HTTPResponseOutputStream:
3212
    - Use reusable gunzipper and a larger pipe for efficiency
3213
    - Close output stream in StreamForwarder to prevent lost data,
3214
      existing bug but made worse by larger pipe
3215
  * I2PTunnelHTTPServer: Don't compress small responses or images
3216
  * I2PTunnel, NTCP: Catch unchecked exceptions from GNU NIO (ticket # 519)
3217
  * JobQueue, RepublishLeaseSetJob, StartExplorerJob:
3218
    Out-of-order JobQueue 2nd try to fix
3219
  * NetDB: Limit max explore queue
3220
  * RouterContext: Remove unused MessageStateMonitor
3221

    
3222
2011-09-18 kytv
3223
 * Add OpenBSD & NetBSD to NBI and CPUID
3224

    
3225
2011-09-16 zzz
3226
  * Console: Home page flag spacing
3227
  * EepGet: Add some new command line options
3228
  * JobQueue:
3229
    - Add warning to setStartAfter() as queue is no longer
3230
      continuously sorted
3231
    - Fix StartExplorerJob not calling requeue()
3232
    - More pumper cleanups
3233
  * Reseed:
3234
    - Add HTTP proxy authorization support
3235
    - Stub out SSL proxy support
3236
    - Disable i2pbote reseed
3237
  * Router: Fix router changing client-side tunnel options,
3238
    causing original tunnel quantity to not be restored
3239
    (ticket #513)
3240

    
3241
2011-09-14 zzz
3242
  * Console: Verify valid host/IP before saving on net config form
3243
  * i2psnark:
3244
    - Add refresh time option
3245
    - Add public file permissions option (ticket #501)
3246
    - Fix configuration of tunnel parameters (ticket #524)
3247
    - Allow changing I2CP parameters while tunnel is open
3248
    - Remove duplicated options in I2CP options string
3249
    - Don't open tunnel when saving config
3250
  * IRC DCC: Fix conn limit options
3251
  * Router: Set permissions on router.ping file
3252

    
3253
2011-09-13 kytv
3254
  * Update i2prouter script
3255

    
3256
2011-09-12 zzz
3257
  * build.xml: Run test scripts at release time
3258
  * Build Executor:
3259
    - Limit max parallel builds on really slow machines (ticket #519)
3260
    - Slow down build loop when network is apparently disconnected (ticket #519)
3261
  * i2psnark: Fix inaccuracy in the completed bytes display
3262
  * NetDB: Disable floodfill at shutdown time if enabled
3263

    
3264
2011-09-09 zzz
3265
  * TunnelDispatcher: Fix bug in -13 preventing participating
3266
    tunnels from being expired and causing high CPU usage
3267

    
3268
2011-09-08 zzz
3269
  * Blocklist: Include IP in shitlist reason
3270
  * Ministreaming: Drop old classes replaced by streaming
3271
    years ago.
3272
  * NTCP: Hopefully fix race NPE, thx devzero
3273
  * Tunnels: Limit Bloom filter size based on max memory
3274

    
3275
2011-09-07 zzz
3276
  * Console: Limit max displayed participating tunnels
3277
  * JobQueue: Change queue from a Set to a TreeSet for more efficiency
3278
  * TunnelDispatcher: Change participant expire List to a Queue for
3279
    efficiency and to remove global lock. Also remove separate
3280
    time List for space savings.
3281

    
3282
2011-09-06 zzz
3283
  * Console: Move jobs.jsp rendering code from
3284
    the router to the console
3285
  * Crypto: Rework use of SHA256 for efficiency and
3286
    to avoid clogging the Hash cache with one-time hashes,
3287
    and avoiding the global cache lock.
3288
    This also greatly increases Hash cache hit rates.
3289
    Also use SimpleByteCache for temporary byte buffers.
3290
  * I2PTunnel: Save keys to privkey file when enabling
3291
    persistent key after tunnel creation (ticket #480)
3292
  * JobQueue: Change queue from a List to a Set for efficiency
3293
  * PrivateKeyFile: Add more constructors
3294
  * SDSCache: Use weak refs; increase size for pub keys
3295

    
3296
2011-09-04 zzz
3297
  * NetDB:
3298
    - Try again to fix ISJ deadlock, thx devzero
3299
    - Lower RI expiration again
3300
    - Expire RIs with SSU only and no introducers sooner
3301
  * Transport: Remove one global lock in OutboundMessageRegistry.
3302

    
3303
2011-09-03 zzz
3304
  * i2psnark: Fix "eject" button in certain browsers (ticket #511)
3305
  * UDP Inbound:
3306
    - Hopefully fix race NPE, thx devzero
3307
    - Catch some more fragment errors
3308
    - Exception and log tweaks
3309
    - Cleanups and javadocs
3310

    
3311
2011-09-02 zzz
3312
  * Console: Cache user-agent processing
3313
  * NetDB: Hopefully fix ISJ deadlock, thx devzero
3314

    
3315
2011-09-02 sponge
3316
  * I2PSnark: Fix GUI html tag for adding a torrent, it was missing a space.
3317

    
3318
2011-09-01 zzz
3319
  * Console: Enable color logs
3320
  * GeoIP: Cache country codes
3321
  * NetDB: Explore more aggressively if hidden or K
3322
  * UDP: Cleanups and introduction fixes
3323

    
3324
2011-08-31 zzz
3325
  * OCMOSJ: Remove some global cache locks, other cleanups
3326

    
3327
2011-08-30 zzz
3328
  * I2CP: Cache b32 lookups client-side
3329
  * I2PTunnelHTTPClient: Use existing session for b32 lookups
3330
                         rather than a new SimpleSession
3331
  * Naming: Increase b32 lookup timeout to 15 sec.
3332

    
3333
2011-08-29 zzz
3334
  * NetDB:
3335
    - Replace the old parallel lookup method with a true
3336
      Kademlia lookup that iteratively queries additional floodfill
3337
      peers returned in DatabaseSearchReplyMessages. This is a more
3338
      efficient and reliable lookup that will work much better
3339
      when not all floodfill peers are known, and it removes a serious
3340
      limitation to network growth.
3341
    - Limit max number of DSRM entries to look up
3342
    - Cleanups, javadocs, log tweaks
3343
  * Tunnels:
3344
    - Increase timeouts on all deferred netdb lookups to 15s; add lookup stats
3345
    - Cleanups, javadocs, log tweaks
3346

    
3347
2011-08-28 zzz
3348
  * checkcerts.sh: New test
3349
  * Console: Remove 'firewalled and fast' message, just say 'firewalled'
3350
  * I2PTunnelRunner: Fix logging
3351
  * Log: Fix level stuck at DEBUG when using public constructor
3352
  * OutboundMessageRegistry: Cleanups
3353
  * Stats: Restore pre-0.8.8 API to not create a new Rate if it does not
3354
           exist in RateStat.getRate()
3355
  * UPnP: Lower some log levels
3356

    
3357
2011-08-26 kytv
3358
  * Debian: Bugfix: Avoid overwriting preseeded debconf values
3359
    upon package installation (ticket #514).
3360
  * Windows: Fix bug in fixperms.bat that occurred when installing on
3361
    non-English versions of Windows 7 and Vista.
3362

    
3363
2011-08-25 zzz
3364
  * Blockfile:
3365
    - Avoid NPE after corruption (ticket #515)
3366
    - Add reverse lookup table; bump DB rev to 2
3367
  * I2PTunnelIRCClient:
3368
    - Big refactoring into multiple class files
3369
    - Allow AWAY and CAP messages
3370
    - First cut at DCC support - not for SOCKS (yet)
3371
  * Streaming:
3372
    - Hook I2CP ports through to I2PSocket
3373
    - Javadocs, init cleanups, final
3374
  * UDP:
3375
    - Complete rewrite of OutboundMessageFragments for
3376
      concurrent and for efficiency to avoid O(n**2) behavior
3377
    - Don't delay in OutboundMessageFragments at the end
3378
      of the loop if we have more to send now, this should
3379
      speed things up
3380
    - Queue a new send immediately after a packet is acked
3381
    - Send session destroy message when dropping connection
3382
    - Increase large MTU to 1492 (was 1350)
3383
    - Cleanups, log tweaks, javadocs, final
3384

    
3385
* 2011-08-23 0.8.8 released
3386

    
3387
2011-08-23 zzz
3388
  * Tweaks after review
3389

    
3390
2011-08-21 zzz
3391
  * RateStat: Cleanups and javadoc fixes
3392
  * susimail: Fix page encoding
3393

    
3394
2011-08-20 zzz
3395
  * Translations:
3396
    - New Danish and Ukranian translations from transifex
3397
    - Update Italian, Chinese, Spanish, Polish, Swedish,
3398
      and Vietnamese translations from transifex
3399
    - Update .tx/config
3400

    
3401
2011-08-19 zzz
3402
  * Soft restart:
3403
    - Allow NTP to reinitialize clock after the comm system
3404
      in the first minute of uptime
3405
    - Fix i2ptunnels not restarting
3406
    - Increase minimum forward clock shift for soft restart
3407
    - Reduce minimum backward clock shift for soft restart
3408
    - Signal the I2CP client with a different message when restarting
3409
    - I2CP client reconnects when receiving restart message
3410

    
3411
2011-08-17 kytv
3412
  * Fix #506: Don't attempt to load systray4j when using a 64bit JVM
3413
    in Windows.
3414

    
3415
2011-08-16 zzz
3416
  * Console: Tweak logs page CSS
3417
  * Graphs: Delete corrupt rrd file (ticket #483)
3418
  * UPnP: Fix bug causing failure when the PC has multiple interfaces
3419

    
3420
2011-08-06 kytv
3421
 * Fix #473 (wrapper.logfile set to the wrong path in Windows).
3422

    
3423
2011-07-31 zzz
3424
  * Crypto: Implement and then comment out an alternate
3425
            AES-256/CBC implementation using the JVM crypto libs,
3426
            and tests, it isn't faster
3427
  * Netdb: Add a job to refresh all the old router infos at startup,
3428
           to speed integration
3429

    
3430
2011-07-30 kytv
3431
 * Installer:
3432
   - add libjbigi*core*jnilib, libjbigi-osx-none_64.jnilib, and
3433
     libjbigi-linux-ppc.so
3434
   - Add Linux PPC wrapper
3435
 * Add linux-ppc to NBI.
3436
 * Remove unused lock
3437

    
3438
2011-07-29 zzz
3439
  * Netdb Search:
3440
    - Follow all DSRM's, not just the last one, by moving the code
3441
      from the match job to the selector
3442
    - Update peer profile after SingleSearchJob
3443
    - Cleanups, javadocs, log tweaks, final
3444
  * ProfileOrganizer: Tweak fast tier size
3445

    
3446
2011-07-28 zzz
3447
  * Context: Split up big lock to avoid deadlocks
3448
  * Streaming: Avoid a rare exception on race
3449
  * TunnelPoolManager: Reduce race window for restarting a tunnel pool
3450

    
3451
2011-07-27 kytv
3452
  * Add armel (armv5tejl) wrapper. Compiled and tested in Debian Squeeze.
3453

    
3454
2011-07-26 zzz
3455
  * Installer: The previous wrapper files only work on armv7
3456
  * NativeBigInteger: Move libjbigi-linux-arm.so to libjbigi-linux-armv7.so,
3457
                      do ARM version detection in NBI.
3458
  * NetDB:
3459
    - Explore even more aggressively at startup
3460
    - Increase SingleSearchJob timeout
3461
    - Increase time at startup for processing DSRM
3462
    - Cleanups, final, javadoc, concurrent
3463
  * OutNetMessage: Cleanups
3464
  * Tunnels: Change another log error to a warn
3465
  * Watchdog: Improve the way it calls for a thread dump
3466

    
3467
2011-07-22 kytv
3468
  * Add a 64bit wrapper to OSX. With 0.8.7 came a fat Mac wrapper with i386 and PPC.
3469
    The included wrapper is now quad-fat (i386, ppc, x86_64, and ppc64).
3470

    
3471
2011-07-21 zzz
3472
  * Atalk: Remove this terrible example
3473
  * Console: Use capability method for counting integrated peers
3474
  * i2psnark: Don't let connection problem crash the DirMonitor (ticket #495)
3475
  * Netdb: Speed up collection of all the floodfill peers by using
3476
           PeerManager.getPeersByCapability()
3477
  * PeerManager: Capability cleanups
3478
  * Tunnel TestJob:
3479
    - Don't continue testing after the pool is dead
3480
    - Tweak test intervals
3481
  * TunnelPool: Make more methods package private
3482

    
3483
2011-07-18 zzz
3484
  * FileUtil: Add a rename method and a new copy method
3485
  * I2PTunnel: Rename privkey file when deleting tunnel to prevent inadvertent reuse
3486
  * Netdb: Update reseed lists
3487
  * Streaming: Improve conn limit log message
3488
  * UDP: Lower max port below 31000 since wrapper uses that
3489

    
3490
2011-07-15 zzz
3491
  * Shutdown:
3492
    - Cancel our JVM shutdown hook when shutting down
3493
    - Run a spinner task so shutdown always completes
3494
    - exit() instead of halt() so other JVM shutdown hooks run
3495
    - Prevent duplicate wrapper notifier hooks
3496
    - Notify the wrapper twice, once for stopping and once for stopped
3497

    
3498
2011-07-13 zzz
3499
  * Blocklist:
3500
    - Fix delayed lookup of reason from file
3501
    - Tag strings for translation
3502
    - Sort IPs on configpeer.jsp correctly
3503
  * SummaryHelper: Fix NPE at startup (ticket #493)
3504

    
3505
2011-07-10 zzz
3506
  * DH, YK:
3507
    - Improve YK speed test
3508
    - Shut down thread faster
3509
    - Refiller keeps going until full
3510
    - Cleanups
3511
  * I2PTunnel: Fix a shutdown hang
3512
  * Message Registry: Clear pending messages at restart / shutdown
3513
  * OCMOSJ: Clear caches at restart
3514
  * Router Clock: First cut at recognizing and reacting to large system
3515
    clock shifts by partially restarting the router. Also improve
3516
    restarts initiated from config.jsp
3517
    Tickets #465, #468, #494
3518
  * UPnP:
3519
    - Wait for a while to ensure port removal at shutdown or restart
3520
    - Fix device rediscovery and port opening after restart
3521

    
3522
2011-07-08 zzz
3523
  * Findbugs: Several fixes and cleanups
3524
  * I2NP: Consolidate common code from TunnelBuildMessage and
3525
          TunnelBuildReplyMessage into a common base class
3526
  * NetDB, TestJob: Fix NPEs at startup (ticket #493)
3527
  * Sha256Standalone:
3528
    - Use system SHA-256 MessageDigest instead of Sha256Standalone in PRNG
3529
    - Deprecate DataHelper functions using Sha256Standalone arguments;
3530
      used only by Syndie
3531
    - Note deprecation in javadocs
3532

    
3533
2011-07-07 zzz
3534
  * Blockfile:
3535
    - Log error on out-of-order spans
3536
    - Log error on corrupt level and discard
3537
    - Fix SkipSpan non-flush bug causing null levels
3538
    - Add level fixer that repairs nulls and out-of-order levels
3539
    - Fix bug on backwards span construction, not hit in practice
3540
    - Lots of log level changes
3541

    
3542
2011-07-06 zzz
3543
  * EepGet: Add method to add extra headers to request
3544
  * Floodfills: Increase again
3545
  * HTTP Proxy: Fix error on shutdown
3546
  * NamingService: Use HostsTxtNamingService if default fails to initialize
3547
  * Netdb: Catch exception on dup netdb entries
3548
  * Netdb exploration:
3549
    - Remove floodfills from dont-include list in exploration
3550
      DatabaseLookupMessage, as the dont-include-floodfills flag
3551
      has been supported since release 0.7.9.
3552
      This will make exploration work better, as there is room for
3553
      non-floodfills in the don't-include list now.
3554
    - Reduce min and max exploration intervals
3555
    - Explore aggressively at startup and if known routers is low
3556
    - Explore slowly if known routers is high
3557
  * PeerManager: Load profiles in separate thread to avoid slowing
3558
                 down the context initAll()
3559
  * Tunnels: Use exploratory tunnels to help maintain a minimum number
3560
             of connected peers
3561

    
3562
2011-07-03 zzz
3563
  * AppContext: Add hasWrapper() method
3564
  * Shutdown:
3565
    - Clear more resources in peer manager, netdb, stat manager,
3566
      session key manager, naming service, tunnel dispatcher,
3567
      OCMOSJ (result of testing with jvisualvm)
3568
    - Don't call wrapper on shutdown (starting two threads) if we
3569
      were started with runplain
3570

    
3571
2011-07-01 zzz
3572
  * EepGet:
3573
    - Fix error output bug
3574
    - Output error data for 504 too
3575
  * I2PThread: Remove logging, too many issues with extra contexts
3576
  * Router, console, i2psnark: Change three errors to warns (tickets #479, #482, #487)
3577

    
3578
2011-06-30 zzz
3579
  * BlockfileNamingService:
3580
    - Support readonly blockfiles
3581
    - Open blockfile readonly if not in router context
3582
    - Log warning if blockfile is locked
3583
    - Set as default
3584
  * DataHelper: Throw IOE if uncompressed data too big,
3585
    instead of silently truncating
3586
  * EepGet:
3587
    - Add method to get response code
3588
    - Add method to write error data to the output
3589
    - Increase buffer size to 8 KB
3590
    - Trim content type
3591
  * IRC Server: Send a message back if the tunnel is up but the server is down
3592
  * NewsFetcher: Change default interval to 36 hours
3593
  * Random: Refactor refiller for concurrent
3594
  * Shutdown:
3595
    - Register shutdown hooks for caches, in the first step of cleaning up
3596
      resources on shutdown, which is important in Android as the JVM
3597
      isn't going away.
3598
    - Clear profiles from memory on shutdown
3599
    - Add shutdown hook for AsyncFortunaRandomSource
3600
    - Implement and call shutdown for BandwidthRefiller
3601
    - Implement and register shutdown hook for i2ptunnel
3602
    - Implement and register shutdown hook for Jetty console server
3603
    - Implement and register shutdown hook for Timestamper
3604
    - Fix UPnP-SSDPNotifySocket thread not stopping
3605
    - Fix all but one UDP PacketHandler threads not stopping
3606
    - Fix i2psnark DirMonitor not stopping
3607
    - Fix UPnP-Disposer not stopping quickly
3608
    - Implement and call YKGenerator and DHSessionKeyBuilder shutdown
3609
    - Implement and call shutdown for RouterWatchdog
3610
    - Kill the global app context
3611
    - Recognize multi-router case
3612
    - Fix RandomIterator, YKGenerator, DHBuilder, NTCPConnection
3613
      hanging on to old context
3614
    - Fix DHBuilder thread not stopping
3615
    - Stop I2PThread from starting a new App context at shutdown
3616
    - Stop LogWriter from starting a new App context at shutdown
3617
    - Have router kill any leftover App context at startup
3618
    - Fix I2PThread hanging on to old context
3619
  * Updates:
3620
    - Add the router version to the zip file comment in the updater
3621
    - Add a class to extract the zip file comment
3622
    - Require the sud version header to match the zip file comment
3623
      to prevent spoofing of the version number, since the version
3624
      number in the header is not covered by the sud signature.
3625

    
3626
* 2011-06-27 0.8.7 released
3627

    
3628
2011-06-26 zzz
3629
  * Fixes after review:
3630
    - Fix Polish po file
3631
    - Install as a service by default on Windows again
3632
    - Change CPUID getters to package private
3633
    - Split new jbigi install messages into two lines
3634
    - Test script updates
3635
    - Javadocs
3636

    
3637
2011-06-23 zzz
3638
  * IRC: Allow outbound INVITE
3639

    
3640
2011-06-21 kytv
3641
  * Make the i2prouter script fail more gracefully if there's
3642
    a problem loading the wrapper.
3643

    
3644
2011-06-14 zzz
3645
  * Build: New targets for including jbigi in the updater
3646
  * Console: CSS tweak for flag box
3647
  * i2psnark: Recognize ktorrent
3648
  * Jbigi / NBI / wrapper / installer:
3649
    jbigi and wrapper files for arm.
3650
    Compiled on trimslice with gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu5)
3651
    Log postinstall errors to postinstall.log.
3652
  * NetDB: Increase floodfills and better adjustment based on available memory
3653
  * RateStat: final
3654
  * Router: Delete old libjbigi.so and libjcpuid.so at startup if jbigi.jar is newer.
3655
            This will force a reextraction by CPUID and NBI.
3656

    
3657
2011-06-13 duck
3658
    * Finnish, Italian, Polish and Vietnamese translations, thanks Transifex teams.
3659

    
3660
2011-06-13 zzz
3661
   * To ensure we don't release bad packages, fail the build
3662
     if gettext fails. Change property at top of build.xml if
3663
     you don't have gettext and want the build to continue.
3664

    
3665
2011-06-12 kytv
3666
   * Add jcpuid files (32 & 64bit) for Intel Macs
3667
   * Compile jbigi-osx-none for Intel Macs. libjbigi-osx-none.jnilib
3668
     is now a fat binary combining the already existing PPC
3669
     compile and my new x86 build.
3670

    
3671
2011-06-11 zzz
3672
    * i2psnark Polish translation, thanks polacco
3673

    
3674
2011-06-10 zzz
3675
    * CPUID, NativeBigI: Add support for atom, core2, corei, nano, pentiumm, geode
3676
    * Random: Add config setting prng.bufferSize to override the default 256 KB
3677
    * JBigI:
3678
      - Add new libjbigi-linux-xxx.so files built by sponge, now that we have
3679
        CPUID.java support for them (thanks hottuna).
3680
        See http://zzz.i2p/topics/306 for discussion and test results.
3681

    
3682
        64-bit processors (atom, core2, corei, nano):
3683
        Built with GMP 5.0.2. License is LGPLv3.
3684
        Built by sponge with GCC 4.4.4, downloaded from
3685
        http://sponge.i2p/files/jbigi/gmp-5.0.2/
3686
        For 64-bit processors, both performance testing and
3687
        the GMP changelog http://gmplib.org/gmp5.0.html led us to use 5.0.2
3688
        for both the 32- and 64-bit versions, even though the files are twice as big.
3689
        5.0.x contains specific optimizations for atom and nano.
3690
        All 64-bit libs have _64 appended.
3691

    
3692
        32-bit processors (pentiumm, geode):
3693
        Built with GMP 4.3.2. License is LGPLv3.
3694
        Built by sponge with GCC 4.4.4, downloaded from
3695
        http://sponge.i2p/files/jbigi/gmp-4.3.2/
3696
        The 4.3.2 files are half the size of those built with GMP 5.0.2, and there was
3697
        little or no performance difference between the two versions for 32 bit processors.
3698
    * NBI: Enable 64-bit processor detection
3699
    * Profiles: Skip and delete a corrupt profile read from disk
3700

    
3701
2011-06-10 kytv
3702
   * jcpuid & jbigi added for 64bit Windows (only used with a 64bit jvm).
3703

    
3704
2011-06-09 kytv
3705
   * Added an x64 wrapper for Windows. This is needed because a 32bit wrapper
3706
     cannot start a 64bit JVM.
3707

    
3708
2011-06-08 zzz
3709
    * Build:
3710
      - Add standard manifest to jbigi.jar
3711
      - Don't do 'mtn list changed' if not in a workspace or not needed
3712
    * LogManager: Use DataHelper methods for loading and storing config
3713

    
3714
2011-06-08 kytv
3715
    * Update jbigi/jcpuid Windows dlls. As was done for FreeBSD and Linux, the
3716
      libraries for 32bit CPUs were linked against gmp-4.3.2 and those for the
3717
      64bit CPUs were linked against gmp-5.0.2.
3718

    
3719
2011-06-07 kytv
3720
    * Upgrade the wrapper to 3.5.9. Noticable changes include:
3721
      - FreeBSD amd64 is now a supported arch along with i386. To use the wrapper
3722
        with the most recent version of FreeBSD the port 'misc/compat6x' will need
3723
        to be installed.
3724
      - OSX: Both Intel and PPC Macs are supported. 32-bit support. If you'd like 64-bit
3725
        support, please file a bug in trac with the output of "uname -m".
3726
    * Upgrade jbigi/jcpuid for FreeBSD i386 and add support for amd64. As was done with
3727
      the Linux compiles, 32bit compiles were linked with gmp 4.3.2 and 64 bit builds
3728
      (as well as 32bit builds for 64bit cpus) were linked against gmp 5.0.2.
3729

    
3730
2011-06-06 zzz
3731
    * Drop andorid/ directory; further development will happen in
3732
      an android-only branch.
3733

    
3734
2011-06-05 zzz
3735
    * Console: Tag stat descriptions at declaration rather than in Strings.java
3736
    * Data: Remove duplicate signature verification code
3737
            in RouterInfo and LeaseSet
3738
    * DSAEngine: Add code for alternate implementation using Java libs;
3739
                 disabled by default. Add test code to verify identical results
3740
                 and compare speed.
3741
    * JBigI:
3742
      - Replace old non-PIC 32-bit linux libs (GMP 4.1.3 built in 2004)
3743
        with PIC libs built with GMP 4.3.2. License is LGPLv3.
3744
        Built by sponge with GCC 4.4.4, downloaded from
3745
        http://sponge.i2p/files/jbigi/gmp-4.3.2/
3746
        The 4.3.2 files are half the size of those built with GMP 5.0.2, and there was
3747
        little or no performance difference between the two versions for 32 bit processors.
3748
        See http://zzz.i2p/topics/306 for discussion and test results.
3749
      - Replace old non-PIC 64-bit linux libs (GMP 4.1.4 built in 2005)
3750
        with PIC libs built with GMP 5.0.2. License is LGPLv3.
3751
        Built by sponge with GCC 4.4.4, downloaded from
3752
        http://sponge.i2p/files/jbigi/gmp-5.0.2/
3753
        For 64-bit processors, both performance testing and
3754
        the GMP changelog led us to use 5.0.2 for both the 32- and 64-bit versions,
3755
        even though the files are twice as big.
3756
        See http://zzz.i2p/topics/306 for discussion and test results.
3757
        libjbigi-linux-athlon64.so was a 64 bit file; by the new naming standard
3758
        supported by NativeBigInteger, it is now a 32-bit file and the
3759
        64-bit one is libjbigi-linux-athlon64_64.so.
3760
        All new 64-bit libs will have _64 appended.
3761
      - Remove libjbigi-windows-athlon64.dll which was a duplicate of libjbigi-windows-athlon.dll;
3762
        NBI now tries athlon as a fallback for all 64-bit processors.
3763
      - Update build docs
3764

    
3765
2011-06-04 zzz
3766
    * NBigI: Recognize Android
3767
    * KeyGenerator: Restore old return type to not break ABI (thx kytv)
3768
    * Router:
3769
      - Add a lock for reading/writing the router.info file
3770
      - Check our RouterInfo validity after reading and before saving,
3771
        to catch fatal errors sooner
3772

    
3773
2011-06-03 zzz
3774
    * Android: More build updates, start working on JNI for GMP
3775
    * Build: Fix dependency issue cause by misspelled file name
3776

    
3777
2011-06-02 zzz
3778
    * Android: Build fixes
3779
    * Crypto:
3780
      - HMAC Javadocs and cleanups
3781
      - HMAC Use SimpleByteCache
3782
    * ElGamalAESEngine: Fixups required after SessionKey enforcement
3783
    * Reseed: Give up on a seed after 90% of fetches fail
3784
    * SessionKey: Enforce data size and prevent reuse
3785

    
3786
2011-06-02 sponge
3787
    * Remove txt file in BOB.jar as per zzz's request.
3788

    
3789
2011-06-01 zzz
3790
    * Crypto:
3791
      - Use java.security.MessageDigest instead of bundled GNU SHA-256 code
3792
        if available, which it should always be.
3793
        5 to 20% faster on Oracle JVM; 40 to 60% on Harmony;
3794
        5 to 15% on JamVM; 20x (!) on GIJ.
3795
      - Use java.security.MessageDigest instead of bundled Bitzi SHA-1 code
3796
        if available on non-Oracle JVMs, which it should always be.
3797
        Not faster on Oracle JVM; 30 to 60% faster on Harmony;
3798
        15 to 20% on JamVM; 10-15x (!) on GIJ.
3799

    
3800
2011-06-01 sponge
3801
    * ConfigClients stopClient stubbed out.
3802

    
3803
2011-06-01 sponge
3804
    * Re the below, using better way that kytv suggested.
3805
      There is more than one way to peel a pineapple...
3806

    
3807
2011-06-01 sponge
3808
    * Remove the one little html file that ends up in BOB.jar.
3809
        The file is NOT a javadoc file, it is a package file.
3810
        Still, it is zapped.
3811

    
3812
2011-05-31 zzz
3813
    * HTTP Proxy: Don't send redirect for POST (thx kytv)
3814
    * jbigi: Add support for solaris
3815

    
3816
2011-05-30 zzz
3817
    * I2CP:
3818
      - Append I2CP Version information to the Get/Set Date Messages,
3819
        so that both the router and client are aware of the other side's version,
3820
        and future protocol changes will be easier to implement.
3821
        Previously, router version information was not available to the client,
3822
        so when router and client were in different JVMs,
3823
        old clients would work with new routers
3824
        but new clients would not work with old routers.
3825
        After this change, we can design future changes so that new clients
3826
        will work with old routers.
3827
        This is an enhancement to the old protocol version byte sent by the client,
3828
        which we have never changed and probably never will.
3829
      - Prevent a client from setting the router's clock
3830
      - Javadocs
3831
    * i2psnark: Restrict swarm size for small torrents
3832
    * netDb: Don't refetch expiring router infos if we have enough
3833

    
3834
2011-05-28 zzz
3835
    * i2psnark: Fix bug preventing Robert from connecting to snark (thx sponge)
3836

    
3837
2011-05-27 zzz
3838
    * Console: Fix router.updateThroughProxy being set to false after saving
3839
               change on /configupdate when install dir is read-only.
3840
               (ticket #466)
3841
    * EepGet:
3842
      - Fix redirect loop (thx kytv)
3843
      - Reset redirect counter when retrying
3844
    * JBigI:
3845
      - Refactor to handle 64 bit libs and a list of fallback libs
3846
      - Logging tweaks
3847
      - Only check for one file name in library path
3848
    * CPUID:
3849
      - Recognize amd64 as x86
3850
      - Only check for one file name in library path
3851

    
3852
2011-05-25 zzz
3853
    * CPUID: Load 64-bit libcpuid if available
3854
    * HTTP Proxy: Address helper refactoring, address book add form
3855
    * JBigI:
3856
      - Start updating NativeBigInteger
3857
      - Remove k63 libs that are dup of k62; handle in NBI
3858
    * Naming: B32 fixes
3859
    * NetDB: Increase floodfills again
3860

    
3861
2011-05-23 zzz
3862
    * Console:
3863
      - Disable zh translation in graphs on windows due to font issues
3864
      - Force news refetch after URL change
3865
      - Fix NPE at startup
3866
      - Graph tweaks
3867

    
3868
2011-05-23 sponge
3869
    * mbuild.sh fixups
3870
    * add new jcpuid/mbuild.sh -- pedantic naming
3871
    * jbigi/mbuild-all.sh -- pedantic naming
3872
    * see also http://zzz.i2p/topics/306?page=1#p3341
3873

    
3874
2011-05-22 zzz
3875
    * GeoIP: Read countries.txt in UTF-8
3876
    * Jetty: Fix build error that omitted local jetty patches from org.mortbay.jetty.jar;
3877
             affected 0.8.4 and 0.8.6 installers. Include jar in the updater for the next release.
3878

    
3879
2011-05-21 sponge
3880
    * mbuild.sh document and fixes
3881
    * mbuild-all.sh add cpu types
3882

    
3883
2011-05-20 zzz
3884
    * Certificate: Fix creation bug; improve router cert generation
3885
    * DataHelper:
3886
      - Undeprecate fromProperties() and toProperties()
3887
      - Undeprecate BOOLEAN_FALSE and BOOLEAN_TRUE
3888
      - Fix fromProperties() and toProperties() to correctly throw DataFormatExceptions
3889
      - Add sort option
3890
      - Efficiency improvements in writeProperties(), toProperties(), storeProps(), and toString()
3891
      - Fix encoding issues (ticket #436)
3892
    * i2ptunnel: Fix server-side stripping of X-Accept-encoding
3893
    * Jbigi / JCPUID:
3894
      - Remove nativeDoubleValue(), update jbigi README
3895
      - Unbundle jbigi.jar, create at build time
3896
      - Add support for new Intel family/model names.
3897
      - Add proper support for using Core2 machines as P4.
3898
      - Add support for identifying SSE 3/4.1/4.2/4A support on CPU.
3899
      - Rewrite cpuid.c so it builds with PIC (source only, binary not updated yet)
3900
    * LogManager: Try to prevent out-of-order logging at shutdown
3901
    * Naming Services, Addressbook, and SusiDNS:
3902
      - Add new API for Naming Services to support modifications
3903
      - Redesign HostsTxt NS as an interface to three
3904
        SingleFile NSs, one for each text file
3905
      - Add locking to SingleFile NS
3906
      - Redesign SusiDNS and addressbook to interface to the API
3907
        instead of accessing files directly
3908
      - SusiDNS requests addressbook update via the NS API
3909
      - Redesign addressbook to reduce memory usage when processing subscriptions
3910
      - Redesign SusiDNS to use much less memory by not loading in the whole
3911
        addressbook where possible
3912
      - Add new Blockfile NS for an on-disk database of hosts
3913
        Based on the BlockFile database:
3914
        http://www.metanotion.net/software/sandbox/block.html
3915
        with substantial enhancements to lower memory usage
3916
        and improve exception handling
3917
      - Remove old unused AddressDB NS, FilesystemAddress NS, and PetName NS.
3918
      - Restructure Dummy NS and Meta NS
3919
      - Redesign NS caching to use an LRU map
3920
      - SusiDNS checks for invalid host names
3921
      - SusiDNS IDN conversion and better support for non-ASCII host names
3922
      - Add b32 links in SusiDNS
3923
      - HTML fixes and cleanups in SusiDNS
3924
      - SusiDNS message and tagging cleanups
3925
      - SusiDNS new details page
3926
    * Stats and Graphs:
3927
      - Update to JRobin 1.5.9.1
3928
      - Major rework required for 1.5.9 API
3929
      - Disable graphs in JVMs that crash with 1.5.9 (gij, JamVM, Harmony)
3930
      - Make graph data persistent (3 month RRD on disk),
3931
        with option to disable
3932
      - Improve error handling
3933
      - Disable graph page refresh when appropriate
3934
      - Fix HTML errors
3935
      - Add restart marker on graphs
3936
      - Restore zh text on graphs
3937
      - Improve form save messages
3938
      - Add expires directive to graphs
3939
      - Refactor handling of required stats
3940
      - Clean up / shorten description for required stats
3941
      - Change bw.sendBps and bw.receiveBps from KBps to Bps
3942

    
3943
* 2011-05-16  0.8.6 released
3944

    
3945
2011-05-13 zzz
3946
    * Increase min floodfills; decrease min routerinfo expiration
3947

    
3948
2011-05-11 zzz
3949
    * Use partitions of fast tier for various hops of client tunnels
3950

    
3951
2011-05-06 zzz
3952
    * Tunnels and profiles:
3953
      - Increase max fast and high-cap tier sizes
3954
      - Slow profile eval cycle after sufficient uptime
3955
      - Fix bug which started a new build after a successful build
3956
      - Misc. cleanups
3957

    
3958
2011-04-28 zzz
3959
    * Console: Try to prevent cascaded IllegalStateExceptions in .jsp code;
3960
      add logging for original error
3961
    * peers.jsp: Tag UPnP strings
3962
    * UPnP: Strip trailing nulls from incoming XML to prevent
3963
      "content not allowed in trailing section" exceptions
3964

    
3965
* 2011-04-18  0.8.5 released
3966

    
3967
2011-04-11 zzz
3968
    * Console: Hide iframe on mobile browsers
3969
    * DataHelper: Speed up eq() (Ticket #437)
3970
    * HTTPServer: Strip inbound X-Accept-Encoding header
3971
    * netdb.jsp: HTML fixes
3972
    * Plugins: Log error when console server not found
3973
    * Reseed: Log tweak
3974

    
3975
2011-04-02 m1xxy
3976
    * routerconsole, i2psnark, ...  I2P ahora también en español: ¡Bienvenidos los hispanohablantes!
3977
      - routerconsole, i2ptunnel, i2psnark, SusiDNS, Susimail fully translated into Spanish
3978
        (thx to PunkiBastardo and user)
3979
    * routerconsole, i2psnark, ...
3980
      - French translations completed by magma
3981

    
3982
2011-03-22 zzz
3983
    * Handle GNU JRE returning Long.MAX_VALUE for max memory
3984
    * i2ptunnel: HTML fixes
3985

    
3986
2011-03-20 zzz
3987
    * Console: Remove cache directives
3988
    * i2psnark: Fix peers stuck at uninteresting after metainfo fetch
3989
    * i2ptunnel: Change all clients to 3 hops by default (new installs only)
3990
    * Profiles:
3991
      - Nicer profile dump
3992
      - More efficient profile lookup for display
3993
      - Fix dumpprofile NPE
3994
      - Change file suffix from .dat to .txt.gz
3995
      - Set firstHeardAbout on creation
3996
    * Rate: Fix equals()
3997
    * Recognize links and links2 as text browsers
3998

    
3999
2011-03-12 zzz
4000
    * Blocklist: Add bogons since they won't change any more
4001
    * BuildHandler: Loop double-check
4002
    * Console:
4003
      - Fix HTML errors in form message box,
4004
        logs.jsp, netdb.jsp, profiles.jsp, stats.jsp,
4005
        configpeer.jsp, configtunnels.jsp, configupdate.jsp
4006
      - ngettext cleanups
4007
    * LogWriter: Prevent NPE after permissions fail
4008

    
4009
2011-03-11 duck
4010
    * Susimail: translation support, including dutch translation.
4011

    
4012
2011-03-10 zzz
4013
    * configclients.jsp: Split form up, fix HTML warnings
4014
    * configui.jsp: Fix lang setting broken by previous nonce change
4015
    * Console: Consolidate nonce handling
4016
    * eepget: Don't send X-Accept-Encoding header to proxy (ticket #422)
4017
    * logs.jsp: Fix NPE (ticket #430)
4018
    * netdb.jsp: Fix table alignment
4019
    * Tunnel Preprocessor: Use entropy for padding more efficiently
4020

    
4021
2011-03-08 zzz
4022
    * Clock: Cleanups and javadocs
4023
    * Console:
4024
      - Parameterize download button tags (ticket #425)
4025
      - Clean up summary bar HTML warnings
4026
      - Just display a summary bar link for text browsers
4027
      - Move welcome div from the readme files to index.jsp
4028
      - Require a nonce to change language
4029
    * EepGet: Cleanups and javadocs
4030
    * i2psnark:
4031
      - More efficient metainfo handling, reduce instantiations
4032
      - Improved handling of storage errors
4033
      - Improved handling of duplicate file names
4034
      - More metainfo sanity checks
4035
      - Metadata transfer error handling improvements
4036
      - Code cleanup, remove dead and duplicated code
4037
    * Reseed: Use the reseeder as a clock source
4038

    
4039
2011-03-02 zzz
4040
    * BuildHandler:
4041
      - Limit request queue size
4042
      - Concurrent request queue
4043
      - Remove dead code for queued reply handling
4044
    * OutNetMessage: Remove dead code
4045
    * Tunnel cleanups, final, javadoc
4046

    
4047
* 2011-03-02  0.8.4 released
4048

    
4049
2011-02-27 zzz
4050
    * Console:
4051
      - Fix numerous readme HTML errors
4052
      - Fix flag locations in readmes
4053
      - desktopgui.enable now defaults to false; run systray if false
4054
      - Start icon app before console
4055
      - Restore systray form in configservice.jsp
4056
      - Only save lang when clicking on flags if desktopgui is running
4057
      - Only allow two-letter lang code from cgi parameter
4058
    * Reseed: Disable HTTPS until we have enough working hosts again
4059

    
4060
2011-02-24 zzz
4061
    * i2psnark:
4062
      - Fix delete and remove buttons for Opera and w3m
4063
      - Stop torrent if no valid trackers
4064
      - Fix war build dependencies
4065

    
4066
2011-02-23 zzz
4067
    * BuildHandler:
4068
      - Lower participating throttler max limit
4069
      - Cleanups and loop checks
4070
    * Console: Fix summary bar HTML error
4071

    
4072
2011-02-22 zzz
4073
    * BuildHandler: Prelmiinary participating tunnel throttler
4074
    * I2PTunnel:
4075
      - Add spellcheck=false to textareas
4076
      - Fix HTML error in 503 error page
4077

    
4078
2011-02-19 zzz
4079
    * I2PTunnel: Fix standalone server tunnels
4080
                 http://forum.i2p/viewtopic.php?t=5376
4081
    * Plugins: Fix signature verification if router.config specifies
4082
               trustedUpdateKeys (ticket #416)
4083

    
4084
2011-02-18 Mathiasdm
4085
    * Desktopgui now has an option to be disabled (desktopgui.enabled)
4086

    
4087
2011-02-17 zzz
4088
    * Build:
4089
      - Add includeAntRuntime=false to all javac targets
4090
      - Add build date, mtn rev, and changed file list to all manifests
4091
      - Add unless=uptodate to all jar and war targets
4092
        (bob and dtg still todo)
4093
    * Console: Add Arabic
4094
    * i2ptunnel: outproxy2 -> outproxyng (Ticket #394 take 2)
4095

    
4096
2011-02-15 zzz
4097
    * i2psnark: Details link shuffle, mostly restore 0.8.3 behavior
4098
    * Profiles: Punish rejections more, in an attempt to spread the
4099
                load more through the network
4100
    * Timers: Log cleanup
4101

    
4102
2011-02-14 Mathiasdm
4103
    * Fix headless issue without reboot
4104

    
4105
2011-02-13 zzz
4106
    * Connect Client: Minor NPE fix cleanup
4107
    * JobQueue: Prevent NPE at shutdown (thanks liberty)
4108
    * GeoIP: Prevent startup NPE (ticket #413, thanks RN)
4109
    * NetDB: Prevent ExpireLeaseJob NPE (thanks sponge)
4110

    
4111
2011-02-11 Mathiasdm
4112
    * routerconsole: fixed graphs using jrobin; and headless issue
4113
          in general: no more switches between headless and non-headless.
4114

    
4115
2011-02-11 sponge
4116
    * I2PTunnel: fix NPE in I2PTunnelConnectClient
4117

    
4118
2011-02-10 sponge
4119
    * I2CP: fix NPE in QueuedClientConnectionRunner
4120

    
4121
2011-02-10 zzz
4122
    * I2CP: Correctly close internal connections on the router side
4123
            when closed by the client, was causing massive memory leak
4124
            for internal clients using lots of sessions (thanks sponge)
4125
            (ticket #397)
4126
    * i2psnark:
4127
      - Improved magnet link parsing, use tr parameter if present
4128
    * i2ptunnel: Change shared clients default for new clients to false
4129
    * Streaming: Don't use iter.remove() on a COWAS
4130

    
4131
2011-02-09 sponge
4132
    * BOB: fixup delivery in config, adds config file versioning.
4133
    * I2CP: Fix most of the I2CP leaks. Two leaks remain, but they are small.
4134
            net.i2p.internal.QueuedI2CPMessageReader and
4135
            net.i2p.router.client.I2CPMessageQueueImpl
4136
            are the two remaining leaks.
4137

    
4138
2011-02-07 zzz
4139
    * i2psnark:
4140
      - Check for dup magnet torrent when adding torrent file
4141
      - Add exotrack.i2p (ticket #403)
4142
      - Disable spellcheck in textarea
4143
    * i2ptunnel: Generate error message when i2ptunnel.config save fails
4144
                 (ticket #404)
4145

    
4146
2011-02-06 zzz
4147
    * i2psnark: Fix maggot links, and magnet links with trailing parameters (thx user)
4148

    
4149
2011-02-05 zzz
4150
    * .mtn-ignore: New, to make it harder to check in stuff you shouldn't
4151
    * BOB: Drop checked-in build dir
4152
    * i2psnark:
4153
      - Big refactor to support torrents where only the infohash is known
4154
        (i.e., added by magnet links)
4155
      - Big refactor to use accessors instead of public fields
4156
      - Add support for metadata transfer (BEP 9) via the
4157
        extension protocol (BEP 10)
4158
      - Add support for adding torrents via standard magnet links (BEP 9)
4159
        and "maggot" links (http://sponge.i2p/files/maggotspec.txt)
4160
      - Add support for peer exchange (i2p_pex)
4161
      - Add stubs for future DHT support (BEP 5)
4162
      - Add more information on torrent details page;
4163
        add details page for single-file torrents
4164
      - Make filename filtering consistent (ticket #368)
4165
      - Fix add-torrent locking (ticket #371)
4166
      - Fix opentracker configuration
4167
      - Add several connect-to-self checks
4168
      - Add support for using new I2CP bandwidth limiter
4169
      - Add support for using new in-session I2CP naming lookups
4170
      - Don't expire outbound Piece messages, since we now defer loading the
4171
        data from disk
4172
    * i2ptunnel:
4173
      - Change connect proxy default to outproxy2.h2ik.i2p (ticket #394)
4174
      - IRCClient: Use tunnel log instance
4175
      - Server: Full queue log tweak
4176

    
4177
2011-02-03 zzz
4178
    * Build:
4179
      - Remove dup flag files (ticket #316)
4180
      - Remove BOB dependency on i2ptunnel
4181
    * Console: Add DTG to classpath for old installs
4182
    * I2PTunnel: Fix NPE
4183
    * RandomSource: Fix seeding from /dev/urandom
4184
    * Reseed: Limit time spent downloading from a single source
4185

    
4186
2011-02-02 sponge
4187
    * BOB: Revise lookup code, bump BOB version
4188

    
4189
2011-01-31 zzz
4190
    * Console: Put all socket handlers in same thread pool,
4191
               set min/max threads and idle timeout
4192
    * Context: Fix properties init
4193
    * DataStructures:
4194
      - Cleanups
4195
    * DecayingBloomFilter, DecayingHashSet: Cleanups and speedups
4196
    * Findbugs: Lots of cleanups
4197
    * I2CP:
4198
      - Add experimental bandwidth limiter
4199
      - Add I2PSession API method to update tunnel and bandwidth
4200
        configuration on an existing session
4201
      - Filter more system properties before passing them to the router
4202
      - Start work on passing per-message flags to the router via I2CP
4203
    * I2PAppContext: New getProperties() method
4204
    * i2ptunnel:
4205
      - Use context properties as defaults
4206
    * NetDB, DatabaseStoreMessage:
4207
      - Convert everything from DataStructure to the
4208
        new DatabaseEntry superclass
4209
      - Optimizations made possible by DatabaseEntry
4210
      - Don't rescan netDb directory unless changed
4211
    * OCMOSJ:
4212
      - Don't send expired messages
4213
      - Clean up stat init
4214
    * PeerManager: Make calculators static, take out of router context
4215
    * Router:
4216
      - Add new RandomIterator, use in UDP, peer selector,
4217
        profile organizer
4218
      - Add a stat to monitor peer selector run time
4219
    * RouterContext: Clean up clock overrides
4220
    * Streaming:
4221
      - Add new real sockets for easier porting of apps.
4222
        See http://zzz.i2p/topics/792 for info. Untested.
4223
      - Case cleanups
4224
      - Javadoc
4225

    
4226
* 2011-01-24  0.8.3 released
4227

    
4228
2011-01-16 zzz
4229
    * Console: Allow editing of console args
4230
    * UDP: Prevent rare startup NPE
4231
    * UPnP:
4232
      - Change all log errors to warns (tickets #76, #95, #120)
4233
      - Double socket soTimeout to 2 seconds
4234

    
4235
2011-01-15 zzz
4236
    * Console: Add some HTTP headers in the view servlets
4237

    
4238
2011-01-12 zzz
4239
    * Log: Fix rare initialization problem
4240
    * PrivateKey: Fix hashCode()
4241

    
4242
2011-01-09 zzz
4243
    * DataHelper: Speed up and annotate sortStructures()
4244
    * Data Structures: More caching improvements, don't cache where we shouldn't
4245
    * NetDB: Don't rescan netDb directory unless changed,
4246
             to reduce Hash cache thrash (backport from test4)
4247
    * RouterInfo:
4248
      - Don't cache byteified data by default, to save ~1.5 MB
4249
      - Don't create empty peers Set, to save ~100KB
4250

    
4251
2011-01-07 zzz
4252
    * Data Structures: More caching
4253
    * i2psnark: Improve request tracking to reduce memory usage
4254

    
4255
2011-01-05 zzz
4256
    * build.xml: Fix findbugs target
4257
    * Fix some miscellaneous findbugs bugs
4258
    * i2psnark: Refactor request tracking to prevent possible deadlocks
4259
    * OCMOSJ: Fix cache bug
4260
    * TrustedUpdate: Fix key store bug
4261

    
4262
2011-01-02 zzz
4263
    * Console: Disable spellcheck in textareas
4264
    * Data Structures: More tweaks
4265
    * I2CP: Fix BWLimits Message reply in standard session
4266

    
4267
2010-12-31 zzz
4268
    * Console:
4269
      - Make themes and history.txt return 403 on error,
4270
        not 500, to avoid the new error page
4271
      - Add logging, enable with routerconsole.log=filename
4272
      - Link to full history.txt on help page
4273
    * Data Structures: Caching cleanups
4274
    * Datagram Dissector: Fix RuntimeException caused by reuse,
4275
                          preventing iMule from connecting on UDP
4276
                          (thanks devzero)
4277
    * i2psnark:
4278
      - Send cache directive for in-war icons
4279
    * OCMOSJ: Refactor cache keys for efficiency
4280

    
4281
2010-12-30 zzz
4282
    * Data Structures:
4283
      - New SDSCache for SimpleDataStructures
4284
      - New SimpleByteCache for byte[]
4285
      - Cache Hash, PublicKey, and SigningPublicKey
4286
      - Remove global lock in ByteCache
4287
    * I2CP: Missing piece of parallel naming lookup
4288
    * i2psnark: Fix buttons on Firefox 4.0b
4289
    * i2ptunnel:
4290
      - Use dropdown box to select interface for clients
4291
      - Warn on index page if required fields not set
4292

    
4293
2010-12-29 zzz
4294
    * Console: Add 500 error page
4295
    * DSAEngine: Restore variants of methods using a Hash argument,
4296
                 required by Syndie, removed in 0.8.1
4297
    * Reseed:
4298
      - Add new configreseed page
4299
      - Add StartCom CA cert required for www.i2pbote.net
4300

    
4301
2010-12-27 zzz
4302
    * Crypto: Cleanups and fixups
4303
    * Console:
4304
      - Add SSL support - To enable, change clients.config. Examples:
4305
          ## Change to SSL only: just add a '-s'
4306
          clientApp.0.args=-s 7657 ::1,127.0.0.1 ./webapps/
4307
          ## Use both non-SSL and SSL: add '-s port interface'
4308
          clientApp.0.args=7657 ::1,127.0.0.1 -s 7667 ::1,127.0.0.1 ./webapps/
4309
          ## ...and change URLLauncher args further down for the browser to open https:// at startup if you like.
4310
      - Add a simple history.txt servlet
4311
      - Add form for I2CP options on configclients.jsp
4312
    * Context:
4313
      - Add hook for internal I2CP
4314
      - Change temp file random to Base64 http://zzz.i2p/topics/804
4315
    * Data structure caching:
4316
      - Use a single static null certificate in place of
4317
        tens of thousands of them
4318
    * graphs.jsp: Form tweaks, fix setting delay to 'Never'
4319
    * I2CP:
4320
      - Change from the internal pseudo-socket that was
4321
        implemented in 0.7.9 to an internal Queue that directly
4322
        passes I2CPMessage objects. For in-JVM clients,
4323
        this eliminates two writer threads per client and
4324
        avoids the serialization/deserialization of I2CP messages.
4325
      - New option i2cp.disableInterface to turn off external I2CP port
4326
        (7654) and allow internal clients only
4327
      - I2CP over SSL, enable with i2cp.SSL=true
4328
      - Bypass authorization for internal accesses
4329
      - Move BWLimits and DestLookup message support from
4330
        I2PSimpleSession to I2PSessionImpl
4331
      - Include the Hash in the DestReplyMessage on a failed lookup
4332
        so the client may correlate replies
4333
      - Add support for parallel lookups and BWLimits requests
4334
      - Add support for specifying the timeout for DestLookups
4335
        (can only be smaller than the router timeout for now)
4336
      - Extend dest lookup router timeout from 10s to 15s
4337
    * i2psnark:
4338
      - Backport TrackerClient NPE fix
4339
      - Fix last piece length calculation for torrents > 2GB (ticket #361)
4340
    * i2ptunnel:
4341
      - Get Log from the logManager instead of instantiating,
4342
        so we may adjust the levels on the fly
4343
      - Better logging of server errors
4344
      - Return 503 to client before closing i2p socket if server is not there
4345
      - Extend header timeouts for HTTP and IRC server tunnels
4346
      - Limit server blockingHandle threads
4347
      - Run standard server blockingHandles inline
4348
      - For clients, use a common thread pool that expires idle threads
4349
        rather than keeping 5 accept() threads for each client.
4350
      - Use pool for HTTP decompression also.
4351
      - Disable router host/port options when in router context
4352
      - Add blacklist, connection limit, and jump list options to edit form
4353
    * Pack200: Find and use either Oracle or Apache library at runtime;
4354
               neither required at compile time.
4355
    * Router: Convert 'mark router liveliness' thread to SimpleScheduler
4356
    * Stats: Change stat.full default to false
4357
    * Threads:
4358
      - Reduce thread pool sizes based on memory and/or bandwidth limits
4359
      - Tweak some thread names for clarity
4360
    * Update:
4361
      - Change the UpdateHandler to try all sources in a loop, rather than one,
4362
        so the user need not retry manually
4363
      - For each source, fetch the first 56 bytes and check the version
4364
        before downloading the whole thing, so we need not wait for every
4365
        host to have the latest before updating the news.
4366

    
4367
2010-12-26 sponge
4368
    * URI resource fixes from pre-review time from upstream prior merge
4369
    * Evolve URI fixs another step.
4370
    * Document how the URI path fix works.
4371
    * Fix 302 redirects so they URL encode properly.
4372
    * bump to -1
4373

    
4374
* 2010-12-22  0.8.2 released
4375

    
4376
2010-12-13 dr|z3d
4377
    * Console themes: Midnight & Classic renovations.
4378

    
4379
2010-12-12 zzz
4380
    * i2psnark:
4381
      - Fix end-game deadlock
4382
      - Fix last-modified check for multifile torrents, causing
4383
        apparent loss of data after abnormal exit
4384
      - Tweaks
4385

    
4386
2010-12-11 zzz
4387
    * Build: Fix 'ant distclean poupdate' again
4388
    * I2CP: Change a log error to a warning (ticket #353)
4389
    * i2psnark:
4390
      - Restore text (ticket #273)
4391
      - Fix several HTML errors (ticket #273)
4392
      - Fix HTML error causing info links to be unclickable in dillo (tiicket #273)
4393
      - Fix alt text duplicated or looking bad in text browsers (ticket #273)
4394
      - Fix Opera button errors (ticket #332)
4395
      - Fix POST resubmission errors (ticket #334)
4396
      - Catch FetchAndAdd copy error (ticket #352)
4397
      - Set permissions on downloaded torrent files
4398
      - Hide some columns when not running
4399
      - Lots of spacing cleanups
4400
      - Rename images so users don't end up with unused files
4401
      - Remove ~15 unused images
4402
      - Clean up theme selection speed-coding exercise
4403
      - Indent fixes
4404
    * Log: Don't double-timestamp CRITS in wrapper.log
4405
    * News: XML fixes (ticket #350)
4406
    * Plugins: Better handling of signing keys (Ticket #351)
4407
    * TunnelPoolManager: Fix rare startup NPE (http://forum.i2p/viewtopic.php?t=5192)
4408

    
4409
2010-12-10 Mathiasdm
4410
    * I2PTunnel: Fixed up security fix.
4411

    
4412
2010-12-07 Mathiasdm
4413
    * I2PTunnel: Security fix: change server reply
4414
      to return 'I2PServer' instead of the actual servername.
4415

    
4416
2010-12-06 dr|z3d
4417
    * I2PSnark:
4418
      - Resolve table header wrapping issue.
4419
      - Vanilla/Ubergine theme enhancements.
4420

    
4421
2010-12-05 zzz
4422
    * DataHelper: Have readLong() and readString() throw an
4423
      EOFException instead of a DataFormatException on EOF,
4424
      which should lower the log severity in I2CP and I2NP
4425
      when a client or peer disconnects.
4426

    
4427
2010-12-02 zzz
4428
    * Console: Format console refresh time
4429
    * I2NP: Allow message to be written more than once,
4430
            instead of throwing an IllegalStateException
4431
    * i2psnark: Fix extension messages
4432
    * Streaming: Restore I2PSocketManagerFull as public
4433
                 (broke jwebcahe ticket #345)
4434
    * Transport: Hamachi address block 5/8 assigned by IANA
4435

    
4436
2010-12-01 dr|z3d
4437
    * Console:
4438
      - Extensive reworking of ieshim.css for classic theme/Internet Explorer.
4439
      - Additional console_big.css files for other themes to enhance doublebyte glyph support.
4440
    * I2PSnark:
4441
      - Make show/hide peers and stop/start all torrent buttons more obvious.
4442
      - Rework Vanilla icons to bring in line with color scheme.
4443

    
4444
2010-11-30 zzz
4445
    * I2CP: Try to hide Pipe closed messages (several tickets)
4446
    * i2psnark: Move PeerCheckerTask from Timer to SimpleTimer2
4447
                to save some threads
4448
    * Logging:
4449
      - Limit buffer size; block and wakeup writer when full
4450
      - Limit errors written to system log
4451
      - Add method to force a log below the current level
4452
      - Try to fix log flushing error
4453
    * Streaming: Change some logged errors to warnings
4454
                 (tickets 76, 341 and others)
4455

    
4456
2010-11-29 dr|z3d
4457
    * Updated console theme "light".
4458

    
4459
2010-11-29 zzz
4460
    * i2psnark:
4461
      - Don't timeout queued piece messages
4462
    * Logging:
4463
      - Use System locale and time zone for default date/time format,
4464
        so it matches the wrapper log time (we can't set the wrapper log time zone).
4465
        (existing installs must remove logger.dateFormat line
4466
         in logger.config to get system default format)
4467
      - Force RuntimeExceptions to CRIT level
4468
      - Don't have log() count buffer size
4469
    * Streaming: Make all classes outside the API package private
4470
    * UDP:
4471
      - Fix bug causing PacketPusher to loop quickly instead of sleeping
4472
      - Fix udp.sendCycleTime stat
4473
      - Fix speed values on peers.jsp
4474
      - Try to fix rare NPE (ticket 298)
4475

    
4476
2010-11-28 zzz
4477
    * Build: Move all dependencies to top-level build.xml,
4478
             so each sub-build.xml is only executed once
4479
    * i2psnark:
4480
      - Fix NPE and other partials bugs
4481
      - More extension message stubbing
4482
      - Log tweaks
4483
    * I2PTunnel: Deprecate destFromName()
4484

    
4485
2010-11-27 zzz
4486
    * Build:
4487
      - Add man pages to package
4488
      - New updaterWithJavadoc target
4489
    * configstats.jsp: Fix NPE
4490
    * Console:
4491
      - Linkify "plugin installed and started" message
4492
      - Add link to javadocs if installed
4493
    * i2psnark:
4494
      - Drop queued outbound requests when choked
4495
      - Redo some data structures and locking to hopefully prevent deadlock
4496
      - Memory reduction part 3: Return partial pieces to PeerCoordinator when choked
4497
    * Streaming: Fix race NPE at stream close
4498

    
4499
2010-11-27 dr|z3d
4500
   * I2PSnark: New alternative theme: "Vanilla".
4501
   * Big thanks to sponge for implementing the theme changer!
4502

    
4503
2010-11-27 sponge
4504
   * Plugin: ticket 336 fix NPE
4505

    
4506
2010-11-27 sponge
4507
   * Slackware: bump i2p-base version, so that it can be upgraded with the new
4508
	base code fixes.
4509

    
4510
2010-11-26 sponge
4511
   * i2psnark: Don't save theme parameter if it has not changed.
4512

    
4513
2010-11-26 sponge
4514
   * i2psnark: Add theme change and theme selection storage abilities.
4515

    
4516
2010-11-26 zzz
4517
    * Console: Split initialNews.xml into a file for each language
4518
               don't copy to config dir at install.
4519
    * i2psnark: Clean up and enhance the PeerCoordinator's partial piece handling,
4520
                in preparation for more improvements
4521
    * LogManager: When not in router context, delay creating log file until required
4522
    * NetDb: Lower RouterInfo expiration time again
4523
    * Router: Prevent NCDFE after unzipping update file
4524
    * Transports: Round time to prevent clock bias, also adjust for RTT in UDP
4525

    
4526
2010-11-26 dr|z3d
4527
    * Readme: Overhaul (English) layout and text.
4528

    
4529
2010-11-25 dr|z3d
4530
    * Console themes: Classic and Dark theme refresh.
4531
    * Fix langbox overflow issue in all themes.
4532

    
4533
2010-11-24 zzz
4534
    * configui: Add .pt
4535
    * configtunnels: Log cleanup
4536
    * graphs: Synch to conserve memory; cleanup
4537
    * i2psnark:
4538
      - Prevent dup requests during end game
4539
        (ticket 331 - thanks sponge and Oct!)
4540
      - POST parameter tweaks
4541
      - Message cleanup
4542
    * logs: Add trac login hint
4543
    * Router:
4544
      - Save some info to config file when installing or updating
4545
      - Remove global lock on accessing config
4546
      - Add global lock on reading/writing config file
4547
    * SimpleDataStructure: Fix problem in fromBase64() that
4548
      manifested itself as a configtunnels.jsp bug
4549

    
4550
2010-11-24 sponge
4551
    * Slackware, fix rc.i2p, bad logic.
4552

    
4553
2010-11-24 sponge
4554
    * Plugin: ticket 104 Fix webapp isRunning to check ALL webapps.
4555
      The only defecency is that if one is running, that it considers the
4556
      entire pliugin to be running. I'm not sure if that is a good thing
4557
      or a bad thing, but the other code checks threads that way.
4558

    
4559
2010-11-22 zzz
4560
    * Addressbook: Fix rename error on Windows (tkt 323 - thanks RN!)
4561
    * build.xml: Cleanup, fix distclean error in older ants.
4562
    * Console:
4563
      - Convert GraphHelper to a FormHandler
4564
      - Require POST for all forms
4565
      - Change the way we store the Writer to prevent problems
4566
      - Fix bonus setting on configpeer.jsp
4567
      - More ".jsp" removal
4568
    * i2psnark:
4569
      - Defer piece loading until required
4570
      - Stub out Extension message support
4571
      - Convert GET to POST, require POST
4572
    * NTCP: Log tweak
4573
    * SSLEepGet, Reseeder:
4574
      - Implement additional CA loading
4575
      - Provide facility to reuse SSL state for speed
4576
      - Provide facility to store previously untrusted certificates
4577
      - Add www.cacert.org cert to the installer and updater so
4578
        SSL on a.netdb.i2p2.de and c.netdb.i2p2.de will work
4579
      - Add SSL reseed hosts, prefer them by default
4580
      - Reseed message cleanup
4581

    
4582
2010-11-19 zzz
4583
    * Addressbook
4584
      - Store last-fetched time so we don't always fetch subscriptions after restart
4585
      - Randomize first fetch time
4586
      - Make most classes package private
4587
    * Console: Rewrite URLs so we don't need .jsp
4588
    * i2psnark: Recognize postman b32, recognize ogv and oga.
4589
    * i2ptunnel:
4590
      - More work on error propagation and improving log messages
4591
      - Increase nonce queue size again
4592
    * News:
4593
      - Store news last-fetched time so we don't always fetch news after restart
4594
      - Don't include news in the updater
4595
    * peers.jsp fixups
4596
    * PrivateKeyFile: Speedups and better messages
4597
    * SecureFile: New class, catch places that were missed,
4598
                  add i2p.insecureFiles option to disable (default false)
4599

    
4600
2010-11-17 zzz
4601
    * Addressbook: Try to save files safely
4602
    * Console: Display durations with new tagged formatDuration2()
4603
    * DataStructures:
4604
      - Shim in 3 new abstract classes
4605
        SimpleDataStructure, KeysAndCert, and DatabaseEntry
4606
    * I2CP:
4607
      - Send DisconnectMessage at router shutdown
4608
      - Add username/password authorization
4609
    * I2PTunnel:
4610
      - Improve messages when starting and stopping tunnels
4611
      - Index page outproxy display cleanup
4612
    * I2PTunnel HTTP and Connect clients:
4613
      - Shim in a new abstract superclass I2PTunnelHTTPClientBase for common code
4614
      - Add local proxy username/password authorization
4615
      - Add outproxy username/password authorization
4616
      - Filter hop-by-hop Proxy headers appropriately
4617
    * I2PTunnel SOCKS and SOCKS IRC clients:
4618
      - Add local proxy username/password authorization
4619
      - Add SOCKS 5 outproxy support, with username/password authorization
4620
    * logs.jsp: Format multiline messages better
4621
    * Stats: Improve Frequency, enable coalescing; cleanup and javadocs
4622
    * stats.jsp: Cleanup, more tagging, hide obscure stuff unless ?f=1
4623
    * Streaming: Fix bug causing read() to incorrectly return EOF
4624

    
4625
* 2010-11-15  0.8.1 released
4626

    
4627
2010-11-08 zzz
4628
    * I2CP: Fix NPE caused by null session options (seen in i2pbote)
4629

    
4630
2010-11-06 HungryHobo
4631
    * New Ant target: debianrepo
4632
    * Rename debian target to debian-binary
4633
    * New debian target generates binary and source packages
4634
    * Debian tweaks
4635

    
4636
2010-11-03 zzz
4637
    * Merge and snark fixups
4638

    
4639
2010-11-01 zzz
4640
    * ClientConnectionRunner: Add synch to fix race causing AIOOBE
4641
                              (http://forum.i2p/viewtopic.php?t=5061)
4642
    * configlogging.jsp: Parse log limit with current locale
4643
                (ticket #118)
4644
    * i2psnark:
4645
      - Limit number of parallel requests of a single piece when in the end game
4646
      - Shorten and weight the speed tracker so the display is more
4647
        reflective of current speed
4648
    * logs.jsp: Add message if wrapper log not found
4649
                (ticket #103)
4650

    
4651
2010-10-30 zzz
4652
    * i2psnark:
4653
      - Priority mapping bugfix
4654
      - Close files as we go when creating/checking
4655
        so we don't run out of file descriptors
4656
      - Update request queues after priority change
4657
      - Only add wanted pieces to wanted list at startup
4658
      - Make sure lastRequest is null when it should be
4659
      - Delay during StopAll so we don't close the tunnel before the
4660
        stopped announces go out and reopen it
4661
      - Logging tweaks
4662

    
4663
2010-10-27 zzz
4664
    * i2psnark:
4665
      - Don't stay interested if we run out of pieces
4666
        to request (thanks sponge)
4667
      - Enhance debug mode to show requests
4668
      - Priority mapping bugfix
4669
    * Transport: Avoid rare NPE at startup
4670

    
4671
2010-10-24 zzz
4672
    * FileUtil: Make it easier to compile without Pack200, or with
4673
                Apache Harmony's Pack200, add unzip to main()
4674
    * i2psnark: Catch a race after disconnect()
4675
    * NTCP: Catch a race after stop()
4676
    * Router: Set permissions on wrapper.log when not called by RouterLaunch
4677
    * Systray: New doc and main()
4678

    
4679
2010-10-22 sponge
4680
    * Sanity and some fixs for slackware package
4681

    
4682
2010-10-22 sponge
4683
    * Fix rc.i2p for slackware package
4684

    
4685
2010-10-19 zzz
4686
    * Escape & in logs and i2psnark (much more to do)
4687
    * JobImpl: Deprecate two debugging methods
4688
    * replaceAll() -> replace() when we don't need regex
4689

    
4690
2010-10-15 zzz
4691
    * i2psnark: Add file priority feature
4692
    * I2PSocketEepGet: Set connect delay to save a RTT, will
4693
      speed announces in i2psnark
4694

    
4695
2010-10-12 zzz
4696
    *** 1.6 or higher JDK now required to build
4697
    * configlogging.jsp:
4698
      - Add easy way to add an override
4699
      - Make file size specifier more flexible
4700
    * Console:
4701
      - Sort RouterAddress options on netdb.jsp and peers.jsp
4702
      - Remove unused web-*.xml file from war
4703
    * Crypto:
4704
      - Convert all ArrayList caching to LBQs in YKGenerator,
4705
        HMACGenerator, and AESKeyCache.
4706
      - Change DSAEngine params from Hash to new SHA1Hash, since
4707
        these were really 20 byte hashes, not 32 byte Hashes.
4708
      - Add stats to track YKGenerator caching success
4709
      - Fix YKGenerator precalculation to be much more useful by
4710
        increasing the cache size and dramatically shortening the delay
4711
      - Option cleanups
4712
      - YKGenerator cleanups
4713
      - Mark HMAC256Generator unused
4714
    * EepGet: Reset length variable on redirect
4715
    * Files: Change permissions to 600/700 for all written files/directories.
4716
      Now requires Java 1.6 to build, but only 1.5+ to run.
4717
      (requires 1.6 to set permissiomns)
4718
    * GeoIP: Fix locking bug causing lookups to stop
4719
    * Hash: Throw IAE if data length is not 32 bytes,
4720
      now that DSAEngine abuse is gone
4721
    * HTTPResponseOutputStream:
4722
      - More caching
4723
      - Stats cleanup
4724
      - Max header length check
4725
      - Catch OOM
4726
      - Initializer cleanup
4727
      - Javadoc
4728
    * I2CP:
4729
      - Add new option i2cp.messageReliability=none, which prevents the
4730
        router from sending MessageStatusMessages back in reply to an
4731
        outbound SendMessageMessage. Since the streaming lib always ignored
4732
        the MSMs anyway, make it the default for streaming.
4733
        This will reduce the I2CP traffic significantly.
4734
        MSM handling now avoided, but it is still fairly broken, see
4735
        comments in I2PSessionImpl2.
4736
      - Cleanups to replace method calls with fields
4737
      - More cleanups, javadoc, rate reduction
4738
    * i2psnark:
4739
      - Compact response format
4740
      - Add link to finished torrent in message box
4741
      - Don't let one bad torrent prevent others from
4742
        starting or stopping
4743
      - Sort peers by completion %
4744
      - Add some missing mime types to web.xml
4745
      - shouldLog() cleanup
4746
    * i2ptunnel:
4747
      - Now that streaming flush() is fixed, use it in IRCClient, and
4748
        for initial data in I2PTunnel runner, to avoid the 250 ms
4749
        passive flush delay
4750
      - Add hostname DSA signature field, to be used for addkey forms.
4751
        Experimental, may be commented out later.
4752
      - More header blocking (thanks telecomix!)
4753
      - Remove unused web-*.xml file from war
4754
    * Installer: Add startup hint for non-x86
4755
    * Javadoc updates all over the place
4756
    * LogConsoleBuffer: Java 5
4757
    * Naming:
4758
      - Increase cache size and expiration time
4759
      - Add clearCache() method
4760
      - Don't use EepGet or Exec for b32
4761
      - Javadoc updates
4762
    * NetDB:
4763
      - Expire unreachable routers quickly, even if they don't have introducers,
4764
        so we don't have old data on routers that ran out of introducers.
4765
      - Fix rare NPEs at shutdown
4766
    * NTCP:
4767
      - Cleanups
4768
    * Streaming:
4769
      - Make flush() block less, by waiting only for "accept" into the
4770
        streaming queue rather than "completion" (i.e. ACK from the far end).
4771
        This prevents complete stalls when flushing, and should help performance
4772
        of apps that use flush(), like i2psnark (and SAM?).
4773
        close() still does a flush that waits for completion, as i2ptunnel
4774
        doesn't like a fast return from close().
4775
      - cleanups
4776
    * SusiDNS:
4777
      - Remove unused web-*.xml file from war
4778
    * TransportManager: Convert _transports from a List to a CHM
4779
      to prevent a rare concurrent exception
4780
    * Tunnels:
4781
      - Don't use peers < 0.7.9 for tunnels due to the old
4782
        message corruption bugs
4783
      - Javadoc
4784
      - Cleanups
4785
    * UDP:
4786
      - Beginnings of destroy message support
4787
      - Try to avoid running out of introducers by relaxing selection criteria
4788
        and increasing minimum number of potential introducers
4789
      - Avoid rare AIOOBE
4790
      - PacketBuilder refactor
4791
      - Make most classes package private
4792
      - Comments
4793
      - Logging cleanup
4794
      - Comment out a main()
4795

    
4796
2010-10-10 sponge
4797
    * Fulfill Request for name resolving in BOB
4798

    
4799
2010-09-15 dr|z3d
4800
    * I2PSnark: Overhaul UI, implement new theme.
4801

    
4802
* 2010-07-12  0.8 released
4803

    
4804
2010-07-08 zzz
4805
    * I2PTunnel: More error propagation fixes
4806

    
4807
2010-07-07 duck
4808
    * RouterConsole: Add Help & FAQ link, minor label improvements.
4809

    
4810
2010-07-05 zzz
4811
    * i2psnark: Fix transition to end game
4812
    * I2PTunnelIRCClient: Filter PART messages like we do for QUIT
4813

    
4814
2010-07-04 duck
4815
    * RouterConsole: Dutch translation (thanks to monkeybrains)
4816

    
4817
2010-07-03 zzz
4818
    * Build: Fix poupdate dependencies
4819
    * I2PTunnel: More error propagation fixes
4820
    * I2PTunnelHTTPClient: Don't use BufferedReader
4821

    
4822
2010-07-01 zzz
4823
    * EventDispatcher: Minor cleanups and comments
4824
    * I2PTunnel: Don't start a tunnel if no valid destinations;
4825
      cleanups, logging, and error propagation fixes
4826
    * Transport: Fix NTCP address generation when host is specified but port is auto
4827

    
4828
2010-06-29 sponge
4829
    * 25%-50% cpu savings in BOB. The remainder of the fix is in streaming
4830
      lib, which aparently keeps running and does not sleep according to
4831
      profiling.
4832

    
4833
2010-06-29 zzz
4834
    * CapacityCalculator: Cleanup
4835
    * I2PTunnel: Add default HTTPS outproxy
4836
    * Jetty: Disable TRACE and OPTIONS in console and eepsite
4837
    * RouterInfo: Add main() to dump RI files
4838
    * Scale prng.buffers based on max memory, reduce default from 16 to 9
4839
    * SOCKS: Better HTTP error message
4840

    
4841
2010-06-26 zzz
4842
    * I2PTunnel:
4843
     - Move connection profile and delay connect to advanced config section
4844
     - Add persistent client key support to SOCKS IRC
4845
     - Fix display of interactive setting
4846
    * jbigi, jcpuid: Suppress log messages when not in router context
4847
    * jetty.xml: Add info on how to configure for following symlinks
4848
    * logs.jsp: Add more JVM version info so we can distinguish OpenJDK from Sun
4849

    
4850
2010-06-16 zzz
4851
    * Console: Sort countries with selected locale
4852
    * FileUtil: Try to handle lack of unpack200 support more gracefully
4853
    * Update: Select old update URL if no unpack200 available
4854

    
4855
2010-06-13 zzz
4856
    * Console: Add some divs for languages to news and readmes
4857
    * HTTP Proxy: Pass different User Agent to outproxy
4858
    * i2psnark:
4859
      - Move config to separate page
4860
      - Icon tweaks
4861
    * Translation: zh fix
4862

    
4863
2010-06-12 welterde
4864
    * fixed possible race-condition and improved code style in ObjectCounter utility class
4865

    
4866
* 2010-06-07  0.7.14 released
4867

    
4868
2010-06-07 zzz
4869
    * Misc tweaks after code review
4870

    
4871
2010-06-05 zzz
4872
    * Netdb:
4873
      - Use new receivedAsReply flag in LeaseSet to mark
4874
        those received as response to a query
4875
      - Mark which methods in FloodfillPeerSelector may return
4876
        our own hash
4877
      - Redefine selectNearest() so it may return our own hash,
4878
        so it can be used for closeness measurement
4879
      - Redefine findNearestRouters() to return Hashes
4880
        instead of RouterInfos
4881
      - Fix LeaseSet response decisions for floodfills, based
4882
        on partial keyspace and closeness measurements
4883
      - List only count of published leasesets in netdb
4884

    
4885
2010-06-03 zzz
4886
    * NewsFetcher: Delay a minimum amount at startup
4887
    * Update: Fix multiple updates after manually
4888
      starting update - caused by refreshing summary bar
4889
      (thx 'backup'!)
4890

    
4891
2010-06-02 zzz
4892
    * graphs.jsp: Tag some more
4893
    * Translation: Set xgettext add-comments option
4894
    * UDP: Fix a bug from a blank i2np.udp.host config
4895
      causing frequent RouterInfo updates and incorrect
4896
      addition of introducers, caused by config.jsp handling
4897
    * Update: Change default update URLs to .su2 for pack200
4898

    
4899
2010-06-01 zzz
4900
    * i2psnark:
4901
      - More listing fixes
4902
      - Revert choker change
4903
      - Start end game a little sooner
4904
    * Installer: Disable pack200 in updater again, doesn't work
4905
      on Java 1.5
4906
    * Remove jetty from updater - it's been in for a few
4907
      releases, and i2psnark now has its own listHTML method
4908

    
4909
2010-05-27 zzz
4910
    * Translate: Add GNU ngettext (plurals) support
4911

    
4912
2010-05-26 zzz
4913
    * i2psnark: Listing fixes and cleanups;
4914
      icons on front page; tweak bw choker again
4915

    
4916
2010-05-24 zzz
4917
    * i2psnark: Listing icons and cleanups
4918

    
4919
2010-05-23 welterde
4920
    * core:
4921
      - fixed major security hole in DatagramDissector
4922
    * I2PTunnelServer: Implemented WEBIRC support in IRC server tunnel
4923

    
4924
2010-05-23 zzz
4925
    * i2psnark:
4926
      - Choke slower when at bandwidth limit
4927
      - Fix completion % for small files
4928
      - Use Random from context
4929
    * NewsFetcher:
4930
      - Add backup URL
4931
      - Change to 0 retries (was 2)
4932

    
4933
2010-05-21 zzz
4934
    * i2psnark:
4935
      - Spiff up dir listings
4936
      - Urlify some messages
4937
      - Only go into end game at the end
4938

    
4939
2010-05-19 zzz
4940
    * Data: Remove lots of unnecessary initializers
4941
    * susidns: More validatation when adding entry
4942

    
4943
2010-05-15 zzz
4944
    * Console:
4945
      - Tag text in graphs
4946
      - Move SummaryRenderer to its own file
4947
    * Eepsite: Set no-cache in redirecting page
4948
    * Hash: Move caching XOR methods only used by KBucket
4949
      into netdb
4950
    * i2psnark: CSS tweaks
4951
    * Log: Translate priority
4952

    
4953
2010-05-13 zzz
4954
    * netdb.jsp debug tweaks
4955
    * Plugins: Try to prevent ZipErrors after upgrade
4956

    
4957
2010-05-10 zzz
4958
    * Console:
4959
      - Summary bar tweaks
4960
      - Add monthly bw estimate
4961
    * DataHelper: Deprecate inefficient eq() methods
4962
    * i2psnark:
4963
      - Add tunnel config dropdowns
4964
      - Comment out old proxy stuff
4965
    * NetDB:
4966
      - Handle old and duplicate stores more efficiently
4967
      - Have DataStore put() return success
4968
      - Move getDistance() to its own class
4969
    * Router: Add router.forceBandwidthClass advanced config for testing
4970
    * Streaming: Add support for connection throttling
4971
    * TunnelPoolManager: Concurrent
4972
    * UDP: To help limit connections, don't offer to introduce
4973
      when floodfill
4974

    
4975
2010-05-10 sponge
4976
     * PluginStarter: If there is some delay, there may be a really good reason for it.
4977
       Loading a class would be one of them!
4978
       So we do a quick check first, If it bombs out, we delay and try again.
4979
       If it bombs after that, then we throw the ClassNotFoundException.
4980

    
4981
2010-05-05 zzz
4982
    * build.xml: Create packed sud in release
4983
    * Console:
4984
      - Print stack trace if exception on startup
4985
      - IllegalStateException rather than NPE if no context
4986
    * EepGet: Limit max times to fail completely even if numRetries is higher
4987
    * i2psnark: Skip 'the' when sorting snarks
4988
    * I2PTunnelHTTPClient: Reject 192.168.*
4989
    * Plugins:
4990
      - Set classpath for specific client only, not for the whole JVM
4991
      - Use ConfigDir() not AppDir()
4992
    * Replace size() <= 0 with isEmpty() everywhere, ditto > 0 -> !isEmpty()
4993
    * RouterInfo: Clean up use of sortStructures()
4994

    
4995
2010-05-02 zzz
4996
    * ByteCache:
4997
      - Add a per-cache stat
4998
      - Limit each cache based on max memory
4999
      - Disable in UDP MessageReceiver
5000
      - Add clearAll() method to be called when under
5001
        severe memory pressure; call from Router
5002
    * Plugins: Fix version checker bug
5003

    
5004
2010-04-27 zzz
5005
    * i2psnark: Serve downloaded files from the servlet rather
5006
      than with a file: link
5007
    * Jetty: Backport directory listing bugfix from jetty 6
5008
    * peers.jsp: Cleanup and tag
5009

    
5010
* 2010-04-27  0.7.13 released
5011

    
5012
2010-04-23 zzz
5013
    * Plugins: Cleanups
5014

    
5015
2010-04-21 zzz
5016
    * EepGet: Don't convert a MalformedURLException into
5017
      an IOE so we recognize it when it's thrown
5018
    * ReusableGZIPStreams:
5019
      - Concurrent
5020
      - Workaround for Apache Harmony 5.0M13 Deflater bug
5021
    * TrustedUpdate: Increase buf size for extraction
5022

    
5023
2010-04-18 zzz
5024
    * configclients.jsp: Start button logic for clients was inverted
5025
    * Console: IRC links in readmes and initialNews
5026
    * I2PTunnelServer: Debug log incoming conns
5027
    * Transport: Reduce floodfill max NTCP conns to 425 (was 500)
5028

    
5029
2010-04-16 sponge
5030
    * BOB early session destroy to speed up tunnel tare-down.
5031

    
5032
2010-04-15 zzz
5033
    * DataHelper: Limit max length in readline()
5034
    * Floodfills: Increase max to 100 (was 60) and min to 60 (was 45)
5035
    * i2ptunnel: Log tweaks
5036
    * I2PTunnelHTTPServer: Limit max header lines
5037

    
5038
2010-04-15 sponge
5039
    * I2PTunnelHTTPClient: Test for "http://:/" and output error page.
5040
      This avoids an ArrayIndexOutOfBoundsException, which can eventually
5041
      cause the eepproxy to stop functioning.
5042

    
5043
2010-04-12 zzz
5044
    * configstats.jsp: Fix full stats checkbox default
5045
    * i2psnark:
5046
      - Concurrent, limit, display, log tweaks
5047
    * i2ptunnel: Implement access lists for TCP servers.
5048
      Enter b32 or b64 hash or dest into list box, and
5049
      check enable for whitelist. Uncheck enable and enter
5050
      i2cp.enableBlackList=true in advanced i2cp options for
5051
      blacklist. Todo: make black/whitelists radio buttons.
5052
    * LogManager: Concurrent
5053

    
5054
2010-04-10 zzz
5055
    * i2psnark:
5056
      - Disconnect seeds that connect to a seed
5057
      - Lower per-torrent conn limits for large pieces
5058
    * Startup:
5059
      - Don't die horribly if there is a router.info file
5060
        but no router.keys file
5061
        http://forum.i2p/viewtopic.php?t=4424
5062
      - Log tweaks
5063
    * Streaming:
5064
      - Fix the window size increment logic so it
5065
        does it much more often
5066

    
5067
2010-04-08 zzz
5068
    * Key Manager: Hopefully avoid some races at startup
5069
      http://forum.i2p/viewtopic.php?t=4424
5070
    * OCMOSJ:
5071
      - Increase min timeout
5072
      - Logging tweaks
5073
    * Streaming:
5074
      - Detect and drop dup SYNs rather than create
5075
        a duplicate connection - will hopefully fix
5076
        "Received a syn with the wrong IDs"
5077
      - Send reset for a SYN ACK with the wrong IDs
5078
      - Don't send a reset to a null dest
5079
      - Logging tweaks
5080
      - Cleanups
5081

    
5082
2010-04-05 zzz
5083
    * Console:
5084
      - Add tooltip support for plugin links
5085
      - Make target=_blank for plugin links
5086
      - More HTML transitional fixes
5087
      - Standardize on 'save' to the right of 'cancel'
5088

    
5089
2010-04-02 zzz
5090
    * FloodfillPeerSelector: Adjust rankings again
5091

    
5092
2010-03-31 zzz
5093
    * FloodfillPeerSelector: Adjust rankings to try to
5094
      improve LeaseSet lookups
5095
    * HostsTxtNamingService: Don't load the whole hosts.txt
5096
      into memory for every lookup
5097

    
5098
2010-03-29 zzz
5099
    * build.xml: Prep for a windows-only pkg
5100
    * configclients.jsp:
5101
      - Always show start button for webapps and plugins
5102
    * configclients.jsp, configupdate.jsp:
5103
      - Fix submission when entering CR in a text box
5104
    * EepGet: Don't retry after a MalformedURLException
5105
    * HTTPResponseOutputStream: More static
5106
    * Plugins:
5107
      - Stop all plugins at shutdown
5108
      - Log tweaks
5109
    * WebApps:
5110
      - Remove the WAC after stopping it
5111
      - Stop a WAC before starting it to prevent dups
5112
      - Implement destroy() in addressbook to prevent dups
5113
      - Implement destroy() in i2psnark to prevent dups
5114

    
5115
2010-03-25 zzz
5116
    * configclients.jsp: Fix dup anchor
5117
    * Console: Sort plugin links in summary bar
5118
    * i2psnark:
5119
      - Send numwant=0 if we don't need peers
5120
      - Report returned complete and incomplete counts
5121
        if higher than peer count
5122
      - Allow missing peer list
5123
      - Log tweaks
5124
    * netdb.jsp: Tag transport properties
5125
    * Plugins: Remove final check and install console
5126
      messages after a while
5127
    * PrivateKeyFile: Add b32 output
5128
    * Reseed: Add another host
5129

    
5130
2010-03-18 zzz
5131
    * Blocklist, CommSystem, FIFOBandwidth, TransportManager,
5132
      OutNetMessage, InNetMessagePool:
5133
      - Java 5 cleanup
5134
    * ByteCache:
5135
      - Replace some locks with concurrent
5136
    * Clients:
5137
      - Negative delay means run immediately and inline
5138
      - Add methods to test class and run inline,
5139
        to propagate errors to the console
5140
      - Use new methods for plugins
5141
      - Add javadoc for clients.config format
5142
    * config.jsp: Set burst to +10% for 20s by default,
5143
      to fix bug where the burst stays high when limits
5144
      are reduced.
5145
    * FIFOBandwidthRefiller:
5146
      - Replace global counters with atomics
5147
      - Use lockless shortcut methods to grant
5148
        requests if we can satisfy immediately
5149
    * i2psnark: Tweak upload bw tracking
5150
    * Installer: Enable pack200 (-3.3MB)
5151
    * Job Queue:
5152
      - Replace some locks with concurrent
5153
      - Change job ID to a long so it won't wrap
5154
      - Remove some unused stats
5155
      - Java 5 and debug cleanup
5156
    * KeyManager: Concurrent
5157
    * logs.jsp: Add link to trac
5158
    * netdb.jsp: Display transport cost if not default
5159
    * Peer Manager:
5160
      - Replace some locks with concurrent
5161
      - Switch back to fast version of getPeersByCapability()
5162
      - Java 5 cleanup
5163
    * Streaming: Concurrent
5164
    * Throttle:
5165
      - Remove some unused stats
5166
    * Tunnel Builds: Enable VTBM
5167
    * Tunnel Dispatcher: Discard at IBGW based on router clock,
5168
      not system clock.
5169
    * TunnelGatewayPumper:
5170
      - Refactor for concurrent
5171
    * UDP:
5172
      - Big refactor of several classes for concurrent,
5173
        elimination of several locks
5174
      - Reduce max number of resent acks in a packet to
5175
        lower overhead
5176
      - Take incoming messages from the head of the queue,
5177
        not sure why taking them from the tail "reduces latency"
5178
      - Java 5 cleanup
5179

    
5180
2010-03-17 zzz
5181
    * I2PTunnel: Disable nonce checking when console password set
5182
    * Reseed: Add another host
5183

    
5184
* 2010-03-15  0.7.12 released
5185

    
5186
2010-03-13 zzz
5187
    * Partial fix for i2ptunnel nonce troubles
5188

    
5189
2010-03-08 zzz
5190
    * Floodfills: Increase max to 60 (was 28) and min to 45 (was 20)
5191
    * i2psnark: Better track outgoing bandwidth by incrementing
5192
      counter before the blocking write
5193
    * Random: Remove and deprecate some old classses
5194
    * Reseeder: Reduce max response size to 1MB (was 8MB)
5195

    
5196
2010-03-05 zzz
5197
    * Console:
5198
      - Tag reseed messages
5199
      - Translate country names on flag popups
5200
    * I2PSOCKSIRCTunnel:
5201
      - New, for filtering IRC client traffic when using SOCKS
5202
    * I2PTunnelIRCClient:
5203
      - Make filter classes static and public for use by SOCKS
5204
      - Eliminate redundant case conversion
5205
      - Pass ISON message through (jIRCii uses it for pings)
5206
      - Switch back to StringBuffer since it's used by 2 threads
5207
      - Set daemon on filter threads
5208
    * SOCKS5Server:
5209
      - Fix handling of multiple authentication methods
5210

    
5211
2010-03-02 zzz
5212
    * Console:
5213
      - Add link to jobs.jsp on configservice.jsp
5214
      - Add plugin disableStop support
5215
    * Context: Add boolean getProperty methods
5216
    * HTTP Proxy:
5217
      - Fix address helper conflicts caused by last checkin
5218
      - Use B32 instead of random hostname for conflict link
5219
    * LoadClientAppsJob:
5220
      - Fix unquoted arg after quoted arg
5221
      - Logging cleanup
5222

    
5223
2010-02-27 zzz
5224
    * eepsite: Add some help to index.html
5225
    * HTTP Proxy:
5226
      - Put B32 instead of B64 in Host: header, saves 450 bytes
5227
      - Eliminate some redundant lookups
5228
      - Fix http://i2p/b64/ and /eepproxy/site/ requests
5229
      - Disallow a port specified for an i2p address
5230
      - Cleanup and comments
5231
      - For more info see http://zzz.i2p/topics/566
5232
    * i2psnark:
5233
      - Fix NPE after create file failure
5234
      - Sanitize more characters in file names
5235
    * netdb: Fix NPE after OOM http://trac.i2p2.i2p/ticket/38
5236
    * NTCP Transport:
5237
      - Replace lists with concurrent queues in EventPumper
5238
        and NTCPConnection to remove global locks
5239
      - Java 5 cleanup
5240
    * Plugins: Support console themes
5241
    * UDP Transport:
5242
      - Replace the unused-since-2006 TimedWeightedPriorityMessageQueue
5243
        with DummyThrottle
5244
      - Don't instantiate and start TWPMQ Cleaner and OutboundRefiller
5245
        threads, part of priority queues unused since 0.6.1.11
5246
      - Don't instantiate and start UDPFlooder, it is for testing only
5247
      - Prevent NPE http://zzz.i2p/topics/571
5248

    
5249
2010-02-23 zzz
5250
    * Unzip: Any files in the zip with a .jar.pack or .war.pack extension
5251
      will be transparently unpacked with unpack200. Savings is about 60%.
5252
      Someday we will do this for suds, but we can do it for xpi2ps now.
5253
    * build: Add updater200 target
5254

    
5255
2010-02-22 zzz
5256
    * configclients.jsp:
5257
      - Add js delete confirm
5258
      - Remove delete button for webapps
5259
    * i2psnark:
5260
      - Ignore a non-i2p tracker in a torrent rather than deleting
5261
        the torrent, thus "converting" a torrent to in-netowrk use
5262
        via the open trackers
5263
      - Add js delete confirm
5264

    
5265
2010-02-19 zzz
5266
    * i2psnark: Make file box bigger
5267
    * Plugins:
5268
      - Fix display of download status
5269
      - Unhide
5270

    
5271
2010-02-18 zzz
5272
    * Clock: Slew tweak
5273
    * i2psnark: Improve error message when finding HTML
5274
    * HTTP Proxy: Fix blank page instead of error page for eepsite unreachable
5275
    * Plugins:
5276
      - Fix plugin start button
5277
      - Change signer prop to match docs
5278
      - Tweaks
5279
    * Transport:
5280
      - Fix recognition of IP change when not firewalled
5281
      - Require consecutive identical results from two peers before changing IP
5282
    * TrustedUpdate: CLI exits 1 on failure for ease of use in scripts
5283

    
5284
2010-02-15 zzz
5285
    Propagate from 3 dev branches.
5286

    
5287
    i2p.i2p.zzz.test:
5288
    * Clock:
5289
      - getFramedAveragePeerClockSkew() now returns a long (ms);
5290
        was a Long (s)
5291
      - Implement NTP-style clock slewing so the clock is adjusted
5292
        gradually
5293
      - Implement clock strata so we prefer better clocks
5294
      - Implement a timestamper in the transport so we will periodically
5295
        update the clock even if NTP is not working.
5296
        This allows the router to converge the clock instead of simply
5297
        hoping the first connected peer is correct.
5298
      - Slow down NTP attempts after several consecutive failures
5299
    * Console: refactor and tag update messages
5300
    * Streaming: MessageOutputStream logging tweaks
5301
    * Transport:
5302
      - Prepare for using address costs
5303
      - Adjust bids based on address cost
5304
      - Increase cost if near transport capacity, disabled until 0.7.12
5305
      - Clear the geoip negative cache periodically
5306

    
5307
    i2p.i2p.zzz.plugin:
5308
    * Jrobin: Move from routerconsole.jar to its own jrobin.jar,
5309
      adjust classpath in routerconsole.jar manifest
5310
    * Plugins:
5311
      New plugin support, hidden for now, enable with router.enablePlugins=true
5312
      Configure and add plugins on configclients.jsp
5313
      Supports the following:
5314
      - Console webapps
5315
      - New translation bundles
5316
      - Link on console
5317
      - Anything that can be started in clients.config
5318
      - Additions to classpath for clients and webapps
5319
    * TrustedUpdate:
5320
      - Add method to check if we know about a key
5321
      - Add method to add a key
5322
      - Add method to extract without verifying
5323
      - Add method to get key signer name
5324
    * Webapps: Allow additions to a webapp classpath.
5325
      - Pull jstl.jar and standard.jar out of susidns.war
5326
      - Remove 100KB of duplicate classes from i2psnark.war
5327

    
5328
    i2p.i2p.zzz.VTBM:
5329
    * I2NP: Add UnknownI2NPMessage so we can route unknown message types
5330
    * Tunnel Builds:
5331
      - Add getRecordCount() to TunnelBuildMessage and TunnelBuildReplyMessage so they can be extended.
5332
      - New I2NP Messages VariableTunnelBuildMessage and VariableTunnelBuildReplyMessage,
5333
        which contain the number of request slots in them.
5334
      - Convert all static assumptions of 8 slots to getRecordCount()
5335
      - Use the new VTBM if all hops in the tunnel and the OBEP or IBGW of the reply tunnel
5336
        support it, and the tunnel is 4 hops or shorter.
5337
      - Reply to a VTBM with a VTBRM of the same size
5338
      - Make BuildReplyHandler static
5339
      - Convert the currentlyBuilding List to a ConcurrentHashMap to speed reply lookups
5340
        and eliminate a global lock; don't put fallback tunnels in there
5341
      - Add new tunnel.corruptBuildReply stat
5342
      - Various cleanups and javadoc
5343
      - Fix first hop expiration for Build Messages, was way too long
5344
      - Randomize Build Message expiration to make it harder to guess hop position
5345
      - Save expired tunnel build configs for a while, so that we will still use the tunnel
5346
        and update peer stats if the reply comes in late
5347
      - Don't update our own profile for Tunnel Build Replies
5348
      - VTBM generation only through routers >= 0.7.12
5349
      - VTBM generation disabled for now
5350

    
5351
* 2010-02-15  0.7.11 released
5352

    
5353
2010-02-13 sponge
5354
    * Fix addWebApplications API goofup
5355
    * Bump BOB version, which I forgot to do.
5356

    
5357
2010-02-13 zzz
5358
    * Floodfills: Increase max to 28 (was 15) and min to 20 (was 10)
5359

    
5360
2010-02-12 sponge
5361
    * org.mortbay.jetty.Server modified method to accept attributes for
5362
      batch webapp launches via addWebApplications.
5363

    
5364
2010-02-10 zzz
5365
    * I2PTunnelRunner: Flush initial data, for some reason it wasn't
5366
      getting flushed ever in some cases.
5367

    
5368
2010-02-10 zzz
5369
    64-bit windows installer fixes. Still no 64-bit wrapper.
5370
    Thanks eche|on for testing!
5371
    * Izpack:
5372
      Add 64-bit windows dll so installer doesn't die trying to add shortcuts
5373
    * Launch4j:
5374
      Upgrade to launch4j 3.0.1 2008-07-20.
5375
      The license is BSD for launch4j and MIT for the wrapper code in head/
5376
      Changelog is in installer/lib/launch4j/web/changelog.html
5377
      Hopefully this will fix installs for 64-bit JRE on 64-bit windows.
5378
      The previous version was 2.0-RC3 2005-08-13.
5379
      The previous license was GPLv2 for launch4j and LGPLv2.1 for the wrapper code in head/
5380
      The bin/ld.exe and bin/windres.exe files were contributed by
5381
      i2p users in 2005 so the i2p installer could be built on windows.
5382
      They have not been updated for 3.0.1, so pkg builds on windows
5383
      will presumably still get 2.0-RC3.
5384

    
5385
2010-02-06 zzz
5386
    * Console: Fix saving update keys, was broken in 0.7.10
5387
    * i2psnark: Add transmission ID
5388
    * news.xml: Wrap i2p version tags in XML comment
5389
    * Transport: Try yet again to prevent two NTCP pumpers
5390

    
5391
2010-02-04 zzz
5392
    * i2psnark: Fix sending stopped events to the tracker
5393

    
5394
2010-02-03 zzz
5395
    * Console:
5396
      - Hide update buttons and update config if install dir is readonly or if configured
5397
      - Show yellow star if no outbound tunnels
5398
    * i2psnark: Don't prefer to opportunistically unchoke unchoking peers when not interested
5399
    * NetDb: Lower min RouterInfo expiration to 2.5h (was 3h)
5400

    
5401
2010-01-31 zzz
5402
    * i2psnark standalone: Fix CSS
5403
    * Jetty: Update to 5.1.15 to get ResourceHandler fix
5404

    
5405
2010-01-30 sponge
5406
    * Fix NPE in TCPtoI2P when a lookup fails, report the error to the stream.
5407
    * Fix setkeys bug in DoCMDS, forgot to create the object before calling
5408
      it's methods, which threw an NPE.
5409

    
5410
2010-01-29 zzz
5411
    * build.xml: Add a debian-source target
5412
    * Data structures:
5413
      - Speed up some hashcode() and equals()
5414
      - Cleanup and javadoc
5415
    * Jetty: Turn on checkAliases
5416
    * NetDb:
5417
      - Add basic DOS prevention for lookups
5418
      - Move flood throttle check so we don't throttle ourselves
5419
      - Don't store over client tunnels to pre-0.7.10 floodfills
5420
      - Don't update unused lease fail stats
5421
    * Startup: Disable browser launch for debian daemon
5422

    
5423
2010-01-28 welterde
5424
    * enhance support for multiple RouterAddresses' of the same style in RouterInfo
5425

    
5426
2010-01-26 zzz
5427
    * build.xml: Speed up distclean additions
5428
    * Clock: Don't refuse to update because of peer skew the first time
5429
    * Debian: Fixup, update, enhance scripts
5430
    * I2NP: Various cleanup and bulletproofing
5431
    * Log: Try to avoid complaints at shutdown
5432
    * Profiles: Fix lack of profiles at router startup, especially for new routers
5433
    * stats.jsp: Shrink the dropdown box
5434

    
5435
2010-01-24 zzz
5436
    * ProfileOrganizerRenderer: Cleanups
5437
    * Reseed: Update welt's reseed hostname
5438
    * Transport clock skews:
5439
      - Store and report UDP clock skews even for large values, so
5440
        a badly skewed local clock will be reported to the console
5441
      - Don't shitlist for NTCP clock skew if we don't know what time it is
5442
      - If NTP hasn't worked yet, have NTCP or SSU update the clock one time
5443
      - Include failed clock skew in NTCP skew vector if there aren't many connections
5444
      - Don't include NTCP clock skews for non-established connections
5445
      - Fix framed clock skew frame size
5446
      - Report framed clock skew even if for only one peer, if NTP hasn't worked yet
5447
      - Don't log RRD errors after clock adjustment
5448
      - Reduce min skew for console warning to 30s (was 45s)
5449
      - More Java 5 cleanups
5450

    
5451
2010-01-24 zzz
5452
    * Clock:
5453
      - Don't let a client update the router clock
5454
      - Restore and enhance vanished clock error log message
5455
    * Graphs: Enforce max size to lessen chance of OOM from malicious link
5456
    * NetDb:
5457
      - Move stat initialization, reduce number of rates
5458
      - Add basic DOS prevention by not flooding if stores are too-frequent
5459
    * ProfileOrganizer:
5460
      - Limit High Cap to 75 max
5461
      - Reduce max lock wait time, change no lock error to warning
5462
      - More cleanup
5463
    * Startup:
5464
      - Enable multiple parallel job runners much sooner to speed startup
5465
      - Rearrange the startup order to get the long jobs started sooner
5466
      - Don't allow the netDb readin job to clog the job queue
5467

    
5468
2010-01-21 dr|z3d
5469
    * New eepsite structure and enhanced pages. Now with graphics and stuff!
5470

    
5471
* 2010-01-22  0.7.10 released
5472

    
5473
2010-01-21 zzz
5474
    * eepget.bat: Add to pkg
5475
    * Floodfills: Increase max to 15 (was 9) and min to 10 (was 4)
5476
    * I2PTunnelServer: Fix bug preventing connection retries
5477
      at startup from working
5478
    * Logs: Don't be quite so noisy in the wrapper log if we
5479
      can't open the router log
5480
    * Properties: Don't play games with \r and \n on load/save,
5481
      it was causing fatal issues on DOS if your username started
5482
      with r or n
5483

    
5484
2010-01-19 sponge
5485
    * Firewall fix for NTCP, where firewalls will forget a NAT relationship
5486
      on a stream... AKA setting keepalive. This should fix the stuck NTCP
5487
      issue that has been bothing zzz for years.
5488
    * Set keepalive on BOB connections too, since this will assist closing
5489
      the connections in the event of a crash on a client.
5490

    
5491
2010-01-18 zzz
5492
    * configclients.jsp: Fix add-new-client feature
5493
    * Console: Add a tunnel share ratio estimate
5494
    * graphs.jsp:
5495
      - Remove jrobin sig
5496
      - Set lower limit to 0
5497
      - Save settings when changed
5498
    * Reseed: Support SSL and proxies
5499
    * Translate: Catch empty string
5500

    
5501
2010-01-17 zzz
5502
    * Clock: Change a CRIT to an ERROR, lower threshold for changing from 10s to 5s
5503
    * configclients.jsp: Support add, delete, edit
5504
    * I2CP: Clean up resources on 5-minute leaseset timeout at startup
5505
    * LeaseSet generation: Increment the lease date slightly, to force
5506
      the floodfill to flood it when it changes
5507
    * NetDb Lookups: Don't try to send a RI lookup to itself through a zero-hop tunnel
5508
    * NetDb Stores and Verifies:
5509
      - Do LS stores and verifies through client tunnels
5510
        to prevent correlation by the OBEP or FF
5511
      - Encrypt LS stores to prevent snooping by the OBEP,
5512
        if the floodfill supports it
5513
      - Encrypt LS and RI verifies to prevent snooping by the OBEP
5514
      - Extend verify delay and timeout
5515
      - Reenable RI verifies
5516
      - Disallow simultaneous verifies for the same key
5517
      - Don't resend on verify timeout; try a different peer instead
5518
      - Don't resend to same peer on verify fail, try a different one
5519
      - Adjust ff selection criteria
5520
      - Flood even if received garlic-encrypted
5521
    * Profiles: Limit fast peers to 30 max
5522
    * SSLEepGet: New
5523
    * Tunnels: Prevent more than one zero-hop tunnel in a lease
5524
    * VersionComparator: Move from TrustedUpdate.java to util
5525

    
5526
2010-01-14 sponge
5527
    * Fully clean up I2PTunnel. No more lint issues, should compile 100%
5528
      clean.
5529
    * Dropped unused class BufferLogger from I2PTunnel as it is not used
5530
      anylonger.
5531

    
5532
2010-01-14 sponge
5533
    * Clean up reverse connection ability, remove some annoyingly redundent
5534
      code. Place all settings in the console. It works!
5535

    
5536
2010-01-10 sponge
5537
    * Insert reverse connection ability into the http server code so that
5538
      seedless can start to get worked on. It's disabled by default.
5539

    
5540
* 2010-01-12  0.7.9 released
5541

    
5542
2010-01-12 zzz
5543
    * I2CP: Clean up resources on 5-minute leaseset timeout at startup
5544
    * Increase max floodfills to 9 (was 6)
5545
    * Temporarily disable routerInfo floodfill verifies
5546
    * Fix .fr eepsite index css
5547
    * Javdoc tweaks
5548

    
5549

    
5550
2010-01-09 zzz
5551
    * Include new eepsite indexes in pkg
5552

    
5553
2010-01-06 zzz
5554
    * Summary bar tweaks
5555

    
5556
2010-01-02 sponge
5557
    * Fix one last stupid mistake in build.xml, my fault.
5558

    
5559
2010-01-02 sponge
5560
    * Fix NB 6.8 goofyness... 'till ant 1.7.1 or > is needed, stay with NB
5561
	6.5, as the newer ones place a check for 1.7.1. We require 1.7.0
5562

    
5563
2010-01-02 sponge
5564
    * Fix build.xml target for justBOB
5565
    * Fix Main build.xml so that it actually deletes backup files and add a
5566
      few extra types that should be commonly needed... atleast by me.
5567

    
5568
2010-01-02 zzz
5569
    * Console: Save refresh setting
5570
    * i2psnark:
5571
      - Don't URL-encode chars we don't have to
5572
      - CSS tweaks
5573
    * Transport: Implement 'laptop mode' to change ident and port
5574
      when the IP changes
5575

    
5576