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
2010-01-01 sponge
5577
    * Happy New year everyone!
5578
    * Added a target to generate a stand-alone BOB jar file.
5579

    
5580
2009-12-31 zzz
5581
    * BuildResponseRecord: Make static
5582
    * i2np: Remove unused logs
5583
    * i2psnark: Fix message box, was a little too small
5584
    * InternalSocket: Fallback to external socket on fail
5585
    * NetDb: Fix exploration by adding a null hash to mean
5586
      "don't give me floodfills"
5587
    * PeerSelector: Downgrade floodfills with high fail rate
5588

    
5589
2009-12-26 zzz
5590
    * Console:
5591
      - Tag the rest of logs.jsp
5592
    * Tunnels, Transports:
5593
      - Lots of code to detect improper reuse of cached objects
5594
        after release
5595
      - Prevent release of TunnelDataMessage cached ByteArray,
5596
        as it may be reused if retried in another transport;
5597
        a nasty bug causing corrupt messages
5598
      - Prevent race with released resources in UDP OutboundMessageState;
5599
        a nasty bug causing corrupt messages
5600
      - More cleanups and comments
5601
    * UDP: Bid lower than NTCP when we need introducers and don't
5602
      have enough
5603

    
5604
2009-12-22 zzz
5605
    * Tunnels:
5606
      - Do RED dropping before the IBGW fragmenter, not after
5607
      - Change batch time to 250ms for IBGWs (was 100ms)
5608
      - Change batch time to 150ms for exploratory OBGWs (was 100ms)
5609
      - Start a new message in the fragmenter if almost full
5610
      - Fix a major, longstanding synchronization bug in the FragmentHandler
5611
        which led to corrupt messages at the endpoints
5612
      - More cleanups and comments
5613

    
5614
2009-12-20 zzz
5615
    * Console:
5616
      - Fix status to show a disconnected network error rather than
5617
        clock skew or UDP error when disconnected
5618
      - Use peer clock skew rather than clock offset for determining
5619
        whether to display clock skew error
5620
      - tunnels.jsp: Clarify tunnel table headings
5621
    * Contexts: Add isRouterContext() method
5622
    * Profile, DBHistory:
5623
      - Tweak the rate periods
5624
      - Add a global fail rate stat
5625
      - Increase the HashMap sizes
5626
    * Router: Move some more threads to I2PAppThread so an OOM won't
5627
      crash the router
5628
    * Timestamper: Reduce delays (cuts 10s out of router startup)
5629
    * Transport: Rework peer clock skew method to always return a value
5630
    * Tunnels:
5631
      - Reduce the drop probability for TunnelBuildMessages at the OBEP
5632
      - Schedule outbound startup instead of hanging the thread for 3s
5633
      - Cleanup preprocessor code, add comments
5634

    
5635
2009-12-18 zzz
5636
    * Console: Fix spacing in update section
5637
    * I2CP:
5638
      - Move client-side writes to their own thread
5639
      - Reenable InternalSockets
5640
    * i2ptunnel: Fix bundle script
5641
    * InNetMessagePool: Cleanup
5642
    * Log:
5643
      - Close old file on rotate
5644
      - Buffer writes
5645
      - Write in UTF-8
5646
    * SusiDNS:
5647
      - Remove untranslatable button images (-15KB)
5648
      - Tag buttons and messages
5649
      - Add some button CSS
5650
    * Tunnel building:
5651
      - Increase timeout to 13s (was 10s)
5652
      - Fix tunnel.buildReplyTooSlow stat
5653
      - Tweak logging
5654
      - Prioritize expl. builds over client builds
5655
      - Code cleanups
5656
    * TunnelSettings: Drop, unused
5657

    
5658
2009-12-15 zzz
5659
    * HTTP Proxy: Make jump server list configurable
5660
    * I2CP: Remove unused logs
5661
    * i2psnark: Fix stop/start, cleanups
5662
    * i2ptunnel: Fix bundle location
5663
    * SusiDNS:
5664
      - Rewrite and correct a lot of the text, tag jsps
5665
      - UTF-8 fixes
5666
    * TunnelManager: Fix a locking bug
5667
    * Update: Improve error message
5668

    
5669
2009-12-13 zzz
5670
    * Find ResourceBundles in wars
5671
    * Fix restart from config.jsp if no wrapper
5672
    * i2psnark: Elaborate popups
5673

    
5674
2009-12-12 welterde
5675
    * Sort peers on tunnels.jsp by country
5676
    * fix NPE in ^^
5677

    
5678
2009-12-12 zzz
5679
    * Disable InternalSockets until it's fixed
5680

    
5681
2009-12-11 zzz
5682
    * Addressbook, susidns: Rework addressbook into a
5683
      HttpServlet, so susidns can kick it when the subscription
5684
      list changes
5685
    * Build: Truncate the history in the updater (-80KB)
5686
    * Console:
5687
      - Add a nicer handler for missing webapps
5688
      - Restore the restart message
5689
      - Change "depth" to "length"
5690
    * Data: Cache the Hash hashcode
5691
    * EepGet: Use InternalSocket if available
5692
    * Fragmenter: Pull the new comments, new stats, and
5693
      debug log fix from i2p.i2p.zzz.batch in - but not the
5694
      batching mods, which need a fresh look.
5695
    * I2CP: Implement an internal "socket" class that
5696
      allows clients in the same JVM to connect to the
5697
      router without going through the kernel
5698
    * I2NP: Drop unused classes
5699
    * i2psnark:
5700
      - Translation support
5701
      - Tweak torrent name popup
5702
    * I2PTunnel:
5703
      - Translation support
5704
      - Switch all I2PThreads to I2PAppThreads
5705
      - Run an InternalSocket as well for the HTTP Proxy
5706
    * Naming Services:
5707
      - New EepGetAndAddNamingService that appends new
5708
        hosts to hosts.txt
5709
      - Move default reverseLookup to base class
5710
      - Deprecate unused services
5711
    * NetDb:
5712
      - Switch from ArrayList to ConcurrentHashSet in
5713
        KBucketImpl to reduce chance of deadlock;
5714
        remove periodic shuffling of the bucket,
5715
        needs to be addressed elsewhere
5716
    * SusiDNS:
5717
      - Translation support
5718
      - Remove jsp's from the war
5719
    * Translation: Move code from routerconsole to core,
5720
      to support translation of other webapps
5721

    
5722
* 2009-12-08  0.7.8 released
5723

    
5724
2009-12-08 zzz
5725
    * Misc. cleanups after review, prep for release
5726

    
5727
2009-12-06 zzz
5728
    * netdb.jsp: Fix bug caused by XSS fix
5729
    * Translations: drop ru until after release
5730

    
5731
2009-12-05 zzz
5732
    * Build: Fix poupdate dependency
5733
    * Console: Add Russian option
5734

    
5735
2009-12-05 sponge
5736
    * BOB: fix a critical bug causing ghosts on probes
5737
      and remove unused code.
5738

    
5739
2009-12-04 zzz
5740
    * Console: Close up some possible XSS (thanks Pragmatk)
5741
    * i2psnark: Config cleanup, more HTML transitional fixes
5742
    * readme*.html: Point to translated pages on www.i2p2.i2p
5743

    
5744
2009-11-29 zzz
5745
    * config.jsp: Comment out unused stuff better
5746
    * profiles.jsp: Hide non-ff from ff table
5747
    * HTTP Proxy: Don't send proxy.i2p to the naming service,
5748
      it was making the error pages load slowly
5749
    * SOCKS Proxy: Fix an error message
5750
    * Transport: Fix the default inbound burst
5751

    
5752
2009-11-29 sponge
5753
    * net.i2p.router.transport.udp deadwood code cleanup.
5754
    * documented rare NPE in InboundEstablishState.java.
5755

    
5756
2009-11-28 sponge
5757
    * Improvement to BOB's TCPio to hopefully lower load average. It seems
5758
      to be helping a little when stress-tested with Robert.
5759

    
5760
2009-11-24 zzz
5761
    * DataStructures: Remove unused Logs
5762
    * OrderedProperties: Simplify, use in i2psnark
5763
    * Profiles: Record successes in the DB fail rate
5764
      too, so we can calculate a percentage
5765
    * profiles.jsp:
5766
      - Change fail rate from count to percent
5767
      - Hide standard profiles by default
5768
    * Streaming:
5769
      - When an "immediate" ack is requested, do it within
5770
        250 ms (was 2000)
5771
      - Request immediate acks when < 1/3 of window remains,
5772
        or when < 3 packets remain in window,
5773
        and every 8 packets (was when < 2 packets in window remain)
5774
      - Change requested delay to RTT/2 (was RTO/2)
5775
      - Log cleanup and javadoc
5776

    
5777
2009-11-21 zzz
5778
    * GeoIP: Update to Nov 17 2009 data
5779
    * Netdb Floodfill rework part 4 of N:
5780
      - Search closest-to-the-key
5781
      - Put closest-to-the-key in explore don't-include-list
5782
      - Use facade's peer selector for exploration rather than
5783
        instantiating a new one
5784
      - Adjust response time limit
5785
    * netdb.jsp: Add popups on flags
5786
    * Routerconsole build: rename include files so they aren't
5787
      compiled and bundled separately (~15KB)
5788

    
5789
2009-11-18 zzz
5790
    * Build: Don't update the po files by default, add new
5791
      target "poupdate" to do that.
5792
    * Netdb:
5793
      - Floodfill rework part 3 of N: Send closest-to-the-key
5794
        in DSRM replies
5795
      - Adjust criteria for following DSRM
5796
      - Note failed floods in the profile
5797
      - Reduce max flood
5798

    
5799
2009-11-16 zzz
5800
    * addressbook: Move class to net.i2p.addressbook
5801
    * build: Take two test scripts out of the installer
5802
    * i2psnark: Bye TPB
5803
    * Shitlist: Fix bug from two checkins ago, all were forever
5804

    
5805
2009-11-14 zzz
5806
    * HTTP Proxy:
5807
      - Add support for error page translations
5808
      - Add support for external pages for all errors
5809
      - Fix lack of \r in error page headers
5810
      - HTML transitional fixes
5811
      - Cleanups
5812
    * UDP PeerTestManager: Throw in some synchronization to
5813
      try to fix stuck tests
5814

    
5815
2009-11-11 zzz
5816
    * Console: Some colon cleansing
5817
    * FloodfillPeerSelector: Adjustments
5818
    * Shitlist: Move HTML renderer to router console,
5819
      add cause parameter for ease of translation,
5820
      tag all causes
5821

    
5822
2009-11-11 zzz
5823
    * Addressbook, NamingService: Allow 516 byte dests
5824
      that end with AA but not AAAA, so we can permit
5825
      non-null zero-length certs.
5826
    * Console:
5827
      - Tag tunnel status
5828
      - Add transport table to netdb.jsp
5829
    * i2psnark:
5830
      - Reject torrents with too many pieces
5831
      - Reject torrents with a single file named *.torrent
5832
      - Increase max piece size to 2MB (was 1MB), but reduce
5833
        max number of connections to lessen ooms
5834
    * Netdb FloodOnlySearchJob:
5835
      - Fix up field hiding and duplicate overrides
5836
      - Other javadoc and java 5 improvements
5837
    * Netdb StoreJob, FloodfillVerifyStoreJob:
5838
      - Fix bug where reply selector wasn't registered for
5839
        routerinfo stores, so we didn't get stats, and
5840
        we kept retrying. This also prevented verification
5841
        and profile updates for routerinfo stores.
5842
        This bug was introduced 4 years ago by the change to
5843
        store routerinfos directly.
5844
      - Add dbStoreSuccessful() to profile, and have FVSJ
5845
        call it or dbStoreFailed() as appropriate to give
5846
        credit or blame to the floodfill we stored to.
5847
      - Don't let FVSJ verify using the peer we stored to
5848
    * Netdb Stores:
5849
      - Floodfill rework part 2 of N:
5850
        Store and verify closest to the key, subject to
5851
        last-failed lookup and store stats.
5852
      - DataHelper: Fix broken byte[] compareTo() used by XORComparator,
5853
        was not doing unsigned comparisons!
5854
      - FloodfillPeerSelector: Use standard XORComparator
5855
        now that it works, instead of messing with BigInteger
5856
      - FloodfillVerifyStoreJob: Set correct timeout for
5857
        requeued store job (was only 10s)
5858
      - KNDF: Rework getPeerTimout() to use 1 day averages,
5859
        and lower the min, max, and multiplication factor.
5860
      - Publish jobs: Lengthen timeout to 90s (was 30s for
5861
        routerinfos and 60s for leasesets)
5862
      - StoreJob: Limit max peer timeout to 15s for direct stores
5863
    * Streaming: Fix unused resend delay field in the packet header,
5864
      it is defined as seconds and we were not dividing by 1000,
5865
      so we were truncating 1000 to one byte which equals 232.
5866
    * UDP:
5867
      - Better handle a test reply from bob with a 0-length IP
5868
      - Add config options for min and max random port
5869

    
5870
2009-11-09 dr|z3d
5871
    * New midnight blue lightweight theme; supports IE and provisions its own console_big.css
5872
    * Streamlining and honing of console_big.css
5873

    
5874
2009-11-07 zzz
5875
    * Console:
5876
      - countries.txt: Convert to mixed case, include in update
5877
      - netdb.jsp: Hide all routers by default, sort and tag country names
5878
      - oldstats.jsp: Move to stats.jsp
5879
      - profiles.jsp: Show new DBH times instead of counts
5880
    * Profiles:
5881
      - Track last good and bad lookup times
5882
        and last good and bad store times,
5883
        to prep for floodfill changes
5884
      - Don't reset last-heard-about at router startup
5885
    * Checklist and Android readme fixups
5886

    
5887
2009-11-04 zzz
5888
    * Build:
5889
      - Move some files to installer/resources
5890
      - Fix initialNews.xml in install package
5891
    * Console: More tagging
5892
    * NetDb: Reduce routerinfo expiration slightly
5893
    * Profiles:
5894
      - Remove the almost-unused send and receive size RateStats;
5895
        this also reduces the effective time for isActive()
5896
      - Only store DB history on-demand to save space;
5897
        fix up resulting NPEs
5898
      - Savings: ~2MB heap
5899
    * Throttle: Reduce max msg delay to 1250ms (was 1500)
5900
    * UDP: Pick a random port on first install or bind failure -
5901
      No more port 8887 to prevent easy state-level blocking
5902

    
5903
2009-11-04 sponge
5904
    * Fixups to Slackware scripts
5905

    
5906
2009-10-31 zzz
5907
    * Console:
5908
      - More tagging
5909
      - Show user-installed themes on configui.jsp
5910
      - Fix reseed button spacing
5911
    * GraphHelper cleanup
5912
    * Susidns: add link to subscription faq
5913

    
5914
2009-10-29 zzz
5915
    * Console tag fixes, bundle script fix
5916
    * Add help target to build.xml
5917

    
5918
2009-10-28 zzz
5919
    * Console:
5920
      - Rewrite TrustedUpdate version comparator, use for netdb version table
5921
        so 0.7.10 will be sorted correctly
5922
      - Reduce netdb.jsp memory usage
5923
      - More tagging fixups
5924
      - configclients.jsp fixup for "Web console"
5925
      - Remove limiter status from peers.jsp
5926
      - Fix UPnP status header
5927
    * NetDb:
5928
      - Generate new RI immediately at startup
5929
      - Try again to not publish RI until we have been up a few minutes
5930

    
5931
2009-10-26 zzz
5932
    * Console:
5933
      - Add parameterized tag
5934
      - Don't save config when checking for updates on configupdate.jsp
5935
      - Refactor confignav.jsp to java and tag
5936
      - Start tagging profiles.jsp
5937
      - Rework ConfigRestartBean and tag
5938
      - More tag fixups
5939
      - Add lang=xx for testing
5940
      - Add file for additional tagged strings
5941

    
5942
2009-10-23 zzz
5943
    * Certificate: Fix the (apparently unused) readBytes(byte[], int) method
5944
      for a null certificate - http://zzz.i2p/topics/388 - thanks HungryHobo
5945
    * Console:
5946
      - Don't hide link to configui.jsp for IE any more
5947
      - Add lang selection on configui.jsp
5948
      - Tag strings in configui.jsp
5949
      - Load console_big.css if lang == zh
5950
      - Add _x() tag for static iniitializers
5951
      - HTML transitional input tags
5952
      - Rename cssHelper to intl for ease of tagging
5953
    * Update: Better error message when .sud file not found or truncated
5954
      http://forum.i2p/viewtopic.php?t=3979
5955
      The bug with the file going to the wrong place was fixed a couple months ago.
5956

    
5957
2009-10-21 dr|z3d
5958
    * Enhance index.jsp with "paperclips" for the main links
5959
    * Tighten sidepanel layout to gain us some vertical screen real estate
5960
    * Update news.xml with the correct link for Chinese translation page
5961

    
5962
2009-10-20 zzz
5963
    * I2NP: Remove old TunnelCreateMessage and TunnelCreateStatusMessage
5964
    * Logger: Don't kill the whole JVM if we can't open the log file
5965
    * MessageHistory: Cleanups
5966
    * NetDb: Move renderStatusHTML to routerconsole
5967
    * Router Console translation infrastructure:
5968
      - Persistent lang setting with routerconsole.lang=xx
5969
      - Loading any page with ?lang=xx changes the persistent setting
5970
      - Add a custom Jetty handler to load foo_xx.jsp if it
5971
        exists for language xx. This is for jsp files with lots
5972
        of text in them. Otherwise use inline translate methods.
5973
        Not for included jsps.
5974
      - Add a script to create and update messages_xx.po translation
5975
        files, and create ResourceBundles from them
5976
      - Add class to translate strings from cached ResourceBundles
5977
      - Add translate wrappers to HelperBase, FormHandler, and *Renderer,
5978
        so calls can be made from both jsp and java files
5979
      - Add example translations on configupdate.jsp - two in
5980
        the jsp itself and one in the helper.
5981
      - This is for strings in routerconsole only. Will be expanded
5982
        to other webapps and the router later.
5983
    * summarynoframe.jsp:
5984
      - Refactor to SummaryBarRenderer (saves 100KB)
5985
      - Add translate tags
5986
      - Use context RNG for nonces
5987
      - Transitional HTML style for input tags
5988
    * TunnelDispatcher: Drop messages that expire far in the future
5989
    * TunnelPoolManager: Move renderStatusHTML to routerconsole
5990

    
5991
2009-10-16 dr|z3d
5992
    * Extensive UI whitespace cleanups and positional finessing.
5993

    
5994
2009-10-16 zzz
5995
    * Crypto: Two more test classes out of the lib
5996
    * FloodfillMonitor: Slow down the volunteers again
5997
    * i2psnark: Add TPB tracker
5998
    * NetDb: Rework part 1 of N:
5999
      - Flood only to those closest to the key
6000
      - Java 5 fixups
6001
    * oldconsole.jsp: Remove almost all of it, add lines for tino
6002
    * ProfileOrganizerRenderer:
6003
      - Move to routerconsole
6004
      - Write directly to Writer for speed
6005
    * Router: Add router.hideFloodfillParticipant option for testing
6006
    * StatisticsManager: Cleanup after release
6007

    
6008
* 2009-10-12  0.7.7 released
6009

    
6010
2009-10-11 zzz
6011
    * Misc. cleanups after review, prep for release
6012

    
6013
2009-10-09 zzz
6014
    * ElGamalEngine: Fix rare AIOOBE (thanks hottuna!)
6015
    * I2PTunnel: Fix persistent client tunnel keyfile location
6016
    * peers.jsp: Fix NTCP rate formatting (thanks hottuna!)
6017

    
6018
2009-10-09 dr|z3d
6019
    * Add paste.i2p2.i2p, and echelon's software links to readmes (thanks
6020
      to GoHE for Swedish translations); cosmetic tweaks to same.
6021
    * Various optimizations and tweaks to all 3 themes.
6022

    
6023
2009-10-07 zzz
6024
    * Doc and eepsite_index updates
6025
    * UDP: Remove port number from thread names
6026

    
6027
2009-10-04 zzz
6028
    * i2psnark: Fix NPE caused by last checkin (thanks wuxia!)
6029

    
6030
2009-10-02 zzz
6031
    * BuildMessageTest: Move out of the lib
6032
    * i2psnark: Fix changing opentracker list
6033
    * Makefile.gcj: fixups
6034
    * OCMOSJ: Fix SKM NPE on closed dest
6035
    * ProfileOrganizerRenderer: static tweaks
6036
    * SusiDNS: HTML transitional fixes, might help opera
6037
    * Tunnel IVValidator: Increase size of bloom filter
6038
      for high-bw routers (>= 512KBps share bw) to reduce
6039
      false positive rate. Adds 2MB heap for >= 512KBps routers
6040
      and 6MB for >= 1536KBps.
6041

    
6042
2009-09-21 sponge
6043
    * fixups to SlackBuilds. requiredbuilder does the wrong thing, and
6044
      thinks that java is perl! This isn't really a big deal,
6045
      the file format is simple enough and the requirements are known.
6046

    
6047
2009-09-07 mkvore
6048
    * removes a SAM v1&2 bug
6049

    
6050
2009-09-04 zzz
6051
    * SessionKeyManager, OCMOSJ, Garlic:
6052
      - Enable per-client SessionKeyManagers for better anonymity
6053
      - tagsDelivered() now means tags are sent, not acked.
6054
      - OCMOSJ uses the new TagSetHandle object returned from tagsDelivered()
6055
        to call tagsAcked() or failTags() as appropriate.
6056
      - Assume tags delivered on an established session to
6057
        reduce streaming lib stalls caused by massive tag deliveries;
6058
        should increase throughput and window sizes on long-lived streams
6059
      - Unacked tagsets on a new session are stored on a separate list
6060
      - Don't kill an OB Session just because it's temporarily out of tags
6061
      - Increase min tag threshold to 30 (was 20) due to new speculative
6062
        tags delivered scheme, and to increase effective max window
6063
      - More Java 5 and dead code cleanups, and more comments and javadoc,
6064
        debug logging cleanups
6065
      - Key toString()s for easier debugging
6066
      - HandleGarlicMessageJob: cleanup of unused things
6067
    * Tunnel TestJob:
6068
      - Consume the tag after a failed test so it doesn't
6069
        stay in the SKM
6070
      - Disable tests with router.disableTunnelTesting=true
6071
    * configkeyring.jsp: Add delete and cancel buttons
6072
    * Logging: Fix directory for rotated log
6073
    * TunnelDispatcher: Cleanup
6074

    
6075
2009-09-02 sponge
6076
    * Small logic fix for dr|z3d
6077

    
6078
2009-08-28 zzz
6079
    * Client: Fail if no date handshake after 30s or no leaseset
6080
      after 5m, rather than hanging forever.
6081
    * Console:
6082
      - Prevent OOMs in NewsFetcher or StatsSummarizer from
6083
        killing the router
6084
      - Fix favicon (-17)
6085
    * Data: Speed up many hashcodes
6086
    * DataHelper: Fix byte array hashcode for small arrays
6087
    * DecayingBloomFilter:
6088
      - Replace with new DecayingHashSet for 3 of 4 uses,
6089
        and also in the 4th if the router is low-bandwidth.
6090
        Saves 8 MB heap.
6091
    * EepGet, I2PSnark:
6092
      - New I2PSocketEepGet fetches through existing tunnels
6093
        rather than through the proxy
6094
      - Use new eepget for i2psnark
6095
      - Add a fake user agent for non-proxied fetches
6096
      - Cleanups
6097
    * NetDb:
6098
      - oops, store leaseset locally even when shutting down
6099
        (fix -16)
6100
      - Java 5 cleanups
6101
    * PRNG:
6102
      - Rename config option to prng.buffers (was router.prng.buffers)
6103
      - Change the default from 16 to 2 for I2PAppContext (saves 3.5MB)
6104
    * Tunnel:
6105
      - Adjust the random drop probability for the message size
6106
      - Concurrentify HashSetIVValidator
6107
    * TunnelPool:
6108
      - Don't test tunnels when shutting down
6109
      - Less rates
6110
      - Java 5 cleanups
6111

    
6112
2009-08-24 zzz
6113
    * ClientManager:
6114
      - Prevent client destination theft by rejecting duplicates
6115
      - Java 5 cleanups
6116
    * Console:
6117
      - Put favicon on every page
6118
      - Make every page UTF-8, ☃ safe for snowmen
6119
      - Remove options boxes on configtunnels.jsp
6120
      - Fix UTF-8 form submission (i2ptunnel too)
6121
      - Throw 403 instead of 404 from flags.jsp and viewstat.jsp
6122
        so we don't render error.jsp
6123
    * I2CP: Fix the SessionConfig serializer in DataHelper,
6124
      so that UTF-8 tunnel names are not corrupted by
6125
      I2CP and can be displayed on the console
6126
    * Message: Move 2 unused classes out of the router lib (~15KB)
6127
      (more SKM prep)
6128
    * Message, I2PSession, SessionKeyManager, Console:
6129
      Prep for SessionKeyManager work in the router -
6130
      Fix up SKM renderStatusHTML(); add debug.jsp to see it;
6131
      Redefine getClientSessionKeyManager();
6132
      More cleanups
6133
    * Ministreaming: Kill deprecation warnings
6134
    * profiles.jsp: Bulletproofing, less memory usage
6135
    * Streaming, I2PSession:
6136
      Prep for SessionKeyManager work in the router -
6137
      Comment out, deprecate, and javadoc for unused keys and tags,
6138
      they are vestiges of end-to-end crypto
6139
    * Updates: Verify zip at startup before extracting
6140
    * Wrapper: Take a couple fields out of the log so it's narrower
6141

    
6142
2009-08-20 zzz
6143
    * Config files:
6144
      - Add some path and encoding help
6145
    * configclients.jsp: Add full path to config file
6146
    * configpeer.jsp: Limit max displayed banned IPs
6147
    * Console:
6148
      - Don't display firewall warning unless it's real
6149
      - Cleanups
6150
    * DataHelper, I2PTunnel, Router:
6151
      - Save config files in UTF-8 rather than the default encoding,
6152
        since we read them in UTF-8!
6153
    * eepsite_index_de.html: localhost -> 127.0.0.1
6154
    * i2psnark: Add size total
6155
    * I2PTunnel:
6156
      - Make IRC Proxy non-shared, delayed-start, close-on-idle
6157
        for new users, for the anonymity benefits (see "Shared Clients,
6158
        Correlation and Collusion" http://zzz.i2p/topics/217 )
6159
      - Remove "experimental" flag on new client options
6160
    * Jetty build: More clean targets
6161
    * jetty.xml: Change encoding to UTF-8
6162
    * jobs.jsp: Cleanup
6163
    * logs.jsp: Add system encoding
6164
    * Ministreaming: Cleanups, deprecation, move demos out of the lib
6165
    * netdb.jsp: Flags for leases
6166
    * NTCP: Clean up clock skew shitlist message
6167
    * profiles.jsp:
6168
      - Rename the Failing column
6169
      - Reduce the time cutoff again to 90m (was 2h)
6170
    * readme*html: localhost -> 127.0.0.1
6171
    * Router: Don't do some things when we are shutting down
6172
    * Shitlist: Clean up expire message
6173
    * Stats:
6174
      - Fix BufferedStatsLog so it works at all
6175
      - Don't instantiate BufferedStatsLog unless stats.logFilters
6176
        property is defined (restart now required to enable logging)
6177
        This eliminates the StatLogWriter thread and a decent
6178
        amount of memory.
6179
      - Move two CLI classes out of the lib
6180
      - Commment out places where getStatLog() isn't checked for null
6181
      - Cleanups
6182
    * Transports: Lower conn limit factor to 50 (was 60)
6183
    * Update:
6184
      - Fix problems where a requested unsigned update would actually
6185
        kick off a signed update
6186
      - Fix problem when policy set to notify, and clicking
6187
        check for update, incorrectly causing unsigned update download
6188
        and bad messages
6189
      - Verify zip integrity of unsigned updates
6190
      - Move zip files to router dir, not base dir
6191
      - More tweaks and cleanup
6192
    * VMCommSystem fixups
6193
    * WorkingDir: Ensure modified files are processed with UTF-8 encoding
6194
    * XmlPull: Remove, unused.
6195

    
6196
2009-08-19 sponge
6197
    * Java code to set Router Console password for dr|z3d
6198

    
6199
2009-08-18 dr|z3d
6200
    * Fixes for sidepanel
6201
    * Overhauled classic theme for i2ptunnels
6202
    * First stage of code validation to fix broken and "illegal" code
6203
    * Multifarious other UI tweaks and fiddles.
6204

    
6205
2009-08-15 sponge
6206
    * Merge in dr|z3d and my own html fixes for router console java and jsp
6207
      files so that Opera (and now IE?) doesn't puke anymore on the missing
6208
      and misplaced HTML tags.
6209
    * Optimized all jsp files so that they are shorter to save space, which
6210
      is then used to fix the broken HTML. We should break even space-wise.
6211
    * Bump to -13.
6212

    
6213
2009-08-11 sponge
6214
    * Code Janitor time! Many fixes and documenting fixes that should be
6215
      done in the future. for the most part, this is a general code cleanup.
6216
    * On smaller/embedded systems, the "final" keyword cleanups will have
6217
      more of an impact than on larger systems.
6218
    * Document missing hashCode() methods.
6219
    * Unhide more variables to make code easier to read.
6220

    
6221
2009-08-11 zzz
6222
    * Android:
6223
      - Merge in the branch
6224
      - Build instructions in the android/ dir
6225
      - Rename HMac to I2PHMac to avoid android lib conflicts
6226
      - Configurable number of PRNG buffers in AsyncFortunaStandalone
6227
        (router.prng.buffers=16) to control memory use - these
6228
        are 256KB each.
6229
      - Configurable size of the DecayingBloomFilters
6230
        (router.decayingBloomFilterM=23) to control memory use - there
6231
        are 4 pairs of these (8 total), each 2**(M-3) bytes,
6232
        or 8MB total for M=23.
6233
      - There's at least two unsolved fatal problems:
6234
        1) Most of the routerinfo signature verifications fail,
6235
           including our own
6236
        2) It randomly dies after a while
6237
    * Console:
6238
      - Rename the shitlist and the blocklist
6239
      - Try to reduce servlet problems on iframe
6240
      - Select server or client icon for local dests
6241
    * EepHead: New
6242
    * Move StatsGenerator from router to routerconsole
6243
    * Move the unused AdminManager from router to the apps directory
6244
    * NetDb stats: Hide part. tunnel total events, effective next release
6245
    * Router: Comment out dead oldconsole code
6246
    * Updater:
6247
      - Add new unsigned update option, triggered by
6248
        last-modified date, using the new EepHead.
6249
        Buttons still are not hidden after download complete.
6250
      - Make the .sud updater use the temp dir when proxied
6251
      - Several cleanups
6252

    
6253
2009-08-11 dr|z3d
6254
    * Extensive sidepanel overhaul
6255
      - Ensure all sidepanel headings link to pertinent pages
6256
      - First stage of enhanced Local Destinations sub-panel presentation
6257
      - Move Configuration, Help, and I2PTunnel manager links to headings
6258
      - Add tooltips to all linked content; table content next in line
6259

    
6260
2009-08-07 dr|z3d
6261
    * summarynoframe.jsp
6262
      - Main content now tabulated for better presentation
6263
      - Headings now more prominent
6264
      - Pruning where necessary of text strings
6265
    * Console themes (light/dark/classic)
6266
      - Ensure functionality with new sidepanel layout
6267
      - Custom hacks for IE/classic
6268
      - Enhanced form/button presentation
6269

    
6270
2009-08-07 zzz
6271
    * build.xml:
6272
      - Try to automate the release process
6273
      - Take jetty back out of the updater after 4 releases
6274
    * Console:
6275
      - Add a custom error page
6276
      - Don't count ourselves in known peers
6277
      - Hide update button when shutting down
6278
      - Increase skew warning threshold to 3s (was 100ms)
6279
      - Remove UTC time from summary bar
6280
      - Truncate long dest names
6281
      - Try to reduce servlet problems on index page
6282
    * Core:
6283
      - Catch unzip fd leaks on error
6284
      - Move 2 test classes out of the lib
6285
    * Eepsite:
6286
      - Quote the jetty.xml path in clients.config,
6287
        and adjust the migration function, to fix the
6288
        eepsite-won't-start bug on windows
6289
    * HTTP Proxy:
6290
      - Restore the localhost error message
6291
      - Catch 127.0.0.1:xxxx addresses too
6292
    * I2PTunnel:
6293
      - Move the privkey files from the app dir to the
6294
        config dir, in preparation for splitting the two
6295
        dirs by default
6296
    * Ministreaming:
6297
      - Make getInt() static
6298
      - Move the big TestSwarm class out of the lib
6299
    * NetDb stats: Post-release cleanup
6300
    * PersistentKeyRing: Fix broken storage of keys in config file
6301
    * Router: Move the WorkingDir class from i2p.jar to router.jar
6302
    * Streaming: New option i2p.streaming.answerPings (default true)
6303
    * Timestamper: Don't start thread if not enabled
6304
    * Wrapper:
6305
      - Extend timeout to 20s (was 5s)
6306
      - Shorten ping interval to 5m (was 10m)
6307

    
6308
2009-08-03 dr|z3d
6309
    * Extensive update to the Classic theme; custom css hacks for IE.
6310

    
6311
2009-08-02 dr|z3d
6312
    * Better support for Internet Explorer/classic theme.
6313
    * Incremental improvements to classic theme.
6314
    * More UI tweaks and fiddles.
6315
    * Fixes for I2PSnark UI; more to come.
6316

    
6317
2009-07-31 dr|z3d
6318
    * Resolve anomalous buttons and text fields in console ui.
6319
    * Enhance presentation of data in /peers.jsp.
6320
    * Fix themes issue with horizontal width of radio/checkbox icons.
6321
    * Other cosmetic UI enhancements.
6322

    
6323
* 2009-07-31  0.7.6 released
6324

    
6325
2009-07-31 zzz
6326
    * Update versions, package release
6327
    * Fix snark.css link
6328
    * Revert graph antialias enable
6329
    * Remove <center> from iframe head
6330
    * Fix tunnels.jsp HTML
6331
    * Prevent linux-only installer screen from displaying on windows
6332

    
6333
2009-07-28 zzz
6334
    * Add new reseed URL (thanks eche|on!)
6335

    
6336
2009-07-27 zzz
6337
    * Add flag dimensions to speed up profiles.jsp rendering
6338
    * Catch i2psnark create torrent with no data entered error
6339
      http://forum.i2p/viewtopic.php?t=3763
6340
    * Fix typos in proxy error files
6341

    
6342
2009-07-26 zzz
6343
    * Add wrapper.config and i2prouter comments for 'portable'
6344
    * Recognize same base and config dir in WorkingDir
6345
    * Reformat XInfoPanel in installer for clarity
6346

    
6347
2009-07-25 dr|z3d
6348
    * Enhance the layout of /graphs.jsp
6349
    * Fix some of the irks in I2PSnark UI.
6350
    * Ongoing tweaks and fiddles to the themes' css. Not finished by any means!
6351

    
6352
2009-07-24 zzz
6353
    * Eepsite: Add Deutsch index page and css (thanks sperrbezirk!)
6354
    * Router: Support i2p.dir.base and i2p.dir.config passed in via properties
6355
    * Throttle: Decrease default max tunnels to 2500
6356

    
6357
2009-07-23 dr|z3d
6358
    * Include additional tile graphics and I2PSnark header logo in /console/images/
6359
    * Tidy up some layout irks; add some last minute 0.7.6 pre-release sparkle!
6360
    * Ongoing overhaul of the I2PSnark UI.
6361

    
6362
2009-07-23 sponge
6363
    * Add bob.i2p and sponge.i2p keys to hosts.txt
6364

    
6365
2009-07-23 sponge
6366
    * Fix jdk 1.6izm in BOB as per zzz
6367

    
6368
2009-07-22 dr|z3d
6369
    * More work on the I2PSnark UI.
6370
    * Start of improvements to tunnel table data.
6371
    * Ongoing theme enhancements.
6372

    
6373
2009-07-21 dr|z3d
6374
    * First stage of overhaul of webapps ui.
6375
      susidns, susimail & i2psnark now lightly themed.
6376
    * Proxy error messages now themed as per chosen theme.
6377
    * Modest tweaks to the classic theme, et al.
6378

    
6379
2009-07-21 zzz
6380
    * configclients.jsp: Close anchor
6381
    * Console: Drop top-level css, unused now
6382
    * Eepsite: Add default robots.txt (thanks v1v4)
6383
    * GeoIP: Add license info
6384
    * HTTP Proxy: Additional proxy.i2p restrictions
6385
    * ServiceManager: Drop, unused
6386

    
6387
2009-07-20 zzz
6388
    * BuildHandler: Increase threshold for dropping instead
6389
      of rejecting to 81% (was 75%)
6390
    * Console: Hide configui.jsp from IE, disable selection
6391
    * GeoIP: Fix minor bugs (thanks Arsene)
6392
    * graphs.jsp: Reduce refresh time to eliminate double iframe load
6393
    * HTTP Proxy: Fix proxy.i2p "home page" (thanks dr|z3d)
6394
    * I2PSnark: Remove Postman tracker
6395
    * Peer Profiles:
6396
      - Reduce max age for display to 2h (was 3h)
6397
      - Drop unused Persist classes
6398
      - Dynamically adjust expire time to control memory use
6399
      - Increase reorganize time to 45s (was 30s) to reduce CPU use
6400
        and lock contention
6401
      - Remove some stat rates
6402
      - Delay start of PeerTestJob
6403
    * Stats: Increase coalesce time to 50s (was 20s) to reduce CPU use
6404
    * summarynoframe.jsp: Cleanup
6405
    * Transports: Reduce the number of Rates
6406

    
6407
2009-07-16 zzz
6408
    * HTTP Proxy: Themes for error pages
6409

    
6410
2009-07-16 sponge
6411
    * ministreaming:
6412
      - small pedantic fix
6413
    * streaming:
6414
      - Fix a deadly race condition.
6415
      - Some small pedantic fixes.
6416
    * core:
6417
      - Fix a deadly race condition.
6418
    * BOB:
6419
      - Fixed some races that occured from fixing races in streaming and core.
6420
      - Some badly needed code refactoring to depend less on the database.
6421

    
6422
2009-07-15 zzz
6423
    * Console:
6424
      - Make light the default theme
6425
      - Convert readme_zh.html from GB2312 to UTF-8
6426
    * Installer: Don't launch the router from the postinstall.sh script
6427
      on linux anymore; add a panel to the installer to provide launch instructions.
6428

    
6429
2009-07-15 sponge
6430
    * Slackware SlackBuild fixes.
6431

    
6432
2009-07-14 dr|z3d
6433
    * Increment to 0.7.5-10
6434
    * Tidy up layout of readme.* files.
6435
    * Work on console css to make it more Opera/webkit friendly.
6436
    * Other cosmetic tweaks.
6437

    
6438
2009-07-13 zzz
6439
    * Build: Add readme*.html files to the udpater
6440
    * Build Handler: Don't reject for conn limits if class O,
6441
      under the assumption that they are already talking
6442
      to most of the routers, so there's no reason to reject. This may drive them
6443
      to their conn. limits, but it's hopefully a temporary solution to the
6444
      tunnel build congestion. As the net grows this will have to be revisited.
6445
    * Throttle: Increase default max tunnels to 3000,
6446
      to give us more capacity during congestion
6447
    * Tunnels: Change the default variance from 1 to 0.
6448
      Under the one-packet-enough theory, and the fact that most
6449
      tunnels in a x+1 pool are of length x, variable lengths
6450
      don't really help that much. Also, a default of 1 led
6451
      to all sorts of problems with iMule/SAM, who was not
6452
      setting the variance properties.
6453
      This will affect exploratory tunnels for new users,
6454
      and those that have never saved a change on configtunnels.jsp,
6455
      and iMule users 1.4.5 and earlier.
6456

    
6457
2009-07-12 zzz
6458
    * Add configui.jsp
6459
    * orange flash remove take 2
6460

    
6461
2009-07-11 zzz
6462
    * netdb.jsp: Fix bad tag causing orange mouseovers
6463

    
6464
2009-07-11 dr|z3d
6465
    * More enhancements to the router console, consolidation of the
6466
      light and dark themes.
6467
      - Apply new themes with routerconsole.theme=light/dark/classic
6468
        added to advanced config.
6469

    
6470
2009-07-11 zzz
6471
    * Build Handler: Drop rather than reject requests when near
6472
      conn limits and the next hop is not connected, to reduce
6473
      connection congestion
6474
    * Console: Force IE to the classic theme
6475
    * I2PSnark:
6476
      - Bring back details links for Postman2 B64 torrents
6477
    * I2PTunnel:
6478
      - Make reduce-on-idle the default for all the shared clients
6479
        for new installs (15m)
6480
    * Profile Organizer:
6481
      - Allow NTCP-only peers in inbound tunnels
6482
    * Transports:
6483
      - Move from a single connection limit threshold (80%) to
6484
        two (75% and 87%), and only start rejecting tunnels
6485
        at the higher threshold, to increase build success
6486
      - Move some limit methods from the transports to TransportImpl
6487
      - Add limit methods with a threshold argument
6488
      - Increase default SSU conn limits a little more
6489

    
6490
2009-07-07 dr|z3d
6491
    * Introducing 2 new console themes (light & dark), in addition
6492
      to changes to the console navigation; navbar now resides in
6493
      the sidepanel and other stuff besides. More to follow!
6494

    
6495
2009-07-06 zzz
6496
    * Console: Fix small textareas on Opera
6497
    * EepGet: Don't send X-Accept-Encoding for non-proxied fetches
6498
    * HTTP Proxy: Limit proxy.i2p to /themes/ directory
6499
    * I2PSnark:
6500
      - Change postman2 announce URL to use hostname rather than B64
6501
      - Shorten torrent name to fit better on one line
6502
    * I2PTunnel:
6503
      - Add edit text
6504
      - Fix broken favicon
6505
    * Move almost all uses of StringBuffer to StringBuilder,
6506
      for efficiency (thanks Arsene for the suggestion)
6507
    * Reseed:
6508
      - Fix console status messages broken by global replace
6509
      - Remove tino, add b.netdb.i2p2.de
6510
    * SSUDemo: Move to the router/java/test directory
6511
    * Startup: Log clients.config problems
6512
    * Transport: Implement NTCP auto-transition from an
6513
      address to no address, so that inbound NTCP is disabled
6514
      after SSU detects a firewall. When UPnP was apparently successful
6515
      but the router is still firewalled (due to an additional
6516
      software firewall or a bad UPnP indication, for example)
6517
      the router will now remove the NTCP address.
6518

    
6519
2009-07-05 sponge
6520
    * Added X-I2P-DestB64 and X-I2P-DestB32 http headers
6521

    
6522
2009-06-29 zzz
6523
    * Big directory rework:
6524
      Eliminate all uses of the current working directory, and
6525
      set up multiple directories specified by absolute paths for various uses.
6526

    
6527
      Add a WorkingDir class to create a user config directory and
6528
      migrate certain files to it for new installs.
6529
      The directory will be $HOME/.i2p on linux and %APPDATA%\I2P on Windows,
6530
      or as specified in the system property -Di2p.dir.config=/path/to/i2pdir
6531
      All files except for the base install and temp files will be
6532
      in the config directory by default.
6533
      Temp files will be in a i2p-xxxxx subdirectory of the system temp directory
6534
      specified by the system property java.io.tmpdir.
6535

    
6536
      Convert all file opens in the code to be relative to a specific directory,
6537
      as specified in the context. Code and applications should never open
6538
      files relative to the current working directory (e.g. new File("foo")).
6539
      All files should be accessed in the appropriate context directory,
6540
      e.g. new File(_context.getAppDir(), "foo").
6541

    
6542
      The router.config file location may be specified as a system property on the
6543
      java command line with -Drouter.configLocation=/path/to/router.config
6544
      All directories may be specified as properties in the router.config file.
6545

    
6546
      There will be no migration from an existing installation
6547
      unless the system property -Di2p.dir.migrate=true is set.
6548
      If there is no migration, it will continue to use $I2P for all files,
6549
      except for temporary and PID files.
6550

    
6551
      The following linux scripts are now customized with the install path at,
6552
      installation, and may be moved to /usr/local/bin and run from any
6553
      working directory:
6554
          eepget, i2prouter, runplain.sh
6555

    
6556
      For new installs, the i2p base directory ($I2P) may be read-only
6557
      if updates are disabled. The only time i2p should write to the base directory
6558
      is to unzip the update file. Updates are downloaded to the config dir. If, upon
6559
      restart, the base dir is not writable, it will log a message and continue.
6560

    
6561
      Additional information, copied from I2PAppContext:
6562

    
6563
      #  Directories. These are all set at instantiation and will not be changed by
6564
      #  subsequent property changes.
6565
      #  All properties, if set, should be absolute paths.
6566
      #
6567
      #  Name	Property 	Method		Files
6568
      #  -----	-------- 	-----		-----
6569
      #  Base	i2p.dir.base	getBaseDir()	lib/, webapps/, docs/, geoip/, licenses/, ...
6570
      #  Temp	i2p.dir.temp	getTempDir()	Temporary files
6571
      #  PID	i2p.dir.pid	getPIDDir()	router.ping
6572
      #  Config	i2p.dir.config	getConfigDir()	*.config, hosts.txt, addressbook/, ...
6573
      #
6574
      #  (the following all default to the same as Config)
6575
      #
6576
      #  Router	i2p.dir.router	getRouterDir()	netDb/, peerProfiles/, router.*, keyBackup/, ...
6577
      #  Log	i2p.dir.log	getLogDir()	logs/
6578
      #  App	i2p.dir.app	getAppDir()	eepsite/, ...
6579

    
6580
      *  Note that the router can't control where the wrapper actually puts its files.
6581

    
6582
      All these will be set appropriately in a Router Context.
6583
      In an I2P App Context, all except Temp and PID will be the current working directory.
6584

    
6585
      Related changes:
6586
      i2prouter:
6587
      - Don't cd to script location, no longer required
6588
      jbigi, cpuid:
6589
      - Extract files from jar to temp dir, load from that dir, then
6590
        copy to the base dir if we have permissions (and failing silently
6591
        if we don't), so we have optimized libs and no complaints
6592
        when we have a read-only base dir.
6593
      logs.jsp:
6594
      - Get wrapper log location from a property too
6595
      - Display log file locations
6596
      RouterLaunch:
6597
      - If no wrapper, put wrapper.log in system temp dir
6598
        unless specified with -Dwrapper.logfile=/path/to/wrapper.log
6599
        or it already exists in CWD (for backward compatibility)
6600
      - Append rather than replace wrapper.log
6601
      - Pass wrapper log location to router as a property, so that logs.jsp can find it
6602
      runplain.sh:
6603
      - Add path substitution to runplain.sh on install
6604
      - Pass I2P base dir to the router as a property
6605
      Systray:
6606
      - Fix NPE if no config file
6607
      wrapper.config:
6608
      - Put wrapper.log in system temp dir for new installs
6609
      - Pass I2P base dir to the router as a property
6610

    
6611
2009-06-29 zzz
6612
    * HTTP Proxy:
6613
      - Add simple web server for "proxy.i2p" to serve
6614
        images and CSS for the error pages
6615
      - Take CSS out of the error pages; use internal server
6616
        for CSS, image, and favicon
6617
    * i2psnark build:
6618
      - Move FetchAndAdd to static inner class
6619
      - Fix standalone build to include i2psnark.jar since classes
6620
        aren't in the .war anymore
6621
      - Have standalone jetty use I2PAppContext temp directory
6622
      - Replace launch-i2psnark.jar with launch-i2psnark script,
6623
        since RunStandalone is in i2p.jar
6624
      - Clean up jetty-i2psnark.xml, turn off jetty logging
6625
      - Remove standalone build from the pkg target in the main build.xml
6626
    * Jbigi, CPUID:
6627
      - Reduce memory demand on startup from 4MB to 4KB each
6628
    * NetDb: Fix an NPE on early shutdown
6629
    * Reseeding / NetDb:
6630
      - Move reseeding from the routerconsole app to
6631
        the router, so that we can bootstrap an embedded router lacking a routerconsole
6632
        (iMule or android for example), without additional modifications.
6633
        This allows better integration between the reseeding function
6634
        and the netDb.
6635
      - Call reseed from PersistentDataStore, not from the
6636
        routerconsole init, and start seeding as soon as the netdb has read
6637
        the netDb/ directory, not when the console starts.
6638
      - Wake up the netdb reader as soon as reseeding is done,
6639
        rather than waiting up to 60s.
6640
      - Don't display the reseed button on the console until the
6641
        netdb initialization is done.
6642
    * RouterConsoleRunner:
6643
      - Catch a class not found error better
6644

    
6645
2009-06-29 zzz
6646
    * Console: Convert table headers to <th> to prep for CSS changes
6647
    * Console CSS: Move css file, make a classic theme to prep for CSS changes
6648
    * Console: Move favicon.ico and i2plogo.png out of the .war
6649
      so that the HTTP proxy can use them directly;
6650
      proxy error pages must be updated next
6651
    * NetDb stats: Normalize tunnel build stats for increased anonymity,
6652
      effective in 0.7.6
6653

    
6654
2009-06-30 sponge
6655
    * General cleanup on streaming and ministreaming.
6656
      This fixes some compile warnings, and prepares for a larger fix.
6657
      There is no code-flow changes, just lint. One warning remains as I am
6658
      unsure exactly how to solve the problem yet.
6659

    
6660
* 2009-06-29  0.7.5 released
6661

    
6662
2009-06-29 Complication
6663
    * Update versions, package release
6664
    * Remove the last reference to my eepsite as a "news.xml" source,
6665
      and likewise stop my public key from being included
6666
      among valid release signing keys.
6667

    
6668
2009-06-25 sponge
6669
    * Summary frame layout change so it makes sense.
6670

    
6671
2009-06-23 zzz
6672
    * Browser Launch: Add sensible-browser, x-www-browser, defaultbrowser, and
6673
      www-browser in an attempt to launch the user's preferred browser
6674
    * configupdate.jsp: Cleanup
6675
    * Installer: Include console.css!!!
6676
    * NTCP: Try again to prevent two Event Pumpers
6677
    * Update: Increase max retries
6678
    * UPnP: Catch AIOOBE reported by tuna
6679

    
6680
2009-06-21 zzz
6681
    * Browser Launch: Wait until the routerconsole is up before launching the browser
6682
    * Installer: Fix wrapper.config parsing on windows
6683
    * netdb.jsp: Add country chart at bottom, clean up version chart
6684
    * News Fetcher:
6685
      - Change default news URL, use it instead of the old one even if
6686
        the old one is saved in the configuration, to assist in the transition
6687
    * ReseedHandler:
6688
      - check for upper case HREF to be compatible with apache indexes
6689
    * Statistics Manager: post-0.7.4 cleanup
6690
    * Transport: Treat 5.0.0.0/8 (Hamachi) as local
6691

    
6692
2009-06-17 Mathiasdm
6693
    * desktopgui:
6694
      - Added client and server tunnel view
6695
        (saving does not work yet)
6696

    
6697
2009-06-17 zzz
6698
    * PeerSelector:
6699
      - Limit exploratory tunnels to connected peers when over
6700
        half the connection limit (was 80%)
6701
      - Have the high capacity tier fall back to a new connected tier
6702
        before moving on to the not failing tier
6703
        so that tunnel build success doesn't collapse and drive
6704
        connections to the limit
6705
    * PeerTestJob:
6706
      - Limit to connected peers
6707

    
6708
2009-06-12 zzz
6709
    * Console:
6710
      - Move the console css from default.css in the .war to docs/themes/console/console.css,
6711
        and support console themes in the main console with routerconsole.theme=foo
6712
      - Remove unused NoticeHelper
6713

    
6714
    * Installer:
6715
        Upgrade to izpack 4.3.0 and add a short script to fix Vista install problems.
6716
        (previous izpack was 3.7.2 from 2005-04-22)
6717

    
6718
        izpack 4.3.0 from :
6719
        http://dist.codehaus.org/izpack/releases/4.3.0/IzPack-install-4.3.0.jar
6720
        SHA1 f06da6b26ac2c68fed64ab38980352989b8d8841
6721
        (no signatures or sha1sums found on website, and the jar is unsigned)
6722
        License: Apache 2.0
6723

    
6724
        upack izpack:
6725
        java -jar IzPack-install-4.3.0.jar
6726
        or
6727
        java -jar IzPack-install-4.3.0.jar -console
6728

    
6729
        get the standalone-compiler.jar from the installation lib/ directory:
6730
        SHA1 6d2b4a5657bfb864a333b1c4b1c0f8223aa57d80
6731
        (no signatures or sha1sums found on website, and the jar is unsigned)
6732

    
6733
        This fixes the bug with the install windows centered in all the
6734
        workspaces, not the current workspace. And who knows what other
6735
        bugs in the last 4 years.
6736

    
6737
        To fix Vista (and presumably Windows 7) permissiom problems,
6738
        add a run-privileged flag for those, and run the new fixperms.bat
6739
        which calls icacls to add the privileges to the install directory.
6740

    
6741
        Add support for 6 more language packs found in the new release.
6742
        Change from ISO3 codes to native language names.
6743

    
6744
        Disable creation of the i2p.tar.bz2 file in build.xml
6745
        (distributed as i2pheadless-0.7.x.tar.bz2), as izpack 4.3.0 now
6746
        supports headless installation with java -jar i2pinstall.exe -console.
6747
        Update INSTALL.txt and INSTALL-headless.txt accordingly.
6748

    
6749
      - Add install and temp path substitution to wrapper.config and
6750
        i2prouter on install
6751

    
6752
      - Change the wrapper.config classpath to one line: lib/*.jar
6753
        This means we lose control of classpath load order, so move the windows installer
6754
        jars copy.jar, delete.jar, and exec.jar to a new installer/ directory so
6755
        these jars won't be in the classpath or potentially conflict, since
6756
        copy.jar and delete.jar include FileUtil.class, and we don't want to have
6757
        to remember to add them to the updater if we ever change FileUtil.class.
6758
        Delete the installer/ directory in postinstall.sh since it is windows-only.
6759

    
6760
    * Watchdog: Only try to dump threads if there is a wrapper
6761
         and we aren't on windows
6762

    
6763
* 2009-06-12  0.7.4 released
6764

    
6765
2009-06-12 Complication
6766
    * Update versions, package release
6767

    
6768
2009-06-09 zzz
6769
    * NTCP: Fix startup race NPE (thanks postman!)
6770

    
6771
2009-06-08 sponge
6772
    * Last commit for this cycle. All debugging except for WARN removed.
6773
      I can use the visit command to debug now anyway.
6774

    
6775
2009-06-08 sponge
6776
    * Removed BOB debugging as-per zzz
6777

    
6778
2009-06-08 sponge
6779
    * Fixed NPE and some other goofups in BOB.
6780
    * BOB bump version
6781

    
6782
2009-06-07 zzz
6783
    * Build file:
6784
      - Add updaterWithJettyFixesAndGeoIP, use it in pkg for one release
6785
      - Cleanups
6786
    * Console:
6787
      - netdb.jsp cleanup
6788
      - tunnels.jsp cleanup
6789
    * ExploratoryPeerSelector:
6790
      - Limit to connected peers when near connection limit
6791
    * Timestamper:
6792
      - Use locale country if geoip unavailable
6793
    * Transport:
6794
      - Lower min NTCP idle time to 3m (was 5m)
6795
      - Increase SSU conn limit by 33%
6796
    * UPnP: Fix deprecation warning
6797
    * Watchdog:
6798
     - Defang him again
6799

    
6800
2009-06-06 sponge
6801
    * Added BOB's license to licenses
6802
    * Janitorial javadoc fixes *sigh*
6803
    * bump to -13
6804

    
6805
2009-06-05 sponge
6806
    * Merge and bump to -12
6807

    
6808
2009-06-05 sponge
6809
    * BOB now cleans up tunnels, although they can take up to 5 minutes to
6810
      disapear. This is due to the fact that the streaming lib doesn't
6811
      actually remove the connections properly and kill them off when the
6812
      manager is destroyed. I'm not certain if this is a bug, or a feature,
6813
      but it sure is annoying, and you have to wait for the connections to
6814
      time out. What should happen is the streaming lib should cause an IO
6815
      error to the pending read or write.
6816

    
6817
2009-06-05 zzz
6818
    * Build file:
6819
      - Add license info for launch4j includes
6820
    * Console:
6821
      - 16x11 transparent flags for ch and np, thanks anonim!
6822

    
6823
2009-06-04 zzz
6824
    * Console:
6825
      - Update geoip file to June 3 version
6826
      - Hide some controls if no wrapper on configservice.jsp
6827
    * I2PTunnel:
6828
      - Fix bug where delayed-open and close-on-idle tunnels would
6829
        use a different tunnel pool instead of building their own
6830
      - Add standby indication to web page
6831
    * NetDb:
6832
      - Try to talk directly to a floodfill if we don't know enough,
6833
        to help integrate more quickly
6834
      - Change a no-floodfill error to a warn
6835
    * NetDb Stats:
6836
      - Average TX and RX bw stats for additional anonymity,
6837
        effective in next release
6838
    * Reseed:
6839
      - Limit to 200 pulled randomly from the full fetched list
6840
    * Transport:
6841
      - Increase default bw for new installs to 96/40
6842
        (was 64/32). This is as high as we can go upstream
6843
        without making the default class M.
6844
    * Watchdog:
6845
      - Allow disabling by property again
6846
      - Logging tweaks
6847

    
6848
2009-05-30 zzz
6849
    * Console:
6850
      - config.jsp now cause graceful restart
6851
      - More peers.jsp and profiles.jsp cleanup
6852
      - tunnels.jsp improvements
6853
      - Use CSS for form messages
6854
      - Goodbye nonce spoof messages (sorry jr)
6855
      - config.jsp: Comment out unused burst config code
6856
      - Don't forget Serbia!
6857
      - configadvanced.jsp cleanup
6858
    * LoadTestManager: Delete, unused
6859
    * Peer Selector: Make strict order opaque to hash value
6860
    * SendGarlicMessageJob: Delete, unused
6861
    * Session Keys:
6862
      - Don't instantiate unused SessionKeyPersistenceHelper
6863
      - Use TransientSessionKeyManager instead of PersistentSessionKeyManager
6864
      - Add generics to TransientSessionKeyManager to help understand it
6865
      - Change initial session map size to 64 (was 1024)
6866
      - Prepare for per-destination SessionKeyManagers in ElGamalAESEngine
6867
      - More stubs for per-destination managers in the client manager
6868
    * Transports:
6869
      - Adjust bids when near conn capacity
6870
    * UDP:
6871
      - Remove unused stats and test code
6872
      - Only save IP when it changes
6873
    * UPnP:
6874
      - Prevent NPE after ParserException
6875
      - Tweak to help startup problems?
6876
      - Retry port forward if it fails
6877
      - Make peers.jsp display faster
6878
      - Lengthen POST timeout
6879
      - More comments
6880

    
6881
2009-05-29 sponge
6882
    * added big fat start/stop lock into BOB
6883
    * added zap command to shut down BOB... now we need a way to start it
6884
      after it stops. :-)
6885

    
6886
2009-05-27 Mathiasdm
6887
    * Increase sendProcessingTime some more, add a property to configure.
6888
      Configure with 'router.defaultProcessingTimeThrottle'.
6889

    
6890
2009-05-27 Mathiasdm
6891
    * Increased sendProcessingTime limits and added testSuccessTime
6892
      to avoid unwanted throttling
6893

    
6894
2009-05-26 Mathiasdm
6895
    * Throttling extension by looking at sendProcessingTime
6896

    
6897
2009-05-26 zzz
6898
    * Console:
6899
      - configlogging.jsp cleanup
6900
      - Flags tweak
6901
    * NetDb:
6902
      - Don't send our own hash in the don't-include list when exploring
6903
      - Remove any pending write when removing a RouterInfo
6904
      - Cleanup to use routerHash()
6905
    * Streaming: Hopefuly fix infinite loop in the SYN queue handler
6906

    
6907
2009-05-25 zzz
6908
    * GeoIP:
6909
      - Save our own location in the config
6910
      - Check whole netDb at startup (last try didn't work)
6911
    * NTCP:
6912
      - Increase routerinfo send frequency to every 90m (was 9h)
6913
      - Don't send 3 floodfill infos at startup or with routerinfo
6914
    * Profile Organizer: Increase min fast peers based on
6915
      number of local destinations
6916
    * Timestamper:
6917
      - Use GeoIP to query a closer ntp source if available
6918
      - Lengthen query time if well-synced
6919
      - Cleanup
6920

    
6921
2009-05-24 mkvore
6922
    * SAM: logging some exceptions at INFO level instead of ERROR
6923

    
6924
2009-05-24 zzz
6925
    * Connection limits / throttle:
6926
      - Better limits when no inbound TCP
6927
        (limit inbound and outbound separately)
6928
      - Don't offer to SSU introduce when near connection limit
6929
    * Console:
6930
      - Move flags from icons/ to docs/icons
6931
      - peers.jsp cleanup
6932
      - Add readme_zh.html
6933
    * GeoIP:
6934
      - Check netDb SSU IP too
6935
      - Check whole netDb at startup
6936
    * NTCP: Log who is sending us big messages
6937
    * UPnP: Move logging from wrapper log to router log
6938

    
6939
2009-05-23 Mathiasdm
6940
    * Router netDB:
6941
      - Added flags to the netDB page
6942

    
6943
2009-05-22 Mathiasdm
6944
    * desktopgui:
6945
      - Updating works in general config
6946
      - Switched to Swingworker threads for improved responsiveness
6947

    
6948
2009-05-21 zzz
6949
    * Router Watchdog:
6950
      - Log memory stats
6951
      - Dump threads on linux
6952
      - Restart after 20 minutes (give the dog his teeth back)
6953

    
6954
2009-05-21 zzz
6955
    * DataStore:
6956
      - Adjust interface to have persistent and non-persistent methods,
6957
        to prepare for partial storage in RAM
6958
    * ExpireRoutersJob:
6959
      - Rewrite, not enabled yet
6960
    * I2Punnel:
6961
      - Increase eepsite default to 3+0 for new installs
6962
    * PersistentDataStore:
6963
      - Cleanup, simplify, and concurrentify
6964
      - Tweak stats
6965
      - Remove write limit
6966
      - Flush to disk on shutdown
6967
      - Don't write out what we just read in
6968
    * Router and console:
6969
      - Bundle geoIP files and flags in new installs,
6970
        spiff up tunnels.jsp and profiles.jsp.
6971
        Existing installs can get files with 'ant updaterWIthGeoIP'
6972
        or in the console docs bundle 'ant consoleDocs'
6973
      - Use flags for shitlist and peers.jsp too
6974
      - Tweak tunnels.jsp to show class letters
6975
      - Hide in-progress details on tunnels.jsp
6976
      - Add a little color to confignav
6977
      - Remove 'no skew' message
6978
      - More message tweaks if no wrapper
6979
    * TunnelManager:
6980
      - Remove now-unused isInUse()
6981
    * UPnP:
6982
      - Fix up port binding, add some logging on bind fails
6983
      - Force IPv4 only for binds
6984

    
6985
2009-05-20 Mathiasdm
6986
    * General configuration enabled by default
6987
    * General configuration speed tab works completely
6988

    
6989
2009-05-17 zzz
6990
    * Merge i2p.i2p.zzz.upnp branch
6991
     * Major changes:
6992
      - Detect IP with UPnP
6993
      - Open firewall ports with UPnP
6994
      - Detect IP by checking local interface addresses
6995
      - Enable TCP auto-IP and auto-port by default, if UDP status is "OK"
6996
      - Network configuration page rework
6997
     * Other stuff:
6998
      - Remove unused verifyupdate.jsp
6999
     * Details of the UPnP and related Transport changes:
7000
      - Add UDP Port configuration to config.jsp
7001
      - Don't restart router when configs change on config.jsp;
7002
        simply rebuild router info.
7003
      - Clean up some port config code in UDP
7004
      - Implement UPnP enable/disable
7005
      - Start to rework inbound configuration
7006
      - Tweak UPnP warning messages
7007
      - Start of callbacks from UPnP to transports
7008
      - Tell UDP local addresses at startup
7009
      - NTCP Port must now be either auto or configured;
7010
        now defaults to auto; and configured now trumps auto.
7011
        Port configuration now does not affect whether inbound
7012
        NTCP is enabled - the host configuration alone can do that.
7013
      - i2np.ntcp.autoip=true redefined to enable inbound only if
7014
        SSU reachability is OK. i2np.ntcp.autoip=always for the old behavior.
7015
        autoip default is now "true".
7016
        i2np.ntcp.hostname=xxx now trumps i2np.tcp.autoip.
7017
      - SSU always tells NTCP when status changes.
7018
      - Implement config save of new IP address options
7019
      - Implement local address and UPnP configuration of UDP address
7020
      - Limit received port to 1024 minimum
7021
      - Simplify bw form
7022
      - Add config link to UPnP status
7023
      - Make short timeouts for UPnP HTTP POST so we don't hang when
7024
        the UPnP device goes away
7025
      - Fix a bug in UPnP HTTP Server timeout
7026
      - Make short timeouts for the XML parser so we don't hang when
7027
        the UPnP device goes away - same as for HTTP POST
7028
      - Stuff the port mapping requester into a thread so it doesn't
7029
        delay everything for several seconds
7030
      - Handle UPnP devices that return IP = 0.0.0.0
7031
      - Better HTML output when no IP found
7032
      - Tweak logging
7033
      - Set Disposer thread name
7034
      - Keep the control point running after we find an IGD,
7035
        so that we get notifications of it leaving or
7036
        coming back or replaced.
7037
      - Detect UPnP start failure
7038
      - Sort local addresses
7039
      - Store last IP for future laptop mode
7040
      - Subscribe to service, doesn't seem to do anything though,
7041
        need to test it more
7042
      - Change UPnP listener port defaults, allow configuration option
7043
      - Don't notify for non-changed options on config.jsp
7044
      - Simplify config.jsp some more
7045
      - No longer use i2np.udp.forceIntroducers
7046
      - Tweak UDP port qualification
7047
      - Fix allowing low ports again
7048
      - Add option to completely disable NTCP, for those behind nasty firewalls
7049
      - Use SSU reachability rather than global reachability for determining NTCP reachability,
7050
        since we are now reporting NTCP reachability too
7051
      - Tweak the config sub-navbar
7052
      - Don't start UPnP if we have a public interface address
7053
      - Fix setting IP to a local interface address
7054
      - Work on the configuration help some more
7055
      - Rework UDP peers.jsp table a little
7056
      - Don't let UDP bid on messages that are too long
7057
      - Clean up the max fragments code in UDP
7058

    
7059
2009-05-17 zzz
7060
    * Build files:
7061
      - Remove unneeded ant.jar from package (900KB)
7062
      - Fail on Jsp compile errors
7063
    * FloodfillVerifyJob: Don't consider an older search result as verified
7064
    * logs.jsp: Add link to config
7065
    * NetDb: Lower the routerinfo expiration again
7066
    * SusiDNS:
7067
      - Reduce displayed entries from 300 to 100
7068
      - Add ability to go forward or back
7069
      - Make textareas bigger
7070
      - Clean up file names
7071
      - Clarify messages about filter and search
7072

    
7073
* 2009-05-16  0.7.3 released
7074

    
7075
2009-05-16 Complication
7076
    * Update versions, package release
7077

    
7078
2009-05-12 sponge
7079
    * BOB clean up, change println's to _log.warn, bump BOB version
7080
    * I2PSessionMuxedImpl.java changes as per zzz, and they test OK for me.
7081

    
7082
2009-05-12 mkvore
7083
    * SAM: fix: warnings when generating javadoc
7084

    
7085
2009-05-11 zzz
7086
    * Connect client: Fix NPE when used with advanced i2ptunnel features
7087
    * Context: Don't instantiate unused AdminManager
7088
    * logs.jsp: Put critical log at the top
7089
    * NetDb: Don't accept stores of our own LeaseSets or RouterInfo
7090

    
7091
2009-05-11 mkvore
7092
    * SAM: fix: removed ERROR level logging when a client disconnects
7093

    
7094
2009-05-09 sponge
7095
    * merge
7096

    
7097
2009-05-09 sponge
7098
    * fixed OOM on lock (woops! my bad!)
7099

    
7100
2009-05-08 Mathiasdm
7101
    * desktopgui: moved files to stop polluting the namespace
7102
          (everything now in net.i2p.desktopgui)
7103
    * desktopgui: some variable renaming in general configuration
7104

    
7105
2009-05-07 mkvore
7106
    * SAM: version 3 added
7107
    * SAM: blocking case corrected on simultaneous client connection (v.1-3)
7108

    
7109
2009-05-07 zzz
7110
    * Add nibble.i2p to proxy list and hosts.txt
7111

    
7112
2009-05-07 zzz
7113
    * Addressbook: Name the thread
7114
    * Console:
7115
      - More IE button fixes, try harder to not refresh the iframe after shutdown
7116
      - Disable idle options for streamr client, it will never be
7117
        idle because it pings the server
7118
    * Floodfill Monitor: Slow down the volunteers
7119
    * Throttle: Throttle at 90% so we throttle before we WRED
7120

    
7121
2009-05-06 Mathiasdm
7122
    * Improvements to popup menu rightclick action
7123
    * Added general configuration options (still not available by default)
7124
    * General fixes
7125
    * Added ant build options (irc says eche|on would like that ;))
7126

    
7127
2009-05-06 sponge
7128
    * Hopefully the last fixes for BOB.
7129
    * Fixes to prevent race in client-side I2CP and Notifier.
7130

    
7131
2009-05-03 sponge
7132
    * More hopeful fixes for BOB.
7133
    * Added new Robert ID to snark
7134

    
7135
2009-05-01 zzz
7136
    * Build files:
7137
      - Fix up susidns build file so it will work with gcj
7138
      - Add consoleDocs target
7139
    * Client: Fix race NPE (thanks sponge)
7140
    * Console: fix ERR-UDP Disabled and Inbound TCP host/port not set
7141
    * I2CP: Fix race NPE
7142
    * I2PTunnel:
7143
      - Try to fix locking to prevent duplicate destinations when using
7144
        the new option new-dest-on-resume. Still not right for shared clients
7145
        but should be better for non-shared.
7146
    * Router console:
7147
      - Add jbigi and cpu info to logs.jsp
7148
    * Session key manager:
7149
      - Log before a hang maybe
7150
    * URL Launcher:
7151
      - Launcher on linux was stopping after trying opera, whether it succeeded or failed.
7152
        Now it keeps going to try firefox, etc. as designed.
7153
      - Extend default delay from 5s to 15s so it will reliably start
7154

    
7155
2009-04-27 sponge
7156
    * more BOB fixes, complete with warnings when things go wrong, and
7157
      success messages when things turn around and go right. Terminates
7158
      early so that applications wait no more than 10 seconds or so.
7159
    * Reversed a few earlier patches that caused some odd behavior.
7160
    * Changed some core println()'s to debugging messages.
7161

    
7162
2009-04-27 zzz
7163
    * Build files:
7164
      - New updaterWithJettyFixes target, build it for pkg
7165
      - Pass compiler args down from top build.xml
7166
    * GarlicMessageBuilder: Reduce bundled tags to 40 (was 100)
7167
    * i2psnark: Add Postman2 tracker
7168
    * I2PTunnel: Allow spaces in dest and proxy lists
7169
    * NetDb:
7170
      - Adjust RouterInfo expiration down to control memory usage
7171
      - Display LeaseSets and RouterInfos on separate console pages
7172
    * NTCP:
7173
      - Correct the meanings of the i2np.ntcp.autoip and i2np.ntcp.autoport
7174
        advanced config. If you have one of these set but not the other, you
7175
        will have to adjust your configuration on config.jsp.
7176
    * RouterConsole: iframe tweaks
7177
    * StatisticsManager: Cleanup
7178
    * Streaming: Don't let jrandom yell so loud
7179
    * Tunnel Pool: Don't self-destruct if more than 6 IB tunnels configured
7180

    
7181
2009-04-25 sponge
7182
    * I2PSessionMuxedImpl atomic fixes
7183
    * BOB fixes. This should be the final bug wack. Good Luck to everybody!
7184

    
7185
2009-04-23 zzz
7186
    * Blocklist: cleanup
7187
    * eepget: handle -h, --help, bad options, etc.
7188
      (http://forum.i2p/viewtopic.php?p=16261#16261)
7189
    * Fragmenter: don't re-throw the corrupt fragment IllegalStateException,
7190
      to limit the damage - root cause still not found
7191
    * i2psnark: (http://forum.i2p/viewtopic.php?t=3317)
7192
      - Change file limit to 512 (was 256)
7193
      - Change size limit to 10GB (was 5GB)
7194
      - Change request size to 16KB (was 32KB)
7195
      - Change pipeline to 5 (was 3)
7196
    * logs.jsp: Move version info to the top
7197
    * Jetty: Fix temp dir name handling on windows, which was
7198
      causing susidns not to start
7199
      (http://forum.i2p/viewtopic.php?t=3364)
7200
    * NTCP: Prevent IllegalStateException
7201
    * PeerProfile:
7202
      - Replace a hot lock with concurrent RW lock
7203
      - Rewrite ugly IP Restriction code
7204
      - Also use transport IP in restriction code
7205
    * RouterConsole: Make summary bar a refreshing iframe
7206
    * Transport: Start the previously unused CleanupUnreachable
7207

    
7208
2009-04-21 sponge
7209
    * Code janitor work, basic corrections involving @Override, and
7210
      appling final where it is important. Also fixed some equals methods
7211
      and commented places that need fixing.
7212

    
7213
2009-04-18 Complication
7214
    * Fix typo in "news.xml", no build number increase.
7215

    
7216
* 2009-04-18  0.7.2 released
7217

    
7218
2009-04-18 Complication
7219
    * Update versions, package release
7220

    
7221
2009-04-17 sponge
7222
    * fixed setIP, just be sure to distclean before building :-)
7223
    * more lint taken care of as well.
7224

    
7225
2009-04-17 sponge
7226
    * setIP wants to be a static method in the class, but it produces
7227
      warnings about it being static from other code.
7228

    
7229
2009-04-17 sponge
7230
    * Catch NPE in NTCP.
7231
      This possibly augments fix 2009-04-11 welterde below.
7232
    * Various LINT on NTCP sources, and removal of space-wasting
7233
      spaces at end of lines in sources touched.
7234

    
7235
2009-04-13 Mathiasdm
7236
    * Bugfix on tray icon updating
7237
    * Some more work on the general configuration menu
7238
      (currently not added to the tray icon menu yet, needs more work)
7239
    * Tweaked the desktopgui logo
7240

    
7241
2009-04-13 Mathiasdm
7242
    * Added I2P version and GUI version to desktopgui
7243
    * Tweaks to the tray icon menu
7244
    * Some starting work on a GUI general configuration menu
7245
    * Bugfix allowing spaces in directory structure
7246

    
7247
2009-04-13 welterde
7248
    * small fix in the eepproxy
7249

    
7250
2009-04-11 welterde
7251
    * fixed NPE in NTCP transport
7252

    
7253
2009-04-11 sponge
7254
    * i2ptunnel janitorial work and fixes on most locks.
7255
      Some locks still need work, and are marked with LINT in the comment.
7256
      Just grep for "LINT" to see where the remaining places are.
7257

    
7258
2009-04-10 sponge
7259
    * More BOB threadgroup fixes, plus debug dump when things go wrong.
7260
    * Fixes to streaminglib, I2CP, which are related to the TG problem.
7261
    * JavaDocs fixups.
7262

    
7263
2009-04-08 sponge
7264
    * More hopeful fixups to the infamous orpahned tunnel problem. *Sigh*
7265

    
7266
2009-04-08 zzz
7267
    * IPV6/localhost:
7268
      - Enable IPv6 stack in the JVM, hopefully won't break anything
7269
      - Patch Jetty to support binding to IPv6 addresses
7270
      - Allow multiple bind addresses for the router console
7271
        in the clients.config file; for new installs the
7272
        default is now "127.0.0.1,::1"
7273
      - Change most instances of "localhost" to "127.0.0.1"
7274
        throughout the code
7275
    * Router:
7276
      - Move some classes to private static inner
7277

    
7278
2009-04-07 sponge
7279
    * BOB prevent jvac from optimizing out thread-group code from -10
7280

    
7281
2009-04-07 zzz
7282
    * NTCP: Prevent occasional NPE introduced in -4
7283
    * streamr: Synchronize DatagramMaker
7284

    
7285
2009-04-07 sponge
7286
    * SimpleTimer2, SimpleScheduler fixed so that the threads all run from
7287
      The main threadgroup, not in the current possible child threadgroup.
7288
      So long as any SimpleTimer2/SimpleScheduler is started *BEFORE* any
7289
      child threadgroups, the constructors are threadgroup safe. What would
7290
      be super cool is if they were to be all jailed within thier very own
7291
      threadgroup too, but, I2P isn't up to the task of this yet.
7292
    * Fixes to BOB to ensure the above is true.
7293

    
7294
2009-04-06 sponge
7295
    * Debugging to make SimpleTimer2 and SimpleScheduler easier to debug.
7296
    * Fix for the config files in the GUI from mathiasdm
7297

    
7298
2009-04-04 sponge
7299
    * Hopeful fixups to the infamous orpahned tunnel problem.
7300
    * BOB now 0.0.5
7301

    
7302
2009-04-04 zzz
7303
    * NTCP: Don't bid on messages too big to handle
7304

    
7305
2009-04-03 zzz
7306
    * Console:
7307
      - Fix bug with IE buttons not working,
7308
        because it sends the label instead of the value
7309
      - Display version of downloaded update
7310
    * Update:
7311
      - Change default to "Download and verify"
7312
      - Change news fetch default to 24h (was 12h)
7313

    
7314
2009-04-03 sponge
7315
    * Fix broken dependencies for BOB.jar
7316
    * Router build version incremented to 5.
7317

    
7318
2009-04-02 zzz
7319
    * Profiles:
7320
      - Remove unused calculators and RateStats:
7321
        CapacityCalculator, StrictSpeedCalculator, IsFailingCalculator;
7322
        sendFailureSize, processSuccessRate, processfailureRate, commErrorRate,
7323
        tunnelTestResponseTimeSlow
7324
      - Reduced number of Rates in these RateStats:
7325
        sendSuccessSize, receiveSize, rejectRate, failRate
7326
      - ~5KB/profile savings total
7327
      - Deflate speed calculation once an hour instead of once a day,
7328
        to improve fast tier selection
7329
      - Remove dup comment in persisted files
7330
    * StatisticsManager - effective in 0.7.2:
7331
      - Spoof uptime to 90m for all
7332
      - Change tunnel stats from 10m to 60m
7333
    * Transport:
7334
      - Maintain a router hash -> IP map in transport,
7335
        to support additional IP checks (unused for now)
7336
      - Catch error on pre-2.6 kernels
7337
      - Some concurrent conversion
7338
      - Fix an HTML error on peers.jsp
7339

    
7340
2009-04-01 zzz
7341
    * I2PTunnel: Fix tunnel close
7342
      http://forum.i2p/viewtopic.php?t=3231
7343

    
7344
2009-03-30 zzz
7345
    * I2CP:
7346
      - Implement BandwidthLimitsMessage
7347
      - Have i2psnark use new message, remove
7348
        build dependency on router
7349
    * Peer Selection:
7350
      - Limit peers to a max % of all tunnels with
7351
        router.maxTunnelPercentage=nn, default 33
7352
      - Add chart to tunnels.jsp to see results
7353

    
7354
* 2009-03-29  0.7.1 released
7355

    
7356
2009-03-29 Complication
7357
    * Update versions, package release
7358

    
7359
2009-03-27 zzz
7360
    * Add readme_fr.html
7361
    * License splash update
7362
    * Catch rare TunnelGatewayMessage AIOOB, root cause unknown
7363

    
7364
2009-03-24 zzz
7365
    * I2PTunnel:
7366
      - Add some warnings about new features
7367
      - Fix encrypted leasesets broken in about -4
7368
      - Suppress log error on manual stop
7369
      - Fix NPE on close of a tunnel not open yet
7370
    * Transport:
7371
      - Increase default bw to 64/32, burst 80/40
7372
    * Tunnels: Change some fragmentation errors to warns
7373

    
7374
2009-03-16 zzz
7375
    * help.jsp: Add some
7376
    * I2PTunnel: Cleanup
7377
    * I2PTunnelHTTPClient: Fix NPE on delayed open
7378
    * I2PTunnelHTTPServer: Maybe catch an NPE
7379
    * SOCKS: Allow .onion addresses for onioncat testing
7380
    * Tunnel: Catch a rare AIOOB
7381

    
7382
2009-03-09 zzz
7383
    * Client:
7384
      - Clean up retry code
7385
      - Bring I2CP listen error to the summary bar
7386
        http://forum.i2p/viewtopic.php?t=3133
7387
    * I2PSnark: Remove the http from the add torrent box
7388
    * I2PTunnel:
7389
      - Add persistent key option for standard and IRC clients
7390
      - Add delay-open option for clients
7391
      - Get regenerate-dest-on-reconnect working
7392
      - Add default key file name
7393
      - Add link to addressbook
7394
      - I2PSink: Send protocol byte
7395
    * OCMOSJ:
7396
      - Change from 5% reply requests to at least
7397
        once per minute, in hopes of reducing IRC drops
7398
      - More clean up of the cache cleaning
7399
    * Routerconsole: Don't OOM configpeer.jsp on huge blocklists
7400

    
7401
2009-02-26 zzz
7402
    * I2CP Client: Add support for muxing
7403
    * I2PTunnel:
7404
      - Add new IRCServer tunnel type
7405
      - Add SOCKS 4/4a support
7406
      - Catch OOMs in HTTPServer
7407
      - Name the IRCClient filter threads
7408
      - Port Streamr to I2PTunnel
7409
      - The beginnings of SOCKS UDP support
7410
    * Naming: Add reverse lookup by hash
7411
    * OCMOSJ: Clean up the cache cleaning
7412
    * Router: Move addShutdownTask from Router to I2PAppContext
7413
      so that apps can register more easily
7414
    * Routerconsole:
7415
      - Thread hard shutdown and restart requests from the routerconsole,
7416
        and add a delay even if no tunnels, to allow time for a UI response
7417
      - Sort the summary bar destinations
7418
      - Move dest-to-hash converter to new helper class so we can
7419
        use it in i2ptunnel
7420

    
7421
2009-02-22 sponge
7422
    * BOB: Orphan tunnel issue fix, bump BOB version
7423
    * bump to Build 6
7424

    
7425
2009-02-16 zzz
7426
    * Streaming lib: Plug timer leak, don't send keepalives
7427
      after close, don't disconnect hard after close
7428

    
7429
2009-02-15 zzz
7430
    * Add licenses to all packages
7431
    * I2PSession: Concurrent _messagesReceived
7432
    * i2psnark: tmp file removal try #3
7433
    * I2PTunnel:
7434
      - Don't buffer POST data in HTTPClient
7435
      - Display destination even when stopped
7436
      - Enable key generation, dest modification, and
7437
        hashcash estimation in the GUI
7438
      - Add new CONNECT client
7439
    * NetDb: Enforce 60s minimum leaseset publish interval
7440
    * Streaming lib:
7441
      - Plug connection leak
7442
      - Move ConEvent from SimpleTimer to SimpleScheduler
7443
      - Move RetransmissionTimer (ResendPacketEvent)
7444
        from SimpleTimer to new SimpleTimer2
7445
      - Move ActivityTimer and Flusher from SimpleTimer to RetransmissionTimer
7446
      - SimpleTimer2 allows specifying "fuzz" to reduce
7447
        timer queue churn further
7448
    * Susidns: Fix save of new dest broken in 0.7
7449
    * TunnelPool:
7450
      - Allow leasesets with reduced leases for robustness and startup speed
7451
      - Plug in-progress build leak
7452

    
7453
2009-02-07 zzz
7454
    * ClientConnectionRunner, Shitlist, TunnelDispatcher:
7455
      Update using concurrent
7456
    * Streaming ConnectionHandler: Bound SYN queue and
7457
      use concurrent to prevent blowup
7458
    * HTTP Proxy: Fix error msg for b32 addresses
7459
    * I2CP: Implement optional reduce tunnels on idle - not hooked
7460
      in to i2ptunnel GUI yet - still needs tweaks
7461
    * I2CP MessageReader: Prevent rare NPE
7462
    * I2CP Writer: Rewrite using concurrent
7463
    * i2psnark: Add torrent and connection count
7464
    * I2PTunnel & I2CP:
7465
      - Fix tunnel reduction/restore, hook in the GUI
7466
      - Hook leaseset encryption into the GUI
7467
      - Implement saves for all the new stuff
7468
      - Add cancel button
7469
      - Add b32 display for non-http servers
7470
      - Prep for CONNECT
7471
      - Fix error msg when connection goes away
7472
    * NetDb: Remove all DataPublisher stuff
7473
    * Wrapper: Remove dup timeout
7474

    
7475
2009-02-02 sponge
7476
    * Final? cleanups to Slackbuilds.
7477
    * ant target for Slackbuilds.
7478

    
7479
2009-02-01 sponge
7480
    * Slackbuild files... if we can have them for Debian, why not :-)
7481

    
7482
2009-02-01 zzz
7483
    * Convert some inner classes to static (findbugs)
7484
    * DataHelper.readLong(): Was returning -1 on EOF instead
7485
      of throwing exception
7486
    * i2psnark: Increase tunnels and pipeline to 3
7487
    * NTCP: Use a java.util.concurrent execution queue instead of
7488
      SimpleTimer for afterSend() to reduce lock contention
7489
    * Remove source from susimail.war, susidns.war, i2ptunnel.war (85KB)
7490
    * Routerconsole:
7491
      - Move common methods to new HelperBase class
7492
      - Make reseed link a button
7493
    * SimpleScheduler: New replacement for SimpleTimer when events
7494
      will not be rescheduled or cancelled, to reduce SimpleTimer
7495
      lock contention
7496
    * Tunnel Pool:
7497
      - Remove tunnel from participating if can't contact next hop
7498
      - Fail outbound build faster if can't contact first hop
7499
    * Wrapper: Remove dup timeout
7500

    
7501
2009-01-31 dream
7502
    * Debian files
7503

    
7504
2009-01-31 sponge
7505
    * One line BOB discarded interger fix
7506
      (not that it mattered at this point)
7507

    
7508
2009-01-25 zzz
7509
    * Build files:
7510
      - Don't bundle unneeded XML parser xercesImpl.jar (1MB)
7511
      - Don't include unneeded stuff in Copy, Delete, Exec.jar (300KB)
7512
    * I2CP:
7513
      Implement new I2CP message ReconfigureSessionMessage.
7514
      Will be used for tunnel reduction.
7515
    * I2PTunnel Edit Pages:
7516
      - Change default length to 2+0
7517
      - Cleanup helper code
7518
      - Prevent null spoofhost
7519
      - Stub out the following new options (C=client, S=server):
7520
        + Access list (S)
7521
        + Certificate type (S)
7522
        + Encrypted LeaseSet (S)
7523
        + New dest on idle restart (C)
7524
        + Tunnel closure on idle (C)
7525
        + Tunnel reduction on idle (C,S)
7526
    * I2PTunnel Socks:
7527
      - Add support for SOCKS to GUI
7528
      - Don't NPE on SOCKS 4, just close
7529
      - Don't have SOCKS build a new dest for every request
7530
      - Beginnings of SOCKS configuration by port
7531
      - HTML error msg for attempted HTTP access
7532
    * LeaseSet: Add encrypt/decrypt methods
7533
    * netdb.jsp: Don't show stats by default
7534
    * OCMOSJ: Bundle a reply when we switch tunnel or lease,
7535
      to detect failure sooner
7536
    * PublishLocalRouterInfoJob:
7537
      - Delay for 5m at startup
7538
      - Run every 20m (was 7.5m)
7539
    * RebuildRouterInfoJob: Don't run it
7540
    * Router: Add a keyring for decrypting leases
7541
    * Routerconsole: Add configkeyring.jsp
7542
    * SummaryHelper.getTransferred() move to DataHelper,
7543
      rename to formatSize(), use on tunnels.jsp
7544
    * Streaming, I2CP, Client Message sending:
7545
      Pass message timeout through new I2CP message
7546
      SendMessageExpiresMessage, so that the router
7547
      uses the same expiration as the streaming lib.
7548
      Should help reliability.
7549
    * Streaming: TCB control block sharing
7550

    
7551
* 2009-01-24  0.7 released
7552

    
7553
2009-01-24 Complication
7554
    * Update versions, package release
7555

    
7556
2009-01-17 zzz
7557
    * NTCP: Prevent two NTCP Pumpers
7558

    
7559
2009-01-14 zzz
7560
    * config.jsp: Fix burst seconds display
7561
    * HTTPClient: Fix per-tunnel settings for i2cp.gzip and
7562
      i2ptunnel.httpclient.send* (thx tino)
7563
    * i2psnark:
7564
      - Fix double completion message
7565
      - Add crstrack
7566
    * initialNews.xml: Add .de (thx echelon)
7567
    * Message: Always distribute an inbound msg back out
7568
      a tunnel to foil a possible latency-measuring attack
7569
      (welterde)
7570
    * Naming:
7571
      - Change base32 names to *.b32.i2p
7572
      - Add i2p.naming.hostsTxt.useB32 config
7573
    * profiles.jsp: Remove 1m column
7574
    * SAM: Don't build tests by default
7575
    * Streaming:
7576
      - Prevent a rare NPE
7577
      - Reduce initial RTT to 8s (was 10s)
7578
    * tunnels.jsp: Add netdb links
7579

    
7580
2009-01-08 zzz
7581
    * addressbook: Prevent Base32 hostnames
7582
    * build.xml: Remove readme_xx.html from updater
7583
    * configtunnels.jsp: Fix display of outbound backup count
7584
    * configupdate.jsp: Fix corruption of update URLs
7585
    * i2psnark: Recognize Robert 0.3 and 4
7586
    * ExploreJob/SearchJob - fix brokenness:
7587
      - Give each search a minimum of time even at the end
7588
      - Fix ExploreJob exclude peer list
7589
      - Always add floodfills to exclude peer list
7590
      - Don't queue keys for exploration or run ExploreJob
7591
        if floodfill
7592
      - Allow floodfills to return non-floodfills in
7593
        a DSRM msg so exploration works
7594
    * ExploreJob/SearchJob - more fixes:
7595
      - Disable ExploreKeySelectorJob completely, just have
7596
        StartExplorersJob select a random key if queue is empty
7597
      - Add netDb.alwaysQuery=[B64Hash] for debugging
7598
      - Queue results of exploration for more exploration
7599
      - Floodfills periodically shuffle their KBuckets, and
7600
        FloodfillPeerSelector sorts more keys, so that
7601
        exploration works well
7602
    * Shitlist: Reduce max time to 30m (was 60m)
7603
    * Streaming:
7604
      - Reduce default initial window size from 12 to 6,
7605
         to account for the MTU increase in the last release
7606
         and try to limit initial packet loss
7607
      - Reduce fast retransmit threshold from 3 to 2
7608
    * Transport: Don't shitlist a peer if we are at our
7609
      connection limit
7610

    
7611
2009-01-03 zzz
7612
    * config.jsp: Move the buttons up
7613
    * configservice.jsp: Clean up and fix the broken (?)
7614
      browser launch configuration
7615
    * i2psnark:
7616
      - Try again to remove the i2psnarkurl files on shutdown
7617
      - Sort torrents with a locale-based sort
7618
    * NetDb:
7619
      - Expire routers with introducers after 90m.
7620
        This should improve reachability to firewalled routers
7621
        by keeping introducer info current.
7622
      - Expire routers with no addresses after 90m.
7623
      - Convert to java concurrent
7624
    * Stats: Add router.memoryUsed, graph by default
7625
    * Summary bar: Remove spurious UDP warning on startup
7626
    * UpdateHandler: Make extensible for upcoming
7627
      torrent updater
7628

    
7629
2008-12-15 zzz
7630
    * Remove apps/ bogobot jdom pants q rome stasher syndie
7631

    
7632
2008-12-14 zzz
7633
    * Contexts: Add int getProperty(String prop, int default)
7634
    * I2PAppThread: Constructor fix
7635
    * More split classes into their own files for mkvore
7636
    * Streaming: Don't build test cases by default
7637
    * Summary bar: Replace links with buttons
7638
    * Transport:
7639
      - Cleanup max connections code
7640
      - Add i2np.udp.maxConnections
7641
      - Set max connections based on share bandwidth
7642
      - Add haveCapacity() that can be used for connection
7643
        throttling in the router
7644
      - Reject IBGW/OBEP requests when near connection limit
7645
      - Reduce idle timeout when near connection limit
7646
    * Tunnel request handler:
7647
      - Require tunnel.dropLoad* stats
7648
      - Speed up request loop
7649
    * I2CP, HostsTxtNamingService, I2PTunnel:
7650
      Implement Base32 Hash hostnames, via the naming service.
7651
      Names are of the form [52-characters].i2p, where
7652
      the 52 characters are the Base32 representation of our
7653
      256-byte hash. The client requests a lookup of the hash
7654
      via a brief I2CP session using new I2CP request/reply
7655
      messages. The router looks up the leaseset for the hash
7656
      to convert the hash to a dest. Convert the I2PTunnel
7657
      'preview' links to use Base32 hostnames as a
7658
      demonstration.
7659

    
7660
2008-12-08 zzz
7661
    * ATalk: Move from core to apps
7662
    * Blocklists: enable by default, include blocklist file
7663
      in new installs
7664
    * Build: Add findbugs target
7665
    * Cleanup of removed netdb stats
7666
    * Console:
7667
      - Don't display restart button if no wrapper
7668
      - Remove PRNG stats
7669
    * Eepsite: Disable jetty webapps by default for new installs
7670
    * i2psnark:
7671
      - Add default i2psnark.config for new installs
7672
      - Remove wishlist link
7673
      - Recognize robert and i2psnarkxl clients
7674
      - Increase max files to 256
7675
    * Increase standalone heap size to 128MB
7676
    * NetDb: Split classes into their own files for mkvore
7677
    * PeerManager: Fix NPE on early shutdown
7678
    * SusiDNS: Add textareas
7679
    * Transport:
7680
      - Fixes, avoid NPEs, and cleanups when NTCP and/or UDP transports disabled
7681
      - More TCP removal cleanup
7682
      - Clean up bandwidth limiting, centralize defaults
7683
      - Force burst to be >= limit
7684
      - Increase default bw to 48/24, burst 64/32
7685
    * Tunnels: Avoid two NPEs on corrupt fragments
7686

    
7687
2008-12-01 zzz
7688
    * i2psnark:
7689
      - Refactor to allow running a single Snark without a SnarkManager again,
7690
        by moving some things from SnarkManager to I2PSnarkUtil,
7691
        having Snark call completeListener callbacks,
7692
        and having Storage call storageListener callbacks.
7693
        This is in preparation for using Snark for router updates.
7694
        Step 2 is to allow multiple I2PSnarkUtil instances.
7695
      - Big rewrite of Storage to open file descriptors on demand, and
7696
        close them when unused, so we can support large numbers of torrents.
7697

    
7698
    * i2psnark:
7699
      - Remove static instances of I2PSnarkUtil, ConnectionAcceptor,
7700
        and PeerCoordinatorSet
7701
      - Convert static classes in Snark to listeners
7702
      - Fix Snark to work in single torrent mode again
7703
      - Should now work with multiple single Snarks
7704

    
7705
    * i2psnark:
7706
      - Use new I2PAppThread that does not call global listeners on OOM,
7707
        so that OOMing apps will not shutdown the whole router.
7708

    
7709
    * i2psnark:
7710
      - Don't create SnarkManager instance until first call,
7711
        so it doesn't create the i2psnark dir, read the config,
7712
        etc., for single Snark instances.
7713
      - Don't read i2psnark.config twice; fix setting
7714
        i2psnark.dir
7715
      - More Snark constructor changes for calling from router
7716
      - Make max connections per torrent configurable
7717

    
7718
    * SAM:
7719
      - Use new I2PAppThread that does not call global listeners on OOM,
7720
        so that OOMing SAM will not shutdown the whole router.
7721

    
7722
* 2008-12-01  0.6.5 released
7723

    
7724
2008-12-01 Complication
7725
    * Update versions, package release, fix typo in comment
7726

    
7727
2008-11-26 zzz
7728
    * Fix Windows UrlLauncher
7729

    
7730
2008-11-21 zzz
7731
    * Cache DNS and negative DNS for 5m (was 1m and forever)
7732
    * Delay shitlist cleaner at startup
7733
    * Strip wrapper properties from client config
7734
    * Define multiple cert type
7735
    * Prohibit negative maxSends in streaming
7736
    * HTML fixup on configtunnels.jsp
7737
    * Increase wrapper exit timeout from default 15s to 30s
7738

    
7739
2008-11-20 zzz
7740
    * I2PTunnel: Handle missing fields in edit pages better
7741
    * Move DummyNetworkDatabaseFacade to his own file
7742
      to help the build dependencies
7743
    * Drop old tcp transport and old tunnel build sources
7744
    * EepGet:
7745
      - Better handling of 504 gateway timeout
7746
        (keep going up to limit of retry count rather
7747
         than just one more partial fetch)
7748
      - Add -t cmd line option for timeout
7749
      - Better handling of 403, 409, 503 errors
7750
      - Don't keep going after unknown return code
7751
      - Don't delay before exiting after a failure
7752

    
7753
2008-11-15 zzz
7754
    * Build files:
7755
      - Don't die if depend not available
7756
      - Only verify Jetty hash once
7757
      - Add streaming lib tests to depend task
7758
    * I2CP Compression:
7759
      - Add i2cp.gzip option (default true)
7760
      - Add compression stats
7761
      - Don't bother compressing if really small
7762

    
7763
2008-11-13 zzz
7764
    * Streaming:
7765
      - Add more info to Connection.toString() for debugging
7766
      - Fix lifetimeMessages{Sent,Received} stats
7767
      - Reduce RTT damping to 0.875 (was 0.9)
7768
      - Add a stream.con.initialRTT.{in,out} stats
7769
    * Build files:
7770
      - Use the depend task with caching for more accurate dependencies
7771
      - Make sure the routerconsole gets the latest router version
7772
      - Fix addressbook repeated builds
7773
    * HTTPClient: Add config options to pass Via, Referer,
7774
      and User-Agent through
7775
    * Blocklists: Fix lists with hashes only
7776

    
7777
2008-11-11 zzz
7778
    * Streaming - Fix several bugs and improve performance
7779
      when the initial data is larger than one MTU,
7780
      e.g. HTTP GETs with large URLs, CGI params or cookies,
7781
      or large HTTP POSTS:
7782
      - Don't reject additional packets received without a
7783
        send stream ID (i.e. sent before the SYN ACK was received)
7784
      - Put unknown non-SYN packets on the SYN queue also
7785
        so they won't be rejected
7786
      - Reduce flusher delay to 250ms (was 500)
7787
      - Flush unless window is full (was window is non-empty)
7788
    * Streaming: Enforce a minimum MTU of 512
7789
    * I2PTunnel: Change "interactive" max window size to 16 (was 1)
7790
    * NetDb: Fix a deadlock caused by last checkin
7791

    
7792
2008-11-09 zzz
7793
    * build.xml: Build speedups:
7794
      - Don't distclean in the updaterRouter target
7795
      - Don't make prepUpdate and prepupdateSmall depend
7796
        on distclean
7797
      - Don't make susimail build always clean
7798
      - Make pkg depend on distclean to be sure
7799
      - Clean out more routerconsole and susidns files in 'ant clean'
7800
      - i2ptunnel, routerconsole, susidns:
7801
        Only build WEB-INF when necessary
7802
      - systray: Only build jar when necessary
7803
      - Don't build i2psnark standalone for the updater target
7804
    * configclients.jsp: Provide a link when starting a webapp
7805
    * configtunnels.jsp:
7806
      - Code cleanup
7807
      - Add 4-hop option
7808
      - Remove +/- 0-2 option
7809
    * javadoc: Add some more package.html files
7810
    * I2PTunnelHTTPServer: Put the requestor's dest hash
7811
      in the request headers
7812
    * Jetty: Add a I2PRequestLog class to log request dest hash
7813
    * NetDb: Don't drop routerInfos if we have connectivity
7814
      issues or other problems
7815
    * NTCP: Lower idle timeout to 10m (was 15m)
7816
    * Routerconsole: Replace wtf msg w/ something nicer
7817
    * Tunnel BuildHandler: add config router.participantOnly,
7818
      set to true to refuse OBEP and IBGW roles, should
7819
      reduce connections significantly if set.
7820

    
7821
2008-11-02 zzz
7822
    * Certificates:
7823
      - Add a signed Certificate type
7824
      - Add a main() to PrivateKeyFile to generate
7825
        Destinations with various Certificate types
7826
      - Add a VerifiedDestination class to check Certificates
7827
        of various types
7828
      - Add a HashCash library from http://www.nettgryppa.com/code/
7829
        (no distribution restrictions)
7830
      - Allow non-null Certificates in addressbook
7831
    * I2PTunnel: Move some wayward stats to the I2PTunnel group
7832
    * NamingServices: Implement caching in the abstract class
7833
    * NewsFetcher: Fix last updated time
7834
    * Streaming: Increase MTU to 1730 (was 960);
7835
      see ConnectionOptions.java for analysis
7836
    * Throttle: Reduce default max tunnels to 2000 (was 2500)
7837
    * clients.config: Disable SAM and BOB by default for new installs
7838

    
7839
2008-10-26 zzz
7840
    * config.jsp: Add more help
7841
    * peers.jsp: Clean up 'Listening on' formatting
7842
    * profiles.jsp: Don't override locale number format
7843
    * netdb.jsp: Indicate if hidden
7844
    * summary.jsp: Indicate if hidden
7845
    * i2ptunnel/edit.jsp: Disable word wrap in textarea
7846
    * Blocklist: Change logging from ERROR to WARN
7847
    * FloodfillMonitor:
7848
       - Fix ff count (we forgot ourselves)
7849
       - Don't become ff if hidden
7850
    * HandleFloodfillDatabaseLookupMessageJob:
7851
      Send back your routerinfo with the DSRM if not ff to
7852
      spread the word that you aren't ff anymore
7853
    * I2Ping:
7854
       - Add -n count option
7855
       - Add rtt output
7856
       - Enhance help
7857
       - Fix option handling
7858
    * More findbugs cleanups
7859
    * NetDb:
7860
       - Fix behavior when router.isHidden=true
7861
       - Delay StartExplorersJob for 10m at startup
7862
       - Update dbLookup profile stats in FloodOnlySearchJob
7863
         and FloodfillVerifyStoreJob
7864
       - Fix response time store in profile in SearchJob
7865
    * Stats:
7866
       - Remove unused tunnel.buildSuccess and tunnel.buildFailure
7867
       - Remove tunnel.buildRequestTime and 5m rate stats from
7868
         netDb, effective in next release
7869
    * UDP:
7870
       - Don't do peer tests when hidden
7871
       - Don't offer to introduce when hidden
7872
       - Don't continually rebuild routerInfo when hidden
7873
       - Don't continually rebuild routerInfo when
7874
         i2np.udp.internalPort is set but i2np.udp.port is not
7875
       - Remove some unused functions
7876

    
7877
2008-10-20 zzz
7878
    * configclients.jsp: Handle clients with no args
7879
    * index.jsp: Add readme_nl.html (thanks mathiasdm!),
7880
      readme_sv.html (thanks hottuna!)
7881
    * Big findbugs cleanup
7882
    * Client: Prevent a race causing session reconnect
7883
    * FloodfillMonitor:
7884
       - Don't become ff if clock skew is high
7885
       - Rebuild routerinfo immediately when ff status changes
7886
    * FloodOnlySearchJob: Recover better if the floodfills
7887
      you know are no longer floodfill or are gone
7888
    * Installer: Bump min JRE to 1.5
7889
    * ShellCommand: Fix main()
7890

    
7891
2008-10-14 zzz
7892
    * index.jsp: Add multilanguage support for readme.html;
7893
      add readme_de.html (thanks devzero!)
7894
    * configupdate.jsp, configadvanced.jsp:
7895
      Disable word wrap in textareas
7896
    * install*.txt: Update for 1.5
7897
    * summary.jsp: Remove failing peer count
7898

    
7899
2008-10-10 zzz
7900
    * Profiles: Reduce reject penalty in
7901
      capacity calculation to avoid a congestion collapse
7902
    * Throttle: Change reject to BANDWIDTH from CRIT on shutdown
7903
      for improved anonymity
7904
    * Tunnels: Implement random discard to enforce share limit
7905
    * Tunnel Tests: Add time for outbound delay, to avoid
7906
      congestion collapse
7907
    * UDPPacketReader: Adjust logging
7908
    * build files: Change to source=1.5, target=1.5
7909
    * configpeer.jsp: Table cleanup
7910
    * i2psnark: Change default tunnel length from 1+1 to 2+0
7911
    * peers.jsp: Change <,> to in,out for UDP
7912

    
7913
2008-10-09 sponge
7914
    * Update version to -3
7915
    * BOB database threadlocking fixes
7916

    
7917
2008-10-08 sponge
7918
    * Update version to -2
7919
    * Bugfixes and additions to BOB
7920

    
7921
2008-10-07 sponge
7922
    * Bugfixes and additions to streaming.
7923
    * Added SimpleStore class in utils.
7924
    * Fixed SimpleTimer class to allow exit.
7925
    * BOB (Basic Open Bridge) added.
7926

    
7927
* 2008-10-05  0.6.4 released
7928

    
7929
2008-10-05 Complication
7930
    * Update versions, package release
7931

    
7932
2008-09-29 zzz
7933
    * i2psnark: Add codevoid link, remove mastertracker
7934

    
7935
2008-09-23 zzz
7936
    * config.jsp: Add some reachability help
7937
    * configpeer.jsp: Add blocklist info
7938
    * help.jsp: Add link to German FAQ
7939
    * tunnels.jsp: Fix inactive participating count
7940
    * SearchReplyJob: Don't look up references to shitlisted peers
7941
    * TunnelPeerSelector: Avoid a peer for 20s after a reject or timeout
7942

    
7943
2008-09-20 zzz
7944
    * NetDb: Fix the totally broken "check new routers against blocklist"
7945
      code from 3 checkins ago
7946
    * tunnels.jsp: Sort participating tunnels by usage, display rate
7947

    
7948
2008-09-19 zzz
7949
    * Tunnels:
7950
      - Add missing message accounting for inbound gateways,
7951
        we were underestimating participating traffic because of it,
7952
        and the tunnels were classified "inactive"
7953
      - Add participating tunnel role on tunnels.jsp
7954

    
7955
2008-09-18 zzz
7956
    * Throttle:
7957
      - Correctly check inbound and outbound total bw limits separately
7958
      - Fix up and actually use the tunnel.participatingMessageCount stat,
7959
        favor it if lower than the total bw stat, so that
7960
        client traffic isn't included for throttle decisions
7961
      - Reduce min message count from 60 to 40
7962
    * Tunnel Dispatcher:
7963
      - Add tunnel.participatingBandwidth stat
7964
      - Remove all 3h and 24h stats
7965

    
7966
2008-09-15 zzz
7967
    * FloodOnlySearchJob:
7968
      - Ask non-floodfill peers if we don't know any floodfills
7969
      - Lookup hashes in the DatabaseSearchReplyMessage if we
7970
        don't know enough floodfills
7971
    * NetDb: Check new routers against blocklist
7972
    * Router: Shutdown clients first
7973
    * Throttle:
7974
      - Use 60s rather than 10m tunnel.participatingMessageCount stat
7975
      - Fix a summary bar message
7976
    * Tunnel Dispatcher: Update tunnel.participatingMessageCount
7977
      every 20s, rather than at tunnel expiration, to maintain
7978
      a more current stat
7979
    * Tunnel Pool:
7980
      - Prevent excess zero-hop tunnels
7981
      - Always wait before looping in BuildExecutor
7982
    * configlogging.jsp: Increase box width
7983
    * logs.jsp: Remove unused connection log, cut wrapper log output in half
7984

    
7985
2008-09-12 zzz
7986
    * Blocklist: Fix a log message format
7987
    * HarvesterJob: Don't instantiate if disabled
7988
    * i2psnark:
7989
      - Add config i2psnark.linkPrefix to enable access to completed
7990
        torrents from a different machine - examples:
7991
           i2psnark.linkPrefix=file://///localserver/path/to/files/
7992
           i2psnark.linkPrefix=http://localwebserver/path/
7993
        (Stop i2psnark, add to i2psnark.config, restart)
7994
      - Remove Galen and NickyB trackers
7995
    * NetDb: Add netDb.exploreKeySet stat
7996
    * netdb.jsp: Add parameter ?r=xxxxxx to view a single routerinfo,
7997
      and ?r=. to view our own; change links on other pages too
7998
    * Transport: Make 0.0.0.0/8 and 169.254.0.0/16 private
7999

    
8000
2008-09-06 zzz
8001
    * EepGet command line: Fix byte counts after a failed resume
8002
    * NTCP: Mark unreachable on outbound connection timeout
8003
    * Shitlist: Fix partial shitlisting (still unused though)
8004
    * Summary Bar: Warn if firewalled and floodfill
8005
    * Throttle: Combine current and last bw measurement,
8006
      reduce default max tunnels to 2500 (was 3000)
8007
    * Tunnel BuildHandler: Logging cleanup
8008
    * UpdateHandler: Cleanup, clarify failure message
8009
    * DataHelper: Prepare for 999 day uptime :)
8010

    
8011
2008-08-29 zzz
8012
    * Tunnel BuildExecutor: Debug cleanup
8013
    * Profiles: Penalize capacity when tunnel build request times out
8014
    * Shutdown: Call the shutdown hooks before the router shutdown
8015
      rather than after
8016
    * Stats: Remove tunnel.Bps.* stats when the tunnel pool is closed
8017

    
8018
2008-08-27 zzz
8019
    * Floodfill Peer Selector: Prefer already-connected floodfill
8020
      peer for direct RouterInfo stores, to mimimize floodfill
8021
      connections
8022
    * Peer Profiles: Classify connected peers as "active",
8023
      which will help improve the fast pool
8024
    * Transport Manager: Add isEstablished(Hash)
8025
    * NTCP: Reduce max idle time from 20m to 15m
8026
    * NetDb stats: Post-0.6.3 clean up
8027

    
8028
* 2008-08-24  0.6.3 released
8029

    
8030
2008-08-24 Complication
8031
    * Update versions, package release
8032

    
8033
2008-08-20 zzz
8034
    * Blocklists: Handle blank lines and \r\n in blocklist.txt
8035
    * NTCP: Add connection limit, set by i2np.ntcp.maxConnections,
8036
      default is 500 (very high for now)
8037
    * Persistent data store: Increase write limit from 300 to 600
8038
      so floodfill routers don't get backed up
8039

    
8040
2008-08-13 zzz
8041
    * i2psnark: Fix OOM vulnerability by checking incoming message length
8042
      (thanks devzero!)
8043

    
8044
2008-08-04 zzz
8045
    * Floodfill Peer Selector:
8046
      - Avoid peers whose netdb is old, or have a recent failed store,
8047
        or are forever-shitlisted
8048

    
8049
2008-07-30 zzz
8050
    * Blocklists:
8051
      - New, disabled by default, except for blocking of
8052
        forever-shitlisted peers. See source for instructions
8053
        and file format.
8054
    * Transport - Reject peers from inbound connections:
8055
      - Check IP against blocklist
8056
      - Check router hash against forever-shitlist, then block IP
8057

    
8058
2008-07-16 zzz
8059
    * configpeer.jsp: New
8060
    * i2psnark: Open completed files read-only the first time
8061
    * profiles.jsp: Show bonuses, link to configpeer.jsp
8062
    * PRNG: Move logging from wrapper to router log
8063
    * SSU:
8064
        Don't proactively reconnect until 30m idle, so
8065
        we don't lose introducer tags prematurely
8066

    
8067
2008-07-16 Oldaris
8068
    * Imports cleanup
8069

    
8070
2008-07-07 zzz
8071
    * i2psnark:
8072
      - Repair corrupted files with wrong length rather than die
8073
      - Register shutdown hook to properly shutdown torrents when
8074
        the router shuts down, hopefully will reduce corruption
8075
      - Add Galen tracker
8076
      - Add a note about how to change directory
8077
    * HTTP Proxy: Don't show jump links for unknown jump hosts
8078
    * KeyManager:
8079
      - Don't write router key backup when leaseSet keys are updated
8080
      - Synchronize to prevent concurrent writes (thanks Galen!)
8081
      - Backup keys every 7 days instead of every 5 minutes
8082
    * LoadTestManager: Don't instantiate, it's disabled
8083
    * Router console: Flag placeholder pages as noncacheable
8084
    * Streaming lib:
8085
      - Change some logging from WARN to INFO
8086
      - Clean up toString()
8087
    * SSU:
8088
      - Try to pick better introducers by checking shitlist,
8089
        wasUnreachable list, failing list, and idle times
8090
      - To keep introducer connections up and valid,
8091
        periodically send a "ping" (a data packet with no data and no acks)
8092
        to everybody that has been an introducer in the last two hours
8093
      - Add a stat udp.receiveRelayRequestBadTag, make udp.receiveRelayRequest only for good ones
8094
      - Remove some 60s and 5m stats, leave only the 10m ones
8095
      - Narrow the range for the retransmit time after an allocation fail
8096
      - Adjust some logging
8097

    
8098
2008-06-30 zzz
8099
    * configstats.jsp: Fix NPE when no stats checked (thanks nothome27!)
8100
    * i2psnark:
8101
      - Fix NPE caused by race (thanks echelon!)
8102
      - Add mastertracker, remove de-ebook
8103
    * NTCP:
8104
      - Try to fix 100% CPU, caused perhaps by JVM NIO bug...
8105
      - Fix failsafe stats
8106
    * PersistentDataStore: More leaseSet code cleanup
8107
    * SimpleTimer: Change congestion message from error to warn
8108

    
8109
2008-06-24 zzz
8110
    * FloodfillMonitorJob: Change range from 5-7 to 4-6
8111
    * NTCP: Remove getIsInbound(), duplicate of isInbound()
8112
    * PersistentDataStore: Don't try to remove nonexistent leaseSet files
8113
    * Router console: add placeholder pages for i2psnark, i2ptunnel,
8114
      susidns, and susimail for use when the .wars are not running
8115
    * Streaming lib: Increase max window size to 128
8116

    
8117
2008-06-22 welterde
8118
    * Optimize I2PDatagramDissector
8119

    
8120
2008-06-20 zzz
8121
    * configclients.jsp: Add start button for clients and webapps.
8122
    * PRNG: Add two stats
8123
    * Summary bar:
8124
      - Display Warning for TCP private IP address
8125
      - Display PRNG stats
8126
    * OutNetMessage: Change cache logging from WARN to INFO
8127

    
8128
2008-06-17 zzz
8129
    * Comm System: Add new STATUS_HOSED for use when UDP bind fails
8130
    * Summary bar: Display helpful errror message when UDP bind fails
8131
    * UDP: Don't bid when UDP bind fails
8132
    * configclients.jsp: Implement saves for clients and webapps.
8133

    
8134
2008-06-16 zzz
8135
    * UDP: Prevent 100% CPU when UDP bind fails;
8136
      change bind fail message from ERROR to CRIT
8137
    * Refactor LoadClientAppsJob.java, move some functions to new
8138
      ClientAppConfig.java, to make them easily available to
8139
      new configclients.jsp
8140
    * RouterConsoleRunner: Use a new config file, webapps.config,
8141
      to control which .wars in webapps/ get run. Apps are enabled
8142
      by default; disable by (e.g.) webapps.syndie.startOnLoad=false
8143
      Config file is written if it does not exist.
8144
      Implement methods for use by new configclients.jsp.
8145
    * configclients.jsp: New. For both clients and webapps.
8146
      Saves are not yet implemented.
8147

    
8148
2008-06-10 zzz
8149
    * Floodfill: Add new FloodfillMonitorJob, which tracks active
8150
      floodfills, and automatically enables/disables floodfill on
8151
      Class O routers to maintain 5-7 total active floodfills
8152
    * NetDb Stats:
8153
      - Remove several more stats
8154
      - Don't publish bw stats in first hour of uptime
8155
      - Publish floodfill stats even if other stats are disabled
8156
      - Changes not effective until 0.6.2.1 to provide cover.
8157
    * Throttle: Use BANDWIDTH rather than CRIT as the rejection reason at
8158
      startup, so peers don't list us as failing.
8159
    * graphs.jsp: Fix a bug where it tries to display the combined
8160
      bandwidth graph when it isn't available
8161

    
8162
2008-06-09 zzz
8163
    * Propagate i2.i2p.i2p-0.6.2.1-pre branch to i2p.i2p
8164

    
8165
2008-06-09 zzz
8166
    * Reachability: Restrict peers with no SSU address at all from inbound tunnels
8167
    * News:
8168
      - Add display of last updated and last checked time
8169
        on index.jsp and configupdate.jsp
8170
      - Add a function to get update version (unused for now)
8171
    * config.jsp: Add another warning
8172

    
8173
2008-06-07 zzz
8174
    * NetDb: Tweak some logging on lease problems
8175
    * Shitlist:
8176
      - Add shitlistForever() and isShitlistedForever(), unused for now
8177
      - Sort the HTML output by router hash
8178
    * netdb.jsp:
8179
      - Sort the lease HTML output by dest hash, local first
8180
      - Sort the router HTML output by router hash
8181

    
8182
2008-06-06 zzz
8183
    * LeaseSet:
8184
      - Sort the leases by expiration date in TunnelPool.locked_buildNewLeaseSet()
8185
        to make later LeaseSet comparisons reliable. This cleans up the code too.
8186
      - Fix broken old vs. new LeaseSet comparison
8187
        in ClientConnectionRunner.requestLeaseSet(),
8188
        so that we only sign and publish a new LeaseSet when it's really new.
8189
        Should reduce outbound overhead both in LeaseSet publishing and LeaseSet bundling,
8190
        and floodfill router load, since locked_buildNewLeaseSet() generates
8191
        the same LeaseSet as before quite frequently, often just seconds apart.
8192

    
8193
2008-06-05 zzz
8194
    * LeaseSet - code cleanup:
8195
      - Add exception to enforce max # of leases = 6, should be plenty
8196
      - Rewrite TunnelPool.locked_buildNewLeaseSet() so it doesn't add lots of
8197
        leases and then immediately remove them again, triggering
8198
        the new leaseSet size exception
8199
      - Remove the now unused LeaseSet.removeLease(lease) and
8200
        LeaseSet.removeLease(index)
8201
      - Store first and last expiration for efficiency
8202
    * Peer Profiles - Preparation for using bonuses:
8203
      - Use CapacityBonus rather than ReachablilityBonus in the Capacity calculation
8204
      - Persist CapacityBonus rather than ReachabilityBonus
8205
      - Include SpeedBonus in the Speed calculation
8206
      - Prevent negative values in Speed and Capacity when using bonuses
8207
      - Clean up SpeedCalculator.java
8208
    * HTTP Proxy error pages: Don't say eepsites are 'temporarily' down since we don't know
8209
    * Add some config files for a future small distribution
8210
    * configtunnels.jsp: Add warnings for <= 0 and >= 4 hop configurations
8211

    
8212
2008-06-01 zzz
8213
    * Client Apps: Add new parameter for clients.config,
8214
        clientApp.x.startOnLoad=false, to disable loading
8215
        (for SAM for example). Defaults to true of course.
8216
    * Logging: Move common WARN output to DEBUG so we can ask users to
8217
        set the default log level to WARN without massive spewage
8218
    * ProfileOrganizer: Restrict !isSelectable() (i.e. shitlisted) peers from the High Capacity tier,
8219
      not just the Fast tier, since we don't use them for tunnels anyway
8220
    * SAM: Add some compiler flexibility to two obscure makefiles
8221
    * i2psnark: Change displayed peer idents to match that shown by bytemonsoon
8222
      (sponge's suggestion)
8223
    * summary bar:
8224
      - Hide ident, provide a tooltip and a link
8225
      - Add a warning if you are firewalled and class O
8226

    
8227
2008-06-07 Complication
8228
    * Fix version in news.xml so it could be published
8229

    
8230
* 2008-06-07  0.6.2 released
8231

    
8232
2008-06-07 Complication
8233
    * Write announcement and prepare for release
8234

    
8235
2008-05-29 zzz
8236
    * Fix up initialNews.xml
8237

    
8238
2008-05-27 zzz
8239
    * Transport:
8240
      - NTCP and UDP: Don't bid to connect to private IP addresses, mark unreachable
8241
      - UDP: Don't bid when IP address missing, mark unreachable
8242

    
8243
2008-05-26 zzz
8244
    * Throttle: Set a default router.maxParticipatingTunnels = 3000 (was none)
8245
    * Stats: Add a fake uptime if not publishing stats, to get participating tunnels
8246
    * build.xml:
8247
      - Add an updaterSmall target which includes only the essentials
8248
      - Add an updaterRouter target which includes only i2p.jar and router.jar
8249
      - Clean up the build file some
8250
      - Remove empty eepsite/ and subdirs from i2pupdate.zip
8251
    * configtunnels.jsp: Add warning
8252
    * i2psnark: Catch a bencode exception (bad peer from tracker) earlier
8253
    * i2psnark-standalone: Fix exception http://forum.i2p/viewtopic.php?p=12217
8254

    
8255
2008-05-22 welterde
8256
    * Change jetty download location in build script
8257

    
8258
2008-05-20 zzz
8259
    * Reachability:
8260
      - Call the previously unused profile.tunnelTestFailed()
8261
        (redefined to include a probability argument)
8262
        and severely downgrade a peer's capacity upon failures,
8263
        depending on tunnel length and direction.
8264
        This will help push unreachable and malicious peers
8265
        out of the High Capacity tier.
8266
      - Put recent fail rate on profiles.jsp
8267
    * ProfileOrganizer: Logging cleanup
8268
    * eepsite_index.html: Update add-host and jump links
8269
    * HTTP Proxy: Remove trevorreznik jump server from list
8270

    
8271
2008-05-20 welterde
8272
    * implemented PrivateKeyFile
8273

    
8274
2008-05-18 zzz
8275
    * Throttle: Reject tunnels for first 20m uptime (was 10m)
8276
    * TunnelPeerSelectors:
8277
       - Re-enable strict ordering of peers,
8278
         based on XOR distance from a random hash
8279
       - Restrict peers with uptime < 90m from tunnels (was 2h),
8280
         which is really 60m due to rounding in netDb publishing.
8281
    * i2psnark:
8282
       - Limit max pipelined requests from a single peer to 128KB
8283
         (was unlimited; i2p-bt default is 5 * 64KB)
8284
       - Increase max uploaders per torrent to 6 (was 4)
8285
       - Reduce max connections per torrent to 16 (was 24) to increase
8286
         unchoke time and reduce memory consumption
8287
       - Strictly enforce max connections per torrent
8288
       - Choke more gradually when over BW limit
8289
    * help.jsp: Add a link to the FAQ
8290
    * peers.jsp: Fix UDP direction indicators
8291
    * hosts.txt: Add update.postman.i2p
8292

    
8293
2008-05-12 zzz
8294
    * Outbound message:
8295
      - Tweak the cache key for efficiency
8296
    * Stats:
8297
      - Require two udp stats when stats.full=false, caused NPE on peers.jsp
8298
    * Summary bar:
8299
      - Add messages when dropping tunnel requests due to load
8300
    * Update Handler:
8301
      - Add postman to the list
8302
    * i2psnark:
8303
      - Randomize the PeerCheckerTask start times to make global limiting
8304
        work better
8305
      - Calculate bw limits using 40s rather than 4m averages to make
8306
        bw limiting work better
8307
      - Change default bw limit from uplimit/3 to uplimit/2 due to
8308
        overhead reduction from the leaseset bundling change
8309
    * libjbigi:
8310
      - Add documentation on dynamic build option
8311
      - Add two speed tests to the build script
8312
      - Clean up the build script, make it easier to build dynamic
8313

    
8314
2008-05-10 zzz
8315
    * NetDb: Don't write the my.info file to disk, it isn't used for anything
8316
    * Stats:
8317
      - Simplify oldstats.jsp if no events in a stat
8318
      - Fix the hosed inNetPool.droppedDeliveryStatusDelay stat
8319
        (caused by an SSU hack)
8320
    * Update Handler:
8321
      - Add option to download and verify only
8322
      - Add distinct error message if version check fails
8323

    
8324
2008-05-09 welterde
8325
    * Add an update URL to the list
8326

    
8327
2008-05-07 zzz
8328
    * Reachability:
8329
      - Restrict peers requiring introducers from inbound tunnels,
8330
        since it's slow and unreliable... and many of them advertise
8331
        NTCP, which seems unlikely to work
8332
      - Provide warning on summary bar if firewalled with inbound NTCP enabled
8333
    * Stats: Remove the bw.[send,recv]Bps[1,15]s stats unless
8334
      log level net.i2p.router.transport.FIFOBandwidthLimiter >= WARN
8335
      at startup (you didn't get any data unless you set the log level anyway)
8336
    * oldstats.jsp: Don't put 2 decimal places on integer event counts
8337
    * Remove the Internals link from the menu bar
8338
    * i2psnark: Extend startup delay from 1 to 3 minutes
8339

    
8340
2008-05-06 welterde
8341
    * HTTP Proxy: Add i2jump.i2p jump service
8342

    
8343
2008-05-05 zzz
8344
    * NetDb Stats: Cleanup of commented out stats
8345
    * Outbound message:
8346
      - Fix a couple of tunnel cache cleaning bugs
8347
      - Cache based on source+dest pairs rather than just dest
8348
      - Send the reply leaseSet only when necessary,
8349
        rather than all the time (big savings in overhead)
8350
      - Enable persistent lease selection again
8351
      - Logging tweaks
8352
    * Reachability:
8353
      - Restrict <= .32 SSU-only peers from inbound tunnels,
8354
        since they don't know if they are unreachable
8355
      - Have SSU bid aggressively when it has less than 3 peers, so
8356
        we can determine our IP address and do peer testing.
8357
        Otherwise a router may never determine its IP address or reachability status.
8358
    * Summary bar:
8359
      - Add reachability status
8360
      - Add participating tunnel acceptance status
8361
    * Throttle: Reject tunnels for first 10m uptime
8362
    * I2PTunnel: Change default outproxy to false.i2p
8363
    * profiles.jsp: Add router version
8364

    
8365
* 2008-04-26  0.6.1.33 released
8366

    
8367
2008-04-20 zzz
8368
    * Outbound message/Reachability:
8369
      - Fix a bug from -19 causing the persistent lease selection
8370
        removed in -17 to be back again
8371
      - Use netDb-listed-unreachable instead of detected-unreachable
8372
        for exclusion of unreachable peers from selected leases,
8373
        as there are potential anonymity problems with using
8374
        detected-unreachable
8375
      - Tweak logging some more
8376
    * NetDb stats: Remove a couple more including the inefficient stat_identities
8377

    
8378
2008-04-17 zzz
8379
    * Reachability:
8380
      - Track unreachable peers persistently
8381
        (i.e. separately from shitlist, and not cleared when they contact us)
8382
      - Exclude detected unreachable peers from inbound tunnels
8383
      - Exclude detected unreachable peers from selected leases
8384
      - Exclude detected unreachable floodfill peers from lookups
8385
      - Show unreachable status on profiles.jsp
8386

    
8387
2008-04-16 zzz
8388
    * SSU/Reachability:
8389
      - Extend shitlist time from 4-8m to 40-60m
8390
      - Add some shitlist logging
8391
      - Don't shitlist twice when unreachable on all transports
8392
      - Exclude netDb-listed unreachable peers from inbound tunnels;
8393
        this won't help much since there are very few of these now
8394
      - Remove 10s delay on inbound UDP connections used for the
8395
        0.6.1.10 transition
8396
      - Track and display UDP connection direction on peers.jsp
8397
      - Show shitlist status in-line on profiles.jsp
8398

    
8399
2008-04-15 zzz
8400
    * SSU Reachability/PeerTestManager:
8401
      - Back out strict peer ordering until we fix SSU
8402
      - Back out persistent lease selection until we fix SSU
8403
      - Fix detection of UDP REJECT_UNSOLICITED by recording status on expiration
8404
      - Increase known Charlie time to 10m; 3m wasn't enough
8405
      - Don't continue retransmitting peer test if we know Charlie
8406
      - Don't run multiple peer tests at once
8407
      - Tighten test frequency range to 6.5-19.5m, was 0-26m
8408

    
8409
2008-04-12 zzz
8410
    * Addressbook: Disallow '.-' and '-.' in host names
8411
    * NTCP: Don't drop a connection unless both directions are idle;
8412
            Fix idle time for outbound connections
8413
    * Outbound message: Make sure cached lease is in current leaseSet
8414
    * Stats: Put all NetworkDatabase stats in same group
8415
    * TunnelPool: Stop building tunnels and leaseSets after client shutdown
8416
    * i2psnark: Add locking to prevent two I2CP connections
8417

    
8418
2008-04-07 zzz
8419
    * i2psnark:
8420
      - Implement upstream bandwidth limiting
8421
      - Fix a rare NPE at startup/shutdown
8422
      - Really increase retries for .torrent fetch
8423
    * profiles.jsp: Minor cleanup
8424
    * DataHelper: Only format < 5s as ms
8425
    * Eepget: Fix percentage output on command line eepget retries
8426
    * Lower partipating message priority from 400 to 200
8427
    * NTCP: Add a debug message
8428
    * Outbound message: Minor cleanup
8429

    
8430
2008-03-30 zzz
8431
    * ExploratoryPeerSelector: Try NonFailing even more
8432
    * HostsTxtNamingService: Add reverse lookup support
8433
    * Outbound message: Minor cleanup
8434
    * i2psnark TrackerClient: Minor cleanup
8435
    * checklist.txt: Minor edit
8436
    * hosts.txt: Add perv.i2p, false.i2p, mtn.i2p2.i2p
8437
    * i2ptunnel.config: Change CVS client to mtn
8438
    * netdb.jsp: Show leaseSet destinations using reverse lookup
8439
    * profiles.jsp: First cut at showing floodfill data
8440

    
8441
2008-03-27 zzz
8442
    * Send messages for the same destination to the same inbound
8443
      lease to reduce out-of-order delivery.
8444
    * ExploratoryPeerSelector: Back out the floodfill peer exclusion
8445
      for now, as it prevents speed rating of those peers
8446

    
8447
2008-03-26 zzz
8448
    * ReseedHandler: Support multiple urls,
8449
      add netdb.i2p2.de as a 2nd default
8450

    
8451
2008-03-25 zzz
8452
    * i2psnark:
8453
      - Add support for secondary open trackers
8454
      - Refactor and simplify the TrackerClient code
8455
      - Add welterde's tracker to the default list
8456
      - Don't have eepget retry announces
8457
      - Slow down tracker contacts if they've failed for a while
8458
      - Add some debug support showing connections (?p=2)
8459
    * hosts.txt: Add nickyb.i2p, tracker.welterde.i2p
8460

    
8461
2008-03-22 zzz
8462
    * NewsFetcher: Fix bug causing fetch every 10m
8463

    
8464
2008-03-22 zzz
8465
    * Tunnel Testing:
8466
      - Fix counting so it really takes 4 consecutive failures
8467
        rather than 4 total to remove a tunnel
8468
      - Credit or blame goes to the exploratory tunnel as well
8469
        as the tunnel being tested
8470
      - Adjust tunnel test timeout based on tunnel length
8471
    * ExploratoryPeerSelector: Tweak logging
8472
    * ProfileOrganizer: Adjust integration calculation again
8473
    * build.xml: Add to help
8474
    * checklist.txt: Tweak
8475
    * readme.html: Fix forum links
8476
    * netDb: Remove tunnel.testFailedTime
8477

    
8478
2008-03-19 zzz
8479
    * ExploratoryPeerSelector:
8480
      - Exclude floodfill peers
8481
      - Tweak the HighCap vs. NonFailing decision; try NonFailing
8482
        at least a minimum % of the time
8483
    * i2psnark: Increase retries for .torrent fetch
8484
    * IRC Proxy: Prevent mIRC from sending an alternate DCC request
8485
      containing an IP
8486
    * readme.html: Reorder some items
8487
    * Stats: Add some more required stats
8488
    * Streaming lib: Fix slow start to be exponential growth,
8489
      fix congestion avoidance to be linear growth.
8490
      Should speed up local connections a lot, and remote
8491
      connections a little.
8492

    
8493
2008-03-14 zzz
8494
    * Floodfill Search:
8495
       - Prefer heard-from, unfailing, unshitlisted floodfill peers
8496

    
8497
2008-03-14 zzz
8498
    * ProfileOrganizer:
8499
       - Use more recent stats to calculate integration
8500
       - Show that fast peers are also high-capacity on profiles.jsp
8501
    * readme.html: Update Syndie link
8502
    * TunnelPool: Update comments
8503
    * netDb: Report 1-2h uptime as 90m to further frustrate tracking,
8504
      get rid of the 60s tunnel stats
8505
      (effective as of .33 to provide cover)
8506

    
8507
2008-03-13 zzz
8508
    * Floodfill Search:
8509
       - Fix a bug that caused a single FloodfillOnlySearchJob
8510
         instance to be run multiple times, with unpredictable
8511
         results
8512
       - Select ff peers randomly to improve reliability
8513
       - Add some bulletproofing
8514

    
8515
2008-03-11 zzz
8516
    * ProfileOrganizer:
8517
       - Don't require a peer to be high-capacity to be
8518
         well-integrated (not used for anything right now,
8519
         but want to get it right for possible floodfill verification)
8520
       - Don't fall back to median for high-capacity threshold
8521
         if the mean is higher than the median, this prevents
8522
         frequent large high-capacity counts
8523
       - Fix high-capacity selector that picked one too many
8524
    * Console: put well-integrated count back in the summary
8525

    
8526
2008-03-10 zzz
8527
    * EepGet: Fix byte count for bytesTransferred status listeners
8528
      (fixes command line status)
8529
    * UpdateHandler:
8530
       - Fix byte count display
8531
       - Display final status on router console
8532
       - Don't allow multiple update jobs to queue up
8533
       - Increase max retries
8534
       - Code cleanup
8535
       - Don't show 'check for update' button when update in progress
8536
       - Enhance error messages
8537
    * NetDb: Comment out published netDb stats disabled for .32
8538

    
8539
2008-03-08 zzz
8540
    * TunnelPeerSelectors: Implement strict ordering of peers,
8541
      based on XOR distance from a random hash
8542
      separately generated for each tunnel pool
8543

    
8544
2008-03-07 zzz
8545
    * Naming: Optimize lookups for a destkey
8546
    * ProfileOrganizer, TunnelPoolSettings, ClientPeerSelector:
8547
      - Prevent peers with matching IPs from joining same tunnel.
8548
        Match 0-4 bytes of IP (0=off, 1=most restrictive, 4=least).
8549
        Default is 2 (disallow routers in same /16).
8550
        Set with router.defaultPool.IPRestriction=x
8551
      - Comment out unused RebuildPeriod pool setting
8552
      - Add random key to pool in preparation for XOR peer ordering
8553
    * SusiMail: Add 'Create Account' link
8554
    * TunnelDispatcher: Change a common wtf error to a warn
8555

    
8556
2008-03-05 zzz
8557
    * Naming: Make HostsTxt the sole default NamingService
8558
      (was Meta = PetName + HostsTxt)
8559
    * Naming: Add two new experimental NamingServices, EepGet and Exec,
8560
      not enabled by default -
8561
      see source comments in core/java/src/net/i2p/client/naming
8562
      for configuration instructions
8563
    * i2psnark: Don't do a naming lookup for Base64 destkeys
8564
    * i2psnark: Add a StartAll button
8565
    * Stats: Add code to disable most stats to save memory.
8566
      Set on configstats.jsp or set stat.full=false to disable the stats.
8567
      (true by default for now)
8568

    
8569
2008-03-09 Complication
8570
    * Give the Jetty build file ability to ask permission
8571
      before downloading the Jetty archive from the web,
8572
      and to verify its SHA1 + MD5 hashes. Adjust the main build file
8573
      in accordance with this change.
8574
    * Improve the release checklist.
8575

    
8576
* 2008-03-09  0.6.1.32 released
8577

    
8578
2008-03-07 zzz
8579
    * Update news and version numbers
8580

    
8581
2008-03-01 zzz
8582
    * Fix netdb.knownLeaseSets count reported by floodfill routers
8583
      (was broken by -3)
8584

    
8585
2008-02-27 zzz
8586
    * i2ptunnel: Add 3-hop option to edit.jsp to match configtunnels.jsp
8587
    * i2psnark: Remove orion and gaytorrents from default tracker list
8588
    * Remove orion from jump list and from eepsite_index.html
8589
    * Jbigi: Change jbigi version to 4.2.2 in build scripts - tested by amiga
8590
    * Capitalize OutboundMessageDistributor job name
8591
    * TunnelPool: Add a warning if all tunnels are backlogged
8592

    
8593
2008-02-26 zzz
8594
    * Reintroduce NTCP backlog pushback, with switch back to
8595
      previous tunnel when no longer backlogged
8596
    * Catch an nio exception in an NTCP logging statement if loglevel is WARN
8597
    * IRC Proxy: terminate all messages with \r\n (thanks TrivialPursuit!)
8598

    
8599
2008-02-21 zzz
8600
    * Raise inbound default bandwidth to 32KBps
8601
    * Fix config.jsp that showed 0KBps share bandwidth by default
8602

    
8603
2008-02-19 zzz
8604
    * Addressbook: Disallow '--' in host names except in IDN,
8605
      add some reserved host names
8606
    * I2PTunnel: Clarify edit form
8607
    * NetDb: Remove many stats from netDb, effective as of .32
8608
    * profiles.jsp: Display capabilities
8609
    * Tunnels: Enforce max tunnel length of 8, catch an index error
8610
      http://forum.i2p/viewtopic.php?t=2561
8611

    
8612
2008-02-16 zzz
8613
    * Fix race in TunnelDispatcher which caused
8614
      participating tunnel count to seesaw -
8615
      should increase network capacity
8616
    * Leave participating tunnels in 10s batches for efficiency
8617
    * Update participating tunnel ratestat when leaving a tunnel too,
8618
      to generate a smoother graph
8619
    * Fix tunnel.participatingMessageCount stat to include all
8620
      participating tunnels, not just outbound endpoints
8621
    * Simplify Expire Tunnel job name
8622

    
8623
2008-02-13 zzz
8624
    * PersistentDataStore: Write out 300 records every 10 min
8625
      rather than 1 every 10 sec;
8626
      Don't store leasesets to disk or read them in
8627
    * Combine rates for pools with the same length setting
8628
      in the new tunnel build algorithm
8629
    * Clarify a log message in the UpdateHandler
8630

    
8631
2008-02-13 zzz
8632
    * Make graphs clickable to get larger graphs
8633
    * Change SimpleTimer CRIT to a WARN, increase threshold
8634
    * Checklist update
8635

    
8636
2008-02-11 welterde
8637
    * Fix an NPE in UDP http://forum.i2p/viewtopic.php?t=2545
8638

    
8639
2008-02-10 zzz
8640
    * Add new tunnel build algorithm (preliminary)
8641
    * Change NTCP backlogged message from error to warning
8642
    * Checklist updates
8643

    
8644
* 2008-02-10  0.6.1.31 released
8645

    
8646
2008-02-10 Complication
8647
    * Update news and version numbers
8648

    
8649
2008-02-06 zzz
8650
    * build.xml: Add some apps to javadoc
8651
    * checklist.txt: Add some things
8652
    * news.xml: make links relative
8653
    * runplain.sh: Add some comments
8654
    * wrapper.config: Add some comments
8655

    
8656
2008-02-05 Complication
8657
    * Change the dates too (sorry for such forgetfulness!)
8658

    
8659
2008-02-04 Complication
8660
    * Also use the new key for checking, and add it into news.xml
8661

    
8662
2008-02-04 Complication
8663
    * Added my release signing key into TrustedUpdate.java
8664

    
8665
2008-01-31 zzz
8666
    * NewsFetcher: Change fetch failed from error to warning
8667
    * installer: Fix URL and "email"
8668
    * checklist.txt: New release checklist
8669

    
8670
2008-01-29 zzz
8671
    * Addressbook: Change default subscription
8672
    * ConfigUpdateHandler: Change default news URL
8673
    * initialNews.xml: Update version to .31
8674
    * news.xml: More updates
8675
    * hosts.txt: Add i2p-projekt.i2p
8676
    * readme.html: More URL updates
8677
    * SusiDNS: Change references to default subscription
8678

    
8679
2008-01-28 zzz
8680
    * news.xml: Updates, still preliminary
8681
    * ReseedHandler: Change default URL
8682
    * i2ptunnel.config: Change default outproxies
8683
    * readme.html: Change *.i2p.net URLs
8684
    * help.jsp: Change *.i2p.net URLs
8685
    * eepsite_index.html: Change stats.i2p addressbook subscription URL
8686
    * hosts.txt: Add krabs.i2p, true.i2p, www.i2p2.i2p
8687

    
8688
* 2008-01-28  0.6.1.30-20 converted from CVS to MTN
8689

    
8690
2008-01-08 zzz
8691
    * addressbook: Limit size of subscribed hosts.txt,
8692
        don't save old etag or last-modified data
8693
    * EepGet: Add some logging,
8694
        enforce size limits even when size not in returned header,
8695
        don't return old etag or last-modified data,
8696
        don't call transferFailed listener more than once
8697
    * Sign my update signing key
8698
    * NewsFetcher: add last-modified support, reduce number of retries
8699
    * Error pages: add icon and logo,
8700
        clarify 'destination not found' and 'proxy not found' pages
8701

    
8702
2008-01-07 zzz
8703
    * profiles.jsp formatting cleanup
8704
    * NTCP: Reduce max idle time from 60m to 20m
8705
    * NTCP: Fix idle time on connections with zero messages,
8706
      correctly drop these connections
8707

    
8708
2008-01-03 zzz
8709
    * addressbook: Do basic validation of hostnames and destkeys
8710
    * susidns: Add support for the private addressbook,
8711
      update the text and links somewhat
8712

    
8713
2008-01-02 zzz
8714
    * Add stats.i2p to the jump list
8715
    * Impose 20MB limit on POSTs and catch OOMs in POST
8716
    * eepsite_index.html: add stats.i2p services
8717
    * addressbook: log source of new keys; disallow dests > 516 bytes
8718
    * addressbook: convert hostnames to lower case to prevent duplicates
8719
    * susidns: generalize references to orion
8720

    
8721
2007-12-29 zzz
8722
    * Tweak IRC inbound PONG filtering to fix xchat/BitchX lagometers
8723
    * Allow commas in router.trustedUpdateKeys and router.updateURL again
8724
    * Change default news host from dev.i2p.net to dev.i2p
8725
    * Change jetty timeout from 30 to 60 sec (thanks sponge!)
8726

    
8727
2007-12-28 zzz
8728
    * Add zzz's update signing key
8729

    
8730
2007-12-26 Complication
8731
    * Improve reseed handler (less repetitive code,
8732
      avoid reporting errors when less than 10% of fetches fail)
8733

    
8734
2007-12-26 Complication
8735
    * Escape both CR, LF and CR LF line breaks in Router.saveConfig()
8736
      and unescape them in DataHelper.loadProps() to support
8737
      saving and loading config properties with line breaks
8738
    * Change the update URLs textbox into a textarea like keys have,
8739
      so different URLs go on different lines
8740
    * Modify TrustedUpdate to provide a method which supplies a key list
8741
      delimited with CR LF line breaks
8742
    * Modify DEFAULT_UPDATE_URL to supply a default URL list
8743
      delimited with CR LF line breaks
8744
    * Modify selectUpdateURL() to handle URL lists
8745
      delimited by any kind of line breaks
8746
    * Start saving trusted update keys
8747
    * Improve formatting on configupdate.jsp
8748

    
8749
2007-12-22 zzz
8750
    * Add support for multiple update URLs
8751
    * Change default for update to use i2p proxy,
8752
      add several URLs as defaults
8753
    * Enable trusted key form on configupdate.jsp
8754
    * Clarify the 'destination not found' error page
8755

    
8756
2007-12-16 zzz
8757
    * i2psnark: remove anonymitytracker from default list
8758

    
8759
2007-12-10 zzz
8760
    * Fix NPE in CLI TrustedUpdate keygen
8761

    
8762
2007-12-02 Complication
8763
    * Commit SAM v2 patch from mkvore (thank you!)
8764
    * Minor reformatting to preserve consistent whitespace
8765
      in old SAM classes (new classes unaltered)
8766

    
8767
2007-12-01 Complication
8768
    * Separate the checks "does Jetty .zip file need downloading"
8769
      and "does Jetty .zip file need extracting" in the Jetty buildfile.
8770
      First download (unless already done), then extract (unless done).
8771

    
8772
2007-11-26 zzz
8773
    * i2psnark: add timeout for receive inactivity
8774

    
8775
2007-11-24 zzz
8776
    * i2psnark: increase streaming lib write timeout to 240 sec and change
8777
      timeout action from "ping" to "disconect", as the fix in .30 to
8778
      honor options on outbound connections led to hung outbound connections
8779
      (bitfield never transmitted, connection never dropped)
8780

    
8781
2007-11-06 jrandom
8782
    * add i2host.i2p to the jump list
8783

    
8784
2007-10-11 zzz
8785
    * IRC Proxy: Fix several possible anonymity holes:
8786
      - Block CTCP in NOTICE messages
8787
      - Block CTCP anywhere in PRIVMSG and NOTICE, not just at first character
8788
      - Check for lower case commands
8789
    (Thanks sponge!)
8790

    
8791
2007-10-07  jrandom
8792
    * back out the NTCP backlog pushback, as it could be used to mount an
8793
      active anonymity attack.
8794

    
8795
* 2007-10-07  0.6.1.30 released
8796

    
8797
2007-10-07  Complication
8798
    * Fix an issue in EepGet whereby sending of "etag" and "lastModified" headers
8799
      broke retrying.
8800

    
8801
2007-09-27  zzz
8802
    * Implement pushback of NTCP transport backlog to the outbound tunnel selection code
8803
    * Clean up the NTCP and UDP tables on peers.jsp to be consistent,
8804
      fix some of the sorting
8805

    
8806
2007-09-22  zzz
8807
    * Send messages for the same destination out the same outbound
8808
      tunnel to reduce out-of-order delivery.
8809

    
8810
2007-09-19  zzz
8811
    * i2psnark: Fix broken multifile torrent Delete;
8812
        cleanup Storage resources in AddTorrent;
8813
        don't autostart torrent after Create
8814

    
8815
2007-09-18  zzz
8816
    * eepsite_index.html: Add links to trevorreznik address book
8817
    * streaming lib: Fix SocketManagerFactory to honor options on outbound connections
8818
    * streaming lib: Fix setDefaultOptions() when called with a ConnectionOptions parameter
8819
    * i2psnark: Don't make outbound connections to already-connected peers
8820
    * i2psnark: Debug logging cleanup
8821

    
8822
2007-09-14  zzz
8823
    * eepget: Increase header timeout to 45s
8824
    * HTTP proxy: Return a better error message for localhost requests
8825
    * tunnels: Fix PooledTunnelCreatorConfig memory leak
8826

    
8827
2007-09-09  zzz
8828
    * eepget: Add support for Last-Modified and If-Modified-Since
8829
    * addressbook: Finish incomplete support for Last-Modified
8830

    
8831
2007-09-08  zzz
8832
    * eepget: Copy over SocketTimeout.java file from syndie
8833

    
8834
2007-09-07  jrandom
8835
    * eepget: Merge timeout support from syndie
8836

    
8837
* 2007-08-23  0.6.1.29 released
8838

    
8839
2007-08-12  zzz
8840
    * readme.html - Add inproxy.tino.i2p, replace search.i2p with eepsites.i2p,
8841
      tweak the eepsite and troubleshooting sections
8842

    
8843
2007-08-11  zzz
8844
    * Add stats for individual tunnel rates (nice when graphed)
8845
    * i2psnark: Fix outbound tunnel nickname
8846

    
8847
2007-08-05  Complication
8848
    * Update the sharing calculator on config.jsp
8849
      and explain the trade-off even more thoroughly.
8850

    
8851
2007-08-04  Complication
8852
    * Lower the threshold between the K and L bandwidth class,
8853
      so that K is now < 12 KB/s, instead of <= 16 KB/s.
8854
      Hopefully this lets people with 128 kbit/s (16 KB/s) upload lines
8855
      participate in routing, if they keep the default share percentage.
8856

    
8857
2007-07-16  zzz
8858
    * i2psnark: Add tooltip info for choked/uninterested
8859

    
8860
2007-07-16  zzz
8861
    * Make selection of graphed data configurable via configstats.jsp,
8862
      remove most of the default graphs to save some memory
8863

    
8864
2007-07-15  zzz
8865
    * Add current values to graph legends
8866
    * Fix up previous Rate fix to check for divide by zero
8867

    
8868
2007-07-14  Complication
8869
    * Take the post-download routerInfo size check back out of ReseedHandler,
8870
      since it wasn't helpful, and a lower limit caused false warnings.
8871
    * Give EepGet ability to enforce a min/max HTTP response size.
8872
    * Enforce a maximum response size of 8 MB when ReseedHandler
8873
      downloads into a ByteArrayOutputStream.
8874
    * Refactor ReseedHandler/ReseedRunner from static to ordinary classes,
8875
      change invocation from RouterConsoleRunner accordingly.
8876
    * Add an EepGet status listener to ReseedHandler to log causes of reseed failure,
8877
      provide status reports to indicate the progress of reseeding.
8878
    * Enable icon for default eepsite, and the index page
8879
      of the router console (more later).
8880

    
8881
2007-07-14  zzz
8882
    * Clean up graphs.jsp - set K=1024 where appropriate,
8883
      output image sizes in html, catch ooms, other minor tweaks
8884
    * Fix current event count truncation which fixes graphs with low
8885
      60-sec event counts displaying high values
8886
      (bw.* and router.* graphs for example were 1.5x too high)
8887
      Affects all "events per period" (non-lifetime) counts.
8888

    
8889
2007-07-09  zzz
8890
    * i2psnark: give a better error message for a non-i2p torrent
8891

    
8892
2007-07-07  zzz
8893
    * Add auto-detect IP/Port to NTCP. When enabled on config.jsp,
8894
      SSU will notify/restart NTCP when the external address changes.
8895
      Now you can enable inbound TCP without a static IP or dyndns service.
8896

    
8897
2007-07-04  zzz
8898
    * Display calculated share bandwidth and remove load testing
8899
      on config.jsp
8900

    
8901
2007-07-01  zzz
8902
    * Replace broken option i2np.udp.alwaysPreferred with
8903
      i2np.udp.preferred and adjust UDP bids; possible settings are
8904
      "false" (default), "true", and "always".
8905
      Default setting results in same behavior as before
8906
      (NTCP is preferred unless it isn't established and UDP is established).
8907
      Use to compare NTCP and UDP transports.
8908

    
8909
2007-06-27  jrandom
8910
    * fix for a streaming lib bug that could leave a thread waiting
8911
      indefinitely (thanks Complication!)
8912

    
8913
2007-06-16  Complication
8914
    * First pass on EepGet and ReseedHandler improvements,
8915
      please avoid use on routers which matter!
8916
    * Give EepGet ability of downloading into an OutputStream,
8917
      such as the ByteArrayOutputStream of ReseedHandler.
8918
    * Detect failure to reseed better, report it persistently
8919
      and more verbosely, provide a link to logs
8920
      and suggest manual reseed.
8921

    
8922
2007-05-06  Complication
8923
    * Fix the build.xml file, so the preppkg build target won't try copying files
8924
      which became deprecated with the old Syndie (thanks for alerting, itsu!)
8925

    
8926
2007-03-31  zzz
8927
    * Add trevorreznik jump server to the http proxy error page
8928
    * Add anonymity to the trackers supporting details links in i2psnark
8929

    
8930
2007-03-24  zzz
8931
    * Remove Syndie from build targets and navbar
8932

    
8933
2007-03-22  zzz
8934
    * i2psnark tracker handling tweaks:
8935
    -   Add link to tracker details page (Postman only for now, requires bytemonsoon patch)
8936
    -   Add Base URL to tracker list configuration
8937
    -   Web page links built from tracker list Base URLs
8938
    -   Only build and sort tracker list once
8939
    -   Add anonymityWeb tracker to default list
8940
    -   Add tooltip info for TrackerErrs
8941
    -   Stop torrent if not registered with tracker
8942
    -   Mark temp files as delete on exit
8943

    
8944
2007-03-18  zzz
8945
    * i2psnark: Cleanup some handling of saved partial pieces
8946
    * i2psnark: Put bit counting in Bitfield.java for efficiency
8947
    * i2psnark: Save torrent completion state in i2psnark.config
8948

    
8949
* 2007-03-17  0.6.1.28 released
8950

    
8951
2007-03-13  zzz
8952
    * i2psnark: Make max total uploaders configurable (thanks Amiga4000!)
8953

    
8954
2007-03-12  jrandom
8955
    * dodge a race on startup (thanks zzz!)
8956

    
8957
2007-03-10  zzz
8958
    * Streaming lib: Change initial RTT deviation from RTT to RTT/2
8959
      (RFC 2988) to reduce early RTO values
8960

    
8961
2007-03-08  zzz
8962
    * i2psnark changes to improve upload performance:
8963
    *  Implement total uploader limit (10)
8964
    *  Don't timeout non-piece messages out
8965
    *  Change chunk size to 32K (was 64K)
8966
    *  Change request limit to 64K (was 256K)
8967
    * i2psnark: Disconnect from seeds when complete
8968

    
8969
2007-03-07  zzz
8970
    * Remove dynamic router keys from config.jsp
8971

    
8972
2007-03-07  zzz
8973
    * Streaming lib changes to improve upstream performance during congestion:
8974
    *   Change min window size from 12 to 1
8975
    *   Change max timeout from 10 to 45 sec
8976
    *   Change initial timeout from 10 to 15 sec
8977
    *   Change intial window size for i2psnark from 12 to 1
8978
    *   Change slow start growth rate for i2psnark from 1/2 to 1
8979

    
8980
2007-03-04  zzz
8981
    * Update eepsite_index.html
8982

    
8983
2007-03-03  zzz
8984
    * Upgrade from Jetty 5.1.6 to 5.1.12 which fixes spaces in URL
8985
    * Add a updaterWithJetty build target
8986

    
8987
2007-03-03  zzz
8988
    * Implement priority sending for NTCP
8989
    * Disable trimForOverload() in tunnel BuildExecutor which
8990
      was preventing tunnel builds when outbound traffic was high
8991
      (i.e. most of the time when running i2psnark)
8992

    
8993
2007-02-28  zzz
8994
    * i2psnark: File reopen cleanup
8995

    
8996
2007-02-28  zzz
8997
    * i2psnark: Add peer details to web page
8998

    
8999
* 2007-02-15  0.6.1.27 released
9000

    
9001
2007-02-15  jrandom
9002
    * Limit the whispering floodfill sends to at most 3 randomly
9003
      chosen from the known floodfill peers
9004

    
9005
2007-02-14  jrandom
9006
    * Don't filter out KICK and H(ide oper status) IRC messages
9007
      (thanks Takk and postman!)
9008

    
9009
2007-02-13  jrandom
9010
    * Tell our peers about who we know in the floodfill netDb every
9011
      6 hours or so, mitigating the situation where peers lose track
9012
      of floodfill routers.
9013
    * Disable the Syndie updater (people should use the new Syndie,
9014
      not this one)
9015
    * Disable the eepsite tunnel by default
9016

    
9017
2007-01-30  zzz
9018
    * i2psnark: Don't hold _snarks lock while checking a snark,
9019
      so web page is responsive at startup
9020

    
9021
2007-01-29  zzz
9022
    * i2psnark: Add NickyB tracker
9023

    
9024
2007-01-28  zzz
9025
    * i2psnark: Don't hold sendQueue lock while flushing output,
9026
      to make everything run smoother
9027

    
9028
2007-01-27  zzz
9029
    * i2psnark: Fix orphaned Snark reader tasks leading to OOMs
9030

    
9031
2007-01-20  Complication
9032
    * Drop overlooked comment
9033

    
9034
2007-01-20  Complication
9035
    * Modify ReseedHandler to query the "i2p.reseedURL" property from I2PAppContext
9036
      instead of System, so setting a reseed URL in advanced configuration has effect.
9037
    * Clean out obsolete reseed code from ConfigNetHandler.
9038

    
9039
2007-01-20  zzz
9040
    * i2psnark: More choking rotation tweaks
9041
    * Improve performance by not reading in the whole
9042
      piece from disk for each request. A huge memory savings
9043
      on 1MB torrents with many peers.
9044

    
9045
2007-01-17  zzz
9046
    * Add new HTTP Proxy error message for non-http protocols
9047

    
9048
2007-01-17  zzz
9049
    * Add note on Syndie index.html steering people to new Syndie
9050

    
9051
2007-01-16  zzz
9052
    * i2psnark: Fix crash when autostart off and
9053
      tcrrent started manually
9054

    
9055
2007-01-16  zzz
9056
    * i2psnark: Fix bug caused by last i2psnark checkin
9057
      (ConnectionAcceptor not started)
9058
    * Don't start PeerCoordinator, ConnectionAcceptor,
9059
      and TrackerClient unless starting torrent
9060

    
9061
2007-01-15  jrandom
9062
    * small guard against unnecessary streaming lib reset packets
9063
      (thanks Complication!)
9064

    
9065
2007-01-15  zzz
9066
    * i2psnark: Add 'Stop All' link on web page
9067
    * Add some links to trackers and forum on web page
9068
    * Don't start tunnel if 'Autostart' unchecked
9069
    * Fix torrent restart bug by reopening file descriptors
9070

    
9071
2007-01-14  zzz
9072
    * i2psnark: Improvements for torrents with > 4 leechers:
9073
      choke based on upload rate when seeding, and
9074
      be smarter and fairer about rotating choked peers.
9075
    * Handle two common i2psnark OOM situations rather
9076
      than shutting down the whole thing.
9077
    * Fix reporting to tracker of remaining bytes for
9078
      torrents > 4GB (but ByteMonsoon still has a bug)
9079

    
9080
2006-10-29  zzz
9081
    * i2psnark: Fix and enable generation of multifile torrents,
9082
      print error if no tracker selected at create-torrent,
9083
      fix stopping a torrent that hasn't started successfully,
9084
      add eBook and GayTorrents trackers to form,
9085
      web page formatting tweaks
9086

    
9087
* 2006-10-10  0.6.1.26 released
9088

    
9089
2006-10-29  Complication
9090
    * Ensure we get NTP samples from more diverse sources
9091
      (0.pool.ntp.org, 1.pool.ntp.org, etc)
9092
    * Discard median-based peer skew calculator as framed average works,
9093
      and adjusting its percentage can make it behave median-like
9094
    * Require more data points (from at least 20 peers)
9095
      before considering a peer skew measurement reliable
9096

    
9097
2006-10-10  jrandom
9098
    * Removed the status display from the console, as its more confusing
9099
      than informative (though the content is still displayed in the HTML)
9100

    
9101
2006-10-08  Complication
9102
    * Add a framed average peer clock skew calculator
9103
    * Add config property "router.clockOffsetSanityCheck" to determine
9104
      if NTP-suggested clock offsets get sanity checked (default "true")
9105
    * Reject NTP-suggested clock offsets if they'd increase peer clock skew
9106
      by more than 5 seconds, or make it more than 20 seconds total
9107
    * Decrease log level in getMedianPeerClockSkew()
9108

    
9109
2006-09-29  zzz
9110
    * i2psnark: Second try at synchronization fix - synch addRequest()
9111
      completely rather than just portions of it and requestNextPiece()
9112

    
9113
2006-09-27  jrandom
9114
    * added HMAC-SHA256
9115
    * properly use CRLF with EepPost
9116
    * suppress jbigi/jcpuid messages if jbigi.dontLog/jcpuid.dontLog is set
9117
    * PBE session key generation (with 1000 rounds of SHA256)
9118
    * misc SDK helper functions
9119

    
9120
2006-09-26  Complication
9121
    * Take back another inadverent logging change in NTCPConnection
9122

    
9123
2006-09-26  Complication
9124
    * Take back an accidental log level change
9125

    
9126
2006-09-26  Complication
9127
    * Subclass from Clock a RouterClock which can access router transports,
9128
      with the goal of developing it to second-guess NTP results
9129
    * Make transports report clock skew in seconds
9130
    * Adjust renderStatusHTML() methods accordingly
9131
    * Show average for NTCP clock skews too
9132
    * Give transports a getClockSkews() method to report clock skews
9133
    * Give transport manager a getClockSkews() method to aggregate results
9134
    * Give comm system facade a getMedianPeerClockSkew() method which RouterClock calls
9135
      (to observe results, add "net.i2p.router.transport.CommSystemFacadeImpl=WARN" to logging)
9136
    * Extra explicitness in NTCP classes to denote unit of time.
9137
    * Fix some places in NTCPConnection where milliseconds and seconds were confused
9138

    
9139
2006-09-25  zzz
9140
    * i2psnark: Paranoid copy before writing pieces,
9141
      recheck files on completion, redownload bad pieces
9142
    * i2psnark: Don't contact tracker as often when seeding
9143

    
9144
2006-09-24  zzz
9145
    * i2psnark: Add some synchronization to prevent rare problem
9146
      after restoring orphan piece
9147

    
9148
2006-09-20  zzz
9149
    * i2psnark: Eliminate duplicate requests caused by i2p-bt's
9150
      rapid choke/unchokes
9151
    * i2psnark: Truncate long TrackerErr messages on web page
9152

    
9153
2006-09-16  zzz
9154
    * i2psnark: Implement retransmission of requests. This
9155
      eliminates one cause of complete stalls with a peer.
9156
      This problem is common on torrents with a small number of
9157
      active peers where there are no choke/unchokes to kickstart things.
9158

    
9159
2006-09-13  zzz
9160
    * i2psnark: Fix restoral of partial pieces broken by last patch
9161

    
9162
2006-09-13  zzz
9163
    * i2psnark: Mark a peer's requests as unrequested on disconnect,
9164
      preventing premature end game
9165
    * i2psnark: Randomize selection of next piece during end game
9166
    * i2psnark: Don't restore a partial piece to a peer that is already working on it
9167
    * i2psnark: strip ".torrent" on web page
9168
    * i2psnark: Limit piece size in generated torrent to 1MB max
9169

    
9170
2006-09-09  zzz
9171
    * i2psnark: Add "Stalled" indication and stat totals on web page
9172

    
9173
2006-09-09  zzz
9174
    * i2psnark: Fix bug where new peers would always be sent an "interested"
9175
      regardless of actual interest
9176
    * i2psnark: Reduce max piece size from 10MB to 1MB; larger may have severe
9177
      memory and efficiency problems
9178

    
9179
* 2006-09-09  0.6.1.25 released
9180

    
9181
2006-09-08  jrandom
9182
    * Tweak the PRNG logging so it only displays error messages if there are
9183
      problems
9184
    * Disable dynamic router keys for the time being, as they don't offer
9185
      meaningful security, may hurt the router, and makes it harder to
9186
      determine the network health.  The code to restart on SSU IP change is
9187
      still enabled however.
9188
    * Disable tunnel load testing, leaning back on the tiered selection for
9189
      the time being.
9190
    * Spattering of bugfixes
9191

    
9192
2006-09-07  zzz
9193
    * i2psnark: Increase output timeout from 2 min to 4 min
9194
    * i2psnark: Orphan debug msg cleanup
9195
    * i2psnark: More web rate report cleanup
9196

    
9197
2006-09-05  zzz
9198
    * i2psnark: Implement basic partial-piece saves across connections
9199
    * i2psnark: Implement keep-alive sending. This will keep non-i2psnark clients
9200
      from dropping us for inactivity but also renders the 2-minute transmit-inactivity
9201
      code in i2psnark ineffective. Will have to research why there is transmit but
9202
      not receive inactivity code. With the current connection limit of 24 peers
9203
      we aren't in any danger of keeping out new peers by keeping inactive ones.
9204
    * i2psnark: Increase CHECK_PERIOD from 20 to 40 since nothing happens in 20 seconds
9205
    * i2psnark: Fix dropped chunk handling
9206
    * i2psnark: Web rate report cleanup
9207

    
9208
2006-09-04  zzz
9209
    * i2psnark: Report cleared trackerErr immediately
9210
    * i2psnark: Add trackerErr reporting after previous success; retry more quickly
9211
    * i2psnark: Set up new connections more quickly
9212
    * i2psnark: Don't delay tracker fetch when setting up lots of connections
9213
    * i2psnark: Reduce MAX_UPLOADERS from 12 to 4
9214

    
9215
2006-09-04  zzz
9216
    * Enable pipelining in i2psnark
9217
    * Make i2psnark tunnel default be 1 + 0-1
9218

    
9219
2006-09-03  zzz
9220
    * Add rate reporting to i2psnark
9221

    
9222
2006-09-03  Complication
9223
    * Limit form size in SusiDNS to avoid exceeding a POST size limit on postback
9224
    * Print messages about addressbook size to give better overview
9225
    * Enable delete function in published addressbook
9226

    
9227
2006-08-21  Complication
9228
    * Fix error reporting discrepancy (thanks for helping notice, yojoe!)
9229

    
9230
2006-08-03  jrandom
9231
    * Decrease the recently modified tunnel building timeout, though keep
9232
      the scaling on their processing
9233

    
9234
2006-07-31  jrandom
9235
    * Increase the tunnel building timeout
9236
    * Avoid a rare race (thanks bar!)
9237
    * Fix the bandwidth capacity publishing code to factor in share percentage
9238
      and outbound throttling (oops)
9239

    
9240
2006-07-29  Complication
9241
    * Treat NTP responses from unexpected stratums like failures
9242

    
9243
* 2006-07-28  0.6.1.24 released
9244

    
9245
2006-07-28  jrandom
9246
    * Don't try to reverify too many netDb entries at once (thanks
9247
      cervantes and Complication!)
9248

    
9249
2006-07-28  jrandom
9250
    * Actually fix the threading deadlock issue in the netDb (removing
9251
      the synchronized access to individual kbuckets while validating
9252
      individual entries) (thanks cervantes, postman, frosk, et al!)
9253

    
9254
* 2006-07-27  0.6.1.23 released
9255

    
9256
2006-07-27  jrandom
9257
    * Cut down NTCP connection establishments once we know the peer is skewed
9258
      (rather than wait for full establishment before verifying)
9259
    * Removed a lock on the stats framework when accessing rates, which
9260
      shouldn't be a problem, assuming rates are created (pretty much) all at
9261
      once and merely updated during the lifetime of the jvm.
9262

    
9263
2006-07-27  jrandom
9264
    * Further NTCP write status cleanup
9265
    * Handle more oddly-timed NTCP disconnections (thanks bar!)
9266

    
9267
2006-07-26  jrandom
9268
    * When dropping a netDb router reference, only accept newer
9269
      references as part of the update check
9270
    * If we have been up for a while, don't accept really old
9271
      router references (published 2 or more days ago)
9272
    * Drop router references once they are no longer valid, even if
9273
      they were allowed in due to the lax restrictions on startup
9274

    
9275
2006-07-26  jrandom
9276
    * Every time we create a new router identity, add an entry to the
9277
      new "identlog.txt" text file in the I2P install directory.  For
9278
      debugging purposes, publish the count of how many identities the
9279
      router has cycled through, though not the identities itself.
9280
    * Cleaned up the way the multitransport shitlisting worked, and
9281
      added per-transport shitlists
9282
    * When dropping a router reference locally, first fire a netDb
9283
      lookup for the entry
9284
    * Take the peer selection filters into account when organizing the
9285
      profiles (thanks Complication!)
9286
    * Avoid some obvious configuration errors for the NTCP transport
9287
      (invalid ports, "null" ip, etc)
9288
    * Deal with some small NTCP bugs found in the wild (unresolveable
9289
      hosts, strange network discons, etc)
9290
    * Send our netDb info to peers we have direct NTCP connections to
9291
      after each 6-12 hours of connection uptime
9292
    * Clean up the NTCP reading and writing queue logic to avoid some
9293
      potential delays
9294
    * Allow people to specify the IP that the SSU transport binds on
9295
      locally, via the advanced config "i2np.udp.bindInterface=1.2.3.4"
9296

    
9297
* 2006-07-18  0.6.1.22 released
9298

    
9299
2006-07-18  jrandom
9300
    * Add a failsafe to the NTCP transport to make sure we keep
9301
      pumping writes when we should.
9302
    * Properly reallow 16-32KBps routers in the default config
9303
      (thanks Complication!)
9304

    
9305
2006-07-16  Complication
9306
    * Collect tunnel build agree/reject/expire statistics
9307
      for each bandwidth tier of peers (and peers of unknown tiers,
9308
      even if those shouldn't exist)
9309

    
9310
2006-07-14  jrandom
9311
    * Improve the multitransport shitlisting (thanks Complication!)
9312
    * Allow routers with a capacity of 16-32KBps to be used in tunnels under
9313
      the default configuration (thanks for the stats Complication!)
9314
    * Properly allow older router references to load on startup
9315
      (thanks bar, Complication, et al!)
9316
    * Add a new "i2p.alwaysAllowReseed" advanced config property, though
9317
      hopefully today's changes should make this unnecessary (thanks void!)
9318
    * Improved NTCP buffering
9319
    * Close NTCP connections if we are too backlogged when writing to them
9320

    
9321
2006-07-04  jrandom
9322
    * New NIO-based tcp transport (NTCP), enabled by default for outbound
9323
      connections only.  Those who configure their NAT/firewall to allow
9324
      inbound connections and specify the external host and port
9325
      (dyndns/etc is ok) on /config.jsp can receive inbound connections.
9326
      SSU is still enabled for use by default for all users as a fallback.
9327
    * Substantial bugfix to the tunnel gateway processing to transfer
9328
      messages sequentially instead of interleaved
9329
    * Renamed GNU/crypto classes to avoid name clashes with kaffe and other
9330
      GNU/Classpath based JVMs
9331
    * Adjust the Fortuna PRNG's pooling system to reduce contention on
9332
      refill with a background thread to refill the output buffer
9333
    * Add per-transport support for the shitlist
9334
    * Add a new async pumped tunnel gateway to reduce tunnel dispatcher
9335
      contention
9336

    
9337
2006-07-01  Complication
9338
    * Ensure that the I2PTunnel web interface won't update tunnel settings
9339
      for shared clients when a non-shared client is modified
9340
      (thanks for spotting, BarkerJr!)
9341

    
9342
2006-06-14  cervantes
9343
    * Small tweak to I2PTunnel CSS, so it looks better with desktops
9344
      that use Bitstream Vera fonts @ 96 dpi
9345

    
9346
* 2006-06-14  0.6.1.21 released
9347

    
9348
2006-06-13  jrandom
9349
    * Use a minimum uptime of 2 hours, not 4 (oops)
9350

    
9351
2006-06-13  jrandom
9352
    * Cut down the proactive rejections due to queue size - if we are
9353
      at the point of having decrypted the request off the queue, might
9354
      as well let it through, rather than waste that decryption
9355

    
9356
2006-06-11  Kloug
9357
    * Bugfix to the I2PTunnel IRC filter to support multiple concurrent
9358
      outstanding pings/pongs
9359

    
9360
2006-06-10  jrandom
9361
    * Further reduction in proactive rejections
9362

    
9363
2006-06-09  jrandom
9364
    * Don't let the pending tunnel request queue grow beyond reason
9365
      (letting things sit for up to 30s when they fail after 10s
9366
      seems a bit... off)
9367

    
9368
2006-06-08  jrandom
9369
    * Be more conservative in the proactive rejections
9370

    
9371
2006-06-04  Complication
9372
    * Trim out sending a blank line before USER in susimail.
9373
      Seemed to break in rare cases, thanks for reporting, Brachtus!
9374

    
9375
* 2006-06-04  0.6.1.20 released
9376

    
9377
2006-06-04  jrandom
9378
    * Reduce the SSU ack frequency
9379
    * Tweaked the tunnel rejection settings to reject less aggressively
9380

    
9381
2006-05-31  jrandom
9382
    * Only send netDb searches to the floodfill peers for the time being
9383
    * Add some proof of concept filters for tunnel participation.  By default,
9384
      it will skip peers with an advertised bandwith of less than 32KBps or
9385
      an advertised uptime of less than 2 hours.  If this is sufficient, a
9386
      safer implementation of these filters will be implemented.
9387

    
9388
* 2006-05-18  0.6.1.19 released
9389

    
9390
2006-05-18  jrandom
9391
    * Made the SSU ACKs less frequent when possible
9392

    
9393
2006-05-17  Complication
9394
    * Fix some oversights in my previous changes:
9395
      adjust some loglevels, make a few statements less wasteful,
9396
      make one comparison less confusing and more likely to log unexpected values
9397

    
9398
2006-05-17  jrandom
9399
    * Make the peer page sortable
9400
    * SSU modifications to cut down on unnecessary connection failures
9401

    
9402
2006-05-16  jrandom
9403
    * Further shitlist randomizations
9404
    * Adjust the stats monitored for detecting cpu overload when dropping new
9405
      tunnel requests
9406

    
9407
2006-05-15  jrandom
9408
    * Add a load dependent throttle on the pending inbound tunnel request
9409
      backlog
9410
    * Increased the tunnel test failure slack before killing a tunnel
9411

    
9412
2006-05-13  Complication
9413
    * Separate growth factors for tunnel count and tunnel test time
9414
    * Reduce growth factors, so probabalistic throttle would activate
9415
    * Square probAccept values to decelerate stronger when far from average
9416
    * Create a bandwidth stat with approximately 15-second half life
9417
    * Make allowTunnel() check the 1-second bandwidth for overload
9418
      before doing allowance calculations using 15-second bandwidth
9419
    * Tweak the overload detector in BuildExecutor to be more sensitive
9420
      for rising edges, add ability to initiate tunnel drops
9421
    * Add a function to seek and drop the highest-rate participating tunnel,
9422
      keeping a fixed+random grace period between such drops.
9423
      It doesn't seem very effective, so disabled by default
9424
      ("router.dropTunnelsOnOverload=true" to enable)
9425

    
9426
2006-05-11  jrandom
9427
    * PRNG bugfix (thanks cervantes and Complication!)
9428

    
9429
* 2006-05-09  0.6.1.18 released
9430

    
9431
2006-05-09  jrandom
9432
    * Further tunnel creation timeout revamp
9433

    
9434
2006-05-07  Complication
9435
    * Fix problem whereby repeated calls to allowed() would make
9436
      the 1-tunnel exception permit more than one concurrent build
9437

    
9438
2006-05-06  jrandom
9439
    * Readjust the tunnel creation timeouts to reject less but fail earlier,
9440
      while tracking the extended timeout events.
9441

    
9442
2006-05-04  jrandom
9443
    * Short circuit a highly congested part of the stat logging unless its
9444
      required (may or may not help with a synchronization issue reported by
9445
      andreas)
9446

    
9447
2006-05-03  Complication
9448
    * Allow a single build attempt to proceed despite 1-minute overload
9449
      only if the 1-second rate shows enough spare bandwidth
9450
      (e.g. overload has already eased)
9451

    
9452
2006-05-02  Complication
9453
    * Correct a misnamed property in SummaryHelper.java
9454
      to avoid confusion
9455
    * Make the maximum allowance of our own concurrent
9456
      tunnel builds slightly adaptive: one concurrent build per 6 KB/s
9457
      within the fixed range 2..10
9458
    * While overloaded, try to avoid completely choking our own build attempts,
9459
      instead prefer limiting them to 1
9460

    
9461
2006-05-01  jrandom
9462
    * Adjust the tunnel build timeouts to cut down on expirations, and
9463
      increased the SSU connection establishment retransmission rate to
9464
      something less glacial.
9465
    * For the first 5 minutes of uptime, be less aggressive with tunnel
9466
      exploration, opting for more reliable peers to start with.
9467

    
9468
2006-05-01  jrandom
9469
    * Fix for a netDb lookup race (thanks cervantes!)
9470

    
9471
2006-04-27  jrandom
9472
    * Avoid a race in the message reply registry (thanks cervantes!)
9473

    
9474
2006-04-27  jrandom
9475
    * Fixed the tunnel expiration desync code (thanks Complication!)
9476

    
9477
* 2006-04-23  0.6.1.17 released
9478

    
9479
2006-04-19  jrandom
9480
    * Adjust how we pick high capacity peers to allow the inclusion of fast
9481
      peers (the previous filter assumed an old usage pattern)
9482
    * New set of stats to help track per-packet-type bandwidth usage better
9483
    * Cut out the proactive tail drop from the SSU transport, for now
9484
    * Reduce the frequency of tunnel build attempts while we're saturated
9485
    * Don't drop tunnel requests as easily - prefer to explicitly reject them
9486

    
9487
* 2006-04-15  0.6.1.16 released
9488

    
9489
2006-04-15  jrandom
9490
    * Adjust the proactive tunnel request dropping so we will reject what we
9491
      can instead of dropping so much (but still dropping if we get too far
9492
      overloaded)
9493

    
9494
2006-04-14  jrandom
9495
    * 0 isn't very random
9496
    * Adjust the tunnel drop to be more reasonable
9497

    
9498
2006-04-14  jrandom
9499
    * -28.00230115311259 is not between 0 and 1 in any universe I know.
9500
    * Made the bw-related tunnel join throttle much simpler
9501

    
9502
2006-04-14  jrandom
9503
    * Make some more stats graphable, and allow some internal tweaking on the
9504
      tunnel pairing for creation and testing.
9505

    
9506
* 2006-04-13  0.6.1.15 released
9507

    
9508
2006-04-12  jrandom
9509
    * Added a further failsafe against trying to queue up too many messages to
9510
      a peer.
9511

    
9512
2006-04-12  jrandom
9513
    * Watch out for failed syndie index fetches (thanks bar!)
9514

    
9515
2006-04-11  jrandom
9516
    * Throttling improvements on SSU - throttle all transmissions to a peer
9517
      when we are retransmitting, not just retransmissions.  Also, if
9518
      we're already retransmitting to a peer, probabalistically tail drop new
9519
      messages targetting that peer, based on the estimated wait time before
9520
      transmission.
9521
    * Fixed the rounding error in the inbound tunnel drop probability.
9522

    
9523
2006-04-10  jrandom
9524
    * Include a combined send/receive graph (good idea cervantes!)
9525
    * Proactively drop inbound tunnel requests probabalistically as the
9526
      estimated queue time approaches our limit, rather than letting them all
9527
      through up to that limit.
9528

    
9529
2006-04-08  jrandom
9530
    * Stat summarization fix (removing the occational holes in the jrobin
9531
      graphs)
9532

    
9533
2006-04-08  jrandom
9534
    * Process inbound tunnel requests more efficiently
9535
    * Proactively drop inbound tunnel requests if the queue before we'd
9536
      process it in is too long (dynamically adjusted by cpu load)
9537
    * Adjust the tunnel rejection throttle to reject requeusts when we have to
9538
      proactively drop too many requests.
9539
    * Display the number of pending inbound tunnel join requests on the router
9540
      console (as the "handle backlog")
9541
    * Include a few more stats in the default set of graphs
9542

    
9543
2006-04-06  jrandom
9544
    * Fix for a bug in the new irc ping/pong filter (thanks Complication!)
9545

    
9546
2006-04-06  jrandom
9547
    * Fixed a typo in the reply cleanup code
9548

    
9549
* 2006-04-05  0.6.1.14 released
9550

    
9551
2006-04-05  jrandom
9552
    * Cut down on the time that we allow a tunnel creation request to sit by
9553
      without response, and reject tunnel creation requests that are lagged
9554
      locally.  Also switch to a bounded FIFO instead of a LIFO
9555
    * Threading tweaks for the message handling (thanks bar!)
9556
    * Don't add addresses to syndie with blank names (thanks Complication!)
9557
    * Further ban clearance
9558

    
9559
2006-04-05  jrandom
9560
    * Fix during the ssu handshake to avoid an unnecessary failure on
9561
      packet retransmission (thanks ripple!)
9562
    * Fix during the SSU handshake to use the negotiated session key asap,
9563
      rather than using the intro key for more than we should (thanks ripple!)
9564
    * Fixes to the message reply registry (thanks Complication!)
9565
    * More comprehensive syndie banning (for repeated pushes)
9566
    * Publish the router's ballpark bandwidth limit (w/in a power of 2), for
9567
      testing purposes
9568
    * Put a floor back on the capacity threshold, so too many failing peers
9569
      won't cause us to pick very bad peers (unless we have very few good
9570
      ones)
9571
    * Bugfix to cut down on peers using introducers unneessarily (thanks
9572
      Complication!)
9573
    * Reduced the default streaming lib message size to fit into a single
9574
      tunnel message, rather than require 5 tunnel messages to be transferred
9575
      without loss before recomposition.  This reduces throughput, but should
9576
      increase reliability, at least for the time being.
9577
    * Misc small bugfixes in the router (thanks all!)
9578
    * More tweaking for Syndie's CSS (thanks Doubtful Salmon!)
9579

    
9580
2006-04-01  jrandom
9581
    * Take out the router watchdog's teeth (don't restart on leaseset failure)
9582
    * Filter the IRC ping/pong messages, as some clients send unsafe
9583
      information in them (thanks aardvax and dust!)
9584

    
9585
2006-03-30  jrandom
9586
    * Substantially reduced the lock contention in the message registry (a
9587
      major hotspot that can choke most threads).  Also reworked the locking
9588
      so we don't need per-message timer events
9589
    * No need to have additional per-peer message clearing, as they are
9590
      either unregistered individually or expired.
9591
    * Include some of the more transient tunnel throttling
9592

    
9593
* 2006-03-26  0.6.1.13 released
9594

    
9595
2006-03-25  jrandom
9596
    * Added a simple purge and ban of syndie authors, shown as the
9597
      "Purge and ban" button on the addressbook for authors that are already
9598
      on the ignore list.  All of their entries and metadata are deleted from
9599
      the archive, and the are transparently filtered from any remote
9600
      syndication (so no user on the syndie instance will pull any new posts
9601
      from them)
9602
    * More strict tunnel join throtting when congested
9603

    
9604
2006-03-24  jrandom
9605
    * Try to desync tunnel building near startup (thanks Complication!)
9606
    * If we are highly congested, fall back on only querying the floodfill
9607
      netDb peers, and only storing to those peers too
9608
    * Cleaned up the floodfill-only queries
9609

    
9610
2006-03-21  jrandom
9611
    * Avoid a very strange (unconfirmed) bug that people using the systray's
9612
      browser picker dialog could cause by disabling the GUI-based browser
9613
      picker.
9614
    * Cut down on subsequent streaming lib reset packets transmitted
9615
    * Use a larger MTU more often
9616
    * Allow netDb searches to query shitlisted peers, as the queries are
9617
      indirect.
9618
    * Add an option to disable non-floodfill netDb searches (non-floodfill
9619
      searches are used by default, but can be disabled by adding
9620
      netDb.floodfillOnly=true to the advanced config)
9621

    
9622
2006-03-20  jrandom
9623
    * Fix to allow for some slack when coalescing stats
9624
    * Workaround some oddball errors
9625

    
9626
2006-03-18  jrandom
9627
    * Added a new graphs.jsp page to show all of the stats being harvested
9628

    
9629
2006-03-18  jrandom
9630
    * Made the netDb search load limitations a little less stringent
9631
    * Add support for specifying the number of periods to be plotted on the
9632
      graphs - e.g. to plot only the last hour of a stat that is averaged at
9633
      the 60 second period, add &periodCount=60
9634

    
9635
2006-03-17  jrandom
9636
    * Add support for graphing the event count as well as the average stat
9637
      value (done by adding &showEvents=true to the URL).  Also supports
9638
      hiding the legend (&hideLegend=true), the grid (&hideGrid=true), and
9639
      the title (&hideTitle=true).
9640
    * Removed an unnecessary arbitrary filter on the profile organizer so we
9641
      can pick high capacity and fast peers more appropriately
9642

    
9643
2006-03-16  jrandom
9644
    * Integrate basic hooks for jrobin (http://jrobin.org) into the router
9645
      console.  Selected stats can be harvested automatically and fed into
9646
      in-memory RRD databases, and those databases can be served up either as
9647
      PNG images or as RRDtool compatible XML dumps (see oldstats.jsp for
9648
      details).  A base set of stats are harvested by default, but an
9649
      alternate list can be specified by setting the 'stat.summaries' list on
9650
      the advanced config.  For instance:
9651
      stat.summaries=bw.recvRate.60000,bw.sendRate.60000
9652
    * HTML tweaking for the general config page (thanks void!)
9653
    * Odd NPE fix (thanks Complication!)
9654

    
9655
2006-03-15  Complication
9656
    * Trim out an old, inactive IP second-guessing method
9657
      (thanks for spotting, Anonymous!)
9658

    
9659
2006-03-15  jrandom
9660
    * Further stat cleanup
9661
    * Keep track of how many peers we are actively trying to communicate with,
9662
      beyond those who are just trying to communicate with us.
9663
    * Further router tunnel participation throttle revisions to avoid spurious
9664
      rejections
9665
    * Rate stat display cleanup (thanks ripple!)
9666
    * Don't even try to send messages that have been queued too long
9667

    
9668
2006-03-05  zzz
9669
    * Remove the +++--- from the logs on i2psnark startup
9670

    
9671
2006-03-05  jrandom
9672
    * HTML fixes in Syndie to work better with opera (thanks shaklen!)
9673
    * Give netDb lookups to floodfill peers more time, as they are much more
9674
      likely to succeed (thereby cutting down on the unnecessary netDb
9675
      searches outside the floodfill set)
9676
    * Fix to the SSU IP detection code so we won't use introducers when we
9677
      don't need them (thanks Complication!)
9678
    * Add a brief shitlist to i2psnark so it doesn't keep on trying to reach
9679
      peers given to it
9680
    * Don't let netDb searches wander across too many peers
9681
    * Don't use the 1s bandwidth usage in the tunnel participation throttle,
9682
      as its too volatile to have much meaning.
9683
    * Don't bork if a Syndie post is missing an entry.sml
9684

    
9685
2006-03-05  Complication
9686
    * Reduce exposed statistical information,
9687
      to make build and uptime tracking more expensive
9688

    
9689
2006-03-04  Complication
9690
    * Fix the announce URL of orion's tracker in Snark sources
9691

    
9692
2006-03-03  Complication
9693
    * Explicit check for an index out of bounds exception while parsing
9694
      an inbound IRC command (implicit check was there already)
9695

    
9696
2006-03-01  jrandom
9697
    * More aggressive tunnel throttling as we approach our bandwidth limit,
9698
      and throttle based off periods wider than 1 second.
9699
    * Included Doubtful Salmon's syndie stylings (thanks!)
9700

    
9701
2006-02-27  zzz
9702
    * Update error page templates to add \r, Connection: close, and
9703
      Proxy-connection: close to headers.
9704

    
9705
* 2006-02-27  0.6.1.12 released
9706

    
9707
2006-02-27  jrandom
9708
    * Adjust the jbigi.jar to use the athlon-optimized jbigi on windows/amd64
9709
      machines, rather than the generic jbigi (until we have an athlon64
9710
      optimized version)
9711

    
9712
2006-02-26  jrandom
9713
    * Switch from the bouncycastle to the gnu-crypto implementation for
9714
      SHA256, as benchmarks show a 10-30% speedup.
9715
    * Removed some unnecessary object caches
9716
    * Don't close i2psnark streams prematurely
9717

    
9718
2006-02-25  jrandom
9719
    * Made the Syndie permalinks in the thread view point to the blog view
9720
    * Disabled TCP again (since the live net seems to be doing well w/out it)
9721
    * Fix the message time on inbound SSU establishment (thanks zzz!)
9722
    * Don't be so aggressive with parallel tunnel creation when a tunnel pool
9723
      just starts up
9724

    
9725
2006-02-24  jrandom
9726
    * Rounding calculation cleanup in the stats, and avoid an uncontested
9727
      mutex (thanks ripple!)
9728
    * SSU handshake cleanup to help force incompatible peers to stop nagging
9729
      us by both not giving them an updated reference to us and by dropping
9730
      future handshake packets from them.
9731

    
9732
2006-02-23  jrandom
9733
    * Increase the SSU retransmit ceiling (for slow links)
9734
    * Estimate the sender's SSU MTU (to help see if we agree)
9735

    
9736
2006-02-22  jrandom
9737
    * Fix to properly profile tunnel joins (thanks Ragnarok, frosk, et al!)
9738
    * More aggressive poor-man's PMTU, allowing larger MTUs on less reliable
9739
      links
9740
    * Further class validator refactorings
9741

    
9742
2006-02-22  jrandom
9743
    * Handle a rare race under high bandwidth situations in the SSU transport
9744
    * Minor refactoring so we don't confuse sun's 1.6.0-b2 validator
9745

    
9746
2006-02-21  Complication
9747
    * Reactivate TCP tranport by default, in addition to re-allowing
9748

    
9749
* 2006-02-21  0.6.1.11 released
9750

    
9751
2006-02-21  jrandom
9752
    * Throttle the outbound SSU establishment queue, so it doesn't fill up the
9753
      heap when backlogged (and so that the messages queued up on it don't sit
9754
      there forever)
9755
    * Further SSU memory cleanup
9756
    * Clean up the address regeneration code so it knows when to rebuild the
9757
      local info more precisely.
9758

    
9759
2006-02-20  jrandom
9760
    * Properly enable TCP this time (oops)
9761
    * Deal with multiple form handlers on the same page in the console without
9762
      being too annoying (thanks blubb and bd_!)
9763

    
9764
2006-02-20  jrandom
9765
    * Reenable the TCP transport as a fallback (we'll continue to muck with
9766
      debugging SSU-only elsewhere)
9767

    
9768
2006-02-20  jrandom
9769
    * Major SSU and router tuning to reduce contention, memory usage, and GC
9770
      churn.  There are still issues to be worked out, but this should be a
9771
      substantial improvement.
9772
    * Modified the optional netDb harvester task to support choosing whether
9773
      to use (non-anonymous) direct connections or (anonymous) exploratory
9774
      tunnels to do the harvesting.  Harvesting itself is enabled via the
9775
      advanced config "netDb.shouldHarvest=true" (default is false) and the
9776
      connection type can be chosen via "netDb.harvestDirectly=false" (default
9777
      is false).
9778

    
9779
2006-02-19  dust
9780
    * Added pruning of suckers history (it used to grow indefinitely).
9781

    
9782
2006-02-19  jrandom
9783
    * Moved the current net's reseed URL to a different location than where
9784
      the old net looks (dev.i2p.net/i2pdb2/ vs .../i2pdb/)
9785
    * More aggressively expire inbound messages (on receive, not just on send)
9786
    * Add in a hook for breaking backwards compatibility in the SSU wire
9787
      protocol directly by including a version as part of the handshake.  The
9788
      version is currently set to 0, however, so the wire protocol from this
9789
      build is compatible with all earlier SSU implementations.
9790
    * Increased the number of complete message readers, cutting down
9791
      substantially on the delay processing inbound messages.
9792
    * Delete the message history file on startup
9793
    * Reworked the restart/shutdown display on the console (thanks bd_!)
9794

    
9795
2006-02-18  jrandom
9796
    * Migrate the outbound packets from a central component to the individual
9797
      per-peer components, substantially cutting down on lock contention when
9798
      dealing with higher degrees.
9799
    * Load balance the outbound SSU transfers evenly across peers, rather than
9800
      across messages (so peers with few messages won't be starved by peers
9801
      with many).
9802
    * Reduce the frequency of router info rebuilds (thanks bar!)
9803

    
9804
2006-02-18  jrandom
9805
    * Add a new AIMD throttle in SSU to control the number of concurrent
9806
      messages being sent to a given peer, in addition to the throttle on the
9807
      number of concurrent bytes to that peer.
9808
    * Adjust the existing SSU outbound queue to throttle based on the queue's
9809
      lag, not an arbitrary number of packets.
9810

    
9811
2006-02-17  jrandom
9812
    * Properly fix the build request queue throttling, using queue age to
9813
      detect congestion, rather than queue size.
9814

    
9815
2006-02-17  jrandom
9816
    * Disable the message history log file by default (duh - feel free to
9817
      delete messageHistory.txt after upgrading.  thanks deathfatty!)
9818
    * Limit the size of the inbound tunnel build request queue so we don't
9819
      get an insane backlog of requests that we're bound to reject, and adjust
9820
      the queue processing so we keep on churning through them when we've got
9821
      a backlog.
9822
    * Small fixes for the multiuser syndie operation (thanks Complication!)
9823
    * Renamed modified PRNG classes that were imported from gnu-crypto so we
9824
      don't conflict with JVMs using that as a JCE provider (thanks blx!)
9825

    
9826
* 2006-02-16  0.6.1.10 released
9827

    
9828
2006-02-16  jrandom
9829
    * Add a new toggle to the web config to enable/disable the load testing
9830

    
9831
2006-02-16  jrandom
9832
    * Dropped much of the abandonware from the apps/ directory
9833

    
9834
2006-02-16  jrandom
9835
    * Bugfix to the I2PTunnel web config to properly accept i2cp port settings
9836
    * Initial sucker refactoring to simplify reuse of the html parsing
9837
    * Beginnings of hooks to push imported rss/atom out to remote syndie
9838
      archives automatically (though not enabled currently)
9839
    * Further SSU peer test cleanup
9840

    
9841
2006-02-15  jrandom
9842
    * Add in per-blog RSS feeds to Syndie
9843
    * Upgraded sucker's ROME dependency to 0.8, bundling sucked enclosures
9844
      with the posts, marking additional attachments as Media RSS enclosures
9845
      (http://search.yahoo.com/mrss/), since RSS only supports one enclosure
9846
      per item.
9847
    * Don't allow the default syndie user to be set to something invalid if
9848
      its in single user mode.
9849

    
9850
2006-02-15  jrandom
9851
    * Merged in the i2p_0_6_1_10_PRE branch to the trunk, so CVS HEAD is no
9852
      longer backwards compatible (and should not be used until 0.6.1.1 is
9853
      out)
9854

    
9855
2006-02-14  jrandom
9856
    * Syndie ui bugfixes (thanks all!)
9857

    
9858
2006-02-13  jrandom
9859
    * Use the current directory for some temporary I2PSnark files, rather than
9860
      the OS default temp dir (thanks anon!)
9861
    * Increase the base streaming lib window size (still shrinks to 1 on
9862
      retransmission though, of course)
9863
    * Fixed the I2PTunnel newlines to work with lighthttpd (thanks all!)
9864
    * Implement fast retransmit in the streaming lib (fires at most once per
9865
      packet), and increased the default ack delay to 2 seconds (from .5s)
9866
    * Don't ask for garlic level message acks for end to end messages unless
9867
      they're useful (e.g. to ack session tags)
9868

    
9869
2006-02-12  cervantes
9870
    * Use a different santisation method for some SML attributes
9871
    * Make router console update config save button actually save.
9872
    * Fix console bandwidth limiter burst rate dropdowns, so the display
9873
      relates to what is saved in the config.
9874

    
9875
2006-02-12  cervantes
9876
    * SML is now stricter in it's formatting (attributes should only use
9877
      double quotes instead of being allowed to mix with singles).
9878
    * Using apostrophes in SML attributes will no longer invalidate the tag.
9879
    * Some instances of [blog] tag description were not being displayed
9880
      correctly.
9881

    
9882
2006-02-12  jrandom
9883
    * Further SSU peer test throttling
9884
    * Put the most common router console features on the main index page too
9885

    
9886
2006-02-11  jrandom
9887
    * Be more careful about SSU peer test floods
9888

    
9889
2006-02-09  jrandom
9890
    * Adjusted one of the SSU timeouts so we don't drop peers as easily (duh)
9891

    
9892
2006-02-08  jrandom
9893
    * Added transparent support for VIA C3 CPUs to jbigi (thanks Nekow42), and
9894
      bundled a precompiled libjbigi.so in the jbigi.jar
9895
    * Cleaned up the synchronization for some SSU packet handling code
9896
    * Allow explicit rejection of more lagged tunnel build requests, rather
9897
      than dropping them outright
9898
    * Use lighter load testing
9899

    
9900
2006-02-07  jrandom
9901
    * Handle HTTP headers without any values (thanks Sugadude!)
9902
    * Don't show the option to make Syndie multiuser, since very few people
9903
      need it, and multiuser mode is a lot more complex to use.  Geeks can
9904
      enable it by adding "syndie.singleUser=false" to syndie/syndie.config
9905
      (or in the router's advanced config, for the embedded Syndie)
9906
    * When a peer rejects participation in a tunnel, they mean it (duh)
9907
    * Decrease tunnel test timeout period to 20s (a 40s lag is insane)
9908
    * Remove a throttle on the size of the SSU active outbound pool, since
9909
      it was essentially arbitrary
9910
    * Use a more appropriate SSU bloom filter size
9911
    * Don't "proactively" drop SSU connections if we have partially received
9912
      inbound messages (duh)
9913
    * Migrate most of the message state across SSU connection reestablishment
9914

    
9915
2006-02-06  jrandom
9916
    * Reduce the SSU retransmit timeout range, and increase the number of ACKs
9917
      piggybacked
9918

    
9919
2006-02-05  jrandom
9920
    * Experiment with short exponents for DH/ElGamal, using a 226bit x instead
9921
      of a 2048bit x, as reports suggest that size is sufficient for 2048bit
9922
      DH/ElGamal when using safe primes (see KeyGenerator.java for references)
9923
    * Enable the messageHistory.txt by default, for debugging
9924

    
9925
2006-02-05  jrandom
9926
    * Substantial bugfix for the duplicate message detection in the transport
9927
      layer
9928
    * Handle tunnel build responses ASAP, rather than queueing them up to wait
9929
      in line (processing them is really fast - just a few AES loops)
9930
    * Don't bother handling build requests that we have queued up for a while
9931
      locally, as the requestor will have timed it out anyway (perhaps we
9932
      should reply regardless, but with a backoff instead?)
9933

    
9934
2006-02-04  jrandom
9935
    * Further tunnel test cleanup and disabling of the old tunnel creation
9936
      code
9937

    
9938
2006-02-04  jrandom
9939
    * Clean up and reenable the tunnel testing for the new tunnel system.
9940

    
9941
2006-02-04  jrandom
9942
    * Don't cache the archive.txt in syndie when fetching it through the web
9943
      interface.
9944
    * Logging updates
9945

    
9946
2006-02-03  jrandom
9947
    * Added further replay prevention on the tunnel build requests
9948
    * More aggressive streaming lib closing on reset
9949

    
9950
2006-02-03  jrandom
9951
    * More aggressive refusal of peers from the wrong network (oops)
9952

    
9953
2006-02-01  jrandom
9954
    * Instruct the router to reseed against a new URL, for migration purposes:
9955
      http://dev.i2p.net/i2pdb2/
9956
    * Aggressive error handling during UDP packet creation (thanks cervantes)
9957

    
9958
2006-02-01  jrandom
9959
    * Fix the new tunnel creation crypto, including the addition of a 4 byte
9960
      "next message ID" to the encrypted request structure in the spec.
9961
    * Backwards incompatible change, using the new tunnel creation crypto, the
9962
      fixed MD5 HMAC size, and a new network ID (to prevent cross pollination
9963
      with the old incompatible network).
9964
    * Reworked the leaseSet request process to handle a race condition
9965
    * Disable the TCP transport
9966
    * Run four separate threads on the job queue to cut down on job lag
9967

    
9968
2006-01-28  jrandom
9969
    * Removed a race that could show up in leaseSet requesting with the new
9970
      tunnel building process
9971

    
9972
2006-01-25  jrandom
9973
    * Run the peer profile coalescing/reorganization outside the job queue
9974
      (on one of the timers), to cut down on some job queue congestion.  Also,
9975
      trim old profiles while running, not just when starting up.
9976
    * Slightly more sane intra-floodfill-node netDb activity (only flood new
9977
      entries)
9978
    * Workaround in the I2PTunnelHTTPServer for some bad requests (though the
9979
      source of the bug is not yet addressed)
9980
    * Better I2PSnark reconnection handling
9981
    * Further cleanup in the new tunnel build process
9982
    * Make sure we expire old participants properly
9983
    * Remove much of the transient overload throttling (it wasn't using a good
9984
      metric)
9985

    
9986
2006-01-25  dust
9987
    * Fix IRC client proxy to use ISO-8859-1.
9988

    
9989
2006-01-22  jrandom
9990
    * New tunnel build process - does not use the new crypto or new peer
9991
      selection strategies.  However, it does drop the fallback tunnel
9992
      procedure, except for tunnels who are configured to allow them, or for
9993
      the exploratory pool during bootstrapping or after a catastrophic
9994
      failure.  This new process prefers to fail rather than use too-short
9995
      tunnels, so while it can do some pretty aggressive tunnel rebuilding,
9996
      it may expose more tunnel failures to the user.
9997
    * Always prefer normal tunnels to fallback tunnels.
9998
    * Potential fix for a bug while changing i2cp settings on I2PSnark (thanks
9999
      bar!)
10000
    * Do all of the netDb entry writing in a separate thread, avoiding
10001
      duplicates and batching them up.
10002

    
10003
2006-01-19  Complication
10004
    * Explain better where eepsite's destkey can be found
10005

    
10006
2006-01-18  cervantes
10007
    * Add title attributes to all external links in Syndie, so we can rollover
10008
      and quickly see if it's worth clicking on.
10009
    * Fixed a minor compiler warning.
10010

    
10011
2006-01-17  jrandom
10012
    * First pass of the new tunnel creation crypto, specified in the new
10013
      router/doc/tunnel-alt-creation.html (referenced in the current
10014
      router/doc/tunnel-alt.html).  It isn't actually used anywhere yet, other
10015
      than in the test code, but the code verifies the technical viability, so
10016
      further scrutiny would be warranted.
10017

    
10018
2006-01-16  cervantes
10019
    * Dragged I2P kicking and screaming into 2006 (Oops)
10020

    
10021
2006-01-14  cervantes
10022
    * Removed entirely misleading memory status from the console summary.
10023

    
10024
2006-01-13  cervantes
10025
    * Further Syndie layout hardening and typeface balancing.
10026

    
10027
* 2006-01-12  0.6.1.9 released
10028

    
10029
2006-01-12  jrandom
10030
    * Only create the loadtest.log if requested to do so (thanks zzz!)
10031
    * Make sure we cleanly take into consideration the appropriate data
10032
      points when filtering out duplicate messages in the message validator,
10033
      and report the right bloom filter false positives rate (not used for
10034
      anything except debugging)
10035

    
10036
2006-01-12  cervantes
10037
    * Syndie CSS tweaks to removed some redundant declarations, improve font
10038
      scaling and layout robustness. Improved cross browser compatibility
10039
      (in other words "kicked IE"). Tightened the look of the blog template
10040
      a little.
10041

    
10042
2006-01-11  Complication
10043
    * CSS comment fixes
10044

    
10045
2006-01-11  jrandom
10046
    * Include the attachments/blogs/etc for comments on the blog view
10047
    * Syndie HTML fixes (thanks cervantes!)
10048
    * Make sure we fully reset the objects going into our cache before we
10049
      reuse them (thanks zzz!)
10050

    
10051
2006-01-10  jrandom
10052
    * Added the per-post list of attachments/blogs/etc to the blog view in
10053
      Syndie (though this does not yet include comments or some further
10054
      refinements)
10055
    * Have the I2P shortcut launch i2p.exe instead of i2psvc.exe on windows,
10056
      removing the dox box (though also removes the restart functionality...)
10057
    * Give the i2p.exe the correct java.library.path to support the systray
10058
      dll (thanks Bobcat, Sugadude, anon!)
10059

    
10060
2006-01-09  jrandom
10061
    * Removed a longstanding bug that had caused unnecessary router identity
10062
      churn due to clock skew
10063
    * Temporarily sanity check within the streaming lib for long pending
10064
      writes
10065
    * Added support for a blog-wide logo to Syndie, and automated the pushing
10066
      of updated extended blog info data along side the metadata.
10067

    
10068
2006-01-09  jrandom
10069
    * Bugfix for a rare SSU error (thanks cervantes!)
10070
    * More progress on the blog interface, allowing customizable blog-wide
10071
      links.
10072

    
10073
2006-01-08  jrandom
10074
    * First pass of the new blog interface, though without much of the useful
10075
      customization features (coming soon)
10076

    
10077
2006-01-04  jrandom
10078
    * Rather than profile individual tunnels for throughput over their
10079
      lifetime, do so at 1 minute intervals (allowing less frequently active
10080
      tunnels to be more fairly measured).
10081
    * Run the live tunnel load test across two tunnels at a time, by default.
10082
      The load test runs for a random period from 90s to the tunnel lifetime,
10083
      self paced.  This should help gathering data for profiling peers that
10084
      are in exploratory tunnels.
10085

    
10086
2006-01-03  jrandom
10087
    * Calculate the overall peer throughput across the 3 fastest one minute
10088
      tunnel throughput values, rather than the single fastest throughput.
10089
    * Degrade the profiled throughput data over time (cutting the profiled
10090
      peaks in half once a day, on average)
10091
    * Enable yet another new speed calculation for profiling peers, using the
10092
      peak throughput from individual tunnels that a peer is participating in,
10093
      rather than across all tunnels they are participating in.  This helps
10094
      gather a fairer peer throughput measurement, since it won't allow a slow
10095
      high capacity peer seem to have a higher throughput (pushing a little
10096
      data across many tunnels at once, as opposed to lots of data across a
10097
      single tunnel).  This degrades over time like the other.
10098
    * Add basic OS/2 support to the jbigi code (though we do not bundle a
10099
      precompiled OS/2 library)
10100

    
10101
2006-01-01  jrandom
10102
    * Disable multifile torrent creation in I2PSnark's web UI for the moment
10103
      (though it can still seed and participate in multifile swarms)
10104
    * Enable a new speed calculation for profiling peers, using their peak
10105
      1 minute average tunnel throughput as their speed.
10106

    
10107
2005-12-31  jrandom
10108
    * Include a simple torrent creator in the I2PSnark web UI
10109
    * Further streaming lib closing improvements
10110
    * Refactored the load test components to run off live tunnels (though,
10111
      still not safe for normal/anonymous load testing)
10112

    
10113
2005-12-30  jrandom
10114
    * Close streams more gracefully
10115

    
10116
2005-12-30  jrandom
10117
    * Small streaming lib bugfixes for the modified timeouts
10118
    * Minor Syndie/Sucker RSS html fix
10119
    * Small synchronization fix in I2PSnark (thanks fsm!)
10120

    
10121
2005-12-30  jrandom
10122
    * Replaced the bundled linux jcpuid (written in C++) with scintilla's
10123
      jcpuid (written in C), removing the libg++.so.5 dependency that has bit
10124
      some distros (e.g. mandriva)
10125

    
10126
2005-12-29  jrandom
10127
    * Minor fix to the new ERR-ClockSkew to deal with people whose clocks are
10128
      actually correct
10129

    
10130
2005-12-27  jrandom
10131
    * Add a new Status: line on the router console - "ERR-ClockSkew", in case
10132
      the clock is too skewed to do anything useful (check the year and month,
10133
      not just the hour and minute).
10134
    * Fixed the read/write timeouts in the streaming lib (so that it actually
10135
      honors them now)
10136
    * Minor I2PSnark cleanups (no read timeout, more careful shutdown and
10137
      torrent closing)
10138
    * Handle an oddball tunnel creation failure (thanks Xunk)
10139

    
10140
2005-12-26  Complication
10141
    * Fix some integer typecasting in I2PSnark (caused >2GB torrents to fail)
10142
    * HTML readability cosmetics on "Peers" page
10143

    
10144
* 2005-12-22  0.6.1.8 released
10145

    
10146
2005-12-22  jrandom
10147
    * Bundle the standalone I2PSnark launcher in the installer and update
10148
      process (launch as "java -jar launch-i2psnark.jar", viewing the
10149
      interface on http://localhost:8002/)
10150
    * Don't autostart swarming torrents by default so that you can run a
10151
      standalone I2PSnark from the I2P install dir and not have the embedded
10152
      I2PSnark autolaunch the torrents that the standalone instance is running
10153
    * Fixed a rare streaming lib bug that could let a blocking call wait
10154
      forever.
10155

    
10156
2005-12-22  jrandom
10157
    * Cleaned up some buffer synchronization issues in I2PSnark that could
10158
      cause blockage.
10159

    
10160
2005-12-21  jrandom
10161
    * Adjusted I2PSnark's usage of the streaming lib (tweaking it for BT's
10162
      behavior)
10163
    * Fixed the I2PSnark bug that would lose track of live peers
10164

    
10165
2005-12-20  jrandom
10166
    * Enabled the control in I2PSnark to toggle whether torrents should be
10167
      started automatically or not
10168
    * Hopefully finished the last hook to close down torrents completely when
10169
      they're stopped.
10170

    
10171
2005-12-19  jrandom
10172
    * Fix for old Syndie blog bookmarks (thanks Complication!)
10173
    * Fix for I2PSnark to accept incoming connections again (oops)
10174
    * Randomize the order that peers from the tracker are contacted
10175

    
10176
2005-12-19  jrandom
10177
    * I2PSnark logging, disconnect old inactive peers rather than new ones,
10178
      memory usage reduction, better OOM handling, and a shared connection
10179
      acceptor.
10180
    * Cleaned up the Syndie blog page and the resulting filters (viewing a
10181
      blog from the blog page shows threads started by the selected author,
10182
      not those that they merely participate in)
10183

    
10184
2005-12-18  jrandom
10185
    * Added a standalone runner for the I2PSnark web ui (build with the
10186
      command "ant i2psnark", unzip i2psnark-standalone.zip somewhere, run
10187
      with "java -jar launch-i2psnark.jar", and go to http://localhost:8002/).
10188
    * Further I2PSnark error handling
10189

    
10190
2005-12-17  jrandom
10191
    * Let multiuser accounts authorize themselves to access the remote
10192
      functionality again (thanks Ch0Hag!)
10193
    * Adjust the JVM heap size to 128MB for new installs (existing users can
10194
      accomplish this by editing wrapper.config, adding the line
10195
      "wrapper.java.maxmemory=128", and then doing a full shutdown and startup
10196
      of the router).  This is relevent for heavy usage of I2PSnark in the
10197
      router console.
10198

    
10199
2005-12-17  jrandom
10200
    * Use our faster SHA1, rather than the JVM's within I2PSnark, and let
10201
      'piece' sizes grow larger than before.
10202

    
10203
2005-12-16  jrandom
10204
    * Added some I2PSnark sanity checks, an OOMListener when running
10205
      standalone, and a guard against keeping memory tied up indefinitely.
10206
    * Sanity check on the watchdog (thanks zzz!)
10207
    * Handle invalid HTTP requests in I2PTunnel a little better
10208

    
10209
2005-12-16  jrandom
10210
    * Moved I2PSnark from using Threads to I2PThreads, so we handle OOMs
10211
      properly (thanks Complication!)
10212
    * More guards in I2PSnark for zany behavior (I2PSession recon w/ skew,
10213
      b0rking in the DirMonitor, etc)
10214

    
10215
2005-12-16  jrandom
10216
    * Try to run a torrent in readonly mode if we can't write to the file, and
10217
      handle failures a little more gracefully (thanks polecat!)
10218

    
10219
2005-12-16  jrandom
10220
    * Refuse torrents with too many files (128), avoiding ulimit errors.
10221
    * Remove an fd leak in I2PSnark
10222
    * Further I2PSnark web UI cleanup
10223

    
10224
2005-12-15  jrandom
10225
    * Added a first pass to the I2PSnark web UI (see /i2psnark/)
10226

    
10227
2005-12-15  jrandom
10228
    * Added multitorrent support to I2PSnark, accessible currently by running
10229
      "i2psnark.jar --config i2psnark.config" (which may or may not exist).
10230
      It then joins the swarm for any torrents in ./i2psnark/*.torrent, saving
10231
      their data in that directory as well.  Removing the .torrent file stops
10232
      participation, and it is currently set to seed indefinitely.  Completion
10233
      is logged to the logger and standard output, with further UI interaction
10234
      left to the (work in progress) web UI.
10235

    
10236
2005-12-14  jrandom
10237
    * Fix to drop peer references when we shitlist people again (thanks zzz!)
10238
    * Further I2PSnark fixes to deal with arbitrary torrent info attributes
10239
      (thanks Complication!)
10240

    
10241
2005-12-13  zzz
10242
    * Don't test tunnels expiring within 90 seconds
10243
    * Defer Test Tunnel jobs if job lag too large
10244
    * Use JobQueue.getMaxLag() rather than the jobQueue.jobLag stat to measure
10245
      job lag for tunnel build backoff, allowing for more agile handling
10246
      (since the stat is only updated once a minute)
10247
    * Use tunnel length override if all tunnels are expiring within one
10248
      minute.
10249

    
10250
2005-12-13  jrandom
10251
    * Fixed I2PSnark's handling of some torrent files to deal with those
10252
      created by Azureus and I2PRufus (it didn't know how to deal with
10253
      additional meta info, such as path.utf-8 or name.utf-8).
10254

    
10255
2005-12-09  zzz
10256
    * Create different strategies for exploratory tunnels (which are difficult
10257
      to create) and client tunnels (which are much easier)
10258
    * Gradually increase number of parallel build attempts as tunnel expiry
10259
      nears.
10260
    * Temporarily shorten attempted build tunnel length if builds using
10261
      configured tunnel length are unsuccessful
10262
    * React more aggressively to tunnel failure than routine tunnel
10263
      replacement
10264
    * Make tunnel creation times randomized - there is existing code to
10265
      randomize the tunnels but it isn't effective due to the tunnel creation
10266
      strategy. Currently, most tunnels get built all at once, at about 2 1/2
10267
      to 3 minutes before expiration. The patch fixes this by fixing the
10268
      randomization, and by changing the overlap time (with old tunnels) to a
10269
      range of 2 to 4 minutes.
10270
    * Reduce number of excess tunnels. Lots of excess tunnels get created due
10271
      to overlapping calls. Just about anything generated a call which could
10272
      build many tunnels all at once, even if tunnel building was already in
10273
      process.
10274
    * Miscellaneous router console enhancements
10275

    
10276
2005-12-08  jrandom
10277
    * Minor bugfix in SSU for dealing with corrupt packets
10278
    * Added some hooks for load testing
10279

    
10280
2005-12-07  jrandom
10281
    * Added a first pass at a blog view in Syndie
10282

    
10283
2005-12-07  jrandom
10284
    * Expand the thread we're viewing to its leaf
10285
    * Bugfix on intraday ordering (children are always newer than parents)
10286

    
10287
2005-12-05  jrandom
10288
    * Added an RDF and XML thread export to Syndie, reachable at
10289
      .../threadnav/rdf or .../threadnav/xml, accepting the parameters
10290
      count=$numThreads and offset=$threadIndex.  If the $numThreads is -1, it
10291
      displays all threads.
10292

    
10293
2005-12-04  TLorD
10294
    * Patch for the C SAM library to null terminate strings on copy (thanks!)
10295

    
10296
2005-12-04  jrandom
10297
    * Bugfix in Syndie for a problem in the threaded indexer (thanks CofE!)
10298
    * Always include ourselves in the favorite authors (since we don't
10299
      bookmark ourselves)
10300

    
10301
2005-12-03  jrandom
10302
    * Use newgroup-like tags by default in Syndie's interface
10303

    
10304
2005-12-03  jrandom
10305
    * Added support for a 'most recent posts' view that CofE requested, which
10306
      includes the ability to filter by age (e.g. posts by your favorite
10307
      authors in the last 5 days).
10308

    
10309
2005-12-03  jrandom
10310
    * Adjusted Syndie to use the threaded view that cervantes suggested, which
10311
      displays a a single thread path at a time - from root to leaf - rather
10312
      than a depth first traversal.
10313

    
10314
2005-12-03  jrandom
10315
    * Package up a standalone Syndie install into a "syndie-standalone.zip",
10316
      buildable with "ant syndie".  It extracts into ./syndie/, launches with
10317
      "java -jar launchsyndie.jar" (or javaw, on windows, to avoid a dos box),
10318
      running a single user Syndie instance (by default).  It also creates a
10319
      default subscription to syndiemedia without any anonymity (using no
10320
      proxy).  Upgrades can be done by just replacing the syndie.war with the
10321
      one from I2P.
10322

    
10323
* 2005-12-01  0.6.1.7 released
10324

    
10325
2005-12-01  jrandom
10326
    * Add a new criteria to the tunnel join throttle, backing off people if we
10327
      are failing to talk to our peers more than usual.
10328

    
10329
2005-11-30  jrandom
10330
    * Cleaned up the build process to deal with Jetty 5.1.6 and rename the
10331
      new commons-logging-api.jar to commons-logging.jar, which it replaces.
10332
      Jetty 5.1.6 is pushed with all updates.  Also, no need to push a
10333
      separate jdom or rome, as they're inside syndie.war.
10334

    
10335
2005-11-30  jrandom
10336
    * Don't let the TCP transport alone shitlist a peer, since other
10337
      transports may be working.  Also display whether TCP connections are
10338
      inbound or outbound on the peers page.
10339
    * Fixed some substantial bugs in the SSU introducers where we wouldn't
10340
      talk to anyone who didn't expose an IP (even if they had introducers),
10341
      among other goofy things.
10342
    * When dealing with SSU introducers, send them all a packet at 3s/6s/9s,
10343
      rather than sending one a packet at 3s, then another a packet at 6s,
10344
      and a third a packet at 9s.
10345
    * Fixed Syndie attachments (oops)
10346

    
10347
2005-11-29  zzz
10348
    * Added a link to orion's jump page on the 'key not found' error page.
10349

    
10350
2005-11-29  jrandom
10351
    * Further Syndie UI cleanup
10352
    * Bundled our patched MultiPartRequest code from jetty (APL2 licensed),
10353
      since it hasn't been applied to the jetty CVS yet [1].  Its packaged
10354
      into syndie.jar and renamed to net.i2p.syndie.web.MultiPartRequest, but
10355
      will be removed as soon as its integrated into Jetty.  This patch allows
10356
      posting content in various character sets.
10357
      [1] http://article.gmane.org/gmane.comp.java.jetty.general/6031
10358
    * Upgraded new installs to the latest stable jetty (5.1.6), though this
10359
      isn't pushed as part of the update yet, as there aren't any critical
10360
      bugs.
10361

    
10362
2005-11-29  jrandom
10363
    * Added back in the OSX jbigi, which was accidentally removed a few revs
10364
      back (thanks for the bug report stoerte!)  New installs will get the
10365
      full jbigi, or you can pull the jbigi.jar from CVS by going to
10366
      http://dev.i2p.net/cgi-bin/cvsweb.cgi/i2p/installer/lib/jbigi/jbigi.jar
10367
      and clicking on the first "download" link, saving that jbigi.jar to
10368
      lib/jbigi.jar in your I2P installation directory.  After restarting your
10369
      router, it should load up fine.
10370

    
10371
2005-11-27  jrandom
10372
    * Inlined the Syndie CSS to reduce the number of HTTP requests (and
10373
      because firefox [and others?] delay rendering until they fetch the css).
10374
    * Make sure we fire the shutdown tasks when regenerating a new identity
10375
      (thanks picsou!)
10376
    * Cleaned up some of the things I b0rked in the 'dynamic keys' mode
10377
    * Don't drop SSU sessions if they're still transmitting data successfully,
10378
      even if there are transmission failures
10379
    * Adjusted the time summarization to display hours after 119m, not 90m
10380
    * Further EepGet cleanup (grr)
10381

    
10382
* 2005-11-26 0.6.1.6 released
10383

    
10384
2005-11-26  jrandom
10385
    * Update the sorting in Syndie to consider children 'newer' than parents,
10386
      even if they have the same message ID (duh)
10387
    * Cleaned up some nav links in Syndie (good idea gloin, spaetz!)
10388
    * Added a bunch of tooltips to Syndie's fields (thanks polecat!)
10389
    * Force support for nonvalidating XML in Jetty (so we can handle GCJ/etc
10390
      better)
10391

    
10392
2005-11-26  jrandom
10393
    * Be more explicit about what messages we will handle through a client
10394
      tunnel, and how we will handle them.  This cuts off a set of attacks
10395
      that an active adversary could mount, though they're probably nonobvious
10396
      and would require at least some sophistication.
10397

    
10398
2005-11-26  Raccoon23
10399
    * Added support for 'dynamic keys' mode, where the router creates a new
10400
      router identity whenever it detects a substantial change in its public
10401
      address (read: SSU IP or port).  This only offers minimal additional
10402
      protection against trivial attackers, but should provide functional
10403
      improvement for people who have periodic IP changes, since their new
10404
      router address would not be shitlisted while their old one would be.
10405
    * Added further infrastructure for restricted route operation, but its use
10406
      is not recommended.
10407

    
10408
2005-11-25  jrandom
10409
    * Further Syndie UI cleanups
10410
    * Logging cleanup
10411
    * Fixed link to fproxy.tino.i2p (thanks zzz!)
10412

    
10413
2005-11-25  jrandom
10414
    * Don't publish stats for periods we haven't reached yet (thanks zzz!)
10415
    * Cleaned up the syndie threaded display to show the last updated date for
10416
      a subthread, and to highlight threads updated in the last two days.
10417

    
10418
2005-11-24  jrandom
10419
    * Fix to save syndication settings in Syndie (thanks spaetz!)
10420

    
10421
2005-11-23  jrandom
10422
    * Removed spurious streaming lib RTO increase (it wasn't helpful)
10423
    * Streamlined the tunnel batching to schedule batch transmissions more
10424
      appropriately.
10425
    * Default tunnel pool variance to 2 +0-1 hops
10426

    
10427
2005-11-21  jrandom
10428
    * IE doesn't strip SPAN from <button> form fields, so add in a workaround
10429
      within I2PTunnel.
10430
    * Increase the maximum SSU retransmission timeout to accomodate slower or
10431
      more congested links (though SSU's RTO calculation will usually use a
10432
      much lower timeout)
10433
    * Moved the streaming lib timed events off the main timer queues and onto
10434
      a streaming lib specific set of timer queues.  Streaming lib timed
10435
      events are more likely to have lock contention on the I2CP socket while
10436
      other timed events in the router are (largely) independent.
10437
    * Fixed a case sensitive lookup bug (thanks tino!)
10438
    * Syndie cleanup - new edit form on the preview page, and fixed some blog
10439
      links (thanks tino!)
10440

    
10441
2005-11-19  jrandom
10442
    * Implemented a trivial pure java PMTU backoff strategy, switching between
10443
      a 608 byte MTU and a 1350 byte MTU, depending upon retransmission rates.
10444
    * Fixed new user registration in Syndie (thanks Complication!)
10445

    
10446
2005-11-17  jrandom
10447
    * More cautious file handling in Syndie
10448

    
10449
2005-11-16  jrandom
10450
    * More aggressive I2PTunnel content encoding munging to work around some
10451
      rare HTTP behavior (ignoring q values on Accept-encoding, using gzip
10452
      even when only identity is specified, etc).  I2PTunnelHTTPServer now
10453
      sends "Accept-encoding: \r\n" plus "X-Accept-encoding: x-i2p-gzip\r\n",
10454
      and I2PTunnelHTTPServer handles x-i2p-gzip in either the Accept-encoding
10455
      or X-Accept-encoding headers.  Eepsite operators who do not know to
10456
      check for X-Accept-encoding will simply use the identity encoding.
10457

    
10458
* 2005-11-15  0.6.1.5 released
10459

    
10460
2005-11-14  jrandom
10461
    * Migrate to the new Syndie interface
10462

    
10463
2005-11-11  jrandom
10464
    * Add filtering threads by author to Syndie, populated with authors in the
10465
      user's addressbook
10466
    * When creating the default user, add
10467
      "http://syndiemedia.i2p/archive/archive.txt" to their addressbook,
10468
      configured to automatically pull updates.  (what other archives should
10469
      be included?)
10470
    * Tiny servlet to help dole out the new routerconsole themes, and bundle
10471
      the installer/resources/themes/** into ./docs/themes/** on both install
10472
      and update.
10473

    
10474
2005-11-11  cervantes
10475
    * Initial pass of the routerconsole revamp, starting with I2PTunnel and
10476
      being progressively rolled out to other sections at later dates.
10477
      Featuring abstracted W3C strict XHTML1.0 markup, with CSS providing
10478
      layout and styling.
10479
    * Implemented console themes. Users can create their own themes by
10480
      creating css files in: {i2pdir}/docs/themes/console/{themename}/
10481
      and activating it using the routerconsole.theme={themename} advanced
10482
      config property. Look at the example incomplete "defCon1" theme.
10483
      Note: This is very much a work in progress. Folks might want to hold-off
10484
      creating their own skins until the markup has solidified.
10485
    * Added "routerconsole.javascript.disabled=true" to disable console
10486
      client-side scripting and "routerconsole.css.disabled=true" to remove
10487
      css styling (only rolled out in the i2ptunnel interface currently)
10488
    * Fixed long standing bug with i2ptunnel client and server edit screens
10489
      where tunnel count and depth properties would fail to save. Added
10490
      backup quantity and variance configuration options.
10491
    * Added basic accessibility support (key shortcuts, linear markup, alt and
10492
      title information and form labels).
10493
    * So far only tested on IE6, Firefox 1.0.6, Opera 8 and lynx.
10494

    
10495
2005-11-11  jrandom
10496
    * Default Syndie to single user mode, and automatically log into a default
10497
      user account (additional accounts can be logged into with the 'switch'
10498
      or login pages, and new accounts can be created with the register page).
10499
    * Disable the 'automated' column on the Syndie addressbook unless the user
10500
      is appropriately authorized (good idea Polecat!)
10501

    
10502
2005-11-10  jrandom
10503
    * First pass to a new threaded Syndie interface, which isn't enabled by
10504
      default, as its not done yet.
10505

    
10506
2005-11-06  jrandom
10507
    * Include SSU establishment failure in the peer profile as a commError,
10508
      as we do for TCP establishment failures.
10509
    * Don't throttle the initial transmission of a message because of ongoing
10510
      retransmissions to a peer, since the initial transmission of a message
10511
      is more valuable than a retransmission (since it has less latency).
10512
    * Cleaned up links to SusiDNS and I2PTunnel (thanks zzz!)
10513

    
10514
2005-11-05  jrandom
10515
    * Include the most recent ACKs with packets, rather than only sending an
10516
      ack exactly once.  SSU differs from TCP in this regard, as TCP has ever
10517
      increasing sequence numbers, while each message ID in SSU is random, so
10518
      we don't get the benefit of later ACKs implicitly ACKing earlier
10519
      messages.
10520
    * Reduced the max retransmission timeout for SSU
10521
    * Don't try to send messages queued up for a long time waiting for
10522
      establishment.
10523

    
10524
2005-11-05  dust
10525
    * Fix sucker to delete its temporary files.
10526
    * Improve sucker's sml output some.
10527
    * Fix Exception in SMLParser for weird sml.
10528

    
10529
2005-11-03  zzz
10530
    * Added a new error page to the eepproxy to differentiate the full 60
10531
      second timeout from the immediate "I don't know this base64" failure.
10532

    
10533
2005-11-01  jrandom
10534
    * Added a few more css elements (thanks identiguy!)
10535

    
10536
2005-10-31  jrandom
10537
    * Fix for some syndie reply scenarios (thanks identiguy and CofE!)
10538
    * Removed a potentially infinitely recursive call (oops)
10539

    
10540
2005-10-30  dust
10541
    * Merge sucker into syndie with a rssimport.jsp page.
10542
    * Add getContentType() to EepGet.
10543
    * Make chunked transfer work (better) with EepGet.
10544
    * Do replaceAll("<","&lt;") for logs.
10545

    
10546
* 2005-10-29  0.6.1.4 released
10547

    
10548
2005-10-29  jrandom
10549
    * Improved the bandwidth throtting on tunnel participation, especially for
10550
      low bandwidth peers.
10551
    * Improved failure handling in SSU with proactive reestablishment of
10552
      failing idle peers, and rather than shitlisting a peer who failed too
10553
      much, drop the SSU session and allow a new attempt (which, if it fails,
10554
      will cause a shitlisting)
10555
    * Clarify the cause of the shitlist on the profiles page, and include
10556
      bandwidth limiter info at the bottom of the peers page.
10557

    
10558
2005-10-26  jrandom
10559
    * In Syndie, propogate the subject and tags in a reply, and show the parent
10560
      post on the edit page for easy quoting.  (thanks identiguy and CofE!)
10561
    * Streamline some netDb query handling to run outside the jobqueue -
10562
      which means they'll run on the particular SSU thread that handles the
10563
      message.  This should help out heavily loaded netDb peers.
10564

    
10565
2005-10-25  jrandom
10566
    * Defer netDb searches for newly referenced peers until we actually want
10567
      them
10568
    * Ignore netDb references to peers on our shitlist
10569
    * Set the timeout for end to end client messages to the max delay after
10570
      finding the leaseSet, so we don't have as many expired messages floating
10571
      around.
10572
    * Add a floor to the streaming lib window size
10573
    * When we need to send a streaming lib ACK, try to retransmit one of the
10574
      unacked packets instead (with updated ACK/NACK fields, of course).  The
10575
      bandwidth cost of an unnecessary retransmission should be minor as
10576
      compared to both an ACK packet (rounded up to 1KB in the tunnels) and
10577
      the probability of a necessary retransmission.
10578
    * Adjust the streaming lib cwin algorithm to allow growth after a full
10579
      cwin messages if the rtt is trending downwards.  If it is not, use the
10580
      existing algorithm.
10581
    * Increased the maximum rto size in the streaming lib.
10582
    * Load balancing bugfix on end to end messages to distribute across
10583
      tunnels more evenly.
10584

    
10585
2005-10-22  jrandom
10586
    * Integrated GNU-Crypto's Fortuna PRNG, seeding it off /dev/urandom and
10587
      ./prngseed.rnd (if they exist), and reseeding it with data out of
10588
      various crypto operations (unused bits in a DH exchange, intermediary
10589
      bits in a DSA signature generation, extra bits in an ElGamal decrypt).
10590
      The Fortuna implementation under gnu.crypto.prng has been modified to
10591
      use BouncyCastle's SHA256 and Cryptix's AES (since those are the ones
10592
      I2P uses), and the resulting gnu.crypto.prng.* are therefor available
10593
      under GPL+Classpath's linking exception (~= LGPL).  I2P's SecureRandom
10594
      wrapper around it is, of course, public domain.
10595

    
10596
2005-10-20  dust
10597
    * Fix bug in ircclient that prevented it to use its own dest (i.e. was
10598
      always shared. (thx for info Ragnarok)
10599
    * Fix crash in Sucker with some bad html.
10600

    
10601
2005-10-20  jrandom
10602
    * Workaround a bug in GCJ's Calendar implementation
10603
    * Propery throw an exception in the streaming lib if we try to write to a
10604
      closed stream.  This will hopefully help clear some I2Phex bugs (thanks
10605
      GregorK!)
10606

    
10607
2005-10-19  jrandom
10608
    * Ported the snark bittorrent client to I2P such that it is compatible
10609
      with i2p-bt and azneti2p.  For usage information, grab an update and run
10610
      "java -jar lib/i2psnark.jar".  It isn't currently multitorrent capable,
10611
      but adding in support would be fairly easy (see PeerAcceptor.java:49)
10612
    * Don't allow leaseSets expiring too far in the future (thanks postman)
10613

    
10614
2005-10-19  jrandom
10615
    * Bugfix for the auto-update code to handle different usage patterns
10616
    * Decreased the addressbook recheck frequency to once every 12 hours
10617
      instead of hourly.
10618
    * Handle dynamically changing the HMAC size (again, unless your nym is
10619
      toad or jrandom, ignore this ;)
10620
    * Cleaned up some synchronization/locking code
10621

    
10622
2005-10-17  dust
10623
    * Exchange the remaining URL with EepGet in Sucker.
10624
    * Allow /TOPIC irc command.
10625

    
10626
2005-10-17  jrandom
10627
    * Allow an env prop to configure whether we want to use the backwards
10628
      compatible (but not standards compliant) HMAC-MD5, or whether we want
10629
      to use the not-backwards compatible (but standards compliant) one.  No
10630
      one should touch this setting, unless your name is toad or jrandom ;)
10631
    * Added some new dummy facades
10632
    * Be more aggressive on loading up the router.config before building the
10633
      router context
10634
    * Added new hooks for apps to deal with previously undefined I2NP message
10635
      types without having to modify any code.
10636
    * Demo code for using a castrated router for SSU comm (SSUDemo.java)
10637

    
10638
2005-10-14  jrandom
10639
    * More explicit filter for linux/PPC building (thanks anon!)
10640
    * Fixed Syndie's Sucker to not explicitly reference something only found
10641
      in sun's JVM (thanks cervantes!)
10642
    * Don't filter IRC "MAP" messages (not critical, but it doesn't hurt)
10643

    
10644
* 2005-10-14  0.6.1.3 released
10645

    
10646
2005-10-14  jrandom
10647
    * Added a key explaining peers.jsp a bit (thanks tethra!)
10648

    
10649
2005-10-13  dust
10650
    * Bundled dust's Sucker for pulling RSS/Atom content into SML, which can
10651
      then be injected into Syndie with the Syndie CLI.
10652
    * Bundled ROME and JDOM (BSD and Apache licensed, respectively) for
10653
      RSS/Atom parsing.
10654

    
10655
2005-10-13  jrandom
10656
    * SSU retransmission choke bugfix (== != !=)
10657
    * Include initial transmissions in the retransmission choke, so that
10658
      if we are already retransmitting a message, we won't send anything
10659
      to that peer other than that message (or ACKs, if necessary)
10660

    
10661
2005-10-12  jrandom
10662
    * Choke SSU retransmissions to a peer while there is already a
10663
      retransmission in flight to them.  This currently lets other initial
10664
      transmissions through, since packet loss is often sporadic, but maybe
10665
      this should block initial transmissions as well?
10666
    * Display the retransmission bytes stat on peers.jsp (thanks bar!)
10667
    * Filter QUIT messages in the I2PTunnelIRCClient proxy
10668

    
10669
2005-10-11  jrandom
10670
    * Piggyback the SSU partial ACKs with data packets.  This is backwards
10671
      compatible.
10672
    * Syndie RSS renderer bugfix, plus now include the full entry instead of
10673
      just the blurb before the cut.
10674

    
10675
2005-10-11  jrandom
10676
    * Piggyback the SSU explicit ACKs with data packets (partial ACKs aren't
10677
      yet piggybacked).  This is backwards compatible.
10678
    * SML parser cleanup in Syndie
10679

    
10680
2005-10-10  dust
10681
    * Implemented a new I2PTunnelIRCClient which locally filters inbound and
10682
      outbound IRC commands for anonymity and security purposes, removing all
10683
      CTCP messages except ACTION, as well as stripping the hostname from the
10684
      USER message (while leaving the nick and 'full name').  The IRC proxy
10685
      doesn't use this by default, but you can enable it by creating a new
10686
      "IRC proxy" tunnel on the web interface, or by changing the tunnel type
10687
      to "ircclient" in i2ptunnel.config.
10688

    
10689
2005-10-10  jrandom
10690
    * I2PTunnel http client config cleanup and stats
10691
    * Minor SSU congestion tweaks and stats
10692
    * Reduced netDb exploration period
10693

    
10694
2005-10-09  jrandom
10695
    * Syndie CLI cleanup for simpler CLI posting.  Usage shown with
10696
      java -jar lib/syndie.jar
10697
    * Beginnings of the Syndie logging cleanup
10698
    * Delete corrupt Syndie posts
10699

    
10700
2005-10-09  jrandom
10701
    * Now that the streaming lib works reasonably, set the default inactivity
10702
      event to send a 0 byte keepalive payload, rather than disconnecting the
10703
      stream.  This should cut the irc netsplits and help out with other long
10704
      lived streams.  The default timeout is now less than the old timeout as
10705
      well, so the keepalive will be sent before earlier builds fire their
10706
      fatal timeouts.
10707

    
10708
2005-10-08  jrandom
10709
    * Use the OS clock for stat timing, since it doesn't jump around (though
10710
      still use the NTP'ed clock for display)
10711
    * Added new DH stats
10712

    
10713
* 2005-10-07  0.6.1.2 released
10714

    
10715
2005-10-07  jrandom
10716
    * Include the 1 second bandwidth usage on the console rather than the
10717
      1 minute rate, as the 1 second value doesn't have the 1m/5m quantization
10718
      issues.
10719

    
10720
2005-10-07  jrandom
10721
    * Allow the I2PTunnelHTTPServer to send back the first few packets of an
10722
      HTTP response quicker, and initialize the streaming lib's cwin more
10723
      carefully.
10724
    * Added a small web UI to the new Syndie scheduled updater.  If you log in
10725
      as a user authorized to use the remote archive funtionality, you can
10726
      request remote archives in your address book to be automatically pulled
10727
      down by checking the "scheduled?" checkbox.
10728

    
10729
2005-10-05  jrandom
10730
    * Allow the first few packets in the stream to fill in their IDs during
10731
      handshake (thanks cervantes, Complication, et al!)  This should fix at
10732
      least some of the intermittent HTTP POST issues.
10733

    
10734
2005-10-04  jrandom
10735
    * Syndie patch for single user remote archives (thanks nickless_head!)
10736
    * Handle an invalid netDb store (thanks Complication!)
10737

    
10738
2005-10-04  jrandom
10739
    * Further reduction in unnecessary streaming packets.
10740

    
10741
2005-10-03  jrandom
10742
    * Properly reject unroutable IP addresses *cough*
10743

    
10744
2005-10-03  rangarok
10745
    * Changed default update delay to twelve hours, and enforced a minimum
10746
      delay of one hour.
10747

    
10748
2005-10-03  ragnarok
10749
    * Implemented a Syndie auto-updater.  It will automatically pull new posts
10750
      from selected syndie archives.  To try it out, add
10751
      syndie.updateArchives=<comma seperated list of syndie archives> to your
10752
      syndie.config.  Archives must be specified as the full url to archive.txt
10753
      (e.g. http://syndiemedia.i2p/archive/archive.txt).  By default, it checks
10754
      for new posts every hour.  This can be modified by setting
10755
      syndie.updateDelay=<delay in hours> also in syndie.config.
10756

    
10757
* 2005-10-01  0.6.1.1 released
10758

    
10759
2005-09-30  ragnarok
10760
    * Implemented conditional get for syndie remote archive imports.
10761

    
10762
2005-09-30  jrandom
10763
    * Killed three more streaming lib bugs, one of which caused excess packets
10764
      to be transmitted (dupacking dupacks), one that was the root of many of
10765
      the old hung streams (shrinking highest received), and another that was
10766
      releasing data too soon.
10767

    
10768
2005-09-30  jrandom
10769
    * Only allow autodetection of our IP address if we haven't received an
10770
      inbound connection in the last two minutes.
10771
    * Increase the default max streaming resends to 8 from 5 (and down from
10772
      the earlier 10)
10773

    
10774
2005-09-29  ragnarok
10775
    * Export petnames from syndie to the router's petname db instead of
10776
      userhosts.txt.
10777

    
10778
2005-09-29  jrandom
10779
    * Support noreseed.i2p in addition to .i2pnoreseed for disabling automatic
10780
      reseeding - useful on OSes that make it hard to create dot files.
10781
      Thanks Complication (and anon)!
10782
    * Fixed the installer version string (thanks Frontier!)
10783
    * Added cleaner rejection of invalid IP addresses, shitlist those who send
10784
      us invalid IP addresses, verify again that we are not sending invalid IP
10785
      addresses, and log an error if it happens. (Thanks Complication, ptm,
10786
      and adab!)
10787

    
10788
* 2005-09-29  0.6.1 released
10789

    
10790
2005-09-29  jrandom
10791
    * Let syndie users modify their metadata.
10792
    * Reseed the router on startup if there aren't enough peer references
10793
      known locally.  This can be disabled by creating the file .i2pnoreseed
10794
      in your home directory, and the existing detection and reseed handling
10795
      on the web interface is unchanged.
10796

    
10797
2005-09-28  jrandom
10798
    * Fix for at least some (all?) of the wrong stream errors in the streaming
10799
      lib
10800

    
10801
2005-09-27  jrandom
10802
    * Properly suggest filenames for attachments in Syndie (thanks all!)
10803
    * Fixed the Syndie authorization scheme for single user vs. multiuser
10804

    
10805
2005-09-27  jrandom
10806
    * I2PTunnel bugfix (thanks Complication!)
10807
    * Increase the SSU cwin slower during congestion avoidance (at k/cwin^2
10808
      instead of k/cwin)
10809
    * Limit the number of inbound SSU sessions being built at once (using
10810
      half of the i2np.udp.maxConcurrentEstablish config prop)
10811
    * Don't shitlist on a message send failure alone (unless there aren't any
10812
      common transports).
10813
    * More careful bandwidth bursting
10814

    
10815
2005-09-26  jrandom
10816
    * Reworded the SSU introductions config section (thanks duck!)
10817
    * Force identity content encoding for I2PTunnel httpserver requests
10818
      (thanks redzara!)
10819
    * Further x-i2p-gzip bugfixes for the end of streams
10820
    * Reduce the minimum bandwidth limits to 3KBps steady and burst (though
10821
      I2P's performance at 3KBps is another issue)
10822
    * Cleaned up some streaming lib structures
10823

    
10824
2005-09-25  jrandom
10825
    * Allow reseeding on the console if the netDb knows less than 30 peers,
10826
      rather than less than 10 (without internet connectivity, we keep the
10827
      last 15 router references)
10828
    * Reenable the x-i2p-gzip HTTP processing by default, flushing the stream
10829
      more aggressively.
10830
    * Show the status that used to be called "ERR-Reject" as "OK (NAT)"
10831
    * Reduced the default maximum number of streaming lib resends of a packet
10832
      (10 retransmits is a bit much with a reasonable RTO)
10833

    
10834
2005-09-25  Complication
10835
    * Better i2paddresshelper handling in the I2PTunnel httpclient, plus a new
10836
      conflict resolution page if the i2paddresshelper parameter differs from
10837
      an existing name to destination mapping.
10838

    
10839
2005-09-25  jrandom
10840
    * Fix a long standing streaming lib bug (in the inactivity detection code)
10841
    * Improved handling of initial streaming lib packet retransmissions to
10842
      kill the "lost first packet" bug (where a page shows up with the first
10843
      few KB missing)
10844
    * Add support for initial window sizes greater than 1 - useful for
10845
      eepsites to transmit e.g. 4 packets full of data along with the initial
10846
      ACK, thereby cutting down on the rtt latency.  The congestion window
10847
      size can and does still shrink down to 1 packet though.
10848
    * Adjusted the streaming lib retransmission calculation algorithm to be
10849
      more TCP-like.
10850

    
10851
2005-09-21  redzara
10852
    * Use ISO-8859-1 for the susidns xml
10853

    
10854
2005-09-21  susi
10855
    * Bugfix in susidns for deleting entries
10856

    
10857
2005-09-21  jrandom
10858
    * Add support for HTTP POST to EepGet
10859
    * Use HTTP POST for syndie bulk fetches, since there's a lot of data to
10860
      put in that URL.
10861

    
10862
2005-09-18  jrandom
10863
    * Added support for pure 64bit linux with jbigi and the java service
10864
      wrapper (no need for jcpuid if we're on os.arch=amd64).  Thanks mule
10865
      et al for help testing!
10866
    * UI cleanup in Syndie (thanks gloin and bar!)
10867

    
10868
2005-09-18  Ragnarok
10869
    * Made MetaNamingService the default naming service.
10870

    
10871
2005-09-17  Ragnarok
10872
    * Implemented a naming service using Syndie's petname db.  It's not enabled
10873
      by default, but you can try it out by setting
10874
      i2p.naming.impl=net.i2p.client.naming.PetNameNamingService in
10875
      router.config.
10876
    * Implemented a meta naming service that will first lookup names in the
10877
      PetNameNamingService then fallback on the HostTxtNamingService.  Which
10878
      naming services are checked and in which order is specified by
10879
      i2p.nameservicelist.  This will probably become the default naming service
10880
      so please help test it out by setting
10881
      i2p.naming.impl=net.i2p.client.naming.MetaNamingService in router.config.
10882

    
10883
* 2005-09-17  0.6.0.6 released
10884

    
10885
2005-09-17  jrandom
10886
    * Clean up syndie a bit more and bundle a default introductory post with
10887
      both new installs and updates.
10888
    * Typo fixes on the console (thanks bar!)
10889

    
10890
2005-09-17  jrandom
10891
    * Updated the bandwidth limiter to use two tiers of bandwidth - our normal
10892
      steady state rate, plus a new limit on how fast we transfer when
10893
      bursting.  This is different from the old "burst as fast as possible
10894
      until we're out of tokens" policy, and should help those with congested
10895
      networks.  See /config.jsp to manage this rate.
10896
    * Bugfixes in Syndie to handle missing cache files (no data was lost, the
10897
      old posts just didn't show up).
10898
    * Log properly in EepPost
10899

    
10900
2005-09-17  jrandom
10901
    * Added the natively compiled jbigi and patched java service wrapper for
10902
      OS X.  Thanks Bill Dorsey for letting me use your machine!
10903
    * Don't build i2p.exe or i2pinstall.exe when run on OS X machines, as we
10904
      don't bundle the binutils necessary (and there'd be a naming conflict
10905
      if we did).
10906
    * Added 'single user' functionality to syndie - if the single user
10907
      checkbox on the admin page is checked, all users are allowed to control
10908
      the instance and sync up with remote syndie nodes.
10909
    * Temporarily disable the x-i2p-gzip in i2ptunnel until it is more closely
10910
      debugged.
10911

    
10912
2005-09-16  jrandom
10913
    * Reject unroutable IPs in SSU like we do for the TCP transport (unless
10914
      you have i2np.udp.allowLocal=true defined - useful for private nets)
10915

    
10916
2005-09-16  jrandom
10917
    * Adjust I2PTunnelHTTPServer so it can be used for outproxy operators
10918
      (just specify the spoofed host as an empty string), allowing them to
10919
      honor x-i2p-gzip encoding.
10920
    * Let windows users build the exes too (thanks bar and redzara!)
10921
    * Allow I2PTunnel httpserver operators to disable gzip compression on
10922
      individual tunnels with the i2ptunnel.gzip=false client option
10923
      (good idea susi!)
10924

    
10925
2005-09-16  jrandom
10926
    * Added the i2p.exe and i2pinstall.exe for windows users, using launch4j.
10927
    * Added runplain.sh for *nix/osx users having problems using the java
10928
      service wrapper (called from the install dir as: sh runplain.sh)
10929
    * Bundle susidns and syndie, with links on the top nav
10930
    * Have I2PTunnelHTTPClient and I2PTunnelHTTPServer use the x-i2p-gzip
10931
      content-encoding (if offered), reducing the payload size before it
10932
      reaches the streaming lib.  The existing compression is at the i2cp
10933
      level, so we've been packetizing 4KB of uncompressed data and then
10934
      compressing those messages, rather than compressing and then packetizing
10935
      4KB of compressed data.  This should reduce the number of round trips
10936
      to fetch web pages substantially.
10937
    * Adjust the startup and timing of the addressbook so that susidns always
10938
      has config to work off, and expose a method for susidns to tell it to
10939
      reload its config and rerun.
10940

    
10941
2005-09-15  jrandom
10942
    * Error handling for failed intro packets (thanks red.hand!)
10943
    * More carefully verify intro addresses
10944

    
10945
2005-09-13  jrandom
10946
    * More careful error handling with introductions (thanks dust!)
10947
    * Fix the forceIntroducers checkbox on config.jsp (thanks Complication!)
10948
    * Hide the shitlist on the summary so it doesn't confuse new users.
10949

    
10950
2005-09-12  comwiz
10951
    * Migrated the router tests to junit
10952

    
10953
2005-09-12  jrandom
10954
    * Removed guaranteed delivery mode entirely (so existing i2phex clients
10955
      using it can get the benefits of mode=best_effort).  Guaranteed delivery
10956
      is offered at the streaming lib level.
10957
    * Improve the peer selection code for peer testing, as everyone now
10958
      supports tests.
10959
    * Give the watchdog its fangs - if it detects obscene job lag or if
10960
      clients have been unable to get a leaseSet for more than 5 minutes,
10961
      restart the router.  This was disabled a year ago due to spurious
10962
      restarts, and can be disabled by "watchdog.haltOnHang=false", but the
10963
      cause of the spurious restarts should be gone.
10964

    
10965
2005-09-12  jrandom
10966
    * Bugfix for skewed store which could kill a UDP thread (causing complete
10967
      comm failure and eventual OOM)
10968

    
10969
2005-09-12  jrandom
10970
    * More aggressively publish updated routerInfo.
10971
    * Expose the flag to force SSU introductions on the router console
10972
    * Don't give people the option to disable SNTP time sync, at least not
10973
      through the router console, because there is no reason to disable it.
10974
      No, not even if your OS is "ntp synced", because chances are, its not.
10975

    
10976
2005-09-10  jrandom
10977
    * Test the router's reachability earlier and more aggressively
10978
    * Use the low level bandwidth limiter's rates for the router console, and
10979
      if the router has net.i2p.router.transport.FIFOBandwidthLimiter=INFO in
10980
      the logger config, keep track of the 1 second transfer rates as the stat
10981
      'bw.sendBps1s' and 'bw.recvBps1s', allowing closer monitoring of burst
10982
      behavior.
10983

    
10984
2005-09-09  jrandom
10985
    * Added preliminary support for NAT hole punching through SSU introducers
10986
    * Honor peer test results from peers that we have an SSU session with if
10987
      those sessions are idle for 3 minutes or more.
10988

    
10989
2005-09-09  cervantes
10990
    * New build due to change in build number :P (thanks ugha!)
10991

    
10992
2005-09-07  BarkerJr
10993
    * HTML cleanup for the router console (thanks!)
10994

    
10995
2005-09-07  jrandom
10996
    * Lay the foundation for 'client routers' - the ability for peers to opt
10997
      out of participating in tunnels entirely due to firewall/NAT issues.
10998
      Individual routers have control over where those peers are used in
10999
      tunnels - in outbound or inbound, exploratory or client tunnels, or
11000
      none at all.  The defaults with this build are to simply act as before -
11001
      placing everyone as potential participants in any tunnel.
11002
    * Another part of the foundation includes the option for netDb
11003
      participants to refuse to answer queries regarding peers who are marked
11004
      as unreachable, though this too is disabled by default (meaning the
11005
      routerInfo is retrievable from the netDb).
11006

    
11007
2005-09-05  jrandom
11008
    * Expose the HTTP headers to EepGet status listeners
11009
    * Handle DSA key failures properly (if the signature is not invertable, it
11010
      is obviously invalid)
11011

    
11012
2005-09-04  jrandom
11013
    * Don't persist peer profiles until we are shutting down, as the
11014
      persistence process gobbles RAM and wall time.
11015
    * Bugfix to allow you to check/uncheck the sharedClient setting on the
11016
      I2PTunnel web interface (thanks BarkerJr!)
11017
    * Be more careful when expiring a failed tunnel message fragment so we
11018
      don't drop the data while attempting to read it.
11019

    
11020
* 2005-09-02  0.6.0.5 released
11021

    
11022
2005-09-02  jrandom
11023
    * Don't refuse to send a netDb store if the targetted peer has failed a
11024
      bit (the value was an arbitrary amount).
11025
    * Logging changes
11026

    
11027
* 2005-09-01  0.6.0.4 released
11028

    
11029
2005-09-01  jrandom
11030
    * Don't send out a netDb store of a router if it is more than a few hours
11031
      old, even if someone asked us for it.
11032

    
11033
2005-08-31  jrandom
11034
    * Don't publish leaseSets to the netDb if they will never be looked for -
11035
      namely, if they are for destinations that only establish outbound
11036
      streams.  I2PTunnel's 'client' and 'httpclient' proxies have been
11037
      modified to tell the router that it doesn't need to publish their
11038
      leaseSet (by setting the I2CP config option 'i2cp.dontPublishLeaseSet'
11039
      to 'true').
11040
    * Don't publish the top 10 peer rankings of each router in the netdb, as
11041
      it isn't being watched right now.
11042

    
11043
2005-08-29  jrandom
11044
    * Added the new test Floodfill netDb
11045

    
11046
2005-08-27  jrandom
11047
    * Minor logging and optimization tweaks in the router and SDK
11048
    * Use ISO-8859-1 in the XML files (thanks redzara!)
11049
    * The consolePassword config property can now be used to bypass the router
11050
      console's nonce checking, allowing CLI restarts
11051

    
11052
2005-08-24  jrandom
11053
    * Catch errors with corrupt tunnel messages more gracefully (no need to
11054
      kill the thread and cause an OOM...)
11055
    * Don't skip shitlisted peers for netDb store messages, as they aren't
11056
      necessarily shitlisted by other people (though they probably are).
11057
    * Adjust the netDb store per-peer timeout based on each particular peer's
11058
      profile (timeout = 4x their average netDb store response time)
11059
    * Don't republish leaseSets to *failed* peers - send them to peers who
11060
      replied but just didn't know the value.
11061
    * Set a 5 second timeout on the I2PTunnelHTTPServer reading the client's
11062
      HTTP headers, rather than blocking indefinitely.  HTTP headers should be
11063
      sent entirely within the first streaming packet anyway, so this won't be
11064
      a problem.
11065
    * Don't use the I2PTunnel*Server handler thread pool by default, as it may
11066
      prevent any clients from accessing the server if the handlers get
11067
      blocked by the streaming lib or other issues.
11068
    * Don't overwrite a known status (OK/ERR-Reject/ERR-SymmetricNAT) with
11069
      Unknown.
11070

    
11071
2005-08-23  jrandom
11072
    * Removed the concept of "no bandwidth limit" - if none is specified, its
11073
      16KBps in/out.
11074
    * Include ack packets in the per-peer cwin throttle (they were part of the
11075
      bandwidth limit though).
11076
    * Tweak the SSU cwin operation to get more accurrate estimates under
11077
      congestions.
11078
    * SSU improvements to resend more efficiently.
11079
    * Added a basic scheduler to eepget to fetch multiple files sequentially.
11080

    
11081
* 2005-08-21  0.6.0.3 released
11082

    
11083
2005-08-21  jrandom
11084
    * If we already have an established SSU session with the Charlie helping
11085
      test us, cancel the test with the status of "unknown".
11086

    
11087
2005-08-17  jrandom
11088
    * Revise the SSU peer testing protocol so that Bob verifies Charlie's
11089
      viability before agreeing to Alice's request.  This doesn't work with
11090
      older SSU peer test builds, but is backwards compatible (older nodes
11091
      won't ask newer nodes to participate in tests, and newer nodes won't
11092
      ask older nodes to either).
11093

    
11094
2005-08-12  jrandom
11095
    * Keep detailed stats on the peer testing, publishing the results in the
11096
      netDb.
11097
    * Don't overwrite the status with 'unknown' unless we haven't had a valid
11098
      status in a while.
11099
    * Make sure to avoid shitlisted peers for peer testing.
11100
    * When we get an unknown result to a peer test, try again soon afterwards.
11101
    * When a peer tells us that our address is different from what we expect,
11102
      if we've done a recent peer test with a result of OK, fire off a peer
11103
      test to make sure our IP/port is still valid.  If our test is old or the
11104
      result was not OK, accept their suggestion, but queue up a peer test for
11105
      later.
11106
    * Don't try to do a netDb store to a shitlisted peer, and adjust the way
11107
      we monitor netDb store progress (to clear up the high netDb.storePeers
11108
      stat)
11109

    
11110
2005-08-10  jrandom
11111
    * Deployed the peer testing implementation to be run every few minutes on
11112
      each router, as well as any time the user requests a test manually.  The
11113
      tests do not reconfigure the ports at the moment, merely determine under
11114
      what conditions the local router is reachable.  The status shown in the
11115
      top left will be "ERR-SymmetricNAT" if the user's IP and port show up
11116
      differently for different peers, "ERR-Reject" if the router cannot
11117
      receive unsolicited packets or the peer helping test could not find a
11118
      collaborator, "Unknown" if the test has not been run or the test
11119
      participants were unreachable, or "OK" if the router can receive
11120
      unsolicited connections and those connections use the same IP and port.
11121

    
11122
* 2005-08-08  0.6.0.2 released
11123

    
11124
2005-08-08  jrandom
11125
    * Add a configurable throttle to the number of concurrent outbound SSU
11126
      connection negotiations (via i2np.udp.maxConcurrentEstablish=4).  This
11127
      may help those with slow connections to get integrated at the start.
11128
    * Further fixlets to the streaming lib
11129

    
11130
2005-08-07  Complication
11131
    * Display the average clock skew for both SSU and TCP connections
11132

    
11133
2005-08-07  jrandom
11134
    * Fixed the long standing streaming lib bug where we could lose the first
11135
      packet on retransmission.
11136
    * Avoid an NPE when a message expires on the SSU queue.
11137
    * Adjust the streaming lib's window growth factor with an additional
11138
      Vegas-esque congestion detection algorithm.
11139
    * Removed an unnecessary SSU session drop
11140
    * Reduced the MTU (until we get a working PMTU lib)
11141
    * Deferr tunnel acceptance until we know how to reach the next hop,
11142
      rejecting it if we can't find them in time.
11143
    * If our netDb store of our leaseSet fails, give it a few seconds before
11144
      republishing.
11145

    
11146
* 2005-08-03  0.6.0.1 released
11147

    
11148
2005-08-03  jrandom
11149
    * Backed out an inadvertant change to the netDb store redundancy factor.
11150
    * Verify tunnel participant caching.
11151
    * Logging cleanup
11152

    
11153
2005-08-01  duck
11154
    * Update IzPack to 3.7.2 (build 2005.04.22). This fixes bug #82.
11155

    
11156
2005-08-01  duck
11157
    * Fix an addressbook NPE when a new hostname from the master addressbook
11158
      didn't exist in the router addressbook.
11159
    * Fix an addressbook bug which caused subscriptions not to be parsed at
11160
      all. (Oops!)
11161

    
11162
2005-07-31  jrandom
11163
    * Adjust the netDb search and store per peer timeouts to match the average
11164
      measured per peer success times, rather than huge fixed values.
11165
    * Optimized and reverified the netDb peer selection / retrieval process
11166
      within the kbuckets.
11167
    * Drop TCP connections that don't have any useful activity in 10 minutes.
11168
    * If i2np.udp.fixedPort=true, never change the externally published port,
11169
      even if we are autodetecting the IP address.
11170

    
11171
* 2005-07-27  0.6 released
11172

    
11173
2005-07-27  jrandom
11174
    * Enabled SSU as the default top priority transport, adjusting the
11175
      config.jsp page accordingly.
11176
    * Add verification fields to the SSU and TCP connection negotiation (not
11177
      compatible with previous builds)
11178
    * Enable the backwards incompatible tunnel crypto change as documented in
11179
      tunnel-alt.html (have each hop encrypt the received IV before using it,
11180
      then encrypt it again before sending it on)
11181
    * Disable the I2CP encryption, leaving in place the end to end garlic
11182
      encryption (another backwards incompatible change)
11183
    * Adjust the protocol versions on the TCP and SSU transports so that they
11184
      won't talk to older routers.
11185
    * Fix up the config stats handling again
11186
    * Fix a rare off-by-one in the SSU fragmentation
11187
    * Reduce some unnecessary netDb resending by inluding the peers queried
11188
      successfully in the store redundancy count.
11189

    
11190
2005-07-22  jrandom
11191
    * Use the small thread pool for I2PTunnelHTTPServer (already used for
11192
      I2PTunnelServer)
11193
    * Minor memory churn reduction in I2CP
11194
    * Small stats update
11195

    
11196
2005-07-21  jrandom
11197
    * Fix in the SDK for a bug which would manifest itself as misrouted
11198
      streaming packets when a destination has many concurrent streaming
11199
      connections (thanks duck!)
11200
    * No more "Graceful shutdown in -18140121441141s"
11201

    
11202
2005-07-20  jrandom
11203
    * Allow the user to specify an external port # for SSU even if the external
11204
      host isn't specified (thanks duck!)
11205

    
11206
2005-07-19  jrandom
11207
    * Further preparation for removing I2CP crypto
11208
    * Added some validation to the DH key agreement (thanks $anon)
11209
    * Validate tunnel data message expirations (though not really a problem,
11210
      since tunnels expire)
11211
    * Minor PRNG threading cleanup
11212

    
11213
2005-07-15  cervantes
11214
    * Added workaround for an odd win32 bug in the stats configuration console
11215
      page which meant only the first checkbox selection was saved.
11216

    
11217
2005-07-15  Romster
11218
    * Added per group selection toggles in the stats configuration console
11219
      page.
11220

    
11221
2005-07-13  jrandom
11222
    * Fixed a recently injected bug in the multitransport bidding which had
11223
      allowed an essentially arbitrary choice of transports, rather than the
11224
      properly ordered choice.
11225

    
11226
2005-07-13  jrandom
11227
    * Fixed a long standing bug where we weren't properly comparing session
11228
      tags but instead largely depending upon comparing their hashCode,
11229
      causing intermittent decryption errors.
11230

    
11231
2005-07-12  jrandom
11232
    * Add some data duplication to avoid a recently injected concurrency
11233
      problem in the session tag manager (thanks redzara and romster).
11234

    
11235
2005-07-11  jrandom
11236
    * Reduced the growth factor on the slow start and congestion avoidance for
11237
      the streaming lib.
11238
    * Adjusted some of the I2PTunnelServer threading to use a small pool of
11239
      handlers, rather than launching off new threads which then immediately
11240
      launch off an I2PTunnelRunner instance (which launches 3 more threads..)
11241
    * Don't persist session keys / session tags (not worth it, for now)
11242
    * Added some detection and handling code for duplicate session tags being
11243
      delivered (root cause still not addressed)
11244
    * Make the PRNG's buffer size configurable (via the config property
11245
      "i2p.prng.totalBufferSizeKB=4096")
11246
    * Disable SSU flooding by default (duh)
11247
    * Updates to the StreamSink apps for better throttling tests.
11248

    
11249
2005-07-05  jrandom
11250
    * Use a buffered PRNG, pulling the PRNG data off a larger precalculated
11251
      buffer, rather than the underlying PRNG's (likely small) one, which in
11252
      turn reduces the frequency of recalcing.
11253
    * More tuning to reduce temporary allocation churn
11254

    
11255
2005-07-04  jrandom
11256
    * Within the tunnel, use xor(IV, msg[0:16]) as the flag to detect dups,
11257
      rather than the IV by itself, preventing an attack that would let
11258
      colluding internal adversaries tag a message to determine that they are
11259
      in the same tunnel.  Thanks dvorak for the catch!
11260
    * Drop long inactive profiles on startup and shutdown
11261
    * /configstats.jsp: web interface to pick what stats to log
11262
    * Deliver more session tags to account for wider window sizes
11263
    * Cache some intermediate values in our HMACSHA256 and BC's HMAC
11264
    * Track the client send rate (stream.sendBps and client.sendBpsRaw)
11265
    * UrlLauncher: adjust the browser selection order
11266
    * I2PAppContext: hooks for dummy HMACSHA256 and a weak PRNG
11267
    * StreamSinkClient: add support for sending an unlimited amount of data
11268
    * Migrate the tests out of the default build jars
11269

    
11270
2005-06-22  Comwiz
11271
    * Migrate the core tests to junit
11272

    
11273
2005-05-25  duck
11274
    * Fixed PRNG bug (bugzilla #107)
11275

    
11276
2005-05-01  jrandom
11277
    * Added a substantial optimization to the AES engine by caching the
11278
      prepared session keys (duh).
11279

    
11280
2005-05-01  jrandom
11281
    * Cleaned up the peers page a bit more.
11282

    
11283
2005-04-30  jrandom
11284
    * Added a small new page to the web console (/peers.jsp) which contains
11285
      the peer connection information.  This will be cleaned up a lot more
11286
      before 0.6 is out, but its a start.
11287

    
11288
2005-04-30  jrandom
11289
    * Reduced some SimpleTimer churn
11290

    
11291
2005-04-29  jrandom
11292
    * Reduce the peer profile stat coallesce overhead by inlining it with the
11293
      reorganize.
11294
    * Limit each transport to at most one address (any transport that requires
11295
      multiple entry points can include those alternatives in the address).
11296

    
11297
2005-04-28  jrandom
11298
    * More fixes for the I2PTunnel "other" interface handling (thanks nelgin!)
11299
    * Add back the code to handle bids from multiple transports (though there
11300
      is still only one transport enabled by default)
11301
    * Adjust the router's queueing of outbound client messages when under
11302
      heavy load by running the preparatory job in the client's I2CP handler
11303
      thread, thereby blocking additional outbound messages when the router is
11304
      hosed.
11305
    * No need to validate or persist a netDb entry if we already have it
11306

    
11307
2005-04-25  smeghead
11308
    * Added button to router console for manual update checks.
11309
    * Fixed bug in configupdate.jsp that caused the proxy port to be updated
11310
      every time the form was submitted even if it hadn't changed.
11311

    
11312
2005-04-24  jrandom
11313
    * Added a pool of PRNGs using a different synchronization technique,
11314
      hopefully sufficient to work around IBM's PRNG bugs until we get our
11315
      own Fortuna.
11316
    * In the streaming lib, don't jack up the RTT on NACK, and have the window
11317
      size bound the not-yet-ready messages to the peer, not the unacked
11318
      message count (not sure yet whether this is worthwile).
11319
    * Many additions to the messageHistory log.
11320
    * Handle out of order tunnel fragment delivery (not an issue on the live
11321
      net with TCP, but critical with UDP).
11322

    
11323
* 2005-04-20  0.5.0.7 released
11324

    
11325
2005-04-20  jrandom
11326
    * In the SDK, we don't actually need to block when we're sending a message
11327
      as BestEffort (and these days, we're always sending BestEffort).
11328
    * Pass out client messages in fewer (larger) steps.
11329
    * Have the InNetMessagePool short circuit dispatch requests.
11330
    * Have the message validator take into account expiration to cut down on
11331
      false positives at high transfer rates.
11332
    * Allow configuration of the probabalistic window size growth rate in the
11333
      streaming lib's slow start and congestion avoidance phases, and default
11334
      them to a more conservative value (2), rather than the previous value
11335
      (1).
11336
    * Reduce the ack delay in the streaming lib to 500ms
11337
    * Honor choke requests in the streaming lib (only affects those getting
11338
      insanely high transfer rates)
11339
    * Let the user specify an interface besides 127.0.0.1 or 0.0.0.0 on the
11340
      I2PTunnel client page (thanks maestro^!)
11341

    
11342
2005-04-17  sirup
11343
    * Added the possibility for i2ptunnel client and httpclient instances to
11344
      have their own i2p session (and hence, destination and tunnels).  By
11345
      default, tunnels are shared, but that can be changed on the web
11346
      interface or with the sharedClient config option in i2ptunnel.config.
11347

    
11348
2005-04-17  jrandom
11349
    * Marked the net.i2p.i2ptunnel.TunnelManager as deprecated.  Anyone use
11350
      this?  If not, I want to drop it (lots of tiny details with lots of
11351
      duplicated semantics).
11352

    
11353
2005-04-17  zzz
11354
    * Added new user-editable eepproxy error page templates.
11355

    
11356
2005-04-17  jrandom
11357
    * Revamp the tunnel building throttles, fixing a situation where the
11358
      rebuild may not recover, and defaulting it to unthrottled (users with
11359
      slow CPUs may want to set "router.tunnel.shouldThrottle=true" in their
11360
      advanced router config)
11361

    
11362
2005-04-16  jrandom
11363
    * Migrated to Bouncycastle's SHA256 and HMAC implementations for efficiency
11364

    
11365
2005-04-12  jrandom
11366
    * Make sure we don't get cached updates (thanks smeghead!)
11367
    * Clear out the callback for the TestJob after it passes (only affects the
11368
      job timing accounting)
11369

    
11370
2005-04-08  smeghead
11371
    * Added NativeBigInteger benchmark to scripts/i2pbench.sh.
11372

    
11373
2005-04-08  smeghead
11374
    * Security improvements to TrustedUpdate: signing and verification of the
11375
      version string along with the data payload for signed update files
11376
      (consequently the positions of the DSA signature and version string fields
11377
      have been swapped in the spec for the update file's header); router will
11378
      no longer perform a trusted update if the signed update's version is lower
11379
      than or equal to the currently running router's version.
11380
    * Added two new CLI commands to TrustedUpdate: showversion, verifyupdate.
11381
    * Extended TrustedUpdate public API for use by third party applications.
11382

    
11383
* 2005-04-06  0.5.0.6 released
11384

    
11385
2005-04-05  jrandom
11386
    * Retry I2PTunnel startup if we are unable to build a socketManager for a
11387
      client or httpclient tunnel.
11388
    * Add some basic sanity checking on the I2CP settings (thanks duck!)
11389

    
11390
2005-04-05  jrandom
11391
    * After a successfull netDb search for a leaseSet, republish it to all of
11392
      the peers we have tried so far who did not give us the key (up to 10),
11393
      rather than the old K closest (which may include peers who had given us
11394
      the key)
11395
    * Don't wait 5 minutes to publish a leaseSet (duh!), and rather than
11396
      republish it every 5 minutes, republish it every 3.  In addition, always
11397
      republish as soon as the leaseSet changes (duh^2).
11398
    * Minor fix for oddball startup race (thanks travis_bickle!)
11399
    * Minor AES update to allow in-place decryption.
11400

    
11401
2005-04-03  jrandom
11402
    * EepGet fix for open-ended HTTP fetches (such as the news.xml
11403
      feeding the NewsFetcher)
11404

    
11405
2005-04-01  jrandom
11406
    * Allow editing I2PTunnel server instances with five digit ports
11407
      (thanks nickless_head!)
11408
    * More NewsFetcher debugging for reported weirdness
11409

    
11410
2005-04-01  jrandom
11411
    * Fix to check for missing news file (thanks smeghead!)
11412
    * Added destination display CLI:
11413
      java -cp lib/i2p.jar net.i2p.data.Destination privKeyFilename
11414
    * Added destination display to the web interface (thanks pnspns)
11415
    * Installed CIA backdoor
11416

    
11417
* 2005-03-29  0.5.0.5 released
11418

    
11419
2005-03-29  jrandom
11420
    * Decreased the initial RTT estimate to 10s to allow more retries.
11421
    * Increased the default netDb store replication factor from 2 to 6 to take
11422
      into consideration tunnel failures.
11423
    * Address some statistical anonymity attacks against the netDb that could
11424
      be mounted by an active internal adversary by only answering lookups for
11425
      leaseSets we received through an unsolicited store.
11426
    * Don't throttle lookup responses (we throttle enough elsewhere)
11427
    * Fix the NewsFetcher so that it doesn't incorrectly resume midway through
11428
      the file (thanks nickster!)
11429
    * Updated the I2PTunnel HTML (thanks postman!)
11430
    * Added support to the I2PTunnel pages for the URL parameter "passphrase",
11431
      which, if matched against the router.config "i2ptunnel.passphrase" value,
11432
      skips the nonce check.  If the config prop doesn't exist or is blank, no
11433
      passphrase is accepted.
11434
    * Implemented HMAC-SHA256.
11435
    * Enable the tunnel batching with a 500ms delay by default
11436
    * Dropped compatability with 0.5.0.3 and earlier releases
11437

    
11438
2005-03-26  jrandom
11439
    * Added some error handling and fairly safe to cache data to the streaming
11440
      lib (good call Tom!)
11441

    
11442
2005-03-25  jrandom
11443
    * Fixed up building dependencies for the routerconsole on some more
11444
      aggressive compilers (thanks polecat!)
11445

    
11446
* 2005-03-24  0.5.0.4 released
11447

    
11448
2005-03-23  jrandom
11449
    * Added more intelligent version checking in news.xml, in case we have a
11450
      version newer than the one specified.
11451

    
11452
2005-03-23  jrandom
11453
    * Added support for Transfer-Encoding: chunked to the EepGet, so that the
11454
      cvsweb.cgi doesn't puke on us.
11455

    
11456
2005-03-23  Connelly
11457
    * Fixed Bugzilla Bug #99 in the SAM Bridge, which caused pending
11458
      stream send data to not be sent if STREAM CLOSE is issued too fast.
11459

    
11460
2005-03-23  jrandom
11461
    * Implemented the news fetch / update policy code, as configurated on
11462
      /configupdate.jsp.  Defaults are to grab the news every 24h (or if it
11463
      doesn't exist yet, on startup).  No action is taken however, though if
11464
      the news.xml specifies that a new release is available, an option to
11465
      update will be shown on the router console.
11466
    * New initialNews.xml delivered with new installs, and moved news.xml out
11467
      of the i2pwww module and into the i2p module so that we can bundle it
11468
      within each update.
11469

    
11470
2005-03-23  jrandom
11471
    * New /configupdate.jsp page for controlling the update / notification
11472
      process, as well as various minor related updates.  Note that not all
11473
      options are exposed yet, and the update detection code isn't in place
11474
      in this commit - it currently says there is always an update available.
11475
    * New EepGet component for reliable downloading, with a CLI exposed in
11476
      java -cp lib/i2p.jar net.i2p.util.EepGet url
11477
    * Added a default signing key to the TrustedUpdate component to be used
11478
      for verifying updates.  This signing key can be authenticated via
11479
      gpg --verify i2p/core/java/src/net/i2p/crypto/TrustedUpdate.java
11480
    * New public domain SHA1 implementation for the DSA code so that we can
11481
      handle signing streams of arbitrary size without excess memory usage
11482
      (thanks P.Verdy!)
11483
    * Added some helpers to the TrustedUpdate to work off streams and to offer
11484
      a minimal CLI:
11485
          TrustedUpdate keygen pubKeyFile privKeyFile
11486
          TrustedUpdate sign origFile signedFile privKeyFile
11487
          TrustedUpdate verify signedFile
11488

    
11489
2005-03-22  smeghead
11490
    * New TrustedUpdate component for signing/verifying files with a DSA
11491
      signature.
11492

    
11493
2005-03-21  jrandom
11494
    * Fixed the tunnel fragmentation handler to deal with multiple fragments
11495
      in a single message properly (rather than release the buffer into the
11496
      cache after processing the first one) (duh!)
11497
    * Added the batching preprocessor which will bundle together multiple
11498
      small messages inside a single tunnel message by delaying their delivery
11499
      up to .5s, or whenever the pending data will fill a full message,
11500
      whichever comes first.  This is disabled at the moment, since without the
11501
      above bugfix widely deployed, lots and lots of messages would fail.
11502
    * Within each tunnel pool, stick with a randomly selected peer for up to
11503
      .5s before randomizing and selecting again, instead of randomizing the
11504
      pool each time a tunnel is needed.
11505

    
11506
* 2005-03-18  0.5.0.3 released
11507

    
11508
2005-03-18  jrandom
11509
    * Minor tweak to the timestamper to help reduce small skews
11510
    * Adjust the stats published to include only the relevent ones
11511
    * Only show the currently used speed calculation on the profile page
11512
    * Allow the full max # resends to be sent, rather than piggybacking the
11513
      RESET packet along side the final resend (duh)
11514
    * Add irc.postman.i2p to the default list of IRC servers for new installs
11515
    * Drop support for routers running 0.5 or 0.5.0.1 while maintaining
11516
      backwards compatability for users running 0.5.0.2.
11517

    
11518
2005-03-18  jrandom
11519
    * Eepproxy Fix for corrupted HTTP headers (thanks nickster!)
11520
    * Fixed case sensitivity issues on the HTTP headers (thanks duck!)
11521

    
11522
2005-03-17  jrandom
11523
    * Update the old speed calculator and associated profile data points to
11524
      use a non-tiered moving average of the tunnel test time, avoiding the
11525
      freshness issues of the old tiered speed stats.
11526
    * Explicitly synchronize all of the methods on the PRNG, rather than just
11527
      the feeder methods (sun and kaffe only need the feeder, but it seems ibm
11528
      needs all of them synchronized).
11529
    * Properly use the tunnel tests as part of the profile stats.
11530
    * Don't flood the jobqueue with sequential persist profile tasks, but
11531
      instead, inject a brief scheduling delay between them.
11532
    * Reduce the TCP connection establishment timeout to 20s (which is still
11533
      absurdly excessive)
11534
    * Reduced the max resend delay to 30s so we can get some resends in when
11535
      dealing with client apps that hang up early (e.g. wget)
11536
    * Added more alternative socketManager factories (good call aum!)
11537

    
11538
2005-03-16  jrandom
11539
    * Adjust the old speed calculator to include end to end RTT data in its
11540
      estimates, and use that as the primary speed calculator again.
11541
    * Use the mean of the high capacity speeds to determine the fast
11542
      threshold, rather than the median.  Perhaps we should use the mean of
11543
      all active non-failing peers?
11544
    * Updated the profile page to sort by tier, then alphabetically.
11545
    * Added some alternative socketManager factories (good call aum!)
11546

    
11547
2005-03-14  jrandom
11548
    * New strict speed calculator that goes off the actual number of messages
11549
      verifiably sent through the peer by way of tunnels.  Initially, this only
11550
      contains the successful message count on inbound tunnels, but may be
11551
      augmented later to include verified outbound messages, peers queried in
11552
      the netDb, etc.  The speed calculation decays quickly, but should give
11553
      a better differential than the previous stat (both values are shown on
11554
      the /profiles.jsp page)
11555

    
11556
2005-03-11  jrandom
11557
    * Rather than the fixed resend timeout floor (10s), use 10s+RTT as the
11558
      minimum (increased on resends as before, of course).
11559
    * Always prod the clock update listeners, even if just to tell them that
11560
      the time hasn't changed much.
11561
    * Added support for explicit peer selection for individual tunnel pools,
11562
      which will be useful in debugging but not recommended for use by normal
11563
      end users.
11564
    * More aggressively search for the next hop's routerInfo on tunnel join.
11565
    * Give messages received via inbound tunnels that are bound to remote
11566
      locations sufficient time (taking into account clock skew).
11567
    * Give alternate direct send messages sufficient time (10s min, not 5s)
11568
    * Always give the end to end data message the explicit timeout (though the
11569
      old default was sufficient before)
11570
    * No need to give end to end messages an insane expiration (+2m), as we
11571
      are already handling skew on the receiving side.
11572
    * Don't complain too loudly about expired TunnelCreateMessages (at least,
11573
      not until after all those 0.5 and 0.5.0.1 users upgrade ;)
11574
    * Properly keep the sendBps stat
11575
    * When running the router with router.keepHistory=true, log more data to
11576
      messageHistory.txt
11577
    * Logging updates
11578
    * Minor formatting updates
11579

    
11580
2005-03-08  jrandom
11581
    * More aggressively adjust the clock
11582

    
11583
2005-03-07  jrandom
11584
    * Fix the HTTP response header filter to allow multiple headers with the
11585
      same name (thanks duck and spotteri!)
11586

    
11587
* 2005-03-06  0.5.0.2 released
11588

    
11589
2005-03-06  jrandom
11590
    * Allow the I2PTunnel web interface to select streaming lib options for
11591
      individual client tunnels, rather than sharing them across all of them,
11592
      as we do with the session options.  This way people can (and should) set
11593
      the irc proxy to interactive and the eepproxy to bulk.
11594
    * Added a startRouter.sh script to new installs which simply calls
11595
      "sh i2prouter start".  This should make it clear how people should start
11596
      I2P.
11597
    * Properly expand the HTTP response header buffer (thanks shendaras!)
11598

    
11599
2005-03-04  jrandom
11600
    * Filter HTTP response headers in the eepproxy, forcing Connection: close
11601
      so that broken (/malicious) webservers can't allow persistent
11602
      connections.  All HTTP compliant browsers should now always close the
11603
      socket.
11604
    * Enabled the GZIPInputStream's cache (they weren't cached before)
11605
    * Make sure our first send is always a SYN (duh)
11606
    * Workaround for some buggy compilers
11607

    
11608
2005-03-03  jrandom
11609
    * Loop while starting up the I2PTunnel instances, in case the I2CP
11610
      listener isn't up yet (thanks detonate!)
11611
    * Implement custom reusable GZIP streams to both reduce memory churn
11612
      and prevent the exposure of data in the standard GZIP header (creation
11613
      time, OS, etc).  This is RFC1952 compliant, and backwards compatible,
11614
      though has only been tested within the confines of I2P's compression use
11615
      (DataHelper.[de]compress).
11616
    * Preemptively support the next protocol version, so that after the 0.5.0.2
11617
      release, we'll be able to drop protocol=2 to get rid of 0.5 users.
11618

    
11619
2005-03-02  jrandom
11620
    * Fix one substantial OOM cause (session tag manager was only dropping
11621
      tags once the critical limit was met, rather than honoring their
11622
      expiration) (duh)
11623
    * Lots of small memory fixes
11624
    * Double the allowable concurrent outstanding tunnel build tasks (20)
11625

    
11626
2005-03-01  jrandom
11627
    * Really disable the streaming lib packet caching
11628
    * Synchronized a message handling point in the SDK (even though its use is
11629
      already essentially single threaded, its better to play it safe)
11630
    * Don't add new RepublishLeaseSetJobs on failure, just requeue up the
11631
      existing one (duh)
11632
    * Throttle the number of concurrent pending tunnel builds across all
11633
      pools, in addition to simply throttling the number of new requests per
11634
      minute for each pool individually.  This should avoid the cascading
11635
      failure when tunnel builds take too long, as no new builds will be
11636
      created until the previous ones are handled.
11637
    * Factored out and extended the DataHelper's unit tests for dealing with
11638
      long and date formatting.
11639
    * Explicitly specify the HTTP auth realm as "i2prouter", though this
11640
      alone doesn't address the bug where jetty asks for authentication too
11641
      much.  (thanks orion!)
11642
    * Updated the StreamSinkServer to ignore all read bytes, rather than write
11643
      them to the filesystem.
11644

    
11645
2005-02-27  jrandom
11646
    * Don't rerequest leaseSets if there are already pending requests
11647
    * Reverted the insufficiently tested caching in the DSA/SHA1 impl, and
11648
      temporary disabled the streaming lib packet caching.
11649
    * Reduced the resend RTT penalty to 10s
11650

    
11651
2005-02-26  jrandom
11652
    * Force 1.3-isms on the precompiled jsps too (thanks laberhost)
11653

    
11654
2005-02-26  jrandom
11655
    * Further streaming lib caching improvements
11656
    * Reduce the minimum RTT (used to calculate retry timeouts), but also
11657
      increase the RTT on resends.
11658
    * Lower the default message size to 4KB from 16KB to further reduce the
11659
      chance of failed fragmentation.
11660
    * Extend tunnel rebuild throttling to include fallback rebuilds
11661
    * If there are less than 20 routers known, don't drop the last 20 (to help
11662
      avoid dropping all peers under catastrophic failures)
11663
    * New stats for end to end messages - "client.leaseSetFoundLocally",
11664
      "client.leaseSetFoundRemoteTime", and "client.leaseSetFailedRemoteTime"
11665

    
11666
2005-02-24  jrandom
11667
    * Throttle the number of tunnel rebuilds per minute, preventing CPU
11668
      overload under catastrophic failures (thanks Tracker and cervantes!)
11669
    * Block the router startup process until we've initialized the clock
11670

    
11671
2005-02-24  jrandom
11672
    * Cache temporary memory allocation in the DSA's SHA1 impl, and the packet
11673
      data in the streaming lib.
11674
    * Fixed a streaming lib bug where the connection initiator would fail the
11675
      stream if the ACK to their SYN was lost.
11676

    
11677
2005-02-23  jrandom
11678
    * Now that we don't get stale SAM sessions, it'd be nice if we didn't
11679
      get stale tunnel pools, don't you think?
11680

    
11681
* 2005-02-23  0.5.0.1 released
11682

    
11683
2005-02-22  jrandom
11684
    * Reworked the tunnel (re)building process to remove the tokens and
11685
      provide cleaner controls on the tunnels built.
11686
    * Fixed situations where the timestamper wanted to test more servers than
11687
      were provided (thanks Tracker!)
11688
    * Get rid of the dead SAM sessions by using the streaming lib's callbacks
11689
      (thanks Tracker!)
11690

    
11691
2005-02-22  jrandom
11692
    * Temporary workaround for the I2CP disconnect bug (have the streaminglib
11693
      try to automatically reconnect on accept()/connect(..)).
11694
    * Loop check for expired lease republishing (just in case)
11695

    
11696
2005-02-22  jrandom
11697
    * Adjusted (and fixed...) the timestamper change detection
11698
    * Deal with a rare reordering bug at the beginning of a stream (so we
11699
      don't drop it unnecessarily)
11700
    * Cleaned up some dropped message handling in the router
11701
    * Reduced job queue churn when dealing with a large number of tunnels by
11702
      sharing an expiration job
11703
    * Keep a separate list of the most recent CRIT messages (shown on the
11704
      logs.jsp).  This way they don't get buried among any other messages.
11705
    * For clarity, display the tunnel variance config as "Randomization" on
11706
      the web console.
11707
    * If lease republishing fails (boo! hiss!) try it again
11708
    * Actually fix the negative jobLag in the right place (this time)
11709
    * Allow reseeding when there are less than 10 known peer references
11710
    * Lots of logging updates.
11711

    
11712
2005-02-20  jrandom
11713
    * Allow the streaming lib resend frequency to drop down to 20s as the
11714
      minimum, so that up to 2 retries can get sent on an http request.
11715
    * Add further limits to failsafe tunnels.
11716
    * Keep exploratory and client tunnel testing and building stats separate.
11717
    * Only use the 60s period for throttling tunnel requests due to transient
11718
      network overload.
11719
    * Rebuild tunnels earlier (1-3m before expiration, by default)
11720
    * Cache the next hop's routerInfo for participating tunnels so that the
11721
      tunnel participation doesn't depend on the netDb.
11722
    * Fixed a long standing bug in the streaming lib where we wouldn't always
11723
      unchoke messages when the window size grows.
11724
    * Make sure the window size never reaches 0 (duh)
11725

    
11726
2005-02-20  jrandom
11727
    * Only build failsafe tunnels if we need them
11728
    * Properly implement the selectNotFailingPeers so that we get a random
11729
      selection of peers, rather than using the strictOrdering (thanks dm!)
11730
    * Don't include too many "don't tell me about" peer references in the
11731
      lookup message - only send the 10 peer references closest to the target.
11732

    
11733
2005-02-19  jrandom
11734
    * Only build new extra tunnels on failure if we don't have enough
11735
    * Fix a fencepost in the tunnel building so that e.g. a variance of
11736
      2 means +/- 2, not +/- 1 (thanks dm!)
11737
    * Avoid an NPE on client disconnect
11738
    * Never select a shitlisted peer to participate in a tunnel
11739
    * Have netDb store messages timeout after 10s, not the full 60s (duh)
11740
    * Keep session tags around for a little longer, just in case (grr)
11741
    * Cleaned up some closing event issues on the streaming lib
11742
    * Stop bundling the jetty 5.1.2 and updated wrapper.config in the update
11743
      so that 0.4.* users will need to do a clean install, but we don't need
11744
      to shove an additional 2MB in each update to those already on 0.5.
11745
    * Imported the susimail css (oops, thanks susi!)
11746

    
11747
* 2005-02-18  0.5 released
11748

    
11749
2005-02-17  jrandom
11750
    * If the clock is adjusted during a job run, don't act as if the job took
11751
      negative time.
11752

    
11753
2005-02-17  jrandom
11754
    * Included the GPL'ed susimail 0.13 by default (thanks susi23!)
11755

    
11756
2005-02-17  jrandom
11757
    * Fixed the braindead tunnel testing logic
11758
    * If a large number of tunnels are failing (within the last 5-10 minutes)
11759
      and the current tunnel pool's configuration allows it, randomly build a
11760
      zero hop tunnel to replace failed tunnels.
11761
    * Enable postman's POP3 and SMTP tunnels by default
11762

    
11763
2005-02-16  jrandom
11764
    * Added some error handling when the number of session tags exceeds the
11765
      realistic capacity, dropping a random chunk of received tag sets and
11766
      conducting some minor analysis of the remaining ones.  This is a part
11767
      of a pretty serious error condition, and logs as CRIT (if/when people
11768
      see "TOO MANY SESSION TAGS!", please let me know the full log line it
11769
      puts in the wrapper.log or /logs.jsp)
11770
    * Update the addressbook to only write to the published hosts location
11771
      if the addressbook's config contains "should_publish=true" (by default,
11772
      it contains "should_publish=false")
11773

    
11774
2005-02-16  jrandom
11775
    * (Merged the 0.5-pre branch back into CVS HEAD)
11776
    * Replaced the old tunnel routing crypto with the one specified in
11777
      router/doc/tunnel-alt.html, including updates to the web console to view
11778
      and tweak it.
11779
    * Provide the means for routers to reject tunnel requests with a wider
11780
      range of responses:
11781
        probabalistic rejection, due to approaching overload
11782
        transient rejection, due to temporary overload
11783
        bandwidth rejection, due to persistent bandwidth overload
11784
        critical rejection, due to general router fault (or imminent shutdown)
11785
      The different responses are factored into the profiles accordingly.
11786
    * Replaced the old I2CP tunnel related options (tunnels.depthInbound, etc)
11787
      with a series of new properties, relevent to the new tunnel routing code:
11788
        inbound.nickname (used on the console)
11789
        inbound.quantity (# of tunnels to use in any leaseSets)
11790
        inbound.backupQuantity (# of tunnels to keep in the ready)
11791
        inbound.length (# of remote peers in the tunnel)
11792
        inbound.lengthVariance (if > 0, permute the length by adding a random #
11793
                                up to the variance.  if < 0, permute the length
11794
                                by adding or subtracting a random # up to the
11795
                                variance)
11796
        outbound.* (same as the inbound, except for the, uh, outbound tunnels
11797
                    in that client's pool)
11798
      There are other options, and more will be added later, but the above are
11799
      the most relevent ones.
11800
    * Replaced Jetty 4.2.21 with Jetty 5.1.2
11801
    * Compress all profile data on disk.
11802
    * Adjust the reseeding functionality to work even when the JVM's http proxy
11803
      is set.
11804
    * Enable a poor-man's interactive-flow in the streaming lib by choking the
11805
      max window size.
11806
    * Reduced the default streaming lib max message size to 16KB (though still
11807
      configurable by the user), also doubling the default maximum window
11808
      size.
11809
    * Replaced the RouterIdentity in a Lease with its SHA256 hash.
11810
    * Reduced the overall I2NP message checksum from a full 32 byte SHA256 to
11811
      the first byte of the SHA256.
11812
    * Added a new "netId" flag to let routers drop references to other routers
11813
      who we won't be able to talk to.
11814
    * Extended the timestamper to get a second (or third) opinion whenever it
11815
      wants to actually adjust the clock offset.
11816
    * Replaced that kludge of a timestamp I2NP message with a full blown
11817
      DateMessage.
11818
    * Substantial memory optimizations within the router and the SDK to reduce
11819
      GC churn.  Client apps and the streaming libs have not been tuned,
11820
      however.
11821
    * More bugfixes than you can shake a stick at.
11822

    
11823
2005-02-13  jrandom
11824
    * Updated jbigi source to handle 64bit CPUs.  The bundled jbigi.jar still
11825
      only contains 32bit versions, so build your own, placing libjbigi.so in
11826
      your install dir if necessary.  (thanks mule!)
11827
    * Added support for libjbigi-$os-athlon64 to NativeBigInteger and CPUID
11828
      (thanks spaetz!)
11829

    
11830
2005-02-10  smeghead
11831
    * Initial check-in of Pants, a new utility to help us manage our 3rd-party
11832
      dependencies (Fortuna, Jetty, Java Service Wrapper, etc.). Some parts of
11833
      Pants are still non-functional at this time so don't mess with it yet
11834
      unless you want to potentially mangle your working copy of CVS.
11835

    
11836
2005-02-09  duck
11837
    * Allow an unneeded newline in the SAM client connection without
11838
      disconnecting.
11839

    
11840
2005-02-07  jrandom
11841
    * Fixed a race in the streaming lib's delayed flush algorithm (thanks anon!)
11842

    
11843
2005-02-06  Sugadude
11844
    * Added a filter to the addressbook to remove entries that dont end in ".i2p"
11845

    
11846
2005-02-03  smeghead
11847
    * Added Ant buildfile in apps/fortuna for creating a custom Fortuna PRNG jar
11848
      library from GNU Crypto's CVS HEAD sources.
11849

    
11850
2005-01-26  smeghead
11851
    * i2pProxy.pac, i2pbench.sh, and i2ptest.sh are now shipped with the dist
11852
      packages and installed to $i2pinstalldir/scripts.
11853
    * Added command line params to i2ptest.sh and i2pbench.sh: --gij to run them
11854
      using gij + libgcj, and --sourcedir to run them from the source tree
11855
      instead of the installation directory.
11856
    * Fixed unreachable for() statement clause in the KBucketImpl class that was
11857
      causing gcj to toss a compilation warning (jrandom++).
11858

    
11859
2005-01-26  smeghead
11860
    * Added a couple of scripts, i2ptest.sh and i2pbench.sh, to manage the core
11861
      tests and benchmarks.
11862
    * Routerconsole now builds under gcj 3.4.3.
11863
    * Corrected divide by zero error in TunnelId class under gcj (jrandom++).
11864

    
11865
2005-01-25  smeghead
11866
    * Tweaked some classes to enable gcj 3.4.3 to compile the router and
11867
      supporting apps (except for the routerconsole which is still being
11868
      investigated).
11869

    
11870
2005-01-24  smeghead
11871
    * C#-ification of sam-sharp: interface greatly simplified using delegates
11872
      and events; SamBaseEventHandler provides basic implementation and helper
11873
      methods but is now optional.
11874
    * NAnt buildfile and README added for sam-sharp.
11875

    
11876
2005-01-23  smeghead
11877
    * Port the java SAM client library to mono/C# and released into the
11878
      public domain.  The 0.1 version of this port is available in CVS as
11879
      i2p/apps/sam/csharp/src/I2P.SAM.Client.  The other nonfunctional C#
11880
      library has been removed.
11881

    
11882
2005-01-21  Jhor
11883
    * Updated jbigi build scripts for OSX.
11884

    
11885
2005-01-21  jrandom
11886
    * Added support for OSX to the NativeBigInteger code so that it will look
11887
      in the classpath for libjbigi-osx-none.jnilib.  At the moment, that file
11888
      is not bundled with the shipped jbigi.jar yet though.
11889

    
11890
2005-01-18  jrandom
11891
    * Increased the max # session tags maintained and decreased slightly the
11892
      period over which they are gathered.
11893

    
11894
2005-01-17  jrandom
11895
    * Added meaningful support for adjusting the preferred message size in the
11896
      streaming lib by setting the i2p.streaming.maxMessageSize=32768 (or
11897
      whatever).  The other side will mimic a reduction (but never an increase).
11898
    * Always make sure to use distinct ConnectionOption objects for each
11899
      connection (duh)
11900
    * Reduced the default ACK delay to 500ms on in the streaming lib
11901
    * Only shrink the streaming window once per window
11902
    * Don't bundle a new jetty.xml with updates
11903
    * Catch another local routerInfo corruption issue on startup.
11904

    
11905
2005-01-15  cervantes
11906
    * Added support to the eepproxy for URLs such as
11907
      http://localhost:4444/eepproxy/foo.i2p/bar/baz or even
11908
      http://localhost:4444/eepproxy/foo.i2p/?i2paddresshelper=base64
11909

    
11910
2005-01-15  jrandom
11911
    * Caught a series of (previously unhandled) errors caused by requeueing
11912
      messages that had timed out on the TCP transport (thanks mae^!)
11913
    * Reduce the barrier to dropping session tags on streaming lib resends -
11914
      every fourth send should drop the tags, forcing ElGamal encryption.  This
11915
      will help speed up the recovery after a disconnect, rather than the drop
11916
      every fifth send.
11917

    
11918
* 2005-01-06  0.4.2.6 released
11919

    
11920
2005-01-06  jrandom
11921
    * Added a startup message to the addressbook, printing its version number
11922
      to stdout (which is sent to wrapper.config) when it loads.
11923
    * Updated the addressbook to reread the config file periodically
11924
    * Added orion.i2p to the list of eepsites on the default homepage
11925

    
11926
2005-01-05  jrandom
11927
    * Handle unexpected network read errors more carefully (thanks parg!)
11928
    * Added more methods to partially compare (DataHelper) and display
11929
      arrays (Base64.encode).
11930
    * Exposed the AES encryptBlock/decryptBlock on the context.aes()
11931
    * Be more generous on the throttle when just starting up the router
11932
    * Fix a missing scheduled event in the streaming lib (caused after reset)
11933
    * Add a new DisconnectListener on the I2PSocketManager to allow
11934
      notification of session destruction.
11935
    * Make sure our own router identity is valid, and if it isn't, build a new
11936
      one and restart the router.  Alternately, you can run the Router with
11937
      the single command line argument "rebuild" and it will do the same.
11938

    
11939
2004-12-31  ragnarok
11940
    * Integrated latest addressbook changes (2.0.3) which include support for
11941
      deploying as a .war file with no existing addressbook configuration.
11942
    * Updated main build process to bundle the addressbook.war in the
11943
      i2pinstall.jar and i2pupdate.zip.
11944

    
11945
2004-12-31  jrandom
11946
    * Speling fxi (thanks digum!)
11947
    * Bugfix for the I2PTunnel web interface so that it now properly launches
11948
      newly added tunnels that are defined to be run on startup (thanks ugha!)
11949

    
11950
2004-12-30  jrandom
11951
    * Revised the I2PTunnel client and httpclient connection establishment
11952
      throttles.  There is now a pool of threads that build the I2PSocket
11953
      connections with a default size of 5, configurable via the I2PTunnel
11954
      client option 'i2ptunnel.numConnectionBuilders' (if set to 0, it will
11955
      not throttle the number of concurrent builders, but will launch a thread
11956
      per socket during establishment).  In addition, sockets accepted but
11957
      not yet allocated to one of the connection builders will be destroyed
11958
      after 30 seconds, configurable via 'i2ptunnel.maxWaitTime' (if set to
11959
      0, it will wait indefinitely).
11960

    
11961
2004-12-29  jrandom
11962
    * Imported Ragnarok's addressbook source (2.0.2) which is built but not
11963
      deployed in the i2pinstall.jar/i2pupdate.zip (yet).
11964
    * Don't treat connection inactivity closure as a connection error.
11965

    
11966
2004-12-29  jrandom
11967
    * Add in a new keepalive event on each TCP connection, proactively sending
11968
      a (tiny) time message every minute or two, as well as killing the
11969
      connection if no message has been fully sent within 5 minutes or so.
11970
      This should help deal with hung connections from IP address changes.
11971

    
11972
2004-12-28  jrandom
11973
    * Cleaned up the resending and choking algorithm in the streaming lib.
11974
    * Removed the read timeout override for I2PTunnel's httpclient, allowing
11975
      it to use the default for the streaming lib.
11976
    * Revised ack triggers in the streaming lib.
11977
    * Logging.
11978

    
11979
* 2004-12-21  0.4.2.5 released
11980

    
11981
2004-12-21  jrandom
11982
    * Track a new stat for expired client leases (client.leaseSetExpired).
11983

    
11984
2004-12-21  jrandom
11985
    * Cleaned up the postinstall/startup scripts a bit more to handle winME,
11986
      and added windows info to the headless docs. (thanks ardvark!)
11987
    * Fixed a harmless (yet NPE inspiring) race during the final shutdown of
11988
      a stream (thanks frosk!)
11989
    * Add a pair of new stats for monitoring tunnel participation -
11990
      tunnel.participatingBytesProcessed (total # bytes transferred) and
11991
      tunnel.participatingBytesProcessedActive (total # bytes transferred for
11992
      tunnels whose byte count exceed the 10m average).  This should help
11993
      further monitor congestion issues.
11994
    * Made the NamingService factory property public (thanks susi!)
11995

    
11996
2004-12-20  jrandom
11997
    * No longer do a blocking DNS lookup within the jobqueue (thanks mule!)
11998
    * Set a 60s dns cache TTL, instead of 0s.  Most users who used to use
11999
      dyndns/etc now just use IP autodetection, so the old "we need ttl=0"
12000
      reasoning is gone.
12001

    
12002
2004-12-19  jrandom
12003
    * Fix for a race on startup wrt the new stats (thanks susi!)
12004

    
12005
2004-12-19  jrandom
12006
    * Added three new stats - router.activePeers, router.fastPeers, and
12007
      router.highCapacityPeers, updated every minute
12008

    
12009
2004-12-19  jrandom
12010
    * Added a new i2ptunnel type: 'httpserver', allowing you to specify what
12011
      hostname should be sent to the webserver.  By default, new installs will
12012
      have an httpserver pointing at their jetty instance with the spoofed
12013
      name 'mysite.i2p' (editable on the /i2ptunnel/edit.jsp page).
12014

    
12015
2004-12-19  scintilla
12016
    * Convert native jcpuid code from C++ to C. This should alleviate build
12017
      problems experienced by some users.
12018

    
12019
* 2004-12-18  0.4.2.4 released
12020

    
12021
2004-12-16  jrandom
12022
    * Catch another oddball case for a reset connection in the streaming lib.
12023
    * Add a dumpprofile.jsp page, called with ?peer=base64OfPeerHash, which
12024
      dumps the current state of that peer's profile.  Instead of the full
12025
      base64, you can pass in however many characters you have and it will
12026
      return the first match found.
12027

    
12028
2004-12-16  jrandom
12029
    * Remove the randomized factor in the tunnel rejection by bandwidth -
12030
      we now accept the request if we've allocated less than our limit
12031
      and reject it if we've allocated more.
12032
    * Stick to the standard capacity scale on tunnel rejection, even for
12033
      the 10m period.
12034
    * Build the time message at the very last possible moment
12035

    
12036
2004-12-15  jrandom
12037
    * Handle hard disconnects more gracefully within the streaming lib, and
12038
      log unmonitored events more aggressively.
12039
    * If we drop a peer after connection due to clock skew, log it to the
12040
      /logs.jsp#connectionlogs with relevent info.  In addition, toss it in
12041
      the stat 'tcp.disconnectAfterSkew'.
12042
    * Fixed the formatting in the skew display
12043
    * Added an ERROR message that is fired once after we run out of
12044
      routerInfo files (thanks susi!)
12045
    * Set the connect timeout equal to the streaming lib's disconnect timeout
12046
      if not already specified (the I2PTunnel httpclient already enforces a
12047
      60s connect timeout)
12048
    * Fix for another connection startup problem in the streaming lib.
12049
    * Fix for a stupid error in the probabalistic drop (rand <= P, not > P)
12050
    * Adjust the capacity calculations so that tunnel failures alone in the
12051
      last 10m will not trigger a 0 capacity rank.
12052

    
12053
2004-12-14  jrandom
12054
    * Periodically send a message along all I2NP connections with the router's
12055
      current time, allowing the receiving peer to determine that the clock
12056
      has skewed too much, and hence, disconnect.  For backwards compatability
12057
      reasons, this is being kludged into a DeliveryStatusMessage (ewww).  The
12058
      next time we have a backwards compatability break, we can put in a proper
12059
      message setup for it.
12060

    
12061
2004-12-14  jrandom
12062
    * Reenable the probabalistic drop on the TCP queues to deal with good old
12063
      fashioned bandwidth limiting.  However, by default the probability is
12064
      rigged to reserve 0% of the queue free - meaning we just aggressively
12065
      fail messages in the queue if we're transferring too slowly.  That
12066
      reservation factor can be increased with 'tcp.queueFreeFactor=0.25'
12067
      (or whatever) and the drop code can be disabled with the parameter
12068
      'tcp.dropProbabalistically=false'.
12069
    * Still penalize a peer on tunnel failure, but don't immediately drop
12070
      their capacity to 0.
12071
    * More aggressively ACK duplicates
12072
    * Randomize the timestamper period
12073
    * Display the clock skew on the connection logs when a peer sends it.
12074
    * Allow the timestamper to fix skews of up to 10 minutes
12075
    * Logging
12076

    
12077
2004-12-13  jrandom
12078
    * Added some error checking on the new client send job (thanks duck!)
12079
    * Implemented tunnel rejection based on bandwidth usage (rejecting tunnels
12080
      proportional to the bytes allocated in existing tunnels vs the bytes
12081
      allowed through the bandwidth limiter).
12082
    * Enable a new configuration parameter for triggering a tunnel rebuild
12083
      (tunnel.maxTunnelFailures), where that is the max allowed test failures
12084
      before killing the tunnel (default 0).
12085
    * Gather more data that we rank capacity by (now we monitor and balance the
12086
      data from 10m/30m/60m/1d instead of just 10m/60m/1d).
12087
    * Fix a truncation/type conversion problem on the long term capacity
12088
      values (we were ignoring the daily stats outright)
12089

    
12090
2004-12-11  jrandom
12091
    * Fix the missing HTTP timeout, which was caused by the deferred syn used
12092
      by default.  This, in turn, meant the I2PSocket creation doesn't fail
12093
      on .connect, but is unable to transfer any data in any direction.  We now
12094
      detect that condition for the I2PTunnelHTTPClient and throw up the right
12095
      error page.
12096
    * Logging
12097

    
12098
2004-12-11  jrandom
12099
    * Use a simpler and less memory intensive job for processing outbound
12100
      client messages when the session is in mode=bestEffort.  We can
12101
      immediately discard the data as soon as its sent the first time,
12102
      rather than wait for an ack, since we will never internally resend.
12103
    * Reduce some synchronization to avoid a rare deadlock
12104
    * Replaced 'localhost' with 127.0.0.1 in the i2ptunnel config, and special
12105
      case it within the tunnel controller.
12106
    * Script cleanup for building jbigi/jcpuid
12107
    * Logging
12108

    
12109
* 2004-12-08  0.4.2.3 released
12110

    
12111
2004-12-08  jrandom
12112
    * Revised the buffering when reading from the SAM client and writing
12113
      to the stream.  Also added a thread (sigh) so we don't block the
12114
      SAM client from giving us more messages for abnormally long periods
12115
      of time.
12116
    * Display the router version in the logs on startup (oft requested)
12117
    * Fix a race during the closing of a messageOutputStream
12118

    
12119
2004-12-06  jrandom
12120
    * Don't do a 'passive flush' while there are already outbound messages
12121
      unacked.
12122
    * Show the reseed link if up to 10 peers profiles are active (thanks
12123
      dburton!)
12124

    
12125
2004-12-06  jrandom
12126
    * Don't propogate streaming connection failures out to the SAM bridge as
12127
      fatal errors.
12128
    * Dont barf on repeated I2CP closure.
12129

    
12130
2004-12-05  jrandom
12131
    * Explicitly use "127.0.0.1" to bind the I2CP listener, not the JVM's
12132
      getLocalhost call
12133

    
12134
2004-12-05  jrandom
12135
    * Default the I2CP listener to localhost only, unless overridden by
12136
      i2cp.tcp.bindAllInterfaces=true (thanks dm!)
12137
    * More SAM fixes for things recently broken (whee)
12138

    
12139
2004-12-05  jrandom
12140
    * Fix the recently broken SAM bridge (duh)
12141
    * Add a new pair of SAM apps - net.i2p.sam.client.SAMStreamSink and
12142
      net.i2p.sam.client.SAMStreamSend, mirroring the streaming lib's
12143
      StreamSink and StreamSend apps for transferring files.
12144
    * Make the passive flush timer fire more frequently.
12145

    
12146
2004-12-05  jrandom
12147
    * Fixed some links in the console (thanks ugha!) and the javadoc
12148
      (thanks dinoman!)
12149
    * Fix the stream's passive flush timer (oh, its supposed to work?)
12150

    
12151
2004-12-03  jrandom
12152
    * Toss in a small pool of threads (3) to execute the events queued up with
12153
      the SimpleTimer, as we do currently see the occational event
12154
      notification spiking up to a second or so.
12155
    * Implement a SAM client API in java, useful for event based streaming (or
12156
      for testing the SAM bridge)
12157
    * Added support to shut down the SAM bridge on OOM (useful if the SAM
12158
      bridge is being run outside of the router).
12159
    * Include the SAM test code in the sam.jar
12160
    * Remove an irrelevent warning message from SAM, which was caused by
12161
      perfectly normal operation due to a session being closed.
12162
    * Removed some unnecessary synchronization in the streaming lib's
12163
      PacketQueue
12164
    * More quickly clean up the memory used by the streaming lib by
12165
      immediately killing each packet's resend job as soon as it is ACKed (or
12166
      cancelled), so that there are no longer any valid pointers to the
12167
      (potentially 32KB) packet.
12168
    * Fixed the timestamps dumped to stdout when debugging the PacketHandler.
12169
    * Drop packets that would expand our inbound window beyond our maximum
12170
      buffer size (default 32 messages)
12171
    * Always read the ACK/NACK data from the verified packets received, even
12172
      if we are going to drop them
12173
    * Always adjust the window when there are messages ACKed, though do not
12174
      change its size except as before.
12175
    * Streamlined some synchronization in the router's I2CP handling
12176
    * Streamlined some memory allocation in the SAM bridge
12177
    * Default the streaming lib to disconnect on inactivity, rather than send
12178
      an empty message.
12179

    
12180
2004-12-01  jrandom
12181
    * Fix for a race in the streaming lib as caused by some odd SAM activity
12182

    
12183
* 2004-12-01  0.4.2.2 released
12184

    
12185
2004-12-01  jrandom
12186
    * Fixed a stupid typo that inadvertantly allowed persistent HTTP
12187
      connections to work (thanks duck!)
12188
    * Make sure we override the inactivity timeout too
12189

    
12190
* 2004-12-01  0.4.2.1 released
12191

    
12192
2004-12-01  jrandom
12193
    * Strip out any of the Accept-* HTTP header lines, and always make sure to
12194
      include the forged User-agent header.
12195
    * Adjust the default read timeout on the eepproxy to 60s, unless
12196
      overridden.
12197
    * Minor tweak on stream shutdown.
12198

    
12199
2004-11-30  jrandom
12200
    * Render the burst rate fields on /config.jsp properly (thanks ugha!)
12201
    * Build in a simple timeout to flush data queued into the I2PSocket but
12202
      not yet flushed.
12203
    * Don't explicitly flush after each SAM stream write, but leave it up to
12204
      the [nonblocking] passive flush.
12205
    * Don't whine about 10-99 connection events occurring in a second
12206
    * Don't wait for completion of packets that will not be ACKed (duh)
12207
    * Adjust the congestion window, even if the packet was resent (duh)
12208
    * Make sure to wake up any blocking read()'s when the MessageInputStream
12209
      is close()ed (duh)
12210
    * Never wait more than the disconnect timeout for a write to complete
12211

    
12212
2004-11-29  jrandom
12213
    * Minor fixes to avoid unnecessary errors on shutdown (thanks susi!)
12214

    
12215
2004-11-29  jrandom
12216
    * Reduced contention for local client delivery
12217
    * Drop the new code that munges the wrapper.config.  Instead, updates that
12218
      need to change it will include their own wrapper.config in the
12219
      i2pupdate.zip, overwriting the existing file.  If the file
12220
      "wrapper.config.updated" is included, it is deleted at first opportunity
12221
      and the router shut down, displaying a notice that the router must be
12222
      started again cleanly to allow the changes to the wrapper.config to take
12223
      effect.
12224
    * Properly stop accept()ing I2PSocket connections if we close down the
12225
      session (duh).
12226
    * Make sure we cancel any outstanding Packets in flight when a connection
12227
      is terminated (thanks susi!)
12228
    * Split up the I2PTunnel closing a little further.
12229

    
12230
2004-11-28  jrandom
12231
    * Accept IP address detection changes with a 2-out-of-3 minimum.
12232
    * As long as the router is up, keep retrying to bind the I2CP listener.
12233
    * Decrease the java service wrapper ping frequency to once every 10
12234
      minutes, rather than once every 5 seconds.
12235

    
12236
2004-11-27  jrandom
12237
    * Some cleanup and bugfixes for the IP address detection code where we
12238
      only consider connections that have actually sent and received messages
12239
      recently as active, rather than the mere presence of a TCP socket as
12240
      activity.
12241

    
12242
2004-11-27  jrandom
12243
    * Removed the I2PTunnel inactivity timeout thread, since the new streaming
12244
      lib can do that (without an additional per-connection thread).
12245
    * Close the I2PTunnel forwarder threads more aggressively
12246

    
12247
2004-11-27  jrandom
12248
    * Fix for a fast loop caused by a race in the new streaming library (thanks
12249
      DrWoo, frontier, pwk_, and thetower!)
12250
    * Minor updates to the SimpleTimer and Connection to help track down a
12251
      high CPU usage problem (dumping debug info to stdout/wrapper.log if too
12252
      many events/tasks fire in a second)
12253
    * Minor fixes for races on client disconnects (causing NPEs)
12254

    
12255
* 2004-11-26  0.4.2 released
12256

    
12257
2004-11-26  jrandom
12258
    * Enable the new streaming lib as the default.  That means, for any
12259
      substantial definition, it is NOT BACKWARDS COMPATIBLE.
12260

    
12261
2004-11-25  jrandom
12262
    * Revised the installer to include start menu and desktop shortcuts for
12263
      windows platforms, including pretty icons (thanks DrWoo!)
12264
    * Allow clients specified in clients.config to have an explicit startup
12265
      delay.
12266
    * Update the default install to launch a browser pointing at the console
12267
      whenever I2P starts up, rather than only the first time it starts up
12268
      (configurable on /configservice.jsp, or in clients.config)
12269
    * Bugfix to the clock skew checking code to monitor the delta between
12270
      offsets, not the offset itself (duh)
12271
    * Router console html update
12272
    * New (and uuuuugly) code to verify that the wrapper.config contains
12273
      the necessary classpath entries on update.  If it has to update the
12274
      wrapper.config, it will stop the JVM and service completely, since the
12275
      java service wrapper doesn't reread the wrapper.config on JVM restart -
12276
      requiring the user to manually restart the service after an update.
12277
    * Increase the TCP connection timeout to 30s (which is obscenely long)
12278

    
12279
2004-11-22  jrandom
12280
    * Update to the SAM bridge to reduce some unnecessary memory allocation.
12281
    * New stat to keep track of slow jobs (ones that take more than a second
12282
      to excute).  This is published in the netDb as jobQueue.jobRunSlow
12283

    
12284
2004-11-21  jrandom
12285
    * Update the I2PTunnel web interface to include an option for the new
12286
      streaming lib (which is ignored until the 0.4.2 release).
12287
    * Revised the I2PTunnel web interface to keep the I2CP options of client
12288
      and httpclient tunnels in sync, as they all share the same I2CP session.
12289

    
12290
2004-11-21  jrandom
12291
    * Only allow small clock skews after the first 10 minutes of operation
12292
      (to prevent later network lag bouncing us way off course - yes, we
12293
      really need an NTP impl to balance out the network burps...)
12294
    * Revamp the I2PTunnel web interface startup process so that everything
12295
      is shown immediately, so that different pieces hanging don't hang
12296
      the rest, and other minor bugfixes.
12297
    * Take note of SAM startup error (in case you're already running a SAM
12298
      bridge...)
12299
    * Increase the bandwidth limiter burst values available to 10-60s (or
12300
      whatever is placed in /configadvanced.jsp, of course)
12301

    
12302
2004-11-21  jrandom
12303
    * Allow end of line comments in the hosts.txt and other config files,
12304
      using '#' to begin the comments (thanks susi!)
12305
    * Add support to I2PTunnel's 'client' feature for picking between multiple
12306
      target destinations (e.g. 'client 6668 irc.duck.i2p,irc.baffled.i2p')
12307
    * Add a quick link on the left hand nav to reseed if there aren't enough
12308
      known peers, as well as link to the config page if there are no active
12309
      peers.  Revised config page accordingly.
12310

    
12311
2004-11-21  jrandom
12312
    * Destroy ElGamal/AES+SessionTag keys after 15 minutes of inactivity
12313
      rather that every 15 minutes, and increase the warning period in which
12314
      we refresh tags from 30s to 2 minutes.
12315
    * Bugfix for a rare problem closing an I2PTunnel stream where we'd fail
12316
      to close the I2PSocket (leaving it to timeout).
12317

    
12318
2004-11-19  jrandom
12319
    * Off-by-one fix to the tunnel pool management code, along side some
12320
      explicit initialization.  This can affect clients whose lengths are
12321
      shorter than the router's default (thanks duck!)
12322

    
12323
2004-11-17  jrandom
12324
    * Fix to propogate i2psocket options into the SAM bridge correctly (thanks
12325
      Ragnarok!)
12326

    
12327
2004-11-17  jrandom
12328
    * Minor logging update.
12329

    
12330
2004-11-16  jrandom
12331
    * Clean up the propogation of i2psocket options so that various streaming
12332
      libs can honor them more precisely
12333

    
12334
2004-11-16  jrandom
12335
    * Minor logging update
12336

    
12337
2004-11-14  jrandom
12338
    * Fix a long standing leak in I2PTunnel (hanging on to i2psocket objects)
12339
    * Fix a leak injected into the SimpleTimer
12340
    * Fix a race condition in the tunnel message handling
12341

    
12342
2004-11-13  jrandom
12343
    * Added throttles on how many I2PTunnel client connections we open at once
12344
    * Replaced some buffered streams in I2PTunnel with unbuffered streams, as
12345
      the streaming library used should take care of any buffering.
12346
    * Added a cache for some objects used in I2PTunnel, especially useful when
12347
      there are many short lived connections.
12348
    * Trimmed the SimpleTimer's processing a bit
12349

    
12350
2004-11-10  jrandom
12351
    * Allow loading the (mini)streaming connection options from the
12352
      environment.
12353
    * More defensive programming in the DSA implementation.
12354

    
12355
2004-11-08  jrandom
12356
    * Remove spurious flush calls from I2PTunnel, and work with the
12357
      I2PSocket's output stream directly (as the various implementations
12358
      do their own buffering).
12359
    * Another pass at a long standing JobQueue bug - dramatically simplify
12360
      the job management synchronization since we dont need to deal with
12361
      high contention (unlike last year when we had dozens of queue runners
12362
      going at once).
12363
    * Logging
12364

    
12365
2004-11-08  jrandom
12366
    * Make the SAM bridge more resiliant to bad handshakes (thanks duck!)
12367

    
12368
* 2004-11-06  0.4.1.4 released
12369

    
12370
2004-11-06  jrandom
12371
    * Expose a drop down on the /configclients.jsp to enter the outbound
12372
      tunnel depth.
12373
    * Improved *hosts.txt loading
12374
    * Explicitly override the JVM's timezone settings to use GMT so that
12375
      any client applications which use timezones won't leak sensitive
12376
      data (thanks gott!)
12377
    * Bundle sam.jar in the update (thanks duck!)
12378

    
12379
2004-11-06  jrandom
12380
    * Fix for a long standing synchronization bug in the SDK that in rare
12381
      instances can add a few seconds of lag.
12382

    
12383
2004-11-05  jrandom
12384
    * Bugfixes and unit tests for the SAM bridge to handle quoted message
12385
      parameters, verify proper operation after multiple session lifetimes,
12386
      as well as some synchronization problems.
12387
    * New properties method on the DataHelper class.
12388
    * Address a race on fast disconnecting clients
12389

    
12390
2004-11-02  jrandom
12391
    * Fix for a long standing synchronization bug in the JobQueue (and added
12392
      some kooky flags to make sure it stays dead)
12393
    * Update the ministreaming lib to force mode=guaranteed if the default
12394
      lib is used, and mode=best_effort for all other libs.
12395

    
12396
2004-11-02  jrandom
12397
    * Fixed up the configuration overrides for the streaming socket lib
12398
      integration so that it properly honors env settings.
12399
    * More memory usage streamlining (last major revamp for now, i promise)
12400

    
12401
2004-11-01  jrandom
12402
    * Increase the tunnel test timeout rapidly if our tunnels are failing.
12403
    * Honor message expirations for some tunnel jobs that were prematurely
12404
      expired.
12405
    * Streamline memory usage with temporary object caches and more efficient
12406
      serialization for SHA256 calculation, logging, and both I2CP and I2NP
12407
      message handling.
12408
    * Fix some situations where we forward messages too eagerly.  For a
12409
      request at the tunnel endpoint, if the tunnel is inbound and the target
12410
      is remote, honor the message by tunnel routing the data rather than
12411
      sending it directly to the requested location.
12412

    
12413
2004-10-30  jrandom
12414
    * Cache the temporary objects used in the AES encryption/decryption
12415
      process so that AES doesn't require any memory allocation to process
12416
      data.
12417
    * Dramatically reduce memory usage within various crypto implementations
12418
      by avoiding unnecessary (though simplifying) buffers.
12419
    * If we specify some tags to be sent in an I2CP message explicitly, use
12420
      only those, not those plus a new set (otherwise we aren't sure on ACK
12421
      which set was delivered)
12422
    * Allow configuration for the partial send timeout (how long before
12423
      resending a message down a different tunnel in a lease).  This can be
12424
      updated with the "router.clientPartialSendTimeout" router config prop.
12425
    * Logging
12426

    
12427
2004-10-29  jrandom
12428
    * Strip the Referer, Via, and From headers completely, rather than
12429
      inserting a bogus value ("i2p").  This should help with the use of
12430
      SnipSnap and Geeklog (thanks nickster and DrWoo!)
12431

    
12432
2004-10-27  jrandom
12433
    * Fix a strange race condition on i2cp client disconnect.
12434
    * win98 startup fixes (thanks tester-1 and ardvark!)
12435
    * include build scripts for the new streaming lib (which is NOT ready
12436
      for use yet, but you can hack around with it)
12437

    
12438
2004-10-24  jrandom
12439
    * Allow explicit inclusion of session tags in the SDK, enabling the
12440
      resending of tags bundled with messages that would not otherwise
12441
      be ACKed.
12442
    * Don't force mode=guaranteed for end to end delivery - if mode=bestEffort
12443
      no DeliveryStatusMessage will be bundled (and as such, client apps using
12444
      it will need to do their own session tag ack/nack).
12445
    * Handle client errors when notifying them of message availability.
12446
    * New StreamSinkSend which sends a file to a destination and disconnects.
12447
    * Update the I2PSocketManagerFactory to build the specific
12448
      I2PSocketManager instance based on the "i2p.streaming.manager" property,
12449
      containing the class name of the I2PSocketManager to instantiate.
12450

    
12451
2004-10-23  jrandom
12452
    * Minor ministreaming lib refactoring to simplify integration of the full
12453
      streaming lib.
12454
    * Minor bugfixes to data structure serialization.
12455

    
12456
* 2004-10-18  0.4.1.3 released
12457

    
12458
2004-10-18  jrandom
12459
    * Allow sending messages with a section of a byte array.
12460
    * Reduced stats published.
12461

    
12462
2004-10-17  jrandom
12463
    * Don't b0rk on whitespace in the router address.
12464

    
12465
2004-10-16  jrandom
12466
    * More aggressively reduce the capacity of peers if their tunnels are
12467
      failing so that we move off them quicker.
12468
    * Simplify some data structure serialization for reuse in the streaming
12469
      lib, as well as add support for signing and verifying partial byte
12470
      arrays.
12471
    * Logging updates
12472

    
12473
2004-10-16  jrandom
12474
    * Increased the default minimum tunnel test time to 5 seconds, since we
12475
      still see the occational message processing time spike to 2 seconds.
12476
    * Update the SimpleTimer to allow rescheduling a task thats already
12477
      queued (useful for the new streaming lib).
12478

    
12479
2004-10-15  jrandom
12480
    * Replaced old minimum tunnel test timeout of 1s with a configurable
12481
      value (router.config property "router.tunnelTestMinimum", with the
12482
      default of 2s).
12483

    
12484
2004-10-14  jrandom
12485
    * Tunnel rejection is no longer a sign of an overwhelmingly loaded
12486
      peer, so don't use it as a key point of the IsFailing calculator.
12487
      We still use it as a key point of the Capacity calculator, however.
12488

    
12489
2004-10-14  jrandom
12490
    * Allow for a configurable tunnel "growth factor", rather than trying
12491
      to achieve a steady state.  This will let us grow gradually when
12492
      the router is needed more, rather than blindly accepting the request
12493
      or arbitrarily choking it at an averaged value.  Configure this with
12494
      "router.tunnelGrowthFactor" in the router.config (default "1.5").
12495
    * Adjust the tunnel test timeouts dynamically - rather than the old
12496
      flat 30s (!!!) timeout, we set the timeout to 2x the average tunnel
12497
      test time (the deviation factor can be adjusted by setting
12498
      "router.tunnelTestDeviation" to "3.0" or whatever).  This should help
12499
      find the 'good' tunnels.
12500
    * Added some crazy debugging to try and track down an intermittent hang.
12501

    
12502
2004-10-13  jrandom
12503
    * Fix the probabalistic tunnel reject (we always accepted everything,
12504
      since the docs on java.util.Random.nextDouble() are wrong..)
12505
    * Fixed a race on startup (thanks Quadn!)
12506

    
12507
2004-10-12  jrandom
12508
    * Disable the probabalistic drop by default (enable via the router config
12509
      property "tcp.dropProbabalistically=true")
12510
    * Disable the actual watchdog shutdown by default, but keep track of more
12511
      variables and log a lot more when it occurs (enable via the router
12512
      config property "watchdog.haltOnHang=true")
12513
    * Implement some tunnel participation smoothing by refusing requests
12514
      probabalistically as our participating tunnel count exceeds the previous
12515
      hour's, or when the 10 minute average tunnel test time exceeds the 60
12516
      minute average tunnel test time.  The probabilities in both cases are
12517
      oldAverage / #current, so if you're suddenly flooded with 200 tunnels
12518
      and you had previously only participated in 50, you'll have a 25% chance
12519
      of accepting a subsequent request.
12520

    
12521
* 2004-10-10  0.4.1.2 released
12522

    
12523
2004-10-10  cervantes
12524
    * Update the I2PTunnel HTTP proxy to strip out the i2paddresshelper from
12525
      the request.
12526

    
12527
2004-10-09  jrandom
12528
    * Added a watchdog timer to do some baseline liveliness checking to help
12529
      debug some odd errors.
12530
    * Added a pair of summary stats for bandwidth usage, allowing easy export
12531
      with the other stats ("bw.sendBps" and "bw.receiveBps")
12532
    * Trimmed another memory allocation on message reception.
12533

    
12534
2004-10-08  jrandom
12535
    * Revamp the AESInputStream so it doesn't allocate any temporary objects
12536
      during its operation.
12537

    
12538
2004-10-08  jrandom
12539
    * Don't kill the establisher threads during a soft restart.
12540
    * Attempt to validate the peer's routerInfo earlier during handshaking.
12541
    * Revamp the AESOutputStream so it doesn't allocate any temporary objects
12542
      during its operation.
12543

    
12544
2004-10-07  jrandom
12545
    * Reimplement the I2NP reading with less temporary memory allocation.
12546
      There is still significant GC churn, especially under load, but this
12547
      should help.
12548
    * Catch some oddball errors in the transport (message timeout while
12549
      establishing).
12550

    
12551
2004-10-07  jrandom
12552
    * Expire queued messages even when the writer is blocked.
12553
    * Reimplement most of the I2NP writing with less temporary memory
12554
      allocations (I2NP reading still gobbles memory).
12555

    
12556
2004-10-06  jrandom
12557
    * Implement an active queue management scheme on the TCP transports,
12558
      dropping messages probabalistically as the queue fills up.  The
12559
      estimated queue capacity is determined by the rate at which messages
12560
      have been sent to the peer (averaged at 1, 5, and 60m periods).  As
12561
      we exceed 1/2 of the estimated capacity, we drop messages throughout
12562
      the queue probabalistically with regards to their size.  This is based
12563
      on RFC 2309's RED, with the minimum threshold set to 1/2 the
12564
      estimated connection capacity.  We may want to consider using a send
12565
      rate and queue size measured across all connections, to deal with our
12566
      own local bandwidth saturation, but we'll try the per-con metrics first.
12567

    
12568
2004-10-06  jrandom
12569
    * Enable explicit disabling of the systray entirely for windows machines
12570
      with strange configurations: add -Dsystray.disable=true to the java
12571
      command line.  (thanks mihi!)
12572

    
12573
2004-10-05  jrandom
12574
    * Allow peers on the same LAN to communicate with each other safely even
12575
      when they cannot talk to each other through the external address.
12576

    
12577
2004-10-05  jrandom
12578
    * Display how much time is left before the graceful shutdown is complete.
12579
    * Debug some improperly failed messages on timeout or disconnection.
12580

    
12581
2004-10-05  jrandom
12582
    * Don't go into a fast busy if an I2PTunnel 'server' is explicitly killed
12583
      (thanks mule!)
12584
    * Handle some more error conditions regarding abruptly closing sockets
12585
      (thanks Jonva!)
12586

    
12587
2004-10-04  jrandom
12588
    * Update the shitlist to reject a peer for an exponentially increasing
12589
      period of time (with an upper bounds of an hour).
12590
    * Various minor stat and debugging fixes
12591

    
12592
2004-10-03  jrandom
12593
    * Add a new stat logging component to optionally dump the raw stats to
12594
      disk as they are generated, rather than rely upon the summarized data.
12595
      By default, this is off, but the router property "stat.logFilters" can
12596
      be set to a comma delimited list of stats (e.g. "client.sendAckTime")
12597
      which will be written to the file "stats.log" (or whatever the property
12598
      "stat.logFile" is set to).  This can also log profile related stats,
12599
      such as "dbResponseTime" or "tunnelTestResponseTime".
12600

    
12601
2004-10-02  jrandom
12602
    * Assure that we quickly fail messages bound for shitlisted peers.
12603
    * Address a race on startup where the first peer contacted could hang the
12604
      router (thanks Romster!)
12605
    * Only whine about an intermittent inability to query the time server once
12606

    
12607
2004-10-02  jrandom
12608
    * Command line utility to verify a peer's reachability - simply run
12609
      net.i2p.router.transport.tcp.ConnectionHandler hostname port# and it
12610
      will print out whether that peer is reachable or not (using a simple
12611
      verification handshake).
12612

    
12613
* 2004-10-01  0.4.1.1 released
12614

    
12615
2004-10-01  jrandom
12616
    * Handle partial reseeds, caused by seeds going away before the download
12617
      completes (thanks Sugadude!)
12618

    
12619
2004-10-01  jrandom
12620
    * Explicitly refuse IPv6 addresses, since only some peers support
12621
      them and we want fully reachable peers.
12622

    
12623
2004-10-01  jrandom
12624
    * Additional error handling for a variety of transport layer errors.
12625

    
12626
* 2004-09-30  0.4.1 released (not backwards compatible)
12627

    
12628
2004-09-30  jrandom
12629
    * Bundle the configuration necessary to run an eepsite out of the box
12630
      with Jetty - simply edit ./eepsite/docroot/index.html and give people
12631
      the key listed on the I2PTunnel configuration page, and its up.
12632
    * Router console cleanup, and some (off by default) tunnels -
12633
      smtp.postman.i2p (port 7659), pop.postman.i2p (port 7660), and
12634
      irc.baffled.i2p (port 7661)
12635

    
12636
2004-09-29  jrandom
12637
    * Always wipe the Jetty work directory on startup, so that web updates
12638
      are reflected immediately (Jetty does not honor the cache across
12639
      multiple executions)
12640

    
12641
2004-09-27  jrandom
12642
    * Limit the number of connection tags saved to 10,000.  This is a huge
12643
      limit, but consumes no more than 1MB of RAM.  For now, we drop them
12644
      randomly after reaching that size, forcing those dropped peers to use
12645
      a full DH negotiation.
12646
    * HTML cleanup in the console.
12647

    
12648
2004-09-26  jrandom
12649
    * Complete rewrite of the TCP transport with IP autodetection and
12650
      low CPU overhead reconnections.  More concise connectivity errors
12651
      are listed on the /oldconsole.jsp as well.  The IP autodetection works
12652
      by listening to the first person who tells you what your IP address is
12653
      when you have not defined one yourself and you have no other TCP
12654
      connections.
12655
    * Update to the I2NP message format to add transparent verification at
12656
      the I2NP level (beyond standard TCP verification).
12657
    * Remove a potential weakness in our AESEngine's safeEncrypt and safeDecrypt
12658
      implementation (rather than verifying with E(H(key)), we now verify with
12659
      E(H(iv))).
12660
    * The above changes are NOT BACKWARDS COMPATIBLE.
12661
    * Removed all of the old unused PHTTP code.
12662
    * Refactor various methods and clean up some javadoc.
12663

    
12664
2004-09-21  jrandom
12665
    * Have two tiers of hosts.txt files - the standard "hosts.txt" and
12666
      the new "userhosts.txt".  Updates to I2P will only overwrite the former,
12667
      but values stored in the later take precedence.  Both are queried on
12668
      lookup.
12669

    
12670
2004-09-16  jrandom
12671
    * Refactor the TCP transport to deal with changing identities gracefully,
12672
      and to prevent some wasted effort by keeping track of what host+port
12673
      combinations we are connected to (rather than just the identities).  Also
12674
      catch a few configuration errors earlier.
12675
    * Removed no longer relevent methods from the Transport API that were
12676
      exposing ideas that probably shouldn't be exposed.
12677
    * Removed the 0.4.0.1 specific files from i2pupdate.zip (relating to script
12678
      updates)
12679

    
12680
2004-09-13  jrandom
12681
    * Update for the SDK reconnection to deal with overflow.
12682
    * Web improvements (@ not # on the /logs.jsp [thanks ugha!] and fixed the
12683
      rounding on lifetime bandwidth used [thanks gott!]).
12684

    
12685
* 2004-09-08  0.4.0.1 released
12686

    
12687
2004-09-08  jrandom
12688
    * Updated the "Active:" peer count to display the # of connections as well
12689
      as the number of recently active router identities.
12690
    * Implement some basic updating code - on startup, if there is a file named
12691
      "i2pupdate.zip" in the I2P installation directory, extract it, delete it,
12692
      then restart.
12693
    * Added an ugly little script to allow launching the router on win9x
12694
      machines without a dos box (using javaw to run a .bat file).
12695
    * Logging updates.
12696
    * Updated VERSION constants to 0.4.0.1
12697

    
12698
2004-09-08  hypercubus
12699
    * Bugfix: Running the installer as a non-privileged user on Red Hat (and
12700
      hopefully any other affected *nix systems) now properly discards non-
12701
      essential directories after installation.
12702
    * Support for Win9x in the installer and postinstall.bat.
12703
    * Changed the name of the default installation directory on all platforms
12704
      from "I2P" to "i2p" in the installer.
12705
    * Changed "wrapper.conf" to "wrapper.config" for naming consistency with the
12706
      other configuration files.
12707

    
12708
2004-09-07  cervantes:
12709
    * Proxy recursion disabled by default (strict)
12710
    * Password Authentication for session commands
12711
    * Support for http://path?i2paddresshelper=BASE64
12712
    * Support for http://i2p/BASE64/path syntax
12713

    
12714
2004-09-07  jrandom
12715
    * Make sure that peers placed in the 'fast' group are ones we both know
12716
      how to reach and have been able to reach recently.  These peers may
12717
      still be placed in the 'high capacity' group however (though that group
12718
      is only queried if the 'fast' group is too small)
12719
    * Include some updates to the ProgileOrganizer's CLI.
12720

    
12721
2004-09-07  jrandom
12722
    * Disable the timestamper by default for all applications except the router
12723
      (enable via -Dtime.disabled=false)
12724
    * Simplify the retrieval of the full destination with text based browsers.
12725
    * Bundle the updated wrapper.config and hosts.txt in the i2pupdate.tar.bz2
12726

    
12727
2004-09-07  jrandom
12728
    * Write the native libraries to the current directory when they are loaded
12729
      from a resource, and load them from that file on subsequent runs (in
12730
      turn, we no longer *cough* delete the running libraries...)
12731
    * Added support for a graceful restart.
12732
    * Added new pseudo-shutdown hook specific to the router, allowing
12733
      applications to request tasks to be run when the router shuts down.  We
12734
      use this for integration with the service manager, since otherwise a
12735
      graceful shutdown would cause a timeout, followed by a forced hard
12736
      shutdown.
12737
    * Made the capacity calculator a bit more dynamic by not outright ignoring
12738
      the otherwise valid capacity data for a period with a single rejected
12739
      tunnel (except for the 10 minute period).  In addition, peers with an
12740
      equal capacity are ordered by speed rather than by their hashes.
12741
    * Cleaned up the SimpleTimer, addressing some threading and synchronization
12742
      issues.
12743
    * When an I2PTunnel client or httpclient is explicitly closed, destroy the
12744
      associated session (unless there are other clients using it), and deal
12745
      with a closed session when starting a new I2PTunnel instance.
12746
    * Refactoring and logging.
12747

    
12748
2004-09-06  jrandom
12749
    * Address a race condition in the key management code that would manifest
12750
      itself as a corrupt router identity.
12751
    * Properly clear old transport addresses from being displayed on the old
12752
      console after soft restarts.
12753
    * Properly refuse to load the client applications more than once in the
12754
      same JVM.
12755
    * Added support for a graceful restart (a graceful shutdown followed by a
12756
      full JVM restart - useful for restarting client apps).
12757
    * More defensive programming, HTML cleanup, logging
12758
    * wrapper.config cleanup of duplicate lines
12759

    
12760
2004-09-04  jrandom
12761
    * Added some basic guards to prevent multiple instances from running.
12762
      Specifically, a file "router.ping" in the install directory which is
12763
      written to once a minute - if that file exists and has been modified
12764
      within the last minute, refuse to start up.  In turn, adjust the
12765
      service wrapper to wait a minute before restarting a crashed JVM.
12766
    * Create a "work" directory in the I2P install dir which Jetty will
12767
      use for all of its temporary files.
12768
    * Tell the browser not to cache most of the router console's pages.
12769

    
12770
2004-09-04  jrandom
12771
    * Update the SDK to automatically reconnect indefinitely with an
12772
      exponential delay on retries (capped at 5 minutes).
12773

    
12774
* 2004-09-03  0.4 released
12775

    
12776
2004-09-03  jrandom
12777
    * Updated default wrapper.config to deal with the hard restart option
12778
    * Include the history.txt in the /help.jsp page
12779
    * HTML updates (wrapper.log, and no more unix scripts)
12780
    * Updated VERSION constants to 0.4
12781

    
12782
2004-09-03  hypercubus
12783
    * Bugfix: Installer launches postinstall.bat on WinNT/2K properly.
12784
    * Temporarily removed install_i2p_service_unix and
12785
      uninstall_i2p_service_unix from distribution packages.
12786
    * postinstall.bat/postinstall.sh cleans installation directory of all files
12787
      not applicable to the host OS.
12788

    
12789
2004-09-03  oOo
12790
    * Added some filters to the HTTP request, replacing the User-Agent,
12791
      Referrer, Via, and From headers, which helps until we have a more
12792
      comprehensive filtering system.
12793

    
12794
2004-09-03  jrandom
12795
    * Disabled the old listener on port 7655.
12796

    
12797
2004-09-02  jrandom
12798
    * Cleaned up the base build.xml, adding a new target ("updater") which
12799
      builds the file i2pupdate.tar.bz2 which can be safely extracted over
12800
      existing installs.
12801

    
12802
2004-xx-xx  jrandom
12803
    * Implemented the new web architecture and router console
12804
    * Implemented I2PTunnel web interface, and revamped startup process.
12805
    * Revamped peer selection code to address skew.
12806
    * Removed all temporary threads from the router and the SDK.
12807
    * Bugfix dealing with timeouts and resends.
12808
    * Integrated Iakin's jcpuid library and jbigi update, with modifications.
12809

    
12810
2004-xx-xx  hypercubus
12811
    * Implemented the new installation process.
12812
    * Integrated systray
12813
    * Integrated service manager
12814

    
12815
2004-xx-xx  oOo
12816
    * Implemented ?i2paddresshelper= hook
12817
    * Many small bugfixes to the web interface, router, i2ptunnel, and core.
12818

    
12819
2004-xx-xx  Nightblade
12820
    * libSAM updates.
12821

    
12822
2004-xx-xx  cervantes
12823
    * Imported i2pProxy.pac proxy script in with the build.
12824

    
12825
* 2004-08-20  0.3.4.3 released
12826
* 2004-08-12  0.3.4.2 released
12827
* 2004-08-08  0.3.4.1 released
12828
* 2004-07-29  0.3.4 released
12829
* 2004-07-23  0.3.3 released
12830
* 2004-07-16  0.3.2.3 released
12831
* 2004-07-14  0.3.2.2 released
12832
* 2004-07-11  0.3.2.1 released
12833
* 2004-07-07  0.3.2 released
12834
* 2004-06-25  0.3.1.5 released
12835
* 2004-05-23  0.3.1.4 released
12836
* 2004-05-20  0.3.1.3 released
12837
* 2004-05-13  0.3.1.2 released
12838
* 2004-05-07  0.3.1.1 released
12839
* 2004-04-30  0.3.1 released
12840
* 2004-04-20  0.3.0.4 released
12841
* 2004-04-04  0.3.0.3 released
12842
* 2004-03-30  0.3.0.2 released
12843
* 2004-03-25  0.3.0.1 released
12844
* 2004-03-21  0.3.0 released
12845
* 2004-03-10  0.2.5.4 released
12846
* 2004-03-04  0.2.5.3 released
12847
* 2004-02-28  0.2.5.2 released
12848
* 2004-02-27  0.2.5.1 released
12849
* 2004-02-25  0.2.5 released
12850
* 2004-02-19  0.2.4.2 released
12851
* 2004-02-15  0.2.4.1 released
12852
* 2004-02-14  0.2.4 released
12853
* 2004-01-27  0.2.3.6 released
12854
* 2004-01-21  0.2.3.5 released
12855
* 2004-01-14  0.2.3.4 released
12856
* 2003-12-29  0.2.3.3 released
12857
* 2003-12-27  0.2.3.2 released
12858
* 2003-12-25  0.2.3.1 released
12859
* 2003-12-13  0.2.3 released
12860
* 2003-12-01  0.2.2 released
12861
* 2003-11-18  0.2.1.1 released
12862
* 2003-11-12  0.2.1 released
12863
* 2003-11-09  0.2.0.3 released
12864
* 2003-11-08  0.2.0.2 released
12865
* 2003-11-03  0.2.0.1 released
12866
* 2003-11-01  0.2 released