Compare commits

...

7421 Commits

Author SHA1 Message Date
zzz
daecb35a24 Router: Reduce and document the banlist-forever threshold
Some checks failed
Sync Primary Repository to GitHub Mirror / sync (push) Has been cancelled
Daily Workflow / daily-job (push) Has been cancelled
Daily Workflow / javadoc-latest (push) Has been cancelled
Daily Workflow / build-java7 (push) Has been cancelled
Java CI / build (push) Has been cancelled
Java CI / javadoc-latest (push) Has been cancelled
Java CI / build-java7 (push) Has been cancelled
Dockerhub / docker (push) Has been cancelled
Java with IzPack Snapshot Setup / setup (push) Has been cancelled
SSU2: Reduce bad RI ban time if floodfill
2025-06-26 09:12:30 -04:00
zzz
18d356fecb Partial fix for display of UDP tracker URLs 2025-06-26 07:33:53 -04:00
zzz
965ed2c8bf Honor public files flag when saving torrent file after edit 2025-06-26 07:29:38 -04:00
zzz
6eacc5e4db Don't AIOOBE on bad announce reply 2025-06-26 07:25:22 -04:00
zzz
602fe2b9ca Add UDP tracker for testing 2025-06-26 07:23:16 -04:00
zzz
4c43a60f3c dev -4 2025-06-24 09:46:17 -04:00
zzz
b65ab0386b Crypto: Add MLKEM file missing from merged PR 517 2025-06-24 09:44:46 -04:00
zzz
f6289cb41b Merge pull request 'PQ MLKEM hybrid ratchet only' (#517) from zzz/i2p.i2p:pq-ratchet into master
Reviewed-on: I2P_Developers/i2p.i2p#517
Reviewed-by: idk <idki2p@mail.i2p>
2025-06-24 08:31:49 -04:00
zzz
8b1a1a8198 dev -3 2025-06-21 06:55:08 -04:00
zzz
d53949f970 i2psnark: Update UDP tracker (Proposal 160) (#504)
from three years ago,
to match current version of Proposal 160.
Revert back to standard BEP 15 from "fast mode".
Add TrackerClient and I2PSnarkUtil changes.
Datagram2/3 hooked in.
Variable lifetime handled.

Co-authored-by: zzz <zzz@i2pmail.org>
Reviewed-on: I2P_Developers/i2p.i2p#504
Reviewed-by: idk <idki2p@mail.i2p>
2025-06-21 06:47:28 -04:00
zzz
5bb3cc488c Merge pull request 'I2CP: Add async lookup API' (#511) from zzz/i2p.i2p:i2cp-asynch-lookup into master
Reviewed-on: I2P_Developers/i2p.i2p#511
Reviewed-by: idk <idki2p@mail.i2p>
2025-06-18 11:35:35 -04:00
zzz
a3e69ca9c7 Console: Set form target for wizard
so link into middle of wizard from /config doesn't get stuck there
due to the URL param, as reported by RN
2025-06-17 08:10:22 -04:00
zzz
baf47d60bd Merge pull request 'Transports: Remove ElG DH builder' (#508) from zzz/i2p.i2p:elgdh into master
Reviewed-on: I2P_Developers/i2p.i2p#508
Reviewed-by: idk <idki2p@mail.i2p>
2025-06-17 08:04:20 -04:00
zzz
e5219ba056 Merge pull request 'Router: Store router ident and hash at startup' (#507) from zzz/i2p.i2p:routerhash into master
Reviewed-on: I2P_Developers/i2p.i2p#507
Reviewed-by: idk <idki2p@mail.i2p>
2025-06-17 08:02:14 -04:00
zzz
63bcf077ce Console: Set form target for wizard
so link into middle of wizard from /config doesn't get stuck there
due to the URL param, as reported by RN
2025-06-16 07:02:05 -04:00
zzz
dfe7dce159 dev -1
javadoc fix
2025-06-15 08:30:02 -04:00
zzz
8f56057e36 Merge pull request 'SSU: Remove ActiveThrottle code, disabled 19 years ago' (#505) from zzz/i2p.i2p:ssu-throttle into master
Reviewed-on: I2P_Developers/i2p.i2p#505
Reviewed-by: idk <idki2p@mail.i2p>
2025-06-15 08:14:06 -04:00
zzz
0aa280435a Merge pull request 'Stats: Remove ancient stat log' (#503) from zzz/i2p.i2p:statlog into master
Reviewed-on: I2P_Developers/i2p.i2p#503
Reviewed-by: idk <idki2p@mail.i2p>
2025-06-15 08:08:17 -04:00
zzz
5c828fa116 Merge pull request 'I2CP: Add support for service records (proposal 167)' (#501) from zzz/i2p.i2p:prop167 into master
Reviewed-on: I2P_Developers/i2p.i2p#501
Reviewed-by: idk <idki2p@mail.i2p>
2025-06-15 08:04:08 -04:00
zzz
e3b176b676 I2P changes for ratchet 2025-06-13 08:56:52 -04:00
zzz
d664af0a32 Patches to BouncyCastle 1.80 source files to minimize dependencies 2025-06-13 08:51:34 -04:00
zzz
1705b6e25e BouncyCastle 1.80 source files, unmodified, as a base for future merges
will not compile
2025-06-13 08:48:34 -04:00
zzz
4d1ba03823 SSU2: Change packet classification if/else to switch 2025-06-08 10:29:58 -04:00
0c5497c83e Merge branch 'master' of i2pgit.org:I2P_Developers/i2p.i2p 2025-06-06 21:55:06 -04:00
1c7fd57a4b Check in debian changelogs 2025-06-06 21:54:24 -04:00
zzz
0995aa268e i2ptunnel: Remove delay before flushing output 2025-06-05 16:53:45 -04:00
zzz
d41fbee602 fix release date 2025-06-05 16:50:12 -04:00
zzz
112c2fe525 Console: Add Java version warning to sidebar (Gitea #510)
remove old check for ECDSA-P256
2025-06-04 10:45:03 -04:00
5f40a68a18 don't fail on installer/lib/wrapper distclean so that it fixes the Debian build 2025-06-03 15:51:33 -04:00
578a230760 Checkin Debian changelog 2025-06-03 14:44:19 -04:00
71e2e8d5aa I2P 2.9.0 Release 2025-06-02 15:21:56 -04:00
131086d81b Merge branch 'master' of github.com:i2p/i2p.i2p 2025-06-02 09:10:50 -04:00
352aa7b183 Check in GeoIP 2025-06-02 09:10:36 -04:00
zzz
16ac39b68e -10-rc 2025-05-30 13:27:23 -04:00
zzz
b952a16aa9 Pull translations from Transifex 2025-05-30 13:23:56 -04:00
zzz
9cdfae45b4 tor blocklist update 2025-05-30 07:11:20 -04:00
zzz
5c6543711d blocklist update 2025-05-28 10:12:06 -04:00
e92695a42e Release Checklist: ant bumpBuildtime, ran javadoc test, ran java 7 test, geoip will wait until day-of. CI on gitea is temp down, but is equivalent to CI on github. 2025-05-26 15:20:49 -04:00
idk
d93cd27c2e Update dockerfile, give up on temurin and use alpine instead 2025-05-23 00:15:12 -04:00
idk
419ffdfe5f Merge pull request #104 from thiswillbeyourgithub/docker_doc
doc: explain how to configure the docker setup
2025-05-21 20:08:45 +00:00
zzz
7902823761 bump -9-rc 2025-05-21 14:36:46 -04:00
zzz
0634bb3a78 poupdate-source 2025-05-21 14:33:57 -04:00
zzz
ce65c0ef61 Console: Profiles page tweaks
- Hide test fails under 20%
- Don't show lookup fails over 100%
2025-05-21 09:23:19 -04:00
zzz
0947dda6a8 Debian: Patch refresh 2025-05-21 08:08:15 -04:00
zzz
d1a32f022f compile fix missing import 2025-05-20 12:50:54 -04:00
zzz
0d21815030 Console: Use green icon on /peers if status is OK 2025-05-20 10:23:41 -04:00
zzz
06bce0faf5 i2ptunnel: Change more /susidns links to /dns 2025-05-20 09:37:35 -04:00
zzz
f9692a0aba Console, i2ptunnel, Eepsite help: Change /susidns links to /dns 2025-05-20 09:08:07 -04:00
zzz
35a4446bf1 Console: Support params on /dns
pass params to the iframe
link directly to latest page from susidns bubble
2025-05-20 08:57:00 -04:00
zzz
78e949c11c Tunnels: Build message tweak 2025-05-20 08:00:28 -04:00
zzz
a83feae229 Console: Log warning on upcoming Java 17 requirement 2025-05-19 17:52:42 -04:00
zzz
312f20be9b bump -8 2025-05-14 11:46:09 -04:00
zzz
0bc47c9040 i2psnark: Add new tracker 2025-05-14 11:38:39 -04:00
zzz
740a06b438 I2CP: Add asynch lookup API
Underlying lookup was already asynch but there was no sync API.
This will be useful for the zzzot plugin and others.
Also clean up pending lookups on session shutdown.
2025-05-14 08:41:56 -04:00
zzz
4ca84235ba doc: add new ubuntu name 2025-05-13 14:43:26 -04:00
zzz
6af930ce84 i2psnark: Update known opentrackers list 2025-05-12 15:21:49 -04:00
738bd96807 doc: explain how to configure the docker setup
Signed-off-by: thiswillbeyourgithub <26625900+thiswillbeyourgithub@users.noreply.github.com>
2025-05-12 16:22:06 +02:00
b583b9fe74 Delete automatic mirror_release.yml CI file 2025-05-12 00:32:39 -04:00
8fb5f7f14a Javadoc: fix build failure with nested <p><pre></pre></p> code block, fixes Javadoc build in CI 2025-05-12 00:26:56 -04:00
zzz
488759c66b code formatting 2025-05-11 14:16:44 -04:00
968f03e8c7 Add github sync for i2p.i2p 2025-05-10 18:50:45 -04:00
zzz
1c9ae348da Transports: Remove ElG DH builder
unused since SSU 1 removed
(SSU 1 removal part 14/n)
2025-05-09 13:43:30 -04:00
zzz
8df589b142 Add missing change for I2CP socket address 2025-05-09 11:43:52 -04:00
zzz
8a216a4d7d Console: Only show restart required on /configi2cp when interface changes 2025-05-09 08:46:09 -04:00
zzz
6b2689bb07 I2CP: Log IP on authentication failure 2025-05-09 08:06:01 -04:00
zzz
b96b30979e SOCKS: Log IP on authentication failure 2025-05-09 07:52:01 -04:00
zzz
52dc75cc9b i2psnark: Change search of multiple tokens from OR to AND 2025-05-09 07:37:56 -04:00
zzz
9c1175fdc5 spelling 2025-05-08 10:33:50 -04:00
zzz
e8ac0dc573 i2ptunnel: Log IP on HTTP proxy authentication failure 2025-05-07 11:36:04 -04:00
zzz
7299b62aae Console: Log IP on authentication failure 2025-05-07 11:14:15 -04:00
zzz
e43fdba922 Fix link 2025-05-07 07:41:00 -04:00
zzz
21d847992b Maps: Don't offset far-end of part. tunnel lines 2025-05-06 19:42:38 -04:00
zzz
ad4d207244 Console: Add Hindi to language menu 2025-05-06 19:06:47 -04:00
zzz
0238b1600d More new Hindi translations 2025-05-06 18:37:30 -04:00
zzz
fbd91f73df New Hindi translations 2025-05-06 18:32:25 -04:00
zzz
9238f7f335 Router: Store router ident and hash at startup
so ctx.routerHash() can be lockless
2025-05-06 12:53:47 -04:00
zzz
720fe4edaf Change all gitlab links to gitea 2025-05-05 07:17:17 -04:00
zzz
6f9871e344 Plugins: Sort plugins.config when saving 2025-05-04 14:02:12 -04:00
zzz
0da4cf49c1 Router: Hopefully fix rare shutdown deadlock
via RouterAppManager.shutdown() ... log(CRIT) ... addBubble()
2025-05-04 13:58:26 -04:00
zzz
3490a1a6ec Console: Add new hostname to addressbook bubble if count is 1 2025-05-03 11:17:35 -04:00
zzz
0bd60989de NTCP2: On inbound MSB check fail,
ban IP and do probing resistance, as on AEAD fail
2025-05-03 10:14:52 -04:00
zzz
97332e7472 SSU: Remove ActiveThrottle code, disabled 19 years ago 2025-05-02 08:57:47 -04:00
zzz
abbda43e84 Console: Add jetty icon for sidebar
adapted from Jetty logo, Jetty licensed
2025-05-02 08:13:07 -04:00
zzz
af94ad7441 Map: A few more Mercator coordinate tweaks 2025-05-02 08:08:04 -04:00
zzz
7755860274 CLI: Show deprecated types in privatekeyfile and su3file help 2025-05-02 07:36:14 -04:00
zzz
eb562218e7 SusiDNS: Show actual enctype on details page
instead of ElGamal for all
2025-05-02 07:17:25 -04:00
zzz
dcf0fd9599 NTCP: Temporary ban of IP sending corrupt SessionRequest
Increase temporary ban time
2025-05-01 11:12:41 -04:00
zzz
eb164cebca NTCP: Remove old NTCP 1 handshake buffers 2025-05-01 11:06:27 -04:00
zzz
6dc986f5f3 I2CP: Don't pass javax or streaming options to the router
except for i2p.streaming.profile,
which we may use on the router side later,
see proposal 168.
2025-05-01 06:58:08 -04:00
zzz
5ed487a621 CLI: Add tool to dump all subnets for a country 2025-04-30 14:24:54 -04:00
zzz
2d3cb07097 Console: Don't show -1 active peers when in test mode 2025-04-30 12:02:00 -04:00
zzz
1f83d6122b Router: Remove ssu2tokens.txt file on rekey 2025-04-30 11:56:20 -04:00
zzz
8e4beee536 dev -7 2025-04-30 09:35:52 -04:00
zzz
e6c2352ae2 Merge pull request 'Startup: Add migration tool to migrate all Jetty xml files' (#502) from zzz/i2p.i2p:refid into master
Reviewed-on: I2P_Developers/i2p.i2p#502
Reviewed-by: idk <idki2p@mail.i2p>
2025-04-30 09:30:14 -04:00
zzz
7342068867 Merge pull request 'I2CP: Add support for Datagram 2/3 (proposal 163)' (#500) from zzz/i2p.i2p:prop163 into master
Reviewed-on: I2P_Developers/i2p.i2p#500
Reviewed-by: idk <idki2p@mail.i2p>
2025-04-30 09:28:54 -04:00
zzz
ba091fefad Merge pull request 'Console: /logs page improvements' (#499) from zzz/i2p.i2p:console-logs into master
Some checks failed
Daily Workflow / daily-job (push) Has been cancelled
Daily Workflow / javadoc-latest (push) Has been cancelled
Daily Workflow / build-java7 (push) Has been cancelled
Java CI / build (push) Has been cancelled
Java CI / javadoc-latest (push) Has been cancelled
Java CI / build-java7 (push) Has been cancelled
Dockerhub / docker (push) Has been cancelled
Java with IzPack Snapshot Setup / setup (push) Has been cancelled
Reviewed-on: I2P_Developers/i2p.i2p#499
2025-04-29 07:01:57 -04:00
zzz
59c17869ed i2psnark: Remove ElGamal peer support 2025-04-27 13:00:25 -04:00
zzz
06457548d2 Stats: Remove ancient stat log
From the jrandom days, to log every stat to a file.
Disabled and hidden from the UI a long long time ago.
Along with it goes the stat log filter, which selected
the stats to log.
2025-04-26 14:52:18 -04:00
zzz
8b2a01193b Startup: Add migration tool to migrate all Jetty xml files
referenced in clients.config command lines.
This changes Ref id to Ref refid, and updates the DTD.
Previous changes for this were for new installs only,
this handles existing files in the eepsite dirs.

This builds on the existing MigrateJetty class,
while removing the ancient Jetty 5-8 to 9 migration code.

The only way that would have been used these days is
if somebody tried to update directly from 0.9.29 or earlier
(8 years ago) to the current release.
With this change, we tell the user to uninstall and reinstall.
2025-04-26 14:40:29 -04:00
zzz
76be323557 I2CP: Add support for service records (proposal 167) 2025-04-26 14:26:47 -04:00
zzz
68fbd09c0c I2CP: Add support for Datagram 2/3 (proposal 163)
Prep for UDP announces (proposal 160)
Base for future changes in i2psnark and zzzot
Not hooked in to anything
2025-04-26 14:08:55 -04:00
zzz
508fe2ce52 i2ptunnel: Canonicalize Host header at the server proxy
to prevent duplicate headers being sent to the server
resulting in 400 errors
as reported by altonen
2025-04-26 08:54:16 -04:00
zzz
c60e748a24 Util: Add ability to force using IPv6 for SSLEepGet 2025-04-25 07:05:47 -04:00
zzz
5a4752e4df dev -5 2025-04-24 18:34:55 -04:00
zzz
75a4752fe0 NetDB: Add new reseed
Add CLI flag to force IPv6 for testing
2025-04-24 15:33:18 -04:00
zzz
3681c43519 SusiDNS: Expand add section if destination is set, not hostname
because links from the LS page don't have hostname set
2025-04-24 13:48:27 -04:00
zzz
950f04bd38 Console: Don't show -1 remote leasesets before we have ours 2025-04-24 13:45:39 -04:00
zzz
6fa725b755 blockfile: Catch unchecked exceptions thrown from value deserializers
Previously, we detected null results but did not catch exceptions
thrown by the value deserializers, caused by database corruption,
deserialization bugs, or input validation or serialization errors.
This prevented the database repair code from running, rendering
the remainder of the skip span inaccessible, and no entries displayed
in susidns.

With this change, corrupted entries that throw unchecked exceptions
are removed from the skip span.
2025-04-24 13:15:04 -04:00
zzz
10c249ff6e i2ptunnel: Force CSS load before render on proxy error pages
to prevent "FOUC" https://dev.to/fbnlsr/how-to-get-rid-of-the-flash-of-unstyled-content-5e7
as recommended by drzed.

Not supported by firefox: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/link
May followup with a different or more elaborate solution later, perhaps borrowed from plus.
2025-04-24 13:06:16 -04:00
b360b22143 CI: delete sync CI job for now 2025-04-24 10:38:39 -04:00
zzz
75f428ba73 i2psnark standalone: Fix refid and dtd in jetty-i2psnark.xml
as reported by drzed
2025-04-23 12:38:11 -04:00
zzz
77aef61885 Build: Change Ref id to refid in Jetty config files
to make validators that insist on unique id values happy.
Change DTD to the 9.3 DTD.

For new installs only; migration code for existing installs to follow.
2025-04-20 17:32:17 -04:00
zzz
5ddab62ffc Build: Make snark standalone buildable on windows without zip 2025-04-20 17:28:04 -04:00
zzz
f6e951e297 Build: Patch msgfmt-generated ResourceBundle code to eliminate unchecked warnings
Ancient msgfmt doesn't know about generics.
This change allows devs to set javac.compilerargs=-Xlint:unchecked
in override.properties without getting an
overwhelming number of false positives from the bundles.

If msgfmt ever adds a --java5 option, we can remove this,
but it's been almost 20 years.
For the same reason, while the sed script is fragile,
seems unlikely msgfmt will change the output without a new option.
If they do, we'll fix it then.
2025-04-20 17:21:35 -04:00
zzz
6b9fc436c3 SusiDNS: Strip full path from search 2025-04-20 15:34:57 -04:00
zzz
d60d9366bb SusiDNS: Add b32 and dest reverse lookups
strip any URL parts from search string
2025-04-20 15:23:28 -04:00
zzz
e7774feb12 i2psnark: Remove outstanding requests from pieces when connection is replaced
Hopefully fixes rare case where torrents get stuck.
Tested that it doesn't break anything, but was never able to reproduce the issue.

As reported in torrent at http://tracker2.postman.i2p/index.php?view=TorrentDetail&id=85798
Fix adapted and greatly simplified from source code included in that torrent.
Apparently from old trac ticket #691.
Credit: smtorrents

Also:
- Fix place where removePeerFromPieces() was being called twice,
  once directly and once from disconnect(true).
- Fix javadoc for Peer.disconnect()
- Fix log typo
- Add comments

Description from OP of that torrent:

This update now finally fixes the decades old ticket number 691 which prevents torrents to complete from time to time. The bug manifests itself by keeping a couple of outstanding pieces (> 8, so we never get into the endgame) that are marked as requested from a peerID, with a corresponding peer that has long gone. Those pieces are never requested from any other peer. There are consequently more peerIDs than peers connected.

The only place in code, where peers and peer IDs are mixed up, is a reconnect logic that tries to reuse an existing connection while keeping outstanding requests from the old connection, when the other end tries to reconnect.

Keeping old requests is faulty by itself because someone reconnecting to us will definitely have dropped our previous requests, so we must do the same. The fix now always drops previous connections along with all outstanding requests.
2025-04-20 12:06:28 -04:00
zzz
5cfa74d785 i2psnark, i2ptunnel: Use Long.compare() in sorters
available in Java 7 / Android API 19 (our minSDK is currently 20)
2025-04-20 09:29:06 -04:00
zzz
51dbd493fe i2psnark: Add 2nd tie break for peer count when sorting by status 2025-04-20 09:18:39 -04:00
zzz
9daa5763ba i2psnark: Show lifetime download rate since added on details page 2025-04-20 08:56:50 -04:00
zzz
9a29b456e0 i2psnark: Show current tunnel config in dropdowns even if outside normal range
if user changed i2psnark.config manually
as reported at http://ramble.i2p/f/I2P/5704
2025-04-20 08:51:43 -04:00
zzz
d4e89d1e20 color the filter buttons 2025-04-18 08:25:38 -04:00
zzz
226a1545d1 dev -4 2025-04-16 06:26:24 -04:00
zzz
f3215c732e Merge branch 'prop168' into 'master'
Tunnels: Implement proposal 168 - Part 1

See merge request i2p-hackers/i2p.i2p!235
2025-04-16 10:24:19 +00:00
zzz
6e15421638 Tunnels: Implement proposal 168 - Part 1 2025-04-16 10:24:18 +00:00
zzz
e4e50cc771 Map: Draw larger circles before smaller ones,
so the tooltips for the smaller ones are visible
2025-04-14 10:42:26 -04:00
zzz
2ea20b9e1f Map: Manually adjust some overlay Mercator coordinates
- Fixes some countries where the Google lat/log data weren't well-centered
- Adjusts some others to reduce overlap
2025-04-13 10:05:51 -04:00
zzz
7ab17d0767 Map: Remove tiny countries in base map
that are single-point or two-point shapes,
since we can't see them anyway.
Will still be shown in the overlay.
Exception: If next country starts with a relative move (m),
leave it in.
2025-04-12 11:40:14 -04:00
zzz
6e1c5a4598 Console: Add map test mode
to enable adjustment of mercator coordinates
2025-04-12 07:31:07 -04:00
zzz
66c3cc51cd Merge branch 'changelog' into 'master'
Console: Display changelog in html

See merge request i2p-hackers/i2p.i2p!242
2025-04-12 09:47:32 +00:00
zzz
ad9e3a9397 Console: Display changelog in html 2025-04-12 09:47:32 +00:00
zzz
7e35aee6fe Console: /logs page improvements
- Add filter for console log types
- Show recent event logs on /logs page
- Don't translate log types inside loop
2025-04-11 12:22:22 -04:00
zzz
eda7c8465f Console: Remove ActiveX XHR from js
as recommended by i2pplus
2025-04-11 09:01:25 -04:00
zzz
ad10c1ef36 Merge branch 'httpserver-threads' into 'master'
i2ptunnel: Reduce HTTP server thread usage

See merge request i2p-hackers/i2p.i2p!241
2025-04-10 19:36:55 +00:00
zzz
9f169d794b i2ptunnel: Reduce HTTP server thread usage 2025-04-10 19:36:55 +00:00
zzz
b3ac93d7cc Console: Use Basic auth for prometheus plugin
prometheus server doesn't support Digest auth
2025-04-09 17:26:23 -04:00
zzz
db8fc47703 Merge branch 'ff-restart' into 'master'
NetDB: Maintain ff after restart when configured for auto

See merge request i2p-hackers/i2p.i2p!240
2025-04-09 21:22:45 +00:00
zzz
009630e2dd NetDB: Maintain ff after restart when configured for auto 2025-04-09 21:22:45 +00:00
zzz
6a12347805 Console: Use Basic auth for prometheus plugin
prometheus server doesn't support Digest auth
2025-04-09 11:16:02 -04:00
zzz
27b8a9db4b NetDB: Don't store unreachable routers to disk 2025-04-08 12:17:43 -04:00
zzz
7ae01862ad bump -2 2025-04-08 09:08:12 -04:00
zzz
40a5cac67f Merge branch 'netdb-map' into 'master'
Console: Add world map with locations of routers and tunnels

See merge request i2p-hackers/i2p.i2p!234
2025-04-08 12:56:05 +00:00
zzz
fd4fc237af Console: Add world map with locations of routers and tunnels 2025-04-08 12:56:04 +00:00
zzz
8a7c9b9d11 Merge branch 'wrapper-3560' into 'master'
Build: Update wrapper to 3.5.60

See merge request i2p-hackers/i2p.i2p!237
2025-04-08 12:46:40 +00:00
zzz
5b40c01394 Don't increment nonces within a CipherState unless the encryption/decryption operation succeeds
Adapted from https://github.com/rweather/noise-java/pull/18

Section 5.1 of the The Noise Protocol Framework, revision 34 states in the description for DecryptWithAd that:

If an authentication failure occurs in DECRYPT() then n is not incremented and an error is signaled to the caller.

But noise-java currently increments the nonce unconditionally.
This change defers incrementing the nonce until encryption/decryption operations actually succeed.
2025-04-06 10:47:47 -04:00
zzz
a4fe0da2b4 bump -1 2025-04-04 08:14:09 -04:00
zzz
b8dca2f64b Merge branch 'devrandom' into 'master'
PRNG: Switch to /dev/random by default

See merge request i2p-hackers/i2p.i2p!238
2025-04-04 12:00:55 +00:00
zzz
8ac8ad4238 PRNG: Switch to /dev/random by default 2025-04-04 12:00:55 +00:00
zzz
8248075e59 Merge branch 'subdb-tab' into 'master'
Console: Remove redundant LS rendering code

See merge request i2p-hackers/i2p.i2p!236
2025-03-31 21:34:46 +00:00
zzz
8ec0707249 Console: Remove redundant LS rendering code 2025-03-31 21:34:45 +00:00
zzz
6bfa7ed37d CLI: Add newshandler prompts for different languages 2025-03-30 10:25:55 -04:00
zzz
9aa8bb4576 CLI: BuildTime show jar time 2025-03-30 07:14:20 -04:00
zzz
a4cea4ad09 one more debian changelog 2025-03-30 07:11:55 -04:00
zzz
4ebb088f22 checklist updates 2025-03-30 07:10:53 -04:00
zzz
705e24f0bf i2psnark: DTG/Bubble notifications on torrent add failures 2025-03-30 07:08:27 -04:00
zzz
84f2b0519c i2psnark: Increase thumbnail size 2025-03-30 06:50:47 -04:00
zzz
8a5d2cf20b build: add target to tag dev builds 2025-03-30 06:44:35 -04:00
zzz
b23136e0a6 netdb: Don't store old router versions to disk 2025-03-30 06:41:56 -04:00
zzz
fc7e504e06 2.8.2 debian changelogs 2025-03-29 11:41:42 -04:00
zzz
8e7f67b0cc 2.8.2 2025-03-29 08:20:56 -04:00
zzz
28f6815e8a bump -2-rc 2025-03-28 08:44:15 -04:00
zzz
1a69369996 translation updates 2025-03-28 08:41:07 -04:00
zzz
b52f18518f Tor blocklist update 2025-03-28 07:18:42 -04:00
zzz
4e32c2f470 i2ptunnel: Clear bubble count when clearing status messages
inadvertently omitted from MR 230
2025-03-26 09:58:05 -04:00
zzz
dd74e49101 log tweak 2025-03-23 07:53:59 -04:00
zzz
0d5108de1d Router: Prevent double-free of SHA256 instances from Noise 2025-03-22 14:48:01 -04:00
zzz
b27c8d0f97 log level tweak 2025-03-21 16:40:29 -04:00
zzz
afec863395 Console: Don't capitalize b32s on LS tab (dark theme) 2025-03-21 16:34:06 -04:00
zzz
1c1e28d7a7 Build: Add missing translated resources
- cs man pages
- cs, pt_BR, zh_TW eepsite help
- Add back eepsite_zh.css link that was dropped from zh help pages
- Add link to gan eepsite help that was missing
2025-03-21 08:33:44 -04:00
zzz
2b4b2f70fd i2ptunnel: Version the proxy CSS in more places 2025-03-19 10:54:34 -04:00
zzz
c83b092955 i2psnark: Use torrent name instead of torrent file name in DTG/bubble completion notifications 2025-03-19 09:49:17 -04:00
zzz
c22d65927b Build: Remove more files from Debian source tarball
and clean up removal of mtn files no longer there
2025-03-19 09:26:44 -04:00
zzz
a5f5cad006 Console: Reduce memory usage in BanlistRenderer
OOM seen on one box
2025-03-19 09:21:27 -04:00
zzz
456586a8e5 2.8.1 Debian changelogs 2025-03-18 11:31:48 -04:00
zzz
f444854456 2.8.1 2025-03-17 11:48:02 -04:00
zzz
ec1458d75d bump for review -8-rc 2025-03-14 14:11:20 -04:00
zzz
ee22474dd4 pull translations from transifex 2025-03-14 14:09:25 -04:00
zzz
4024add8ff tor blocklist update 2025-03-14 13:50:20 -04:00
zzz
23a57551a9 docs: Remove SSU HMAC license text, code was removed 2025-03-13 06:49:58 -04:00
zzz
0cbd0fb4d6 bump -7-rc 2025-03-08 11:18:57 -05:00
zzz
812840b4e5 Tunnels: Fix UOE on timeout of OB client tunnel test
previous tunnel fix was incomplete
2025-03-08 11:18:21 -05:00
zzz
499f3182bd Add patch
fix armv6 modes
2025-03-08 09:00:02 -05:00
zzz
e3a4a54802 Build: Update wrapper to 3.5.60
- Remove Solaris Sparc 32-bit wrapper files
- Remove Linux PPC 32-bit BE wrapper files (never included in packages, no longer supported by Tanuki)
- Add patch to fix breakage on Debian xx-ea Java versions

All binaries from Tanuki Delta Pack Community Edition,
except for armhf (armv6), compiled on Raspberry Pi:
      ant 1.10.9
      openjdk 1.8.0_312
      gcc 10.2.1

Windows binaries remain unchanged as we must recompile them ourselves
(32 bit just to change the icon; 64 bit is not provided by Tanuki)

Patch file is unmodified in this checkin, as a base for future merges.
Patch will be in next checkin.
Do not squash.
2025-03-08 08:57:36 -05:00
zzz
11668696b7 NetDB: Reseed update 2025-03-07 06:55:15 -05:00
zzz
a0c6ee16a7 Installer: UI changes
- Add logo to language picker panel
- Add progress bar to panels
2025-03-07 05:34:24 -05:00
zzz
306d31d6f9 i2ptunnel: Hide redundant h2 header when iframed 2025-03-06 12:22:54 -05:00
zzz
876e0da4be i2ptunnel: Add deprecated titles to older EncType/SigType options 2025-03-06 11:06:44 -05:00
zzz
4d12ca5722 i2ptunnel: Change EncType selection from a radio to a dropdown
match the SigType selection style, and prep for PQ
add title to default
2025-03-06 10:59:34 -05:00
zzz
340720c749 bump buildtime 2025-03-06 09:30:46 -05:00
idk
bbd393cd27 Merge pull request #100 from urgentquest/dockerfile-migrate-to-eclipse-temurin-base-image
Dockerfile: migrate to eclipse-temurin:17-alpine base image
2025-03-05 19:44:12 -05:00
zzz
9ae99fa4cb bump -6-rc 2025-03-05 12:13:19 -05:00
zzz
ca15671ce8 poupdate-source 2025-03-05 12:10:03 -05:00
zzz
7b52b4431a Build: Use package-info.java for empty dirs
instead of package.html and Dummy.java
2025-03-05 10:16:55 -05:00
zzz
8b94b9dd29 netdb: reduce RI verify time after startup 2025-03-05 07:25:15 -05:00
0b32146f65 Correct copy and paste error: jre variant is sufficient for running the app. While I am here: provide qualified image reference to make podman happy 2025-03-05 03:24:29 -08:00
zzz
db77827ce0 javadoc fixes 2025-03-05 06:16:53 -05:00
ecc5e22763 spacing. no functional changes 2025-03-05 02:45:43 -08:00
c064631ff9 - Replace an outdated alpine base image with recent one from eclipse.
- Since the entire builder is discarded anyway there is no real point in
  uninstalling build-time package dependencies.
- Install ant from official pre-built binaries as well. Make version
  configurable.
2025-03-05 02:36:33 -08:00
zzz
2ee039948c Update INSTALL docs 2025-03-04 10:20:56 -05:00
zzz
c69c58daf4 bubble text ngettext fix 2025-03-02 07:10:02 -05:00
zzz
6dcf56c042 remove TODO note fixed recently 2025-03-02 06:54:04 -05:00
zzz
02a0ec190b log level fix 2025-03-01 16:04:10 -05:00
zzz
37a71fd15f Installer: Fix installation to path with spaces
ref: http://i2pforum.i2p/viewtopic.php?p=3399
2025-03-01 08:48:13 -05:00
zzz
43ffc20778 Console: Error page CSS tweak (dark)
add test servlet
2025-03-01 08:45:51 -05:00
zzz
21189b0a02 GeoIP 2025-03-01 2025-03-01 06:19:45 -05:00
zzz
dc12464daa Transport: Ban routers with RI format errors if signature verifies 2025-02-28 11:56:19 -05:00
zzz
6a0a13144a Console: Bubble position CSS tweak 2025-02-25 13:34:16 -05:00
zzz
226982096a bump -5 2025-02-25 10:10:15 -05:00
zzz
0d113d8b94 Merge branch 'susidns-bubbles' into 'master'
susidns: Add bubble support

See merge request i2p-hackers/i2p.i2p!233
2025-02-25 15:06:57 +00:00
zzz
1e471655dc susidns: Add bubble support 2025-02-25 15:06:57 +00:00
zzz
95d11d2aad Console: Move certs page to a debug page tab 2025-02-25 09:41:14 -05:00
zzz
a80ea64429 Streaming: Prevent AIOOBE when verifying large signed packets
(prep for PQ)
2025-02-25 07:16:08 -05:00
zzz
a922c1cc6d LS2 CLI test fixups 2025-02-24 14:01:55 -05:00
zzz
06a27d9024 Console: Improve writing efficiency part 2 2025-02-23 21:18:32 -05:00
zzz
de2f2007c4 Console: Improve writing efficiency
replace out.write(buf.toString) with out.append(buf)
to eliminate extra copy and object churn
2025-02-23 20:45:06 -05:00
zzz
8cee7b2547 CLI: Sort reseeds 2025-02-23 10:09:59 -05:00
zzz
dceef0dae2 Router: Ban hash of all-zero RI
seen live on the net
2025-02-23 07:43:26 -05:00
zzz
68ebda19c5 bump -4 2025-02-23 06:45:37 -05:00
zzz
d43c6d631c Tests: Fix test build
broken yesterday by BuildMessageGenerator change
2025-02-23 06:21:47 -05:00
zzz
0f919a0f56 Merge branch 'susidns-sort-2' into 'master'
SusiDNS: Reduce memory usage in AddressBean

See merge request i2p-hackers/i2p.i2p!232
2025-02-23 11:13:01 +00:00
zzz
43988d485d SusiDNS: Reduce memory usage in AddressBean 2025-02-23 11:13:00 +00:00
zzz
7d6e9d20b4 bump -3 2025-02-22 06:15:36 -05:00
zzz
940205f8c8 Merge branch 'bubbles' into 'master'
Console: Add support for notification bubbles

See merge request i2p-hackers/i2p.i2p!230
2025-02-22 11:07:44 +00:00
zzz
652d55a95c Console: Add support for notification bubbles 2025-02-22 11:07:43 +00:00
zzz
b915327fba i2psnark: Add config message for changing down bw limit 2025-02-21 15:26:42 -05:00
zzz
4da8a91264 CLI: Don't die on reseed test if one entry is bad 2025-02-21 13:50:39 -05:00
zzz
ca22f3dbe5 Tunnels: Prep for tunnel bw params (proposal 168) 2025-02-21 11:01:51 -05:00
zzz
c248a999a4 Streaming: Promote profile properties to interface
i2ptunnel: set bulk profile for servers;
i2psnark: set bulk profile;
Prep for tunnel bw params (proposal 168)
2025-02-21 10:22:24 -05:00
zzz
fbd0be941a Client: Deprecate getters for unused encryption private key 2025-02-21 09:05:55 -05:00
zzz
24614316be Tunnels: Fix tests of OB client tunnels
tag was registered with wrong SKM
broken in 2.5.1
move setting of _id earlier so it's available for logging
add notes
2025-02-20 15:05:36 -05:00
zzz
b2542705e7 Log tweak to help debug tunnel test failures 2025-02-20 11:57:24 -05:00
zzz
c108d0352b Log level tweak 2025-02-20 09:19:23 -05:00
zzz
eb323e7784 bump -2 2025-02-17 14:05:41 -05:00
zzz
b2cbd13af4 Merge branch 'susidns-sort' into 'master'
SusiDNS: Implement sort-by-added-date

See merge request i2p-hackers/i2p.i2p!231
2025-02-17 18:50:25 +00:00
zzz
3485037fd7 SusiDNS: Implement sort-by-added-date 2025-02-17 18:50:24 +00:00
zzz
6ad679e701 Merge branch 'i2pdotalt' into 'master'
i2ptunnel: Add .i2p.alt support to HTTP and SOCKS client tunnels

See merge request i2p-hackers/i2p.i2p!222
2025-02-17 18:47:16 +00:00
zzz
b0a8943889 i2ptunnel: Add .i2p.alt support to HTTP and SOCKS client tunnels 2025-02-17 18:47:16 +00:00
zzz
b63d46e2a1 Console: Move family line above addresses in full netdb output
looks better and was messing up last-child CSS in dark theme
2025-02-16 10:34:44 -05:00
zzz
6e8801ca36 susidns: navbar highlight what book you're in on details page 2025-02-16 06:44:06 -05:00
zzz
bc2ef7fd3e susidns: navbar CSS fixes/tweaks 2025-02-14 18:16:14 -05:00
zzz
5c99e7ee16 lint: ;; 2025-02-14 07:32:55 -05:00
zzz
5b623e09a7 Merge branch 'padding-fix-2' into 'master'
Data: Fix KeysAndCert.equals()

See merge request i2p-hackers/i2p.i2p!229
2025-02-11 21:22:15 +00:00
zzz
198f89bc50 Data: Fix KeysAndCert.equals() 2025-02-11 21:22:14 +00:00
zzz
f34da8ebd4 i2ptunnel: Proxy CSS fixes/improvements
mostly dark, some light, possibly more to follow
2025-02-11 12:40:21 -05:00
zzz
5dadc5ae93 i2ptunnel: Proxy jump page tweaks 2025-02-11 12:38:52 -05:00
zzz
68a6987a99 i2ptunnel: Put a ':' on the end of the jump prompt 2025-02-11 09:38:02 -05:00
zzz
84bbb6881d i2ptunnel: Version proxy.css 2025-02-11 08:45:41 -05:00
zzz
15185de087 CLI: Add 'reseeder list' to list reseeds 2025-02-10 13:24:20 -05:00
zzz
ef14eab6fd Router: Remove unused stats (throttle) 2025-02-10 09:53:18 -05:00
zzz
7f4ee2664e Tunnels: Remove unused stats
and consolidate rate array
2025-02-10 09:43:07 -05:00
zzz
5ec82b3afd Transport: SSU1 removal part 12/n (unused stats) 2025-02-10 09:26:10 -05:00
zzz
2768165b05 Transport: SSU1 removal part 11/n (PacketBuilder)
and unused PacketHandler args
2025-02-10 09:02:49 -05:00
zzz
0a91441877 Build: Put i2psnark-standalone build outputs in the i2psnark build/ dir 2025-02-10 08:41:26 -05:00
zzz
df1991d8d7 SusiDNS: Remove null checks in comparator
unnecessary; entries cannot be null
2025-02-09 08:03:55 -05:00
zzz
538cb52ed3 Build: launchpad doc updates 2025-02-07 16:04:34 -05:00
zzz
ad591d4887 dev -1 2025-02-07 13:54:49 -05:00
zzz
f0e3f6eaf3 i2psnark: Reduce PeerCoordinator CHECK_PERIOD interval
to make the choke/unchoke cycles a little faster
2025-02-07 13:51:26 -05:00
zzz
6cef4ccbb1 Data: Check key order when parsing RI mappings and fail-fast if out-of-order
before the signature check
2025-02-07 12:18:52 -05:00
zzz
327c8c69ef Build: Check for mismatched version in Izpack config files 2025-02-07 11:47:20 -05:00
zzz
8b9f61b1d4 Crypto: Use pooled SHA256 instances in Noise lib 2025-02-07 11:45:56 -05:00
zzz
b2e80fce3d Crypto: Allow external use of pooled SHA256 instances 2025-02-07 11:44:35 -05:00
zzz
3abbc1b3d0 Transport: Remove old NTCP 1 stats 2025-02-07 11:41:21 -05:00
zzz
28a499f856 Transport: SSU 1 removal part 10/n (UDPPacket) 2025-02-07 11:18:49 -05:00
zzz
63a72dd76b CLI: Update java version output 2025-02-07 11:15:20 -05:00
zzz
e3191da2a6 Data: Change some internal key methods to package private 2025-02-07 11:09:35 -05:00
zzz
e5f82d11f7 Console: Use new more efficient method to indicate if padding was compressed
and minor cleanup of getIdentity() calls
2025-02-07 10:56:46 -05:00
zzz
ceba7f290e Data: Ensure RouterIdent padding is compressed when read in
Did not affect most Destination creation code paths because they
are generally created via Destination.create(), not via readBytes(InputStream)

Add new more efficient method to indicate if padding was compressed
2025-02-07 10:54:14 -05:00
zzz
f1e95d96b3 Remove failed and test versions from debian changelogs 2025-02-07 09:18:35 -05:00
5d0e1ac3a1 Debian: Re-build focal and jammy with correct control file 2025-02-06 15:58:01 -05:00
f1656b1191 Retry debian package 2025-02-05 21:30:53 -05:00
27d4452958 fix debian changelogs 2025-02-05 20:19:15 -05:00
2f065e58d9 re-check in install*.xml files 2025-02-05 11:06:52 -05:00
f76238ed8d Update build versions 2025-02-04 11:22:52 -05:00
1fa3a67c55 Translations: Pull in updated translations and generate updated manpages 2025-02-04 11:14:51 -05:00
idk
74ffee3744 Merge branch 'padding-fix' into 'master'
Data: Fix compressible padding detection and expansion

See merge request i2p-hackers/i2p.i2p!228
2025-02-04 00:45:53 +00:00
zzz
2166d6bf99 Data: Fix compressible padding detection and expansion 2025-02-04 00:45:53 +00:00
b5a8d84dbd NetDB: Fix reversed conditional in ExpireLeasesJob.java 2025-02-03 09:58:14 -05:00
33622b91c4 GeoIP: Check in new GeoIP database 2025-02-02 10:22:16 -05:00
6e501fe829 Update build time 2025-01-31 18:45:28 -05:00
zzz
3862bbdad9 Bump -9-rc for review 2025-01-31 13:28:52 -05:00
zzz
2b3dbab629 Refresh debian patch 2025-01-31 13:26:53 -05:00
zzz
151c483889 RU man pages update from po 2025-01-31 13:17:00 -05:00
zzz
a597ff840e Pull translations from Transifex 2025-01-31 12:54:37 -05:00
zzz
2e769a8056 Tor blocklist update 2025-01-31 10:02:53 -05:00
zzz
957d0db739 susidns: Dark theme fixes/tweaks
and one change to light theme
2025-01-30 11:01:24 -05:00
zzz
ef5b55a0e4 bump -8-rc
NetDB: RI Publish improvements part 4

Prevent rapid RI publishing at startup when transports update their status
by adding a short delay and check
2025-01-30 07:11:47 -05:00
zzz
0cac210c4d Merge branch 'publish4' into 'master'
NetDB: RI Publish improvements part 4

See merge request i2p-hackers/i2p.i2p!227
2025-01-30 12:07:02 +00:00
zzz
db84778b22 NetDB: RI Publish improvements part 4 2025-01-30 12:07:02 +00:00
zzz
f60da62240 Reseed update 2025-01-29 09:46:34 -05:00
zzz
01b4c62f92 NetDB: RI Publish improvements part 3
Only publish non-ff at shutdown if not restarting
2025-01-28 14:57:24 -05:00
zzz
f5cccc3985 bump -7-rc
NetDB: RI Publish improvements part 2
Delay startup of PLRIJ

Start PLRIJ in setNetDbReady() with a delay,
rather than running immediately from KNDF.startup(),
so that it does not attempt to publish before
KNDF.isInitialized() is true.
setNetDbReady() always does the initial publish,
PLRIJ does the subsequent republishing.

Ensure republish timing is consistent after startup
Increase publish interval randomness
Sometimes publish "early" to add more randomness
Reset counter after publish
2025-01-28 12:13:25 -05:00
zzz
af52dfa6a9 Merge branch 'publish2' into 'master'
NetDB: RI Publish improvements part 2

See merge request i2p-hackers/i2p.i2p!226
2025-01-28 17:10:32 +00:00
zzz
83b67b86b9 NetDB: RI Publish improvements part 2 2025-01-28 17:10:32 +00:00
zzz
1bfe9d0d42 NetDB: RI Publish improvements part 1
Speed up initial publish

After reading in 500 RIs,
PersistentDataStore.ReadJob calls setNetDbReady() which calls publish(),
but that fails because netdb.isInitialized() returns false
until PersistentDataStore finishes reading in all the RIs.

Fix isInitialized() so it will return true before we call setNetDbReady().
Also add a missing check to make sure we don't call setNetDbReady() twice.
and a check in setNetDbReady() so we don't call publish() twice.
2025-01-27 13:17:29 -05:00
zzz
d2150b6d3b Merge branch 'publish1' into 'master'
NetDB: RI Publish improvements part 1

See merge request i2p-hackers/i2p.i2p!225
2025-01-27 18:15:30 +00:00
zzz
456a748696 NetDB: RI Publish improvements part 1 2025-01-27 18:15:30 +00:00
zzz
cd721772f1 another log tweak 2025-01-27 09:29:07 -05:00
zzz
ccc211273b log tweak 2025-01-26 11:30:46 -05:00
zzz
c9ac2680ef Transport: Increase min peer test version
fixes in 0.9.62 should make it more reliable
2025-01-26 11:27:23 -05:00
zzz
396dabc8e7 bump -5-rc 2025-01-22 09:30:58 -05:00
zzz
d09e0ffc46 build: remove old news cert soon to expire 2025-01-22 09:08:43 -05:00
zzz
4e092311a1 poupdate-source 2025-01-22 09:05:56 -05:00
d8dee0b148 I2PTunnel: move Server Throttling config options to their own section. 2025-01-21 18:40:28 -05:00
zzz
099c9bc075 Util: Recognize zen5 processors
as reported by drzed
2025-01-21 11:31:18 -05:00
zzz
0dddf3b6a5 blocklist update 2025-01-21 09:47:05 -05:00
zzz
381d720c2f Util: Update clearnet user agent to match Tor 2025-01-21 09:17:44 -05:00
zzz
e4fd58ecde NDT: Comment out more middlebox test code 2025-01-20 08:14:50 -05:00
zzz
0482e12d54 Debian: Create jammy build to deal with Jetty API change (Gitlab #496)
Jetty made a breaking API change to PathSpec in 9.4.30, so
focal (with 9.4.26) is not compatible with jammy+ and buster+ (9.4.45+).

Symptom is failure to load translated help pages in console.

Fix is to make focal only for focal; create jammy build
for jammy+ and buster+. Update build docs.

Does not affect non-package builds, where we bundle Jetty 9.3.x.
2025-01-20 08:11:43 -05:00
zzz
56f92caaa5 NDT: Comment out unused code 2025-01-19 08:01:34 -05:00
zzz
8b61036f19 NDT: Set connect timeout to 30s so test won't hang too long if server unresponsive 2025-01-19 07:50:45 -05:00
zzz
a92411702b NDT: Only use IPv6 if we have it and not IPv4 2025-01-19 07:47:30 -05:00
zzz
5c304d58a3 NDT: Omit some showStatus() calls we don't want to get displayed in our UI
log level tweks
2025-01-18 15:21:50 -05:00
zzz
b41eaa6c85 NDT: Work around mlab serving unresolvable hostnames
by using the provided IP
2025-01-18 15:18:59 -05:00
zzz
8d3ca1087f console: translate 4 NDT status strings in console bundle 2025-01-18 15:16:42 -05:00
zzz
173490a9d6 Merge branch 'snark-post' into 'master'
i2psnark: require POST on all forms

See merge request i2p-hackers/i2p.i2p!224
2025-01-17 12:16:28 +00:00
zzz
f09262ac48 i2psnark: require POST on all forms 2025-01-17 12:16:27 +00:00
zzz
9894b4d6ae Merge branch 'susidns-post' into 'master'
susidns: require POST on all forms

See merge request i2p-hackers/i2p.i2p!223
2025-01-17 12:15:44 +00:00
zzz
8a71f1b779 susidns: require POST on all forms 2025-01-16 10:24:57 -05:00
zzz
eca0ba4dd7 Crypto: Add commented-out main() test for ChaCha/Poly 2025-01-12 11:24:01 -05:00
zzz
64869653a7 CLI: Improve the selfsignedgenerator usage help 2025-01-12 11:17:12 -05:00
zzz
d51da9e225 Crypto: Remove unused Chacha method 2025-01-10 15:13:32 -05:00
zzz
7b8eb1fdae Crypto: Chacha/poly microoptimization 2025-01-10 14:55:43 -05:00
zzz
c74b489d4a Util: DoH server list update 2025-01-09 09:02:43 -05:00
zzz
1661f1e8e8 Console: Flip the coffee cup handle around 2025-01-07 17:26:19 -05:00
a25719b332 Merge branch 'master' of i2pgit.org:i2p-hackers/i2p.i2p 2025-01-07 14:44:35 -05:00
b1602f603b Plugins: Update my cert to a 10-year cert 2025-01-07 14:43:21 -05:00
zzz
d64483189b OCMOSJ: Don't create unused objects for ECIES 2025-01-06 10:39:55 -05:00
793b51c026 CI: tweaks to mirror-release CI file 2025-01-03 23:06:50 -05:00
fbcee7bf0d CI: rewrite the script that downloads the new release from the primary mirror and posts it to github 2025-01-03 23:01:20 -05:00
b0e80c0ba0 CI: rewrite the script that downloads the new release from the primary mirror and posts it to github 2025-01-03 22:59:35 -05:00
2aaa6c7d1c CI: ensure that development builds are run nightly against the master branch. Put a bigger gap between sync calls for the gitlab->github sync 2025-01-03 22:41:00 -05:00
4fcdbebc61 CI: build IzPack installers in CI 2025-01-03 22:33:36 -05:00
zzz
0ca2b71783 javadoc typos 2025-01-02 09:54:15 -05:00
zzz
4109992fd0 Susimail: Remove unnecessary conversion of recipient list to array 2025-01-02 07:26:21 -05:00
09366fb46e NetDbRenderer.java: fix nonsensical handling of LS1 entries on line 735-750, which should fix issue #493 2025-01-01 17:47:13 -05:00
zzz
a2069da48f javadoc fix 2025-01-01 09:21:41 -05:00
zzz
c079788998 NetDB: Base lookup timeout on peer's average response time 2024-12-26 08:21:16 -05:00
zzz
f2998831bb Profiles: Remove unused 10m and 24h rates for DB response time 2024-12-26 07:50:07 -05:00
zzz
09baa49370 NetDB: Reduce max ff response time 2024-12-26 07:42:45 -05:00
zzz
e617059b30 bump -4 2024-12-18 13:02:28 -05:00
zzz
372dbcedfa Merge branch 'expls' into 'master'
NetDB: Add aggressive LS expire

See merge request i2p-hackers/i2p.i2p!221
2024-12-18 17:57:53 +00:00
zzz
492056e99e NetDB: Add aggressive LS expire 2024-12-18 17:57:53 +00:00
zzz
6ffdb70e4c Tunnels: Remove unnecessary casts in IMD
since setReceivedBy() was promoted to super
2024-12-03 07:43:27 -05:00
zzz
ddfa8ef3cd Console: Output debug info for client DB LS
since tab is hidden behind adv. config anyway, to assist in debugging RAP/RAR
2024-12-03 07:18:07 -05:00
zzz
b0f786e17c Build: Add warning to izpack 4 targets 2024-12-01 12:29:02 -05:00
zzz
d7e97a16a2 bump -3 2024-11-29 16:56:13 -05:00
zzz
7e9e78fed5 Build: Prep for izpack 5.2.3 (Github #86)
Update shortcut spec format, old format does not work with 5.2.3,
new format works with 4.3.0, 5.1.3, and 5.2.3

Format grabbed from ./izpack-dist/src/main/izpack/shortcutSpec.xml in izpack repo https://github.com/izpack/izpack
and specified at https://izpack.atlassian.net/wiki/spaces/IZPACK/pages/491733/Shortcut+Specification
2024-11-29 16:06:35 -05:00
zzz
085bbbb6e6 Transport: Better message on UPnP tab when enabled but fails to start (Github #84) 2024-11-29 10:50:54 -05:00
zzz
37cdade492 Build: Fix some deprecation warnings all over 2024-11-28 17:17:11 -05:00
zzz
a1949bf612 Build: Suppress JNI warnings from Java 24 for CLI and i2psnark-standalone
and add note to wrapper.config on how to do it there for normal runtime
2024-11-28 10:50:26 -05:00
zzz
f7d2893751 Add complete Gan Chinese translation 2024-11-26 12:15:32 -05:00
zzz
8bfbcf1e92 console: Add Kurdish as UI config option
(already have some partial translations)
2024-11-26 11:08:02 -05:00
zzz
ae84bf4021 rrd4j: Fix javadoc warnings 2024-11-26 10:17:04 -05:00
zzz
fed7cacdab Console: Move jar dump link from summary bar to debug page tab 2024-11-26 09:42:36 -05:00
idk
f04bcd95a1 Merge branch 'i2p.i2p.2.8.0-fix-leaseSet-display-regressions' into 'master'
I2p.i2p.2.8.0 fix lease set display regressions

See merge request i2p-hackers/i2p.i2p!219
2024-11-26 13:28:46 +00:00
idk
a9b9a4c404 I2p.i2p.2.8.0 fix lease set display regressions 2024-11-26 13:28:45 +00:00
zzz
30a3806da8 i2psnark: Recognize EepTorrent client 2024-11-20 08:59:27 -05:00
zzz
62f750062d Profiles: Extend time to treat E routers as severely congested 2024-11-17 09:51:59 -05:00
zzz
5c28c7f0a4 Streaming: Reduce batch delay
unless slow
2024-11-17 07:11:28 -05:00
zzz
4da55dd3ab bump -2 2024-11-14 07:39:24 -05:00
zzz
b57afabc13 Router: Change cap for sym. nat, for now 2024-11-14 07:31:39 -05:00
zzz
247b28606c Merge branch 'ssu2-relayintroack' into 'master'
SSU2: Don't send separate ack for relay intro,

See merge request i2p-hackers/i2p.i2p!220
2024-11-08 13:03:05 +00:00
zzz
bc5ca78794 SSU2: Don't send separate ack for relay intro, 2024-11-08 13:03:05 +00:00
zzz
45f81ede6d more notes on testing 2024-11-07 14:07:55 -05:00
zzz
a2f31c5b55 Crypto: Add commented-out ChaCha20 JCE test
JCE is not faster than Noise version for our typical data sizes,
but adding the code so it may be retested or improved in the future.
2024-11-07 13:18:51 -05:00
zzz
c7d15eb6d1 Crypto: ChaChaCore microoptimizations
and some indent fixes
2024-11-07 11:14:01 -05:00
zzz
29d131827a NetDB: Use new isNewer() method for LS comparison in another spot 2024-11-04 13:07:08 -05:00
zzz
0e2a88ac16 blocklist update 2024-11-04 12:57:57 -05:00
zzz
1e5b850a92 Console: Increase interval change for larger/smaller interval buttons on /graph 2024-11-04 12:52:29 -05:00
zzz
b2b86b2767 SSU2: Detect and drop dup relay messages as Bob
More SSU1 code removal (Intro. Mgr.)
2024-11-04 12:29:44 -05:00
zzz
c9b17b8cd5 SSU2: More SSU1 code removal (Est. Mgr.) 2024-11-04 12:12:30 -05:00
zzz
2bec64c55a Router: Periodically recheck family of negative cached RIs
at random using a simple counter.
So if a router gets fixed it will eventually get recognized.
2024-11-04 12:06:12 -05:00
zzz
115c165bb6 SSU2: Hopefully fix rare deadlock via forEachAndNot() 2024-11-02 16:03:21 -04:00
zzz
049ddb3717 Console: remove dark theme override of router log colors
for improved legibility and consistency with light theme
tweak INFO color for dark theme legibility
2024-11-02 14:43:44 -04:00
914a85492c Merge branch 'master' of i2pgit.org:i2p-hackers/i2p.i2p 2024-10-26 23:22:14 -04:00
f861886bef NetDb: add a null check for client so we don't try to look up a null client in the router-wide netDb 2024-10-26 23:21:52 -04:00
zzz
d1adac5d8d bump -1 2024-10-22 17:44:02 -04:00
zzz
7576853c18 rrd4j: Merge in upstream changes part 5
add file missing from previous checkin
2024-10-22 17:41:35 -04:00
zzz
ad503542b3 rrd4j: Merge in upstream changes part 4
add file missing from previous checkin
2024-10-22 17:40:36 -04:00
zzz
2ffa17c633 rrd4j: Merge in upstream changes part 3
thru 8716ead 2024-08-30
2024-10-22 17:38:11 -04:00
zzz
1350d7996b rrd4j: Merge in upstream changes part 2
missing file from previous checkin
2024-10-22 10:34:07 -04:00
zzz
7d896de3c7 rrd4j: Merge in upstream changes part 1
thru 3bfaf9a 2024-08-25 to be 3.10
2024-10-22 10:30:45 -04:00
zzz
8336886db6 history typos 2024-10-22 10:15:57 -04:00
ef33998a71 Debian: update changelogs 2024-10-12 18:41:38 -04:00
562e6dfe0d Release: Update changelog, update version numbers 2024-10-08 11:14:07 -04:00
ec817d0b40 Plugins: fix my certificate 2024-10-08 11:10:07 -04:00
cd368773d3 NetDB: fix inverted conditional test when rendering subDb remote leaseSets 2024-10-07 14:52:28 -04:00
8f1fa4ce99 Plugins: add my new keys 2024-10-07 14:45:02 -04:00
4124d8d7a9 Maintenance: Update Tor blocklist, update geoIP database, bump version number 2024-10-04 15:20:49 -04:00
zzz
2a5a9606b8 pull translations from transifex 2024-10-04 10:13:50 -04:00
zzz
a5c17022a5 javadoc spelling fixes 2024-10-02 09:16:33 -04:00
zzz
5234e06926 blocklist update 2024-10-02 09:04:38 -04:00
9154945571 Docker: automatically resolve conflicting port issues when the external port used by docker does not match the port in the routerInfo 2024-09-29 16:58:44 -04:00
zzz
86819852e7 bump -4-rc 2024-09-28 15:47:51 -04:00
zzz
327b147582 blocklist update 2024-09-28 09:32:38 -04:00
zzz
910a44484f javadoc fix 2024-09-25 08:22:02 -04:00
0dbce02d7f NetDB: fix race conditions and inefficiencies in new subDb renderer, fix equals/== in new subDb renderer, ensure we get the right LeaseSet from the client Db by looking it up locally using the client hash 2024-09-23 22:12:46 -04:00
idk
610baa8e24 Merge branch 'i2p.i2p.2.7.0-organize-leasesets-and-better-crossreferencing' into 'master'
Console/NetDB: Tweak design of client netDb page

See merge request i2p-hackers/i2p.i2p!218
2024-09-23 00:00:57 +00:00
idk
63e13c8f27 Console/NetDB: Tweak design of client netDb page 2024-09-23 00:00:57 +00:00
zzz
4eb70e97f4 streaming: Allow i2p.streaming.profile != 1
previously threw an exception even though value was
mostly ignored and never set by i2ptunnel.
i2pd plans to start using this option.

Do not set profile flag in streaming header, it is unused.
2024-09-21 13:50:45 -04:00
zzz
afe0704e3b i2ptunnel: CSS tweak (dark theme) 2024-09-20 09:55:14 -04:00
zzz
bca5b65b1a i2psnark: Prevent changing infohash in metainfo edit CLI
Tweaks to previous MR:
_ Use new constructor for edit CLI
- Javadocs for new constructor
- Add new_url_list param to new constructor
- Set creation date if unset
2024-09-20 09:47:58 -04:00
zzz
7296bdc32c Merge branch 'broken_edit' into 'master'
Fix broken info hash after torrent edit.

See merge request i2p-hackers/i2p.i2p!216
2024-09-20 13:17:29 +00:00
3cb12b66f6 CI: add workflow to also build tagged docker images 2024-09-18 22:48:28 -04:00
f093b56dc3 CI: add workflow to also build tagged docker images 2024-09-18 22:47:11 -04:00
2447310f91 CI: add workflow to also build tagged docker images 2024-09-18 22:45:36 -04:00
a51d64513a CI: add workflow to continuously build docker every time we push to master 2024-09-18 22:05:44 -04:00
zzz
4beb858d39 bump -3 2024-09-10 14:38:46 -04:00
zzz
7ca36e011a Merge branch 'console-netdb-search' into 'master'
Console: Refactor netdb search

See merge request i2p-hackers/i2p.i2p!217
2024-09-10 18:35:02 +00:00
zzz
797c578894 Console: Refactor netdb search 2024-09-10 18:35:01 +00:00
702f95b384 Fix broken info hash after torrent edit. 2024-09-04 19:16:37 +00:00
zzz
4e20380a95 Merge branch 'console-comparators' into 'master'
Console: Consolidate hash comparators

See merge request i2p-hackers/i2p.i2p!214
2024-08-31 16:03:11 +00:00
zzz
43d68d45ad Console: Consolidate hash comparators 2024-08-31 16:03:11 +00:00
8955397bc0 Merge branch 'master' of i2pgit.org:i2p-hackers/i2p.i2p 2024-08-25 23:21:10 -04:00
aa4e6e1ec1 Debian: always use 3-letter month codes in changelogs 2024-08-25 23:06:48 -04:00
zzz
8ff4797628 I2CP: Don't include lease about to expire in LS request
Better error message on attempt to sign expired LS
2024-08-23 09:25:31 -04:00
b4a0f83c00 CI: log what we're actually doing when CI generates the javadoc site 2024-08-21 11:56:29 -04:00
zzz
b0597e32b2 i2psnark: Fix clear messages button (light theme) (Gitlab #479, Github #81)
thx Tunoac
2024-08-19 08:26:40 -04:00
zzz
8ca34cda63 Naming: lookup fixes
- Don't lookup b33 in BFNS
- Fail immediately on bad b32
- Fix stripping .alt in ConvertToHash
- Strip URLs to hostname in ConvertToHash, for convenience
2024-08-17 08:55:22 -04:00
zzz
12ff0e73c7 SVG: Optimize output for horizontal/vertical segments in paths 2024-08-16 09:18:49 -04:00
zzz
2f7fe96d67 bump -2 2024-08-16 07:43:29 -04:00
zzz
73a9bf87f2 Merge branch '487-ls2' into 'master'
NetDB, I2CP: Fix tunnels going yellow for several minutes (Gitlab #487)

Closes #487

See merge request i2p-hackers/i2p.i2p!211
2024-08-16 11:15:15 +00:00
zzz
fc728c468e NetDB, I2CP: Fix tunnels going yellow for several minutes (Gitlab #487) 2024-08-16 11:15:15 +00:00
zzz
5692890239 Remove old plugin cert 2024-08-12 17:29:40 -04:00
zzz
32d21e5e88 Merge branch 'temp-scanner' into 'master'
Util: New temp dir timestamper

See merge request i2p-hackers/i2p.i2p!210
2024-08-12 11:46:06 +00:00
zzz
f2908b8bc4 Util: New temp dir timestamper 2024-08-12 11:46:06 +00:00
zzz
8d4ddd0f17 NetDB: Don't expire entries in test mode
Don't immediately expire entries for Android
2024-08-11 10:42:57 -04:00
zzz
2285e7ce2f Tunnels: Minor cleanup 2024-08-10 08:16:41 -04:00
zzz
2d516512a9 bump -1 2024-08-09 10:01:42 -04:00
zzz
eec09d4c9c i2psnark: Reduce minimum bandwidth, reduce max connections if low bandwidth
per user request
2024-08-09 09:59:57 -04:00
zzz
41f678b926 Util: Reduce number of PRNG output buffers
Random is either fast enough or it isn't.
2024-08-09 09:54:40 -04:00
zzz
934e4e9cdb javadoc notes 2024-08-09 09:47:57 -04:00
zzz
d35faf032b Data: Consolidate toBase32() code 2024-08-09 09:45:55 -04:00
zzz
a8dbc29dcf Tunnels: Do not select ElG routers for tunnels 2024-08-09 09:42:18 -04:00
zzz
46e429cd49 susimail: Fix searches for multiple terms
by decoding and trimming search param,
and stripping empty fields after split()
2024-08-09 09:40:15 -04:00
zzz
5a3a7b24af i2psnark, susimail: Normailze strings when searching (Gitlab #488)
to improve search for non-ASCII strings.
Normalize both search and searched strings to NFKD when searching.
NFKD is best because it is more efficient than NFKC and it removes
formatting distinctions. This results in the best fuzzy matching.
2024-08-09 09:37:50 -04:00
zzz
181d5da2e2 checklist update 2024-08-08 16:21:34 -04:00
c969274866 check in and update Debian changelogs 2024-08-08 13:30:38 -04:00
903d69eb01 Debian: re-align 0002-jetty-old-api.patch 2024-08-06 21:59:31 -04:00
20df8779bd Router: version 2.6.1 2024-08-06 21:43:27 -04:00
zzz
0657c94f72 bump -2-rc 2024-08-02 13:26:36 -04:00
zzz
f3397c37b4 pull translations from transifex 2024-08-02 13:24:56 -04:00
7ac3804939 I2PTunnel: use height instead of min-height 2024-07-31 20:45:50 -04:00
zzz
7b3ab43635 CSS fix 2024-07-30 10:42:02 -04:00
zzz
ae5104595f poupdate-source 2024-07-29 16:09:06 -04:00
7e7240a36c Merge branch 'master' of i2pgit.org:i2p-hackers/i2p.i2p 2024-07-27 16:39:35 -04:00
3ed337a00d StatManager: fix missing parenthesis that I didn't save before checking in 2024-07-27 16:39:08 -04:00
zzz
8d46db382d Graphs: Improve transparency test by avoiding cast to Color 2024-07-27 14:08:55 -04:00
9fdea38d64 Merge branch 'master' of i2pgit.org:i2p-hackers/i2p.i2p 2024-07-27 13:43:56 -04:00
7a1b17433b StatManager: reduce log levels back to debug when stats are not present 2024-07-27 13:43:39 -04:00
zzz
1d4fb03c24 Build: Add empty javadoc css file so browser doesn't complain 2024-07-27 12:03:10 -04:00
zzz
87a49e1abf SVG: Optimize output of color alpha values
as suggested by drzed
2024-07-27 10:04:57 -04:00
zzz
5f748f7a55 css tweak 2024-07-25 11:21:14 -04:00
zzz
07d8e27d60 fix gradle build 2024-07-25 09:42:01 -04:00
zzz
65514da874 bump -1 2024-07-25 09:34:32 -04:00
zzz
86248df17b remove unused rrd4j class 2024-07-25 09:33:46 -04:00
zzz
5ee65a30f8 Util: Add new processors for CPUID 2024-07-25 09:19:39 -04:00
zzz
b39741bf52 imagegen: Convert identicons to SVG
to reduce memory usage
2024-07-25 09:16:13 -04:00
zzz
bfb5557099 i2ptunnel: Additional fixes for invalid entries in filter file (Gitlab #483)
as reported by drzed
2024-07-25 08:59:36 -04:00
zzz
6b6335cef4 checklist update 2024-07-25 08:49:39 -04:00
zzz
bdf9d67a06 Console: Enable compression of js and svg files
and lower size threshold, now that we have some larger js/svg resources
2024-07-25 08:47:16 -04:00
zzz
07b64ac7d6 Installer: Fix some izpack5 translated languages
Copy out of izpack5 and rename resources to be loaded at build time:
- bra -> por
- chn -> zho
- idn -> ind

See installer5.xml for notes on why.

Also restore Persian translation, was removed in transition from izpack 4 to 5,
will only be shown if the locale is in the JVM, otherwise will generate warning at runtime.
2024-07-25 08:42:35 -04:00
zzz
73cae644e5 Build: Fix rrd4j dependency, other cleanups 2024-07-25 08:18:52 -04:00
zzz
6aa6dad5be rrd4j: More optimizations for graph generation 2024-07-25 08:08:24 -04:00
zzz
541e456809 Increase max concurrent graphs generation 2024-07-25 08:05:34 -04:00
zzz
f84963bf06 Javadoc for new svg package 2024-07-25 08:02:11 -04:00
zzz
a8df1402d9 Merge branch 'svg-graphs' into 'master'
Convert graphs to SVG

See merge request i2p-hackers/i2p.i2p!208
2024-07-25 11:52:07 +00:00
zzz
3cc1eb7cc3 Convert graphs to SVG 2024-07-25 11:52:07 +00:00
zzz
23f267b67b Console: Add link to translation status report 2024-07-25 07:39:35 -04:00
zzz
cd02d9f088 Merge branch 'txreport' into 'master'
Console: Add translation status report

See merge request i2p-hackers/i2p.i2p!207
2024-07-25 11:35:36 +00:00
zzz
1b80039619 Console: Add translation status report 2024-07-25 11:35:36 +00:00
6601e56281 I2Tunnel: fix CSS error 2024-07-24 13:12:13 -04:00
3f2cee1f2c Debian: update changelogs 2024-07-20 13:42:06 -04:00
94248d2019 CI: sleep longer between attempts to ping a mirror 2024-07-19 19:13:55 -04:00
63326dc48b Router: Bump version for release 2024-07-19 11:51:48 -04:00
2de39dd445 Tests: Replace keys in SU3FileSpec.scala with new keys 2024-07-19 11:14:19 -04:00
8212f79bc0 remove old key 2024-07-19 05:06:24 -04:00
b97fd8ee04 check in missing file 2024-07-19 05:05:41 -04:00
728cbfccb1 Tests: fix CertUtilSpec.java 2024-07-18 21:25:59 -04:00
ae1939aafc Merge branch 'master' of i2pgit.org:i2p-hackers/i2p.i2p 2024-07-18 19:11:36 -04:00
ce5b1f04b8 Unit Tests: update i2pseeds.su3 file used in unit tests 2024-07-18 19:11:01 -04:00
zzz
04390dd8fd bump -8-rc 2024-07-15 08:51:44 -04:00
zzz
ecc1f48ace update tor blocklist 2024-07-15 08:50:45 -04:00
zzz
8f268f5902 pull translations 2024-07-15 08:26:27 -04:00
zzz
c5cd8f0859 Update rrd4j version
their upcoming release will be 3.10;
we have most of it, will apply the remaining changes after our release
2024-07-14 09:17:31 -04:00
zzz
70d6e126a7 readme fixes
know your Latin
2024-07-11 08:05:14 -04:00
889bd30e91 merge remote master into local master 2024-07-10 11:42:32 -04:00
c776afd85f Router: conduct maven, javadoc build tests. Add note about java 8 to checklist discussing MavenCentral 2024-07-10 11:42:01 -04:00
52beb0251d Router: Update BuildTime(will do this again next week at release, just running the checklist.,d) 2024-07-10 11:39:02 -04:00
f62c32544e Update GeoIP database 2024-07-10 11:36:52 -04:00
zzz
1814e3dff6 Installer: Remove old plugin cert expiring soon 2024-07-09 10:34:06 -04:00
53dc130f30 I2PTunnel: Affix height of iframe to viewport height in CSS file. If the user has NoScript installed, this iframe is reduced in size as if it contained no information. 2024-07-08 14:09:26 -04:00
zzz
45f614fac2 Stats: Hopefully fix tunnel.Bps.* graphs sometimes not rendering
because SummaryRenderer couldn't find the Rate due to equals() including creation date
Rate.toString() tweaks
thx jrandom
2024-07-06 09:30:49 -04:00
zzz
54f3f7a8b2 imagegen: QR code text size/placement tweaks 2024-07-05 10:25:43 -04:00
zzz
2093131f46 I2CP: Send DestroySessionMessage with dummy SessionID if unset
rather than throwing I2CPMessageException
ref: https://www.reddit.com/r/i2p/comments/1dp7j98/automatically_restarting_i2psnark/
2024-07-05 08:00:11 -04:00
dc049899bd Console: reduce left margin on bandwidth wizard image so it does not cut off at the edge on smaller resolutions 2024-07-03 20:51:29 -04:00
zzz
b100d1a823 bump -7-rc 2024-07-03 11:38:31 -04:00
zzz
cad8fe954e Jetty: Don't show null exception message in XSSFilter 2024-07-02 12:00:34 -04:00
zzz
452968eab0 Tunnels: Peer selection tweak 2024-07-01 07:55:26 -04:00
zzz
34f0444e06 Tunnels: Remove old check for buggy routers now that MIN_VERSION is higher 2024-06-30 11:40:07 -04:00
zzz
f6fe5b8aa3 Router: Remove ancient test code for variable leasesets 2024-06-30 11:33:12 -04:00
zzz
d49c6d3c85 checklist update 2024-06-30 11:19:59 -04:00
zzz
e7818dadeb i2psnark: Fix alignment of torrent names (light/vanilla themes) (Github #76) 2024-06-30 11:00:16 -04:00
zzz
318675923a i2psnark typo 2024-06-30 10:57:50 -04:00
zzz
4033191c1c Util: Don't classify ARM servers as slow (Github #77) 2024-06-30 08:02:34 -04:00
zzz
e3d3c0b6b4 Util: Remove discontinued DoH server (Github PR #79)
Thanks @tina-hello
2024-06-29 11:06:08 -04:00
zzz
70dfd51559 bump -6 2024-06-29 10:30:41 -04:00
zzz
38e6fc5ef2 i2psnark: Fix config page showing router limit instead of configured i2psnark limit for max up bw after restart (Github #75)
This was just a display issue; actual internal limit was correct.
Snark limit will continue to be capped at about 60% of the router limit
to account for overhead.
2024-06-29 10:26:32 -04:00
bd1f4c9f6a CI: when a new tag is pushed, wait until the mirror is updated, download the files from the mirror, and then move the files to the github release corresponding to the tag. Use the i2p.newsxml source to generate the text for the release 2024-06-27 19:39:42 -04:00
zzz
ddfe816d80 I2CP: Increase % of router bandwidth reported to clients 2024-06-27 17:07:44 -04:00
zzz
d765f85515 Console: Fix typo in Permissions-Policy header
causing Chrome to complain
2024-06-26 11:45:29 -04:00
zzz
f8394ac82a Data: Add LeaseSet2.getOptions()
Currently unused but useful for testing.
Remove useless null check.
2024-06-25 12:28:30 -04:00
zzz
e4aab76045 Graphs: Skip the X axis arrowhead also
put the check in the right place
2024-06-24 13:52:44 -04:00
zzz
a2dc80e089 susimail: Update size limits to match current postman limits 2024-06-22 16:47:10 -04:00
zzz
b573fe461f i2ptunnel: Reduce severity of access filter errors (Gitlab #483)
So they don't prevent the tunnel from starting
Log tweaks
2024-06-20 11:21:42 -04:00
zzz
d4f580ee39 Build: Put JspC wrapper in its own jar, used only at build time
remove from jetty-i2p.jar, not required at runtime
2024-06-11 07:49:50 -04:00
zzz
88fbf0f82a i2psnark: CSS tweaks
soften linear gradients
2024-06-10 11:12:28 -04:00
zzz
14db2f3642 Router: Increase min version for floodfills, tunnels, reseed 2024-06-10 07:07:50 -04:00
zzz
c15b29cd4d javadoc fix 2024-06-10 06:51:11 -04:00
zzz
a0f92b2e28 CLI: Fix getopt program names
these are output by getopt in error messages
2024-06-05 09:05:51 -04:00
zzz
5c8ddbe26a bump -5 2024-06-04 08:50:59 -04:00
zzz
07cf02e969 Reseed: Increase min version when creating bundles
exclude K and G caps from bundles
improve CLI output to count old versions and unreachables
allow specifying hostname only on CLI, not just full URL
2024-06-04 08:49:32 -04:00
zzz
a2dd0a756d Router: Add synthetic stats for client and expl. build success rate
derived from event counts of existing stats
requires full stats setting
2024-06-04 08:31:32 -04:00
zzz
aedcd02506 i2psnark: Make PEX more efficient
by only sending new peers, as in ut_pex.
Track connected time and last pex sent time, and only send
peers connected since the last sent time.
Usually, there are no new peers, so now we don't send a message at all.
Also, don't send PEX to seeds after the handshake.
2024-06-04 08:27:12 -04:00
zzz
2f0ed24356 Merge branch 'snark-partials' into 'master'
i2psnark: Fix leaked requests and partial pieces with data

See merge request i2p-hackers/i2p.i2p!203
2024-06-04 11:32:57 +00:00
zzz
4659a922b8 i2psnark: Fix leaked requests and partial pieces with data 2024-06-04 11:32:57 +00:00
zzz
774fd4c2ca Merge branch 'graphs-js' into 'master'
Console: js refresh of graphs

See merge request i2p-hackers/i2p.i2p!199
2024-06-04 11:30:05 +00:00
zzz
02141473ad Console: js refresh of graphs 2024-06-04 11:30:04 +00:00
zzz
d7fbc79533 Router: Don't update rates for full stats when not enabled 2024-06-01 10:49:32 -04:00
zzz
ab100793dc bump -4 2024-06-01 07:52:55 -04:00
zzz
0ea5e7b762 Merge branch 'i2cp-cache' into 'master'
I2CP: Store local dest in lookup cache (Gitlab #482)

See merge request i2p-hackers/i2p.i2p!201
2024-06-01 11:14:26 +00:00
zzz
f22bf33bc7 I2CP: Store local dest in lookup cache (Gitlab #482) 2024-06-01 11:14:26 +00:00
zzz
5da12d4db4 Merge branch 'ssu1-8' into 'master'
Transports: SSU1 removal part 8/n

See merge request i2p-hackers/i2p.i2p!202
2024-06-01 11:09:55 +00:00
zzz
6f65f66ba9 Transports: SSU1 removal part 8/n 2024-06-01 11:09:54 +00:00
zzz
4b9a0ddcbc Set locale for toLowerCase() 2024-05-29 09:13:26 -04:00
zzz
4f16d9652f Graphs: Show Bps as units in legend values when appropriate 2024-05-29 09:08:51 -04:00
zzz
e0f77851c2 Graphs: Replace NaN with 0 in legend values 2024-05-29 09:03:39 -04:00
zzz
7f1c611a1a Graphs: Add day number to day-of-week in time axis 2024-05-28 11:53:00 -04:00
zzz
f1db2c198f Graphs: Simplify restart bar logic
Put space between values and units in legend, to match how the value axis does it
2024-05-28 10:58:08 -04:00
zzz
37dfe3936f Graphs: Show milli values as 0.xxx rather than xxx m 2024-05-28 10:46:56 -04:00
zzz
23d8bfa7b8 Graphs: Don't render ticks if width is 0
Don't render arrows if alpha is 0
2024-05-28 09:12:44 -04:00
zzz
fc3c6eeee6 Susimail: CSS tweaks (dark theme, login page) 2024-05-26 10:22:57 -04:00
zzz
9e18bded7b i2ptunnel: Fix CTCP ACTION (Gitlab #481)
aka /me ...
inadvertently filtered, broken by changes for IRCv3
was blocked in both directions, so both sending and receiving client need this fix for it to get through
2024-05-23 08:59:48 -04:00
zzz
fbd5ddf765 bump -3 2024-05-21 08:34:33 -04:00
zzz
9b9f96dcc1 Merge branch 'susimail-search-xhr' into 'master'
Susimail: XHR search

See merge request i2p-hackers/i2p.i2p!196
2024-05-21 12:26:41 +00:00
zzz
e19eca1d94 Susimail: XHR search 2024-05-21 12:26:41 +00:00
zzz
74462d5a4f Merge branch 'maketor_script_fix' into 'master'
maketorblocklist.sh fixups

See merge request i2p-hackers/i2p.i2p!198
2024-05-21 12:21:08 +00:00
eb6e4965b6 maketorblocklist.sh fixups 2024-05-21 12:21:08 +00:00
zzz
34d6bc6a24 Merge branch 'ssu1-7' into 'master'
SSU1 removal part 7/n

See merge request i2p-hackers/i2p.i2p!197
2024-05-21 12:15:52 +00:00
zzz
e2661985c4 SSU1 removal part 7/n 2024-05-21 12:15:52 +00:00
zzz
3d721b2e5e Merge branch 'obep' into 'master'
Tunnels: Do not parse messages at the OBEP

See merge request i2p-hackers/i2p.i2p!194
2024-05-21 12:15:01 +00:00
zzz
175824e2f1 Tunnels: Do not parse messages at the OBEP 2024-05-21 12:15:00 +00:00
zzz
2f681a5640 Debian: Add Java 21 as an option, remove Java 18 2024-05-20 14:38:02 -04:00
zzz
3714fed115 Build: Output ant version 2024-05-19 11:29:08 -04:00
zzz
050a52a2ea i2psnark: Fix NPE when attempting to create torrent with too many files
as reported by mrt
improve error message
2024-05-19 10:29:39 -04:00
zzz
0c19e28a4a Console: Disable browser caching of graphs 2024-05-18 13:15:48 -04:00
zzz
b71b4a952e Build: Fix buildTest after distclean 2024-05-18 10:49:39 -04:00
zzz
1d96b5b3df bump -2 2024-05-18 07:59:29 -04:00
zzz
a685374fef Merge branch 'js-scope' into 'master'
Console: Fix js global scope variables

See merge request i2p-hackers/i2p.i2p!195
2024-05-18 11:51:30 +00:00
zzz
2d81e843aa Console: Fix js global scope variables 2024-05-18 11:51:30 +00:00
zzz
22127cb653 Merge branch 'ssu1-6' into 'master'
Transports: SSU1 removal part 6/n

See merge request i2p-hackers/i2p.i2p!193
2024-05-18 11:50:31 +00:00
zzz
7f3db25080 Transports: SSU1 removal part 6/n 2024-05-18 11:50:30 +00:00
zzz
168c4ffe4f bump -1 2024-05-17 14:19:30 -04:00
zzz
aedb7cd19a Console: Tweak graph title placement 2024-05-17 13:30:47 -04:00
zzz
e479e187da Debian checklist updates 2024-05-17 13:20:07 -04:00
zzz
12bfcd38d6 Build: add script to make tor blocklist
Adapted from I2P+, license granted to I2P under I2P license

changes:
- removed bashisms
- speed up 2x by removing half the awks
- write output directly to file rather than buffering
- use previous http_proxy value if set
- diagnostic output tweaks
- various cleanups
2024-05-17 10:06:27 -04:00
zzz
6f3bc3f5e2 Util: Remove ST2 timers from queue on cancel
May reduce memory usage a little
2024-05-16 09:21:24 -04:00
zzz
f870b2532f I2CP: Hopefully fix rare NPE
as reported by drzed
2024-05-16 09:12:08 -04:00
zzz
cadb72457c Build: Debian changelogs and checklist updates 2024-05-16 07:25:08 -04:00
a2cb7ffff9 Fix focal changelog 2024-05-15 11:29:16 -04:00
ce00a1148b Update focal changelog 2024-05-15 11:24:49 -04:00
zzz
84971f6da9 2.5.2 2024-05-15 08:23:06 -04:00
zzz
48899bcade bump -2-rc 2024-05-14 13:45:40 -04:00
zzz
abc3162db5 Pull translations from Transifex 2024-05-14 13:40:59 -04:00
zzz
f4066c2b14 Update tor blocklist
and add to checklist
2024-05-14 13:29:46 -04:00
zzz
ed065474b3 i2ptunnel: Fix keepalive bug causing truncation of chunked output 2024-05-14 13:08:34 -04:00
zzz
e9c0cdbf27 fix comment 2024-05-12 11:21:26 -04:00
zzz
e1620742b3 bump -1 2024-05-12 10:45:18 -04:00
zzz
4fa1965b11 rrd4j: Hide axis ticks
as recommended by drzed
2024-05-12 10:43:08 -04:00
zzz
4e9ac43b55 rrd4j: Change unit scale from 'k' to 'K'
which is not correct by the SI standard,
but it matches the rest of the console and common practice.
Also fix rrd4j bug that used micro in one place and u in the other.
2024-05-12 10:12:21 -04:00
zzz
177fbad865 Console: Update rrd4j to 3.9.1 preview
from rrd4j github head.
Includes our ImageWorker contribution which should speed up rendering.
2024-05-12 09:58:42 -04:00
zzz
84dbf53f95 Tunnels: Validate peer RI expiration in TunnelPeerSelector
Previously, the expiration was not validated until BuildRequestor,
where the build would fail.
Old bug, but was exacerbated by recent change to KNDF.validate() to
enforce expiration at startup if the downtime was short.
2024-05-08 09:43:52 -04:00
zzz
3f2bfe8871 Router: Publish G cap if symmetric natted 2024-05-08 08:06:45 -04:00
zzz
603bca476a i2ptunnel: Fix custom options form width (light theme) 2024-05-08 06:56:14 -04:00
b3fc35541c Debian: check in updated Debian changelogs 2024-05-07 11:21:51 -04:00
44190bb52d CI: remove mavenCentral.deps target from CI since it's actually covered by maven-dev-release.sh 2024-05-06 18:28:57 -04:00
2facca2308 Checklist: add note about in-network update hosts 2024-05-06 18:11:23 -04:00
7cf9daa381 2.5.1: Update version 2024-05-06 15:38:00 -04:00
aa947e7922 2.5.1: update translations 2024-05-06 15:29:01 -04:00
zzz
71992b2af6 bump -4 2024-05-05 09:00:50 -04:00
zzz
44f313449a Pull translations from transifex 2024-05-05 08:57:50 -04:00
zzz
74c88636d3 NetDB: Various fixes and adjustments 2024-05-05 08:46:25 -04:00
zzz
c94c49482f Console: Error page CSS tweak (dark) 2024-05-04 07:22:25 -04:00
zzz
fbce5a5eaa Console: Trim inputs on search form 2024-05-04 07:17:15 -04:00
zzz
6874488d63 i2psnark: CSS fixes (vanilla) 2024-05-04 07:14:11 -04:00
zzz
5c46ec1385 javadoc fix
jrandom copypaste
2024-05-04 07:06:14 -04:00
zzz
ab943c9914 NetDB: Bypass up-long-enough check if downtime was short 2024-05-03 18:26:22 -04:00
zzz
3dd9f4eacf NetDB: Don't lookup RI if temp. banlisted 2024-05-03 17:25:13 -04:00
zzz
6c25b558fd Tunnels: OBEP distributor:
Check and charge RI lookup bandwidth as participating bandwidth
2024-05-03 15:22:03 -04:00
zzz
d63d08c16c Tunnels: Tighten new conn throttle at OBEP 2024-05-03 07:34:22 -04:00
zzz
e0e7582302 Blocklist: Add Tor blocklist
As previously implemented by I2P+
blocklist from I2P+ courtesy drzed
generation script to follow
2024-05-03 07:24:23 -04:00
zzz
0efb0017e8 Profiles: Fixes for firstHeardAbout and/or lastHeardAbout being zero 2024-05-02 16:57:50 -04:00
0b31e9504c GeoIP: Update GeoIP to May 2024 Database 2024-05-02 11:38:24 -04:00
67e57f0391 Router: Bump build time. CI: test Debian patches in CI. test Maven builds in CI. 2024-05-02 01:12:47 -04:00
zzz
e7d5676233 NetDB: Deny old ANY lookup type to non-ff 2024-05-01 09:35:04 -04:00
zzz
c3730e8b47 NetDB: Limit number of DSRM entries to follow
for an exploratory reply
2024-05-01 09:32:07 -04:00
idk
332411cb8c Merge branch 'i2p.i2p.2.5.1-revert-expirable-blocklist' into 'master'
Blocklist: Revert #93

See merge request i2p-hackers/i2p.i2p!192
2024-05-01 12:50:17 +00:00
3a0188fcd1 Blocklist: Revert #93 2024-04-29 17:47:09 -04:00
zzz
9ef268796b Merge branch 'sybil-ip' into 'master'
Sybil: Disable IP checks for now

See merge request i2p-hackers/i2p.i2p!191
2024-04-28 11:52:25 +00:00
zzz
32167c5f8f Sybil: Disable IP checks for now 2024-04-28 11:52:25 +00:00
zzz
d123aeab0c Susimail: Search fixes
- Fix sorting and pagination within search results
- Bypass XSS filter and escape as necessary
2024-04-26 08:35:57 -04:00
zzz
b6fc908190 bump -2 2024-04-25 08:46:27 -04:00
zzz
cc3f747076 Merge branch 'susimail-search-v2' into 'master'
Susimail: Add search

See merge request i2p-hackers/i2p.i2p!189
2024-04-25 10:55:06 +00:00
zzz
d70f254c9a Merge branch 'ssu1-5' into 'master'
Transport: SSU1 removal part 5/n

See merge request i2p-hackers/i2p.i2p!190
2024-04-25 10:54:19 +00:00
zzz
87086cf315 Transport: SSU1 removal part 5/n 2024-04-25 10:54:19 +00:00
6decc16c41 CI: Give access to GITHUB_TOKEN to git sync CI job 2024-04-23 16:23:13 -04:00
zzz
daee078dcf Susimail: Add search 2024-04-22 21:19:46 -04:00
zzz
78ee4ac3cd Addressbook: Use standard time formatting for log
and set file permissions
2024-04-22 20:45:49 -04:00
zzz
098931b484 Profiles: Don't update last heard time on tunnel failure
dates back 20 years
2024-04-22 20:44:53 -04:00
zzz
eed87b90e0 Merge branch 'ssu1-4' into 'master'
Transport: SSU1 removal part 4/n

See merge request i2p-hackers/i2p.i2p!186
2024-04-22 19:41:58 +00:00
zzz
7db6cac1f6 Transport: SSU1 removal part 4/n 2024-04-22 19:41:58 +00:00
zzz
3cb7e660bc Merge branch 'ssu1-3' into 'master'
Transport: SSU1 removal part 3/n

See merge request i2p-hackers/i2p.i2p!185
2024-04-22 19:40:50 +00:00
zzz
b2135214e4 Transport: SSU1 removal part 3/n 2024-04-22 19:40:50 +00:00
b29be88d08 CI: use github actions to sync FROM i2pgit.org TO github.com instead of running a script on my server. PAT is not generated yet due to the need to determine what permissions it needs. This job will fail on the github side until I add the PAT. 2024-04-22 14:42:15 -04:00
33b9317d37 CI: add update-zip in useful location to github pages 2024-04-22 14:35:43 -04:00
22998bc707 Check in bionic changelog 2024-04-20 08:13:29 -04:00
zzz
33d56f5f2e Build: Update to Tomcat 9.0.88 2024-04-17 07:45:40 -04:00
zzz
84139e40fc bump -1 2024-04-15 10:45:34 -04:00
zzz
d4a36675be Susimail: Don't show multipart/related CID images as attachments also 2024-04-15 10:25:33 -04:00
zzz
8cf1ebf05d Susimail: Improve validateAddress()
causing some addresses to not be displayed

- Better regex for domain
- Use compiled pattern for matching
- Allow multiple matches for e.g. "foo@example.com" <foo@example.com>
2024-04-13 13:25:24 -04:00
zzz
8919e38582 Susimail: Don't show attachment flag for multipart/related emails 2024-04-13 12:38:39 -04:00
zzz
c0d6c944c3 Susimail: Add missing div ids for DnD
Were inadvertently not included in MR 172
2024-04-13 12:20:57 -04:00
zzz
42e856d597 Susimail: Increase compose form width (dark theme) 2024-04-13 11:22:42 -04:00
zzz
f91e6829ad Susimail: Don't show attachment flag for HTML emails 2024-04-13 10:59:19 -04:00
zzz
d5b627adc1 Susimail: Include sender name when replying
Consolidate sender string generation code
Add sender name to default config
2024-04-13 10:40:31 -04:00
zzz
ddb7568ed6 Susimail: Reply-all improvements
- Only show reply-all button if more than one recipient
- Dedup recipients
- Don't put To: recipients in Cc: line
- Don't put ourselves in To: or Cc: lines
2024-04-13 09:54:25 -04:00
zzz
0b56bd9f41 Console: Hide update download button in test mode 2024-04-13 09:12:57 -04:00
zzz
7f70126c60 javadoc fix 2024-04-11 08:46:20 -04:00
zzz
59be0ecab7 Kbuckets: Debug output tweak 2024-04-11 08:45:10 -04:00
zzz
1a5a32dd49 Sybil: Set file date in reason for bans loaded at startup 2024-04-11 08:37:18 -04:00
zzz
732cdd4527 Build: Extend cert age check 2024-04-11 08:07:26 -04:00
zzz
2ab0e52829 Build: Update i2psnark-standalone manifest 2024-04-11 08:05:34 -04:00
b98a81a3e6 fix changelog 2024-04-09 22:29:28 -04:00
bc93e1fdf8 update debian changelog 2024-04-09 22:11:07 -04:00
57eaea8f1e Router: Update version numbers for 2.5.0 release 2024-04-08 10:12:32 -04:00
f47bfa23ca Release: Update echelon's news and router certs 2024-04-07 10:00:57 -04:00
f8cc1b9ce1 Plugins: update zzz's plugin certificate 2024-04-07 09:01:15 -04:00
zzz
06302c0f31 Susimail: Fix loading mail bodies in non-inbox/drafts folders 2024-04-05 16:37:00 -04:00
zzz
bbf1e41a7b bump for review 2024-04-05 12:47:51 -04:00
zzz
64aa641f9c Pull translations from Transifex 2024-04-05 12:46:11 -04:00
zzz
2775e2eabf Susimail: Fix truncation of quoted-printable attachments 2024-04-05 11:36:50 -04:00
zzz
385ad4cb54 Susimail: Fix forwarding html-only email 2024-04-04 15:27:01 -04:00
zzz
d9c67ecc2e Susimail: Fix forwarding email with attachments lacking specified encoding
MailPart.encoding is now always non-null.
2024-04-04 14:48:08 -04:00
zzz
3a18721c52 Susimail: Fix 413 error forwarding email with attachments
Was actually an ISE in FileBuffer via getOutputStream().flush(), but XSSFilter converted it to a 413
Add logging in XSSFilter to make it easier to find next time
Javadoc fix
2024-04-04 13:59:09 -04:00
zzz
1bc4464444 Susimail: Fix initialization of textarea height 2024-04-04 12:34:12 -04:00
zzz
50ec9d34a1 Susimail: Only parse mail headers once
Double-parsing caused to: line to be duped as cc:
2024-04-04 11:43:10 -04:00
bdcbc1e393 Router: add -rc qualifier 2024-04-04 11:24:01 -04:00
8b371006fc GeoIP: document where to run the shell script from 2024-04-04 11:16:47 -04:00
2f0be8b80d Merge branch 'master' of i2pgit.org:i2p-hackers/i2p.i2p 2024-04-04 11:14:54 -04:00
d693e3b792 update geoip DB 4/3/2024 2024-04-03 10:06:57 -04:00
zzz
e98d92b9db javadoc fixes 2024-04-03 07:20:51 -04:00
zzz
6e7eb3cb6a blocklist update 2024-04-01 07:13:41 -04:00
dcfefdc0e6 BuildTime: Bump build time 2024-03-29 22:44:37 -04:00
zzz
a7fc9c6b93 poupdate-source 2024-03-27 09:10:49 -04:00
zzz
641dd79bab history for -8 2024-03-26 14:34:47 -04:00
747f8c82b7 Router: build -8 2024-03-26 12:41:18 -04:00
9e20ba7090 NetDB: refactor determination of router connection establishment 2024-03-26 12:40:45 -04:00
cdddc62fdd Router: build -7 2024-03-26 09:51:30 -04:00
bee407c6a1 CI: Fix job names for maven build tests, Router: Refactor exploratory message filter, refactor tunnel tests 2024-03-26 09:48:25 -04:00
9bf538ed64 Change format of filename for install .jar artifact 2024-03-25 15:50:09 -04:00
1b58933777 CI: Do jdk7 maven builds on checkins 2024-03-25 15:46:58 -04:00
zzz
97fe2bbed9 i2psnark: Add more known opentrackers
as requested
2024-03-25 10:41:47 -04:00
zzz
5545e712ad Susimail: Add partial Kurdish translation 2024-03-24 10:12:52 -04:00
zzz
663ec385c7 Console readme, i2prouter: Add Czech translation 2024-03-24 09:48:48 -04:00
zzz
3fb70b7412 Debian: Refresh patches 2024-03-24 09:37:45 -04:00
zzz
d179194e16 Eepsite: Add Japanese link to top of English help page 2024-03-23 11:46:42 -04:00
zzz
c24684cec8 Merge branch 'snark-private' into 'master'
i2psnark: Preserve private=0 in torrent files

See merge request i2p-hackers/i2p.i2p!187
2024-03-23 11:53:47 +00:00
zzz
9c1b926a09 i2psnark: Preserve private=0 in torrent files 2024-03-23 11:53:47 +00:00
zzz
b6aab62e2a streaming: Add Japanese translation 2024-03-20 09:29:56 -04:00
zzz
27f602819b eepsite: Add Japanese, update Spanish traslation 2024-03-20 09:22:14 -04:00
zzz
eb10e9251a i2prouter: Add Hungarian translation 2024-03-20 09:07:29 -04:00
zzz
d908109be5 Susimail: Add partial Solvenian and Estonian translations 2024-03-20 08:55:31 -04:00
ba18e3945d CI: Put a dev build onto github site, it is unsigned and will require users to allow it manually 2024-03-18 11:37:31 -04:00
zzz
6bb6210f70 i2psnark: Fix buttons on torrent details page (JRE 21) 2024-03-09 13:24:51 -05:00
zzz
95abb93002 i2psnark: Add torrent section and config page CSS fixes (non-default themes) 2024-03-03 14:32:47 -05:00
zzz
139afb670d i2psnark: Fix DnD js syntax error 2024-03-03 12:55:44 -05:00
zzz
77289b72b7 Reseeder list update 2024-03-03 11:40:39 -05:00
zzz
ba939ac382 Peer test: Cancel test if Bob picked a Charlie without a B cap
i2pd Bobs will do this, and i2pd Charlies will agree; issue reported to that project.
This improves on the workaround in the previous commit,
as it fails faster, and applies to IPv4 as well.
2024-03-01 17:16:06 -05:00
idk
b1069cbb3a Merge branch 'i2p.i2p.2.5.0-revert-outbound-changes' into 'master'
Router: revert changes to OutboundTunnelEndpoint

See merge request i2p-hackers/i2p.i2p!184
2024-02-29 20:45:32 +00:00
zzz
9c1f58f54d Peer test: Treat IPv6 test result as unknown if Charlie is firewalled and we did not hear from him
to greatly reduce false firewalled results. Firewalled charlies are generating a lot of false positives.
This appears to be a bug with firewalled ipv6 i2pd charlies, through the current version.
2024-02-29 08:06:59 -05:00
2af30251a6 Router: revert changes to OutboundTunnelEndpoint 2024-02-27 11:07:52 -05:00
zzz
92e7ebdf41 i2psnark: Don't allow changing data dir when connected
Delete all torrents except magnets when changing data dir
2024-02-26 08:35:24 -05:00
zzz
74ae210663 Merge branch 'dark-visited' into 'master'
Console: Use same color for visted links (dark theme)

See merge request i2p-hackers/i2p.i2p!183
2024-02-26 12:04:06 +00:00
zzz
bf3d160c5e SSU2: Update last rcv time when receiving data, not acks 2024-02-25 07:57:44 -05:00
zzz
f489b03f97 SSU2: Increase min version for peer test 2024-02-25 07:56:20 -05:00
zzz
593688cb2a SSU2: Remove unused constant 2024-02-25 07:54:09 -05:00
d3cf3509ca CI: build javadoc in gitlab ci 2024-02-19 15:26:13 -05:00
b90d6fd34e add write permission for pages to CI id-token 2024-02-19 14:50:40 -05:00
2a4279f8fc use setup pages action 2024-02-19 14:44:48 -05:00
708bd1b9d5 deploy javadoc to github pages using github CI 2024-02-19 14:39:18 -05:00
zzz
7b97fbf68f Console: Use same color for visted links (dark theme) 2024-02-19 07:27:38 -05:00
748ebb5742 build javadoc in CI, create a zip of it, and upload the zip to github. 2024-02-17 19:01:26 -05:00
zzz
72e9bba84d javadoc typos 2024-02-15 05:58:55 -05:00
zzz
0af58d7723 javadoc fix 2024-02-14 10:50:43 -05:00
zzz
c01dfb780d bump -6 2024-02-14 06:01:25 -05:00
zzz
6575fbfe6a Tests: Fix lone i2ptunnel test classpath,
add to top-level ant test target (was only run on gradle side)
2024-02-14 06:00:29 -05:00
zzz
4e99c392f6 Merge branch 'i2ptunnel-keepalive-server' into 'master'
Implement server-side HTTP persistence (keepalive) for the i2p socket

See merge request i2p-hackers/i2p.i2p!181
2024-02-14 10:48:20 +00:00
zzz
83ee28fbdc Implement server-side HTTP persistence (keepalive) for the i2p socket 2024-02-14 10:48:20 +00:00
zzz
91f5bb3540 Crypto: Add X25519DH vectors
and add note about public key high bit
2024-02-06 08:18:02 -05:00
zzz
92a649d655 bump -5 2024-02-02 12:28:11 -05:00
zzz
f2dc8ec180 Merge branch 'susimail-html' into 'master'
Susimail: Add support for HTML email

See merge request i2p-hackers/i2p.i2p!177
2024-02-02 15:43:44 +00:00
zzz
8aca5d0fe2 Susimail: Add support for HTML email 2024-02-02 15:43:43 +00:00
zzz
7040d3202a Merge branch 'i2ptunnel-keepalive-client' into 'master'
Implement client-side HTTP persistence (keepalive) for the browser-to-client proxy socket

See merge request i2p-hackers/i2p.i2p!176
2024-02-02 15:42:58 +00:00
zzz
23937c11de Implement client-side HTTP persistence (keepalive) for the browser-to-client proxy socket 2024-02-02 15:42:58 +00:00
zzz
3922795f9c CLI: Add sdns stamp decoder
to assist in DoH server list maintenance
2024-01-31 08:29:20 -05:00
zzz
bdaa9b1be9 Util: DoH server list update 2024-01-30 12:20:47 -05:00
zzz
4b757105ec Naming: Add .i2p.alt support to naming services 2024-01-30 08:02:51 -05:00
zzz
c6e6e7968c Util: Add .i2p.alt support to ConvertToHash 2024-01-30 07:24:24 -05:00
zzz
081a024deb Util: Add .alt to selfsigned cert alt names 2024-01-29 08:46:54 -05:00
zzz
1126b0ae4e i2psnark: Sanitize unicode LTR/RTL control chars 2024-01-29 08:34:34 -05:00
zzz
777da8dfb1 Crypto: Verify RSA sigs after signing
to detect corrupted sigs and prevent RSA fault attack
ref: https://eprint.iacr.org/2023/1711.pdf
2024-01-29 08:09:57 -05:00
zzz
2482b1dc18 Crypto: More efficient enum lookup by code 2024-01-29 07:54:22 -05:00
zzz
8da5e018d1 Merge branch 'gradle-85' into 'master'
Build: Update gradle to 8.5

See merge request i2p-hackers/i2p.i2p!180
2024-01-28 12:09:10 +00:00
zzz
c54ec4d458 Build: Update gradle to 8.5 2024-01-28 12:09:10 +00:00
zzz
fdb75d67df Build: Remove gradle reproducible/build in ant distclean 2024-01-27 08:41:08 -05:00
zzz
883aab8d5a Merge branch 'ssu1-2' into 'master'
Transport: SSU1 removal part 2/n

See merge request i2p-hackers/i2p.i2p!179
2024-01-27 12:27:27 +00:00
zzz
98b12c904e Transport: SSU1 removal part 2/n 2024-01-27 12:27:27 +00:00
zzz
7ebb3e7784 Merge branch 'rrd4j-3.9' into 'master'
Console: Update rrd4j to version 3.9

See merge request i2p-hackers/i2p.i2p!178
2024-01-27 12:23:26 +00:00
zzz
b0db90da49 Console: Update rrd4j to version 3.9 2024-01-27 12:23:26 +00:00
zzz
3b28fc3a98 susidns, i2ptunnel: Fix IDN decoding for newer codepoints
Without the ALLOW_UNASSIGNED flag, it will not decode to codepoints
newer than Unicode 3.2 (2002)
2024-01-23 07:16:09 -05:00
zzz
05c9e63bae Merge branch 'snark-dnd' into 'master'
i2psnark: Add js drag-n-drop

See merge request i2p-hackers/i2p.i2p!165
2024-01-22 13:25:31 +00:00
zzz
bb48a3d84a i2psnark: Add js drag-n-drop 2024-01-22 13:25:31 +00:00
zzz
1e5d362412 Merge branch 'susimail-dnd' into 'master'
Susimail: DnD for attachments

See merge request i2p-hackers/i2p.i2p!172
2024-01-22 13:22:49 +00:00
zzz
ce5c75cb61 SSU2: Drop small packets in UDPReceiver
now that SSU1 is disabled.
SSU2 min packet size is 40 and does not support 0-byte hole punch
2024-01-17 08:03:16 -05:00
zzz
67f15934b5 bump -4 2024-01-15 05:50:54 -05:00
zzz
39f1f826bb Merge branch 'i2cp-loopback' into 'master'
I2CP: Prevent loopback messages to same session (i2pd Github #2005)

See merge request i2p-hackers/i2p.i2p!173
2024-01-15 10:35:29 +00:00
zzz
f337c1b3c9 I2CP: Prevent loopback messages to same session (i2pd Github #2005) 2024-01-15 10:35:29 +00:00
zzz
ba39f58800 Merge branch 'snark-bw' into 'master'
i2psnark: Bandwidth limiter improvements

See merge request i2p-hackers/i2p.i2p!164
2024-01-15 10:05:46 +00:00
zzz
db52cc7811 i2psnark: Bandwidth limiter improvements 2024-01-15 10:05:46 +00:00
zzz
45403d804a i2ptunnel: Fix customs options box size
Possibly was changed back and forth due to iframe size issues?

reverts ccb0c279f7
which reverted eb72e4c9f5
2024-01-14 08:45:13 -05:00
zzz
85c07c8eaa Merge branch 'ssl-errors' into 'master'
i2ptunnel: Don't send html error messages on CONNECT

See merge request i2p-hackers/i2p.i2p!175
2024-01-14 11:46:35 +00:00
zzz
d70e1fa150 i2ptunnel: Don't send html error messages on CONNECT 2024-01-14 11:46:35 +00:00
zzz
8e66563e1c Merge branch 'ssu1-1' into 'master'
Transport: SSU1 removal part 1/n

See merge request i2p-hackers/i2p.i2p!174
2024-01-14 11:45:55 +00:00
zzz
74f57b874e Transport: SSU1 removal part 1/n 2024-01-14 11:45:55 +00:00
zzz
6a9b9267a3 Merge branch 'kac-compression' into 'master'
Data: Store compressed KeysAndCert

See merge request i2p-hackers/i2p.i2p!171
2024-01-14 11:44:17 +00:00
zzz
e3b37a64d0 Data: Store compressed KeysAndCert 2024-01-14 11:44:17 +00:00
zzz
37791e832b Merge branch 'i2ptunnel-keepalive-util' into 'master'
i2ptunnel: Prep for keepalive

See merge request i2p-hackers/i2p.i2p!166
2024-01-14 11:42:14 +00:00
zzz
e5b9f9f134 i2ptunnel: Prep for keepalive 2024-01-14 11:42:13 +00:00
zzz
20cbd0ee78 bump -3 2024-01-11 10:47:06 -05:00
zzz
dece43d2cf Susimail: DnD for attachments 2024-01-10 14:44:03 -05:00
zzz
e1ae3bce5a Merge branch 'susimail-markdown' into 'master'
Susimail: Add markdown js for plain text content

See merge request i2p-hackers/i2p.i2p!161
2024-01-10 18:36:12 +00:00
zzz
e25ce7fe84 Susimail: Add markdown js for plain text content 2024-01-10 18:36:11 +00:00
zzz
fc8cdfc7a8 Merge branch 'iframe' into 'master'
Console: Fix iframe size issues

See merge request i2p-hackers/i2p.i2p!160
2024-01-10 18:35:39 +00:00
zzz
d6d7044832 Console: Fix iframe size issues 2024-01-10 18:35:39 +00:00
zzz
af24f9122f Merge branch 'ssu2-relay-tag' into 'master'
SSU2: Delay sending relay tag

See merge request i2p-hackers/i2p.i2p!169
2024-01-10 17:04:33 +00:00
zzz
014d39c097 SSU2: Delay sending relay tag 2024-01-10 17:04:32 +00:00
zzz
a0d8f5f063 Transport: Ignore SSU1 enable config
so we may begin to remove SSU1 code
2024-01-08 12:22:05 -05:00
zzz
23fa8b9295 add sample testnet config 2024-01-04 08:06:30 -05:00
zzz
a6231992f2 bump -2 2024-01-02 08:53:08 -05:00
zzz
2dfe24fbca Merge branch 'susimail-loading' into 'master'
Susimail: Speed up initial loading by 35x

See merge request i2p-hackers/i2p.i2p!162
2024-01-02 13:37:23 +00:00
zzz
e742c117b0 Susimail: Speed up initial loading by 35x 2024-01-02 13:37:23 +00:00
zzz
011df13b7f Merge branch 'news-fetch' into 'master'
Console: News fetch improvements

See merge request i2p-hackers/i2p.i2p!163
2024-01-02 13:36:49 +00:00
zzz
71ff5be656 Console: News fetch improvements 2024-01-02 13:36:49 +00:00
zzz
2efc759908 Merge branch 'peer-selection' into 'master'
Tunnels: Peer selection adjustments

See merge request i2p-hackers/i2p.i2p!167
2024-01-02 13:34:15 +00:00
zzz
69da9f4034 Tunnels: Peer selection adjustments 2024-01-02 13:34:15 +00:00
zzz
5a2eba7426 Merge branch 'ri-size' into 'master'
Router: Enforce consistent max RI size

See merge request i2p-hackers/i2p.i2p!168
2024-01-02 13:33:51 +00:00
zzz
efcaa3f1d4 NetDB: Log level tweak 2023-12-28 07:43:28 -05:00
zzz
9cf8c2acab Router: Enforce consistent max RI size 2023-12-28 07:17:11 -05:00
zzz
b86aefb169 Susimail: Fix draft attachment thumbnails
missed lines in previous checkin
2023-12-27 08:12:33 -05:00
zzz
57b8a44afc Router: Enable congestion caps permanently 2023-12-26 09:30:21 -05:00
zzz
399507805f Util: Move SyntheticREDQueue from router to core
in prep for use by i2psnark, to follow
log tweak
2023-12-23 08:14:24 -05:00
zzz
394a2b1635 Susimail: Put error messages at the top 2023-12-23 07:49:23 -05:00
zzz
0b88668b7a Susimail: Show user name on folder view 2023-12-23 07:38:56 -05:00
zzz
cb5cdbe00f Susimail: Show size and thumbnail of draft attachments 2023-12-23 07:19:15 -05:00
zzz
222037cc27 Susimail: js auto-resize compose box 2023-12-23 06:56:29 -05:00
zzz
de96821e3b Susimail: Show dropdown on login page for selection from multiple accounts 2023-12-23 06:50:35 -05:00
zzz
d2ea6955ff Susimail: Bring back the logo, put it in the footer
clean up old header CSS
2023-12-23 06:29:09 -05:00
zzz
6c18981b5b Susimail: Add RegexOutputStream util
WIP, prep for enhancements to follow
2023-12-23 06:14:38 -05:00
zzz
2c03586e2d Susimail: Logging enhancements on file read failures
and UIDL mismatches
2023-12-23 06:10:38 -05:00
zzz
44dd19fe82 Susimail: Extract multipart type and content id
WIP, prep for enhancements to follow
2023-12-23 05:52:23 -05:00
zzz
dffa2b7a0d bump -1 2023-12-22 12:03:41 -05:00
zzz
1c4aa12e35 Console: Fix encoding issues in persisted news 2023-12-22 12:01:48 -05:00
zzz
2a9eb85c2e Util: Add 2nd order comparison in ObjectCounterUnsafe sort
to alphabetize ties in console charts
2023-12-22 11:55:58 -05:00
zzz
f476b3ed82 Transports: Don't flood huge RIs 2023-12-22 11:47:48 -05:00
zzz
a4881baf47 Susimail: Include attachment sizes in displayed draft size 2023-12-22 11:28:56 -05:00
zzz
385f6de3cb I2CP: Add router rates to bandwidth limits message 2023-12-22 11:08:19 -05:00
zzz
6b01b22d00 i2ptunnel: Log correct server host/port on error when there are multiple targets configured 2023-12-22 11:00:39 -05:00
zzz
e249449817 i2psnark: Adjust max peers for small torrents 2023-12-22 10:48:31 -05:00
zzz
e5e481a21a Susimail: Login form trimming and validation 2023-12-22 08:51:21 -05:00
zzz
3d95e8608a i2ptunnel: Change return code for host-not-in-addressbook to 502
ref: i2pd github #1987
2023-12-22 08:21:28 -05:00
zzz
70eaa0974c Data: KeysAndCert toString() tweak 2023-12-22 08:18:54 -05:00
zzz
f925d9db0a Util: Catch OOM in timer 2023-12-22 08:16:46 -05:00
zzz
d156c090b5 log tweak 2023-12-22 08:14:21 -05:00
zzz
1678715163 Plugins: Don't auto-update in test mode 2023-12-22 08:11:22 -05:00
zzz
3736bf2432 NTCP2: Add key validity check 2023-12-22 07:59:05 -05:00
zzz
2dcb628fb7 CLI: Add check for slow reseeds to reseed test 2023-12-22 07:54:39 -05:00
zzz
0265987db4 Blockfile: Fix bug in unused getNames()
would return only one entry after a long delay
2023-12-22 07:46:14 -05:00
zzz
ce5cf45f6d Ratchet: Use correct method for Elg2 keygen 2023-12-22 07:40:55 -05:00
zzz
e5484216d6 Router: Minor cleanups from release review 2023-12-22 07:24:45 -05:00
zzz
bd59a00865 PPA/Deb build doc updates 2023-12-22 07:08:05 -05:00
c5350f17bf Debian: update changelogs again 2023-12-20 20:28:57 -05:00
3c43103b93 Debian: update changelogs again 2023-12-20 20:27:09 -05:00
d30ccce44a Update debian changelogs 2023-12-20 14:57:47 -05:00
e49c18a073 Checklist: remind to update topic on i2p-dev 2023-12-19 16:46:30 -05:00
8af6e8bf9e History: match release version to API version 2023-12-19 07:34:13 -05:00
a587e09e24 Router: update versions 2023-12-18 12:37:12 -05:00
03635ad5c7 2.4.0: Pull in new translations, ant testscripts and po4update-man.sh 2023-12-18 12:26:44 -05:00
820d59915d Merge branch 'master' of i2pgit.org:i2p-hackers/i2p.i2p 2023-12-18 12:18:13 -05:00
9fe78025cd Router: Restore removed line from SURFJ 2023-12-17 20:55:41 -05:00
zzz
90e4c9f33a bump -19 2023-12-15 13:38:08 -05:00
zzz
e5d2580010 pull translations from tx 2023-12-15 13:36:36 -05:00
zzz
c577b2a05e blocklist update 2023-12-15 13:03:10 -05:00
zzz
b98b86bb6a Javadoc: More 0.9.61 2023-12-14 12:03:07 -05:00
zzz
198a16c76f Console: Whitespace fixes on config pages 2023-12-14 11:59:31 -05:00
ae1c939403 SAM/I2Ptunnel/I2PSnark: update Javadocs to reflect @since 0.9.61 2023-12-12 18:11:44 -05:00
b1f11cc056 Router: update javadoc API version for segmented netDb implementaion 2023-12-10 18:11:00 -05:00
0c2517e050 Console: use stormycloud.png for stormycloud plugin 2023-12-10 15:49:26 -05:00
2203529215 Console: add stormycloud icon 2023-12-10 15:48:51 -05:00
c9b1fd1eae Console: remove metrics from homepage 2023-12-10 15:37:47 -05:00
zzz
dee330f1e5 Console: Add home page addition criteria and validation/checkin steps 2023-12-10 12:32:52 -05:00
78985cd2fd Router: Update GeoIP and Build Time 2023-12-10 08:45:09 -05:00
zzz
143980bc3a Installer: Fix rare misidentification of OS
caused by matching on hostname, e.g. Linux on a Mac
2023-12-08 06:11:12 -05:00
zzz
61fa0e5d8b Susimail: Dark theme fixes
and improvements, and a couple light theme fixes too
2023-12-07 20:05:17 -05:00
zzz
c305530c25 Susimail: Show spam flags for all in spam folder 2023-12-07 10:02:08 -05:00
zzz
5008843b83 Susimail: Fix placement of bottom page nav 2023-12-07 08:51:07 -05:00
zzz
603613c576 bump -18 2023-12-06 09:56:05 -05:00
zzz
f4d22b0c8e SusiMail fixes:
- Flush output to fix truncated mails
- Close output for attachments
- Fix setting encoding for attachments
- Set length for binary encoding
2023-12-06 09:27:43 -05:00
zzz
bdb89581c8 bump -17 2023-12-05 12:43:07 -05:00
zzz
fb59d76af8 poupdate-source 2023-12-05 12:41:09 -05:00
zzz
4a7a9aac95 i2ptunnel: Remove dup headers in error pages 2023-12-05 08:43:00 -05:00
zzz
206cca210e Console: Sidebar CSS tweaks 2023-12-05 08:36:33 -05:00
zzz
4bb5792104 Susimail: CSS tweak 2023-12-03 14:29:01 -05:00
zzz
ffe0360650 Susimail: Fix binary content-encoding
previously unsupported, same as 8bit, ref: RFC 2045
2023-12-02 10:04:29 -05:00
zzz
e3493cc717 Susimail: Fix incorrect "previous" icons
They were copies of "first", not reverses of "next"
2023-12-02 06:28:34 -05:00
zzz
97a8f5249f Console: Fix sidebar not immediately showing results of /configsidebar changes 2023-12-02 05:23:22 -05:00
zzz
1c4d425420 Console: Fix sidebar not showing results of manual update check 2023-12-01 12:01:05 -05:00
zzz
63d7079026 Console: Fix HTML errors on /configupdate 2023-12-01 10:01:12 -05:00
zzz
26524e3e4b Console: Don't lose tabs in log messages 2023-12-01 09:14:33 -05:00
zzz
7048ba6784 i2psnark: Change js mime type as per RFC 9239 2023-12-01 08:18:18 -05:00
zzz
894a2d64ba Console: Clear out "proxy must be running" status after success 2023-12-01 08:07:12 -05:00
zzz
f495b86116 Console: Prevent overflow of sidebar status 2023-12-01 07:53:54 -05:00
zzz
97cb90ef16 restore stats 2023-12-01 05:59:03 -05:00
zzz
d833f53de0 new reseeds 2023-11-30 14:10:35 -05:00
zzz
4f34308e0f bump -16 2023-11-30 11:34:09 -05:00
zzz
84a66eec30 UPnP: Fixes for multiple IGDs
Fix handing of multiple IGDs
Improve logging about multiple IGDs
Add info on UPnP tab on how to disable an IGD
Log tweaks
2023-11-29 16:03:02 -05:00
zzz
c7e46ca52c UPnP: Make case of HTTP headers more standard 2023-11-29 15:57:14 -05:00
zzz
5399aa459f UPnP: Fix missing port in Host header causing failures on libupnp-based devices 2023-11-29 15:55:58 -05:00
zzz
63ac981053 javadoc fixes for org.minidns and net.i2p.router.naming 2023-11-29 06:53:01 -05:00
zzz
4897b67197 javadoc fix 2023-11-29 06:21:34 -05:00
zzz
387e4b93a9 Build: Handle QUALIFIER 2023-11-29 05:42:57 -05:00
02aa509701 Merge branch 'master' of i2pgit.org:i2p-hackers/i2p.i2p 2023-11-28 19:56:24 -05:00
fb09344781 Router: Use UNKNOWN when IMD doesn't have access to the destination nickname 2023-11-28 19:54:58 -05:00
zzz
5287da1f0f checklist update 2023-11-28 11:37:07 -05:00
idk
3ca7c09914 Update RouterVersion.java bump build number to -15 2023-11-27 20:41:20 +00:00
idk
5b70e4cd2c Merge branch 'i2p.i2p.2.4.0-revert-imd' into 'master'
Router: revert changes to IMD garlic handling

See merge request i2p-hackers/i2p.i2p!158
2023-11-27 20:30:40 +00:00
zzz
d61b8af138 i2psnark: Delay bandwidth limits check briefly
to avoid intermittent "Unable to connect to I2P" message at startup.
2023-11-27 06:52:26 -05:00
42b4f212bd Router: revert changes to IMD garlic handling 2023-11-26 08:20:26 -05:00
zzz
9fc2426e83 i2psnark: Remove things in html, not by hiding them in CSS 2023-11-25 12:47:48 -05:00
88b3fa1eb3 Router: get rid of getClientFloodfillNetworkDatabaseFacades, closes #472 2023-11-24 21:30:57 -05:00
bc5a27f8ac CI: update dind container 2023-11-23 19:30:27 -05:00
zzz
02dfdd5eb7 Util: Update default user-agent
as recommended by drzed
2023-11-23 06:04:16 -05:00
zzz
9d4bb311af i2psnark: Revise tagged string 2023-11-23 06:00:52 -05:00
be594a50c5 Router: add -rc 2023-11-21 17:39:03 -05:00
zzz
70fa743ae0 bump -14 2023-11-21 16:27:32 -05:00
zzz
a80f01f7b3 Merge branch '412-caps' into 'master'
Profiles: Increase congestion cap penalties (Gitlab #412)

Closes #412

See merge request i2p-hackers/i2p.i2p!157
2023-11-21 21:25:18 +00:00
zzz
e9f3b58b7d Profiles: Increase congestion cap penalties (Gitlab #412) 2023-11-21 21:25:18 +00:00
zzz
18b8d05597 CLI: Add "permanent" flag for IPv6 addresses 2023-11-21 09:21:19 -05:00
zzz
9b70d4be73 Addressbook: Workaround for i2p-projekt.i2p etag bug (Gitlab #454)
Will revert if it gets fixed server-side
2023-11-21 09:16:08 -05:00
zzz
761967ed4b i2ptunnel: Add thread number to server thread names
like we already do for clients, to make debugging easier
2023-11-21 08:50:34 -05:00
zzz
a08f59d42f Console: Don't list inner classes on /configlogging
Because the $ won't get through the XSS filter
2023-11-21 07:45:57 -05:00
ecd9140f89 CSS: reduce negative margin on wizard page 2023-11-19 22:25:41 -05:00
zzz
bcdd01448f Router: Don't log updated/started/stopped/crashed events when in test mode 2023-11-19 09:31:10 -05:00
zzz
725181b0dc bump -13 2023-11-18 18:27:17 -05:00
zzz
62079f8dd5 Merge branch 'snark-picker' into 'master'
i2psnark: Uncomment and fix local torrent file picker

See merge request i2p-hackers/i2p.i2p!153
2023-11-18 19:12:51 +00:00
zzz
cfa99b40a1 i2psnark: Uncomment and fix local torrent file picker 2023-11-18 19:12:50 +00:00
zzz
69848474c9 Merge branch 'i2ptunnel-jsp' into 'master'
i2ptunnel: Edit and wizard form improvements

See merge request i2p-hackers/i2p.i2p!154
2023-11-17 18:17:52 +00:00
zzz
b13d9f9769 i2ptunnel: Edit and wizard form improvements 2023-11-17 18:17:52 +00:00
zzz
9667b6469f Merge branch 'console-required' into 'master'
Console: Add "required" to input fields where necessary

See merge request i2p-hackers/i2p.i2p!156
2023-11-17 18:16:42 +00:00
zzz
246d321506 Merge branch 'dbid-cleanup' into 'master'
netDb: Replace all logging access to KNDF._dbid with toString()

See merge request i2p-hackers/i2p.i2p!155
2023-11-17 18:14:29 +00:00
zzz
65b74da95d netDb: Replace all logging access to KNDF._dbid with toString() 2023-11-17 18:14:28 +00:00
zzz
e7536715d4 Console: Add "required" to input fields where necessary 2023-11-16 14:32:43 -05:00
zzz
3facdaabc7 Build: Force build to die on fatal JspC errors 2023-11-16 14:07:39 -05:00
zzz
7ab06396a8 history for -12 2023-11-16 14:00:46 -05:00
idk
f8658957b3 Update RouterVersion.java to build number 12 2023-11-16 15:16:33 +00:00
idk
ed14d07091 Merge branch 'i2p.i2p.2.4.0-simplify-low-level-netdb-handling' into 'master'
Simplify handling of local leaseSets when using subDbs

See merge request i2p-hackers/i2p.i2p!147
2023-11-16 12:45:54 +00:00
idk
a0e9b73bb1 Simplify handling of local leaseSets when using subDbs 2023-11-16 12:45:54 +00:00
zzz
acccd2edd0 i2psnark: Sort tracker list on details page 2023-11-15 18:00:27 -05:00
zzz
676f4ac4a2 i2psnark: Tag untagged strings on torrent edit page 2023-11-15 17:26:36 -05:00
zzz
6ffeb94b83 i2psnark: Increase comment bucket size to reduce duplicates 2023-11-15 16:55:38 -05:00
zzz
60f817be63 i2psnark: Handle metainfo url-list as single byte string 2023-11-15 13:40:30 -05:00
idk
b1a403cbed Merge branch 'i2p.i2p.2.4.0-simplify-imd' into 'master'
Router: use DSM.getRecievedBy in FDSMH to determine whether or not to store a...

See merge request i2p-hackers/i2p.i2p!152
2023-11-12 20:54:26 +00:00
idk
096fbc9ff6 Router: use DSM.getRecievedBy in FDSMH to determine whether or not to store a... 2023-11-12 20:54:26 +00:00
zzz
ec9cf6e0c1 Router: Temp. ban routers publishing in the future 2023-11-12 13:22:11 -05:00
zzz
12684bffa3 Banlist: Throw if banning far in the past, to catch bugs 2023-11-12 11:24:05 -05:00
zzz
a2c5edf6c8 Sybil: Don't ban NAT64 addresses
To workaround i2pd bug, they are publishing them
2023-11-12 10:38:00 -05:00
zzz
4dadfcaab9 Console: Sybil page CSS fixes 2023-11-11 08:31:08 -05:00
zzz
fa72a246a8 Router: Fix congestion cap publishing
Broken in 2.3.0; fix will take effect in 2.4.0
2023-11-11 08:26:16 -05:00
zzz
11feb84d4a i2ptunnel: Exempt tunnel name from XSS filter (Gitlab #467) 2023-11-10 13:06:28 -05:00
zzz
f0b1ae9459 bump -11 2023-11-10 11:50:49 -05:00
zzz
44916e8aa1 Merge branch '468-lookups' into 'master'
NetDB: Lookup handler/throttler fixes (Gitlab #468)

Closes #468

See merge request i2p-hackers/i2p.i2p!151
2023-11-10 16:35:00 +00:00
zzz
bae6844e5d NetDB: Lookup handler/throttler fixes (Gitlab #468) 2023-11-10 16:35:00 +00:00
zzz
c5650478aa Console: Revert change that broke the published LS count on the debug LS tab 2023-11-09 12:15:03 -05:00
idk
d8415f29ca Merge branch 'i2p.i2p.2.4.0-revert-blocklist-changes' into 'master'
Revert Blocklist/Banlist Changes

See merge request i2p-hackers/i2p.i2p!149
2023-11-08 20:59:14 +00:00
idk
878f7b0e46 Revert Blocklist/Banlist Changes 2023-11-08 20:59:14 +00:00
zzz
8ce79f32b1 NetDB: Fix and deprecate unused store() method
was broken for LS2, would have thrown cast exception
2023-11-08 08:14:45 -05:00
idk
ea8b3f00c0 Merge branch 'i2p.i2p.2.4.0-reverse-throttler' into 'master'
I2p.i2p.2.4.0 reverse throttler

Closes #453

See merge request i2p-hackers/i2p.i2p!145
2023-11-07 21:07:18 +00:00
idk
57eb706e95 I2p.i2p.2.4.0 reverse throttler 2023-11-07 21:07:18 +00:00
zzz
3db4f23514 Update checklist for tx v3 2023-11-07 13:31:46 -05:00
zzz
93ff5ffa10 Translations: Fix up config file (Gitlab #408)
to revert mess caused by tx migrate and add missing file_filter lines

- Add comments back
- Restore trans.xx sorting within sections
- Add file_filter line for each section
- Add lang_map
2023-11-07 12:31:26 -05:00
idk
2ab938629d Merge branch 'i2p.i2p.2.4.0-cleanup-todos' into 'master'
Cleans up some dead code, revise comments and TODO's

See merge request i2p-hackers/i2p.i2p!148
2023-11-07 14:43:58 +00:00
idk
f363f9318e Cleans up some dead code, revise comments and TODO's 2023-11-07 14:43:58 +00:00
idk
204567f16b Merge branch 'revert-2fb4dc41' into 'master'
Revert "Merge branch 'i2p.i2p.2.4.0-or-2.5.0-delete-hostnames-from-terminal' into 'master'"

See merge request i2p-hackers/i2p.i2p!146
2023-11-06 01:44:42 +00:00
idk
c57ccfa0df Revert "Merge branch 'i2p.i2p.2.4.0-or-2.5.0-delete-hostnames-from-terminal' into 'master'" 2023-11-06 01:44:42 +00:00
idk
91458ca9bc Merge branch 'i2p.i2p.2.4.0-revert-buildhandler-changes' into 'master'
Router: remove commented out ban strategy and ratestats for tunnels that disrespect congestion caps

Closes #413

See merge request i2p-hackers/i2p.i2p!142
2023-11-03 15:03:12 +00:00
idk
5e076dc13b Router: remove commented out ban strategy and ratestats for tunnels that disrespect congestion caps 2023-11-03 15:03:12 +00:00
zzz
1d37db7704 Merge branch '402-NDF' into 'master'
NetDB: Type changes (Gitlab #402)

Closes #402

See merge request i2p-hackers/i2p.i2p!144
2023-11-03 14:07:02 +00:00
zzz
7e8e0b60d0 NetDB: Type changes (Gitlab #402) 2023-11-03 14:07:02 +00:00
zzz
b20954551e CLI: Test for more Java versions 2023-11-03 10:02:25 -04:00
zzz
5f0ac20b64 Console: RTL CSS tweaks 2023-11-03 09:51:15 -04:00
zzz
db62206008 Console: Profiles definitions CSS fixes 2023-11-02 16:13:47 -04:00
zzz
3ce5f64d75 Console: Use RTL CSS for Persian
thx drzed
2023-11-02 15:24:08 -04:00
zzz
8622b2d42b bump -10 2023-11-02 10:08:59 -04:00
zzz
9d1036935c Merge branch '465-subdb-ri' into 'master'
NetDB: Enforce no RIs in subdbs (Gitlab #465)

Closes #465

See merge request i2p-hackers/i2p.i2p!143
2023-11-02 14:01:41 +00:00
zzz
4ed709aa31 NetDB: Enforce no RIs in subdbs (Gitlab #465) 2023-11-02 14:01:41 +00:00
idk
291e630482 Merge branch 'i2p.i2p.2.4.0-unused' into 'master'
Remove unused functions from FNDS, SNDF, KNDF

Closes #466, #440, #463, and #462

See merge request i2p-hackers/i2p.i2p!141
2023-11-01 20:32:58 +00:00
idk
a460ae2ffc Remove unused functions from FNDS, SNDF, KNDF 2023-11-01 20:32:57 +00:00
idk
a320b254ef Merge branch 'i2p.i2p.2.4.0-move-receivedby-logic-to-dbe' into 'master'
Router: move getReceivedBy and getReceivedAsPublished into DatabaseEntry

Closes #430

See merge request i2p-hackers/i2p.i2p!132
2023-10-30 00:24:23 +00:00
idk
545057314f Merge branch '465-console' into 'master'
Console: Netdb tab fixes and cleanup (Gitlab #465)

See merge request i2p-hackers/i2p.i2p!140
2023-10-29 18:45:13 +00:00
zzz
a7a0956157 Console: Netdb tab fixes and cleanup (Gitlab #465) 2023-10-29 18:45:13 +00:00
zzz
5ea16d9554 bump -9 2023-10-28 11:47:37 -04:00
zzz
31bad7f8c3 Merge branch '460-subsessions-v2' into 'master'
NetDB: Fix lifecycle issues for subsessions (Gitlab #460, #406)

Closes #460

See merge request i2p-hackers/i2p.i2p!139
2023-10-28 15:42:05 +00:00
zzz
49128b5a2c NetDB: Fix lifecycle issues for subsessions (Gitlab #460, #406) 2023-10-28 15:42:05 +00:00
zzz
e7de354f47 Merge branch '458-gunzip' into 'master'
i2ptunnel: Fix gzip footer check in GunzipOutputStream (Gitlab #458)

Closes #458

See merge request i2p-hackers/i2p.i2p!134
2023-10-28 15:40:55 +00:00
zzz
052c9463e0 i2ptunnel: Fix gzip footer check in GunzipOutputStream (Gitlab #458) 2023-10-28 15:40:55 +00:00
zzz
34bff0806f Merge branch '452-proxy-conn' into 'master'
i2ptunnel: Remove nonstandard Proxy-Connection header (Gitlab #452)

Closes #452

See merge request i2p-hackers/i2p.i2p!130
2023-10-28 15:39:45 +00:00
zzz
7a317e5026 i2ptunnel: Remove nonstandard Proxy-Connection header (Gitlab #452) 2023-10-28 15:39:44 +00:00
idk
c74f160b8a Merge branch 'i2p.i2p-2.4.0-eliminate-useSubDbs' into 'master'
I2p.i2p 2.4.0 eliminate use sub dbs option -  Do not merge until after multihomeDb is merged

Closes #461

See merge request i2p-hackers/i2p.i2p!138
2023-10-27 16:06:24 +00:00
idk
7595b4259f I2p.i2p 2.4.0 eliminate use sub dbs option - Do not merge until after multihomeDb is merged 2023-10-27 16:06:24 +00:00
idk
37bb67bf18 Merge branch 'i2p.i2p-2.4.0-eliminate-multihomedb' into 'master'
I2p.i2p 2.4.0 eliminate multihomedb

Closes #409

See merge request i2p-hackers/i2p.i2p!137
2023-10-27 13:40:28 +00:00
idk
5ccdaf10d9 I2p.i2p 2.4.0 eliminate multihomedb 2023-10-27 13:40:28 +00:00
zzz
69e3d521f4 Console: Tweaks to advanced peers summary bar section 2023-10-25 07:28:00 -04:00
zzz
e204c50ba3 history for -8 2023-10-24 07:13:13 -04:00
idk
1334de31bb Router: build -8 2023-10-24 10:33:16 +00:00
idk
8fdd5fc22f Merge branch '406-lifecycle' into 'master'
NetDB: SubDB lifecycle fixes (Gitlab #406)

Closes #406

See merge request i2p-hackers/i2p.i2p!135
2023-10-24 02:35:52 +00:00
zzz
bf1b4cf502 NetDB: SubDB lifecycle fixes (Gitlab #406) 2023-10-24 02:35:52 +00:00
f5e3891abc CI: just echo last line for debugging purposes 2023-10-22 23:44:40 -04:00
d50e70bdfc CI: remove empty continuation line 2023-10-22 23:22:51 -04:00
40fb1cc4cf CI: add git to container 2023-10-22 23:03:42 -04:00
ed77522da6 CI: unset DOCKER_HOST in gitlab-ci.yml 2023-10-22 22:51:30 -04:00
2e32ad8bde CI: update dind image in .gitlab-ci.yml 2023-10-22 22:17:47 -04:00
zzz
83794107f3 SSU: Comment fix
re: LHMCache iteration order
2023-10-22 07:48:07 -04:00
zzz
d5462b31f3 Tests: Disable console scala tests in gradle tests
NPEs due to null log manager
2023-10-22 07:44:53 -04:00
zzz
ec68911568 Tests: Exclude BuildMessageTestStandalone from gradle tests
NPEs via junit; must be run via main()
Already disabled on ant side
2023-10-21 15:34:13 -04:00
zzz
6044d5425c SAM: Reset incoming socket if no subsession is matched (GItlab #456) 2023-10-21 08:42:50 -04:00
zzz
82c7e5a362 Build: Gradle build fixes 2023-10-20 11:33:55 -04:00
a23e09ca20 Router: fix failed ant builds in unit tests 2023-10-18 18:47:44 -04:00
00e3390437 Router: reverse changes to RepublishLeaseSetJob 2023-10-17 12:33:53 -04:00
c67ff1376a Router: fix broken null check in shouldThrottleBurstLookup 2023-10-17 12:30:40 -04:00
fb8bb645c2 Router: move getReceivedBy and getReceivedAsPublished into DatabaseEntry 2023-10-16 20:47:27 -04:00
2af65243a4 Router: remove 'Confirm Succeess' from ISJ, closes #455 2023-10-16 19:38:52 -04:00
idk
de2b122f7b Merge branch 'i2p.i2p.2.4.0-reverse-api-change' into 'master'
Router: Reverse API change from banlistRouterHard back to BanlistRouterForever

See merge request i2p-hackers/i2p.i2p!131
2023-10-16 23:31:07 +00:00
0acae98ccd Router: Reverse API change from banlistRouterHard back to BanlistRouterForever 2023-10-15 20:22:37 -04:00
a2446e1d0c Router: Remove all refs to ban-by-lookup-flood code. Don't create throttlers in the FNDF unles sit's the main db 2023-10-15 20:05:01 -04:00
195b4b9155 Router: bump build rev to -7 2023-10-12 20:19:31 -04:00
idk
5fe8a3bc82 Merge branch 'i2p.i2p.2.4.0-single-blind-cache' into 'master'
Switch back to a single blind cache

See merge request i2p-hackers/i2p.i2p!127
2023-10-13 00:02:28 +00:00
idk
35c4a4cca9 Switch back to a single blind cache 2023-10-13 00:02:28 +00:00
zzz
cef40151a9 Merge branch 'i2ptunnel-cleanup' into 'master'
i2ptunnel: HTTPResponseOutputStream cleanup

See merge request i2p-hackers/i2p.i2p!122
2023-10-12 18:58:59 +00:00
zzz
040bc58917 i2ptunnel: HTTPResponseOutputStream cleanup 2023-10-12 18:58:59 +00:00
zzz
8a840f97c7 bump -6 2023-10-12 11:05:04 -04:00
7d0c857eb5 Router: fix NPE in ClientManager, reduce log level of error in ClientConnectionRunner 2023-10-11 20:39:22 -04:00
79d456a8c3 Router: remove redundant cast in ConfigAdvancedHandler 2023-10-11 12:02:30 -04:00
zzz
3280dd1878 Add ramble.i2p to hosts.txt 2023-10-10 12:00:10 -04:00
zzz
dab30c8c76 Console: Sidebar download button CSS padding tweak (light theme) 2023-10-10 09:47:55 -04:00
zzz
f590128201 Merge branch 'unsigned-update' into 'master'
Updates: Unsigned update improvements

See merge request i2p-hackers/i2p.i2p!125
2023-10-10 12:17:21 +00:00
zzz
df4b3c0d13 Updates: Unsigned update improvements 2023-10-10 12:17:21 +00:00
zzz
0e525b109d Merge branch 'snark-shutdown' into 'master'
i2psnark: Shutdown incomplete torrents first

See merge request i2p-hackers/i2p.i2p!124
2023-10-10 11:56:18 +00:00
zzz
8fdad9c7dc i2psnark: Shutdown incomplete torrents first 2023-10-10 11:56:18 +00:00
zzz
93259d5bf9 Merge branch 'snark-menu' into 'master'
i2psnark-standalone: Add systray item for shutdown

See merge request i2p-hackers/i2p.i2p!123
2023-10-10 11:53:41 +00:00
zzz
dedfee4c82 i2psnark-standalone: Add systray item for shutdown 2023-10-10 11:53:41 +00:00
ccec1162b9 Merge branch 'master' of i2pgit.org:i2p-hackers/i2p.i2p 2023-10-09 14:54:11 -04:00
dec98e6b8d Router: remove the redundant casts, fixes #438 2023-10-09 14:53:52 -04:00
zzz
6305e85ce1 Console: Fix visibility of radio/checkboxes (light theme) 2023-10-09 10:29:57 -04:00
4c7846be2c Router: add protected isMainDb() function to KNDF and use it when we want to make sure we're the main db 2023-10-08 16:26:52 -04:00
6ada2f3b5e Router: Change name of STATUS to QUALIFIER, move it after BUILD 2023-10-07 16:06:52 -04:00
499106c9ae Router: javadoc add additional note to CM call 2023-10-07 15:54:46 -04:00
idk
6136890616 Merge branch 'i2p.i2p.2.4.0-client-netdbs-on-client-runner' into 'master'
Router: move segmented netDbs into CCRs.

Closes #404, #423, #420, and #439

See merge request i2p-hackers/i2p.i2p!120
2023-10-07 19:20:14 +00:00
idk
4872eedd83 Router: This moves all client sub-netDbs into the ClientConnectionRunners. This turns the FloodfillNetworkDatabaseSegmentor into a means of looking up netDb's and managing the main netDb and a special netDb for managing multihomes. It adds the ability to use sub-netDbs as a defense against netDb context confusion bugs, and also to switch to a single monolithic netDb if necessary. 2023-10-07 19:20:14 +00:00
zzz
1ae663c6a5 Merge branch '433-peertest-iae' into 'master'
SSU2: Prevent rare IAE in peer test timer (Gitlab #433)

Closes #433

See merge request i2p-hackers/i2p.i2p!121
2023-10-03 11:43:02 +00:00
f0b6638466 Router: check \!isClientDb() in KNDF before calling remove 2023-10-02 17:43:41 -04:00
zzz
cb4788019b SSU2: Prevent rare IAE in peer test timer (Gitlab #433) 2023-09-30 10:17:47 -04:00
zzz
d7d51f673f i2psnark: Search box CSS tweaks when iframed (Gitlab #448)
thx drzed for assistance
2023-09-29 17:30:40 -04:00
zzz
d2ab9a7ff4 bump -4 2023-09-29 06:16:14 -04:00
zzz
065ce2886c Merge branch '427-disable-ssu1' into 'master'
SSU1: Disable by default (Gitlab #427)

Closes #427

See merge request i2p-hackers/i2p.i2p!115
2023-09-29 09:58:51 +00:00
zzz
37eb6d383f SSU1: Disable by default (Gitlab #427) 2023-09-29 09:58:51 +00:00
zzz
1350c71c3d Merge branch '399-sam-accept' into 'master'
SAM: Accept fixes (Gitlab #399)

Closes #399

See merge request i2p-hackers/i2p.i2p!114
2023-09-29 09:57:12 +00:00
zzz
0ba97ed4cd SAM: Accept fixes (Gitlab #399) 2023-09-29 09:57:12 +00:00
zzz
60bf83a653 bump -3 2023-09-27 11:11:17 -04:00
zzz
8a1da2ce94 Merge branch '426-doctype' into 'master'
Console: Change all DOCTYPEs to standard html (Gitlab #426)

Closes #426

See merge request i2p-hackers/i2p.i2p!117
2023-09-27 14:17:22 +00:00
idk
d08e82e4f7 Merge branch '437-npe' into 'master'
Transport: Fix NPE during soft restart (Gitlab #437)

Closes #437

See merge request i2p-hackers/i2p.i2p!113
2023-09-26 02:18:12 +00:00
zzz
1dff57856a Transport: Fix NPE during soft restart (Gitlab #437) 2023-09-26 02:18:12 +00:00
idk
453f31099d Merge branch '445-snark-startall' into 'master'
i2psnark: Prevent start-all from within search results erroring on...

Closes #445

See merge request i2p-hackers/i2p.i2p!119
2023-09-26 02:16:51 +00:00
zzz
38f629b91c i2psnark: Prevent start-all from within search results erroring on... 2023-09-26 02:16:51 +00:00
idk
d7eb4db806 Merge branch '443-debian-jre' into 'master'
Debian: Change JRE dependency order (Gitlab #443, Debian #1024461)

Closes #443

See merge request i2p-hackers/i2p.i2p!118
2023-09-26 02:08:28 +00:00
idk
9f99ee66f7 Merge branch '415-itag-zeros' into 'master'
SSU2: Fix uncaught IAE caused by itags with zero values (Gitlab #415)

Closes #415

See merge request i2p-hackers/i2p.i2p!111
2023-09-26 02:07:45 +00:00
zzz
4cf919e3e6 SSU2: Fix uncaught IAE caused by itags with zero values (Gitlab #415) 2023-09-26 02:07:45 +00:00
idk
324c5be47d Merge branch '435-ntcp2-firewalled' into 'master'
NTCP2: Fix updating address on transition to firewalled (Gitlab #435)

Closes #435

See merge request i2p-hackers/i2p.i2p!116
2023-09-26 02:04:33 +00:00
zzz
ef1177689d NTCP2: Fix updating address on transition to firewalled (Gitlab #435) 2023-09-26 02:04:33 +00:00
zzz
69554e4687 Debian: Change JRE dependency order (Gitlab #443, Debian #1024461) 2023-09-23 16:40:31 -04:00
zzz
3d1cc888fa Console: Change all DOCTYPEs to standard html (Gitlab #426) 2023-09-23 16:11:37 -04:00
69d5dfc621 Router: bump build rev 2023-09-22 20:21:51 -04:00
ded7b6dda9 Router: eliminate mainNetDb() call from RouterContext, then replace all calls with calls to netDb() 2023-09-21 19:55:07 -04:00
a343f781d0 Router: don't call remove(dbe,persist) on a TDS 2023-09-21 15:00:04 -04:00
idk
16bfdb4943 Merge branch 'i2p.i2p.2.4.0-no-more-multihome-cache' into 'master'
I2p.i2p.2.4.0 no more multihome cache

See merge request i2p-hackers/i2p.i2p!110
2023-09-21 03:09:09 +00:00
idk
f9f21ba7f5 I2p.i2p.2.4.0 no more multihome cache 2023-09-21 03:09:09 +00:00
idk
790584b329 Merge branch 'i2p.i2p.2.4.0-segmented-netdb-safer-interfaces' into 'master'
Drastically reduces the interface of the FNDS/SNDF, force the use of explicit accessors, refactor FNDS/SNDF

See merge request i2p-hackers/i2p.i2p!107
2023-09-19 19:32:00 +00:00
idk
92a85b35fe Drastically reduces the interface of the FNDS/SNDF, force the use of explicit accessors, refactor FNDS/SNDF 2023-09-19 19:32:00 +00:00
idk
9cad050e6b Merge branch 'i2p.i2p.2.4.0-transient-client-subnetdbs' into 'master'
Router: if a KNDF isClientDb() then set up a TransientDataStore instead of a PersistentDataStore

See merge request i2p-hackers/i2p.i2p!108
2023-09-18 03:26:22 +00:00
d2b8d11645 Router: if a KNDF isClientDb() then set up a TransientDataStore instead of a PersistentDataStore 2023-09-15 12:14:38 -04:00
idk
b4c64e2808 Merge branch 'i2p.i2p.2.4.0-transifex' into 'master'
Project: regenerate updated transifex config files

Closes #408

See merge request i2p-hackers/i2p.i2p!103
2023-09-14 20:33:38 +00:00
idk
f184cc32df Merge branch 'i2p.i2p.2.4.0-undo-breaking-api-change' into 'master'
I2p.i2p.2.4.0 undo breaking api change

Closes #402

See merge request i2p-hackers/i2p.i2p!105
2023-09-14 20:33:28 +00:00
idk
40757b3028 I2p.i2p.2.4.0 undo breaking api change 2023-09-14 20:33:28 +00:00
aa1697e767 Project: regenerate updated transifex config files 2023-09-07 16:08:38 -04:00
idk
c1c8cfc29b Merge branch 'i2p.i2p.2.3.0-DLM-MR' into 'master'
NetDb: Disable Burst Banning on DLM.

See merge request i2p-hackers/i2p.i2p!102
2023-09-05 02:19:06 +00:00
dc68fdc0a0 NetDb: Disable Burst Banning on DLM.
Disable the banning of routers due to excessive Database Lookup
Messages (DLM) until a reliable method is identified for
discriminating between routers that are merely forwarding someone
else's DLM, and routers that are directly sending excessive
DLM.

Signed-off-by: obscuratus <obscuratus@mail.i2p>
2023-09-04 13:26:24 -05:00
4e6323453c Router: change logging of floodfill subdb to main subdb in FNDS. Add TODO comments to getLocalClientsBlindData and lookupClientsBySigningPublicKey. 2023-09-04 12:45:48 -04:00
76067312e1 Router: rename the floodfill netdb to the main netdb 2023-09-03 23:03:35 -04:00
7d9eecd05a Router: rename the floodfill netdb to the main netdb 2023-09-03 21:46:03 -04:00
d3ad082a82 Console: use clientOnly flag from caller when displaying client netDbs 2023-09-03 21:32:50 -04:00
idk
3d225b6f9f Merge branch 'i2p.i2p.2.4.0-test1' into 'master'
Nested NetDb Branch Redux

See merge request i2p-hackers/i2p.i2p!101
2023-08-31 02:53:07 +00:00
idk
88d9d0f9b7 Nested NetDb Branch Redux 2023-08-31 02:53:07 +00:00
idk
2fb4dc415c Merge branch 'i2p.i2p.2.4.0-or-2.5.0-delete-hostnames-from-terminal' into 'master'
AddressBook: add -d option to lookupdest command line which deletes a hostname...

See merge request i2p-hackers/i2p.i2p!99
2023-08-15 07:08:29 +00:00
idk
d2e899915b AddressBook: add -d option to lookupdest command line which deletes a hostname... 2023-08-15 07:08:28 +00:00
idk
79494c2396 Merge branch '2.3.0-lookup-tweaks' into 'master'
2.3.0 lookup tweaks

See merge request i2p-hackers/i2p.i2p!97
2023-08-15 07:07:19 +00:00
idk
d233209694 2.3.0 lookup tweaks 2023-08-15 07:07:18 +00:00
3fc704c445 Add Metrics and StormyCloud to homepage 2023-07-24 13:54:10 -04:00
d66a7424a7 Router: add option to include a release 'status' in the version number, i.e. beta1, rc1 2023-07-18 14:51:45 -04:00
idk
206cc00387 fix lunar changelog 2023-07-01 16:01:20 -04:00
idk
0d359bbc1b update debian changelogs 2023-07-01 11:10:55 -04:00
idk
2fcc947a12 revise icons again 2023-06-30 10:07:30 -04:00
idk
55b1da881b make blue version of notbob icon to match homepage color scheme 2023-06-30 01:01:31 -04:00
idk
ff94b2423e account for RAP vs RAR in multihomeCache 2023-06-29 23:40:56 -04:00
idk
2a3d4e9458 alter color scheme on new icons to match ours. We'll approach this later. 2023-06-29 18:20:01 -04:00
idk
cda6416bf9 fixup debian patch 2023-06-29 16:05:30 -04:00
idk
cd6a4ac758 update translations and manpages 2023-06-29 14:40:46 -04:00
idk
40a7149215 update versions and build numbers 2023-06-29 13:39:12 -04:00
idk
62c21a8de0 fix typo 2023-06-29 12:36:12 -04:00
idk
5c56856566 Merge branch 'i2p.i2p.2.2.1-always-copy-full-leaseSet-when-updating' into 'master'
screen leaseSets before storing them in KademliaNetworkDatabaseFacade.store,...

See merge request i2p-hackers/i2p.i2p!94
2023-06-29 16:23:08 +00:00
idk
8fd2235cde screen leaseSets before storing them in KademliaNetworkDatabaseFacade.store,... 2023-06-29 16:23:07 +00:00
idk
331b24237f Merge branch 'i2p.i2p.2.2.1-not-bob-icon' into 'master'
add notbob and ramble icons

See merge request i2p-hackers/i2p.i2p!96
2023-06-29 04:43:47 +00:00
idk
5edf9f715b add notbob and ramble icons 2023-06-29 04:43:47 +00:00
idk
eb0c8aaaa9 correct the error in the previous checkin 2023-06-26 16:44:37 -04:00
idk
e55e6bc7a2 move singleIPv6BlockList null check in clear outside of the synchronized block 2023-06-26 14:18:48 -04:00
idk
0ac7d69212 add null checks around _singleIPv6Blocklist 2023-06-26 14:12:39 -04:00
idk
ace62a1677 add notbob and ramble to the homepage, tooltips won't be translated for 2.3.0 but we'll live with that for now. 2023-06-23 17:51:21 -04:00
idk
95c29649bd Merge branch 'i2p.i2p.2.2.1-blocklist-expiration' into 'master'
add user-configurable expire-time to blocklists.

See merge request i2p-hackers/i2p.i2p!93
2023-06-19 00:05:03 +00:00
idk
912b534c31 add user-configurable expire-time to blocklists. 2023-06-19 00:05:02 +00:00
idk
b2fea266ee bump build time 2023-06-14 13:31:20 -04:00
idk
c30ad8d386 update geolite database 2023-06-14 12:45:36 -04:00
idk
3ce34ed338 Merge branch 'master' of i2pgit.org:i2p-hackers/i2p.i2p 2023-06-10 22:23:05 -04:00
idk
f3794ecd10 reverse the last change to i2psnark-standalone 2023-06-10 22:16:25 -04:00
idk
0bb220b85d Merge branch '2.2.1-xormsgmask-mr' into 'master'
Router/Tunnel: Constrain xor message ID mask to >= 0

See merge request i2p-hackers/i2p.i2p!92
2023-06-11 02:05:56 +00:00
badcf76e2f Router/Tunnel: Constrain xor message ID mask to >= 0 2023-06-11 02:05:55 +00:00
idk
90aacc6746 use RandomSource instead of Random 2023-06-04 18:23:17 +00:00
idk
f0df5d19ed add comment to the new getUniqueID code 2023-06-04 17:31:26 +00:00
idk
9c5118f763 re-add 3-arg add function and javadoc. 2023-06-04 17:27:24 +00:00
idk
722029d11e Merge branch 'i2p.i2p.2.2.1-xor-messageIDs-as-interface-change' into 'master'
Patches all INMP.add() calls to use replay "Contexts" specific to where they were called from.

See merge request i2p-hackers/i2p.i2p!91
2023-06-04 01:38:16 +00:00
idk
82aa4e19fb Patches all INMP.add() calls to use replay "Contexts" specific to where they were called from. 2023-06-04 01:38:15 +00:00
idk
63f2ae368c Merge branch 'i2p.i2p.dtg-menu-api' into 'master'
Adds a Menu API to the DTG

See merge request i2p-hackers/i2p.i2p!90
2023-05-31 14:39:53 +00:00
idk
785fc52a14 Adds a Menu API to the DTG 2023-05-31 14:39:53 +00:00
idk
997644a06d Merge branch 'i2p.i2p.congestion-caps' into 'master'
start implementing congestion caps handling by adding...

See merge request i2p-hackers/i2p.i2p!89
2023-05-31 14:34:19 +00:00
idk
43b4364918 start implementing congestion caps handling by adding... 2023-05-31 14:34:18 +00:00
idk
f308ebee74 bump rc 2023-05-25 03:39:18 +00:00
idk
687858e73d Router/Tunnel: xor message IDs in order to prevent cross-context leaks.
Adds unique message ID's per context to bloom filter for safer replay protection.

The transport and client tunnel managers use a message ID in order to prevent
messages from being replayed. Prior to this checkin, the message ID queue used
the same IDs in clients and transports. If a message was sent to a transport
and a client with the same message ID, the message ID in one would cause a replay
to be detected in the other.

The result would be that the message reply would come back empty, creating a
point of evidence that a client and a transport were hosted on the same router.

However, there is no way from the attackers POV to determine with certainty that
the message was dropped because the message was replayed, making it very easy to
demonstrate a potential information leak using a known router and a known client,
but more difficult, to use to deanonymize a known client on an unknown router
(i.e. by trying routers from the local NetDB).

So what we have here is a situation where an attacker observing router behavior
can say that a message was dropped, and that they have reason to believe it is
because it contained an ID which was replayed. This constitutes a potential
information leak and is resolved by this checkin.

patch created by @obscuratus, tested, reviewed and checked in by @obscuratus and @idk
2023-05-17 18:16:25 +00:00
idk
76197ce75d Merge branch '2.2.1-issue397-v2' into 'master'
Router/Tunnel: Handling Updates for Inbound Messages.

See merge request i2p-hackers/i2p.i2p!88
2023-05-08 17:44:58 +00:00
18d939bcd4 Router/Tunnel: Handling Updates for Inbound Messages. 2023-05-08 17:44:58 +00:00
idk
18a3893185 update po files with diff 2023-04-23 19:08:43 +00:00
idk
058f07c208 fix un-escaped character on configplugins.jsp 2023-04-22 15:11:10 +00:00
idk
a9d9c13869 Merge pull request #44 from Shoalsteed/master
Update configplugins.jsp
2023-04-22 11:01:10 -04:00
af3c32fc46 Merge branch 'i2p:master' into master 2023-04-20 13:24:45 -04:00
17b4409823 Update configplugins.jsp
Fixes Issue i2p.i2p/-#392
2023-04-18 12:54:34 -04:00
idk
85822c48da fix lunar changelog 2023-04-17 03:31:25 +00:00
idk
ecc87573e3 update debian changelogs 2023-04-17 03:04:04 +00:00
idk
f66f21434e 2.2.1 2023-04-12 21:23:18 +00:00
idk
c6d853575d fix makegeoip.sh script 2023-04-12 21:21:58 +00:00
idk
53bae90089 fix makegeoip script and update geoip data 2023-04-12 21:21:58 +00:00
idk
a50a65ac9f update version numbers in installer and resources 2023-04-12 21:21:32 +00:00
idk
ff4b8fc106 ignore shell scripts in root directory 2023-04-12 16:43:33 +00:00
idk
fe541df2c7 fix typo in checklist, add .tx to gitignore 2023-04-12 16:42:37 +00:00
idk
4585ec0b4c Merge branch 'lunar-bookworm-jakarta' into 'master'
WIP: Install and link jakara on Ubuntu>=Lunar, Debian>=Bookworm

Closes #374

See merge request i2p-hackers/i2p.i2p!87
2023-04-07 13:33:11 +00:00
idk
456ab3150a WIP: Install and link jakara on Ubuntu>=Lunar, Debian>=Bookworm 2023-04-07 13:33:10 +00:00
idk
b3748395ce Check in fixes for console 2023-04-06 18:54:03 +00:00
idk
b582695aa2 Merge pull request #43 from Shoalsteed/master
Updated Copy For /console, merging with changes requested, I'll be checking them in
2023-04-06 14:52:28 -04:00
06b7f75df3 Update readme.html 2023-04-05 14:55:08 -04:00
e2ca8d3268 Update readme.html 2023-04-05 14:41:50 -04:00
idk
0d4eec7f7f fix decimal/comma formatting issue on stats page 2023-03-31 23:08:45 +00:00
idk
837cb34353 Merge branch 'master' of i2pgit.org:i2p-hackers/i2p.i2p 2023-03-28 03:25:18 +00:00
idk
8b9cfc4e63 update outproxy user agent to latest TBB/Firefox ESR version, reported by dr|zed 2023-03-28 03:22:24 +00:00
idk
7d7768897d Merge branch 'add-tmp-to-install.jar' into 'master'
use tmp for install.jar to prevent confusion on build fails

See merge request i2p-hackers/i2p.i2p!85
2023-03-23 23:19:12 +00:00
c8b6e678f8 use tmp for install.jar to prevent confusion on build fails 2023-03-23 23:19:12 +00:00
idk
692c73994b fix some errors in startapp.sh shell script, including /JAVA_OPTS/JAVAOPTS/ thanks @bedaro, #41 2023-03-23 04:08:24 +00:00
idk
b5461f3b41 ignore override.properties when building docker 2023-03-19 15:00:48 +00:00
idk
37018f6eb0 Merge branch 'master' of i2pgit.org:i2p-hackers/i2p.i2p 2023-03-19 14:42:56 +00:00
daff55463b Router: Update and Clarify the Inline Documentation for VMCommSystem 2023-03-19 14:41:50 +00:00
ab676bf63c Detect When Running as a Podman Container 2023-03-19 14:41:50 +00:00
idk
8a0a533777 fix base directory path duplication in Dockerfile 2023-03-19 14:35:23 +00:00
idk
3c0eb9c52f Merge branch '2.1.0-9-mr-vmcommsystem-v2' into 'master'
Router: Update and Clarify the Inline Documentation for VMCommSystem

See merge request i2p-hackers/i2p.i2p!83
2023-03-18 17:33:32 +00:00
b3188a26a5 Router: Update and Clarify the Inline Documentation for VMCommSystem 2023-03-18 17:33:32 +00:00
idk
3ab904f164 Merge branch 'master' into 'master'
Detect When Running as a Podman Container

See merge request i2p-hackers/i2p.i2p!84
2023-03-18 17:32:38 +00:00
c71a42859d Detect When Running as a Podman Container 2023-03-18 17:32:38 +00:00
idk
cbe8d3f799 add blocklist 2023-03-14 22:42:24 +00:00
idk
ae4d3b5758 fix bionic changelog 2023-03-14 22:29:10 +00:00
idk
d12adcd933 update debian changelogs 2023-03-14 18:22:42 +00:00
idk
607613b7fd update debian changelog 2023-03-14 17:54:07 +00:00
idk
fdd0b6a280 remove hazardous plugin keys 2023-03-13 20:02:29 +00:00
idk
0401157703 fix non-zero build number change that was not checked in 2023-03-13 19:33:12 +00:00
idk
98931bb530 bump version and create tag for 2.2.0/0.9.58 2023-03-13 14:59:56 +00:00
idk
38666d2449 Send and check target destination in first streaming SYN packet 2023-03-13 01:30:17 +00:00
idk
ed513b6c15 remove stats.i2p from jump services 2023-03-13 00:02:08 +00:00
idk
11523c79f4 remove zzz.i2p and stats.i2p from console homepage 2023-03-12 00:57:14 +00:00
idk
4b87f4d2cc checkin reseed update 2023-03-07 19:50:58 +00:00
idk
bbd90a77bc check in changed translations 2023-03-07 17:30:15 +00:00
idk
0645359cb6 explicitly set i2p.dir.base and i2p.dir.config in router.config for Docker containers. fixes and closes #41. 2023-02-28 02:33:25 +00:00
idk
9369002418 Merge pull request #38 from jeanluc162/docker-multiarch
Changed baseimage to allow for multiarch build (specifically arm64)
2023-02-22 17:56:57 -05:00
zzz
37feda74f7 DTG: Remove "Start I2P" menu item in non-router context
Reported by R4SAS
2023-02-18 17:04:42 -05:00
zzz
e1da8d13d7 Sybil: Don't catch all the i2pds publishing ::1 2023-02-18 16:44:10 -05:00
zzz
a4f36c8e64 log message fix
reported by drzed
2023-02-17 18:48:42 -05:00
zzz
3636ec7cc6 javadoc fix 2023-02-17 13:36:45 -05:00
zzz
2acdcc5c93 Console: Add legend for congestion caps (proposal 162) 2023-02-17 11:26:49 -05:00
zzz
b44cb59a48 Transports: Add new inbound connection throttler
To limit rate increase of inbound conns
Add exemption system so inbound tunnel builds bypass the throttler
2023-02-16 10:26:14 -05:00
zzz
5918613ff4 Tunnels: Re-enable using U routers in some expl. tunnels
to give them cover
2023-02-15 12:24:50 -05:00
zzz
5499b23189 Blocklist: Increase size for slow routers
Store feed blocklist in main array for efficiency
2023-02-15 11:47:01 -05:00
zzz
601a1c917e Sybil: Disable analysis when in test mode 2023-02-15 11:28:20 -05:00
zzz
de978f3a10 SSU2: Remove dup stat update 2023-02-15 07:07:08 -05:00
zzz
48598d9c76 Console: More failing peers removal 2023-02-13 12:55:25 -05:00
zzz
46af72c529 Console, NetDB: Remove deprecated isFailing() calls 2023-02-13 10:28:51 -05:00
zzz
b82cefd904 Profiles: Remove the long-unused failing peers map, deprecate all related methods 2023-02-13 10:09:55 -05:00
zzz
8f0e3d0421 Profiles: Change the new-router bonus to a penalty
Don't penalize old routers after long downtime
2023-02-13 07:24:27 -05:00
zzz
6a04eedb9e Console: Set minimum displayed profile thresholds to 1 2023-02-13 07:19:31 -05:00
zzz
546e51e3d9 Router: Increase min version for tunnels and netdb to 0.9.51 2023-02-12 16:06:51 -05:00
zzz
86cbbd80cf Tunnels: Give up on building through U routers 2023-02-12 15:54:17 -05:00
zzz
18f598bc2c Console: Reduce max age of displayed profiles
to match age reductions in the organizer and limit output
2023-02-12 15:07:37 -05:00
zzz
69b73d4bc8 Profiles: Don't create new profile on message or lookup failures
Mark commErrorOccurred() unused
2023-02-12 15:06:33 -05:00
zzz
8ba5cb4d02 Profiles: Adjust capacity for send success/failure
Stub out adjustments for congestion caps
2023-02-12 14:23:10 -05:00
zzz
f9b9633ac0 Profiles: Downrate capacity of slow/unreachable peers
Use more efficient RI lookup
Comment out unused same-country code
2023-02-12 13:39:47 -05:00
zzz
6f80df48e0 bump -8 2023-02-12 10:17:57 -05:00
zzz
4a9ca43614 NetDB: Don't call heardAbout() unless peer is reachable
Consolidate hash() calls
2023-02-12 10:15:28 -05:00
zzz
afe236c62c Profiles: Limit storage and memory usage
Write profiles to disk more often
Delete old profiles on disk more often
Reduce max age of profiles
Limit age of profiles read in at startup based on downtime
Limit total profiles read in at startup
Change loaded profiles from a Set to a List for efficiency
Log tweaks
2023-02-12 10:11:46 -05:00
zzz
7a75ea4bef NetDB: Store handler updates
Drop some unsolicited RI stores when over thresholds
Don't update profile for banned/blocked RI
Don't flood RIs with blocked IP
Log tweaks
2023-02-12 07:58:24 -05:00
zzz
78ee005870 Data: Move LS RAP/RAR booleans up to superclass
Add RAR to I2NP DSM
WIP
2023-02-11 09:47:40 -05:00
zzz
dbe3445d7b Console: Fixup display of RI published in the future
String consolidation
2023-02-11 06:52:20 -05:00
zzz
cb90139342 NetDB: Increase flood thottle time 2023-02-11 06:34:04 -05:00
zzz
d6c6b5e092 NetDB: Expiration tweaks
Start expire job sooner if forced floodfill or downtime was short
Don't run refresh routers job if forced floodfill or downtime was short or vmcommsystem
Increase expire probability
Don't expire routers close to us just before midnight
Don't start expire leases job until 11 minutes after startup
Base probability out of 128 to reduce random usage
Consolidate now() calls
2023-02-11 06:02:57 -05:00
zzz
5d3dffbaa0 Util: Increase memory required to not be slow 2023-02-11 04:43:31 -05:00
zzz
21d39ebc36 i2psnark standalone: Add example config to disable notifications 2023-02-10 13:47:58 -05:00
zzz
1f81d35423 Router: Tighten skew calculation window 2023-02-10 12:42:36 -05:00
zzz
12239124d6 Profiles: Don't delete old profiles from disk until 90m uptime 2023-02-09 16:27:38 -05:00
zzz
71a1d6dd7b NetDB: Don't lookup before dropping after shutdown initiated 2023-02-09 14:38:21 -05:00
zzz
4881ac32b6 DTG: Support notification disable/enable in non-router context
by moving all the code from InternalTrayManager to TrayManager
and adding to the ExternalTrayManager menu
As requested by R4SAS
2023-02-09 14:09:10 -05:00
zzz
d3e5879068 NetDB: Improve efficiency of ExpireRoutersJob
by iterating through the map entries directly, as in ExpireLeasesJob
Expire RIs just before saving them at shutdown
2023-02-09 13:19:00 -05:00
zzz
e4e9fe2972 i2ptunnel: Tag untagged strings (Gitlab #387) 2023-02-09 11:42:48 -05:00
zzz
56ab3b59a2 bump -7 2023-02-08 09:46:38 -05:00
zzz
bc7355d61e Console: Debug page sockets table cleanup 2023-02-08 09:43:42 -05:00
zzz
7834f44973 NetDB: Minor cleanups and log tweaks 2023-02-08 09:36:32 -05:00
zzz
621862afa9 NetDB: Replace Set with List in ExpireLeasesJob for efficiency 2023-02-08 09:25:42 -05:00
zzz
af99250a69 NetDB: Further restrict what RIs we lookup before dropping
if floodfill, unreachable, or L class
Only kicks in if we don't have a lot of RIs to begin with
2023-02-08 09:20:10 -05:00
zzz
0bce9d1211 Profiles: Reduce initial/min/max expirations
Adjust expiration faster
Use more efficient RI lookup method
2023-02-08 09:10:27 -05:00
zzz
8b7f68e6f9 NTCP: Route RI block of another router to InNetMessagePool 2023-02-08 09:05:29 -05:00
zzz
6ac08e0929 Tunnels: Load RIs more efficiently in peer selector 2023-02-08 08:58:22 -05:00
zzz
b87fd621b1 NetDB: Implement faster RI expiration mode
exempt routers within our keyspace if we are floodfill
2023-02-08 08:52:12 -05:00
zzz
c94bfe6cd0 NTCP: Increase temp. inbound IP block time
Block IP on failed inbound
Ban peers that ban us
2023-02-08 08:32:06 -05:00
zzz
c08d6b3a18 log tweak 2023-02-08 08:27:20 -05:00
zzz
9e2bb1ad0a Transports: Check RI in handshake for matching IP 2023-02-08 08:25:09 -05:00
zzz
10e0596011 NetDB: Reduce min RI expiration 2023-02-08 08:19:34 -05:00
zzz
6216081259 NetDB: Increase closest-floodfill search size
Reduce max fail rate
Lookup RIs more efficiently
2023-02-08 08:10:46 -05:00
zzz
981946c950 NetDB: Don't explore if we have enough RIs 2023-02-08 08:05:30 -05:00
zzz
84e70ba013 Console: Load router infos more efficiently
Add routing key to router infos (advanced)
2023-02-08 07:52:22 -05:00
zzz
8ff421143f NetDB: Set max routers to load at startup 2023-02-08 07:40:18 -05:00
zzz
22b5cdf57a Console: Debug DHT tab dark theme fixup 2023-02-08 07:37:31 -05:00
zzz
cc58c96e98 Console: Fixup netdb search example 2023-02-08 07:36:30 -05:00
zzz
3816278a5e Router: Don't set congestion cap at startup because of high job lag 2023-02-08 07:32:56 -05:00
zzz
338985a4cc Sybil: Thread analyzer at reduced priority
Don't do pair distance check unless enough memory
2023-02-08 07:28:46 -05:00
zzz
c6fca9da6a bump -6 2023-02-04 09:26:32 -05:00
zzz
bdbbe148c3 Profiles: Make DBHistory rates final 2023-02-04 08:58:46 -05:00
zzz
f2b206b1e0 Router: Continue work on congestion caps (proposal 162)
Set caps based on job lag and share bandwidth
Add 20 minute rate to tunnel.participatingMessageCountAvgPerTunnel to
be used for congestion caps
Don't set congestion cap if hidden
2023-02-04 08:57:10 -05:00
zzz
c1f83d6ec9 Router: Stat cleanup
Remove old non-required client.timeoutCongestion* stats in OCMOSJ.
Remove RouterThrottle.getInboundRateDelta(), used only for those stats.
Remove transport.sendMessageSize rates longer than 60s, used only for getInboundRateDelta().
Remove transport.receiveMessageSize rates longer than 60s, unused anywhere.
Remove transport.sendProcessingTime rates longer than 60s, unused anywhere.
getInboundRateDelta() was broken anyway as it was looking at send, not receive size.
All of this was untouched since 2004.
9 total rates for required stats removed.
2023-02-04 08:49:40 -05:00
zzz
c53fe93839 i2psnark: Fix missing paren in tooltip
ref: http://zzz.i2p/topics/3577
2023-02-03 07:37:15 -05:00
zzz
190acf7ed2 i2psnark: Fix for torrents with # in the name
By using custom version of storeProps()/loadprops()
for torrent config files
ref: http://zzz.i2p/topics/3576
2023-02-03 07:32:52 -05:00
zzz
3d71a5404b Util: Fix check for illegal chars in storeProps()
ref: http://zzz.i2p/topics/3576
2023-02-03 07:28:42 -05:00
zzz
37beb53245 Profiles: Remove 30m tunnel history rates
to save a large amount of space.
30m rates were almost always within 10% of the 60m rates,
so we clearly don't need both.
Keep 60m because that's what we publish in the netdb.
Adjust rate weighting in CapacityCalculator accordingly.
2023-02-01 17:10:04 -05:00
zzz
019a8b6655 Profiles: Count all build rejections in tunnel history
Previously did not count probabalistic or transient codes
Reduce 10 minute acceptance rate for these codes
(previously adjusted the averaged rate)
Make rates final in TunnelHistory
Static rates array to reduce object churn
Prep for removing 30m rates
Reduce now() calls, pull out of loops
2023-02-01 16:23:45 -05:00
zzz
652da9ebd5 Console: Dark theme home page CSS tweaks 2023-02-01 16:01:25 -05:00
zzz
99703d53ba Ratchet: Don't bundle LS with ratchet ACK
Not necessary, and will be the wrong LS for EdDSA subsession
2023-02-01 08:47:58 -05:00
zzz
de7b8db504 Console: Don't list same client SKM twice on /debug for subsessions 2023-02-01 08:01:35 -05:00
zzz
1e28557ce2 cleanup buf.append(s.substring(a, b)) -> buf.append(s, a, b)
all over, for object churn
2023-01-31 07:31:02 -05:00
zzz
07a796bcf6 typo 2023-01-30 14:50:40 -05:00
zzz
665e63da5b Util: Add experimental config to bypass Fortuna and just use /dev/random
Refactor Fortuna so it may be extended
Reduce default buf size for Android
2023-01-30 14:04:50 -05:00
zzz
4ef4ae4df5 Streaming: Refactor sig checking
Save sig OK status in Packet
Fix spot where byte array cache was not used
Do not send NACK 0 for retransmitted SYNs
Remove 1-byte DataHelper.toLong() calls
2023-01-30 13:21:10 -05:00
zzz
ac50eefe07 Tunnels: Improve expl. build success in well-connected routers during congestion
by not using high cap tier. Congestion starts from the top.
Right now, the fastest routers have the worst expl. build success.
This will help correct that.
2023-01-30 12:40:39 -05:00
zzz
bd4415ad5c Blocklist: Don't maintain IPv6 blocklist unless we have an IPv6 address
Don't read in same-country blocklist unless configured or in strict country,
so we don't continue to block when no longer hidden
2023-01-30 11:51:44 -05:00
zzz
86c6800fbd NTCP2: Ensure we publish a "6" address on transition to firewalled
Do not call restartListening() on transition to firewalled
2023-01-30 11:11:48 -05:00
zzz
124ebe9fdf Tunnels: Refactor peer selection
by checking if a peer qualifies when adding, rather than
iterating through the whole netdb to generate an exclusion list at the start.
This was very inefficient and generated needless lookup storms via lookupBeforeDropping()
Same idea for getClosetHopExclude()
Goal is to never iterate through all the known routers, profiles, or connected peers
to select peers for a single tunnel.
Add ExcluderBase and 4 classes for various cases:
Excluder, ClosestHopExcluder, IBGWExcluder, and OBEPExcluder.

Change CSFI.getEstablished() from a Set to a List for efficiency
Improve efficiency of selectActivePeersNotFailingPeers()
by iterating through connected list rather than profiles.
Do not add not-connected peers to exclude set,
which would become huge for hidden routers.

Change getExclude() to shouldExclude()
The exclude set calls shouldExclude() in contains().
Pass the exclude set to ProfileOrganizer.

For client tunnels, do OBEP and IBGW checks at peer selection time,
not afterwards in ConnectChecker, so it doesn't fail at the end in checkTunnel().

Check closest hop when hidden.
Fail-fast for inbound when no connected peers and hidden, do not fall back to non-connected peers.
Should improve startup time for hidden routers.

Use ArraySet for matches to save space
Remove unused selectPeersLocallyUnreachable() and selectPeersRecentlyRejecting()

No peer selection policy changes here.
2023-01-30 08:05:39 -05:00
zzz
8b0cd9e36b Util: Add ArraySet.get() and new constructor 2023-01-29 13:27:51 -05:00
zzz
1e35f940da Util: Comment out main() test 2023-01-29 12:50:54 -05:00
cc00337ec1 pinned alpine base image version 2023-01-29 14:02:54 +01:00
zzz
5d4c173c31 Debug: Give dummy update a version 2023-01-29 07:35:10 -05:00
aac8f217e0 Merge branch 'master' into docker-multiarch 2023-01-28 15:51:22 +01:00
ac4daeb82c changed baseimage to allow for multiarch build (specifically arm64) 2023-01-28 15:47:09 +01:00
zzz
9fd31d014f Reseed test message fix 2023-01-28 07:52:52 -05:00
zzz
bfd7b1a5f5 Tools: Check RI dates and counts in reseed test 2023-01-28 07:43:53 -05:00
zzz
56e00fbe3a Tools: Delete reseed test files before retest 2023-01-28 06:26:08 -05:00
zzz
a27e1393f1 Router: Force the stragglers to rekey 2023-01-27 19:01:11 -05:00
idk
fd68634993 add build.built-by to gitlab override.properties and Dockerfile 2023-01-27 21:30:15 +00:00
zzz
3831348301 Tunnels: Reduce grace period from 120 to 90 sec. 2023-01-27 11:15:07 -05:00
zzz
9cbd7643db Tools: Add CLI reseed test 2023-01-27 10:51:17 -05:00
zzz
4d5a3fc73d Console: Debug page cleanups
Split sections into separate tabs
Clean up VersionAvailable.toString()
Don't limit height of DHT section
2023-01-27 08:01:43 -05:00
zzz
6117d8822e Router: One more conversion to ObjectCounterUnsafe 2023-01-27 07:10:01 -05:00
zzz
886adb12fc Tunnels: Pull now() calls out of loops 2023-01-26 17:04:55 -05:00
zzz
542a51658d i2psnark: Search fixes
Fix JS search when refresh disabled
Fix search cancel when JS disabled
2023-01-26 12:12:35 -05:00
zzz
ee055dbdc0 Console: Add git rev to version info 2023-01-26 10:03:14 -05:00
zzz
33a07f811e Console: Add build date to version info 2023-01-26 09:23:50 -05:00
zzz
2dfe05d682 Console: Comment out disabled non-js summary bar iframe refresh
to save space, included ~50x
Disabled in 2012 for "HTML compliance" reasons
2023-01-26 07:45:06 -05:00
zzz
ad64e9c21e SSU2: Zero out intermediate handshake KDF results in-memory when done
Minor cleanup in est. mgr
2023-01-26 07:13:54 -05:00
zzz
9275c79b39 Console: Add chart of peers in most part. tunnels (advanced) 2023-01-25 12:25:56 -05:00
zzz
8e4e0050c8 Console: Sort webapps.config on save 2023-01-25 11:33:28 -05:00
zzz
87618700b3 Util: New thread-unsafe version of ObjectCounter
for efficiency where thread safety not required
2023-01-25 09:09:02 -05:00
idk
3d88fab782 Merge branch 'docker_font_fix' into 'master'
Install fonts

See merge request i2p-hackers/i2p.i2p!78
2023-01-24 22:46:35 +00:00
zzz
bec1978861 Router: Preliminary support for congestion caps (proposal 162)
Publish based on max tunnels setting only, other limits todo.
Tested on a single router.
Publishing disabled until the next release.
No handling of the caps yet in peer selection or profiling, todo.
2023-01-24 10:47:56 -05:00
zzz
b5bd11ca5a i2psnark standalone: Fix running from outside the directory
Reported by Qubes
ref: http://zzz.i2p/topics/3555
2023-01-23 09:24:01 -05:00
zzz
ee167b6b74 Tunnels: Remove 0 event duration from addRateData() calls 2023-01-22 18:00:28 -05:00
zzz
0af5ea883a bump -4 2023-01-22 10:31:38 -05:00
zzz
9963503ebf i2psnark: Add max files per torrent config
No UI, must edit config file and restart.
ref: http://zzz.i2p/topics/3549

Contains code adapted from I2P+. License:
Permission is granted to upstream to incorporate I2P+ modifications under the license
of the applicable upstream subsystem as specified in LICENSE.txt.
2023-01-22 10:30:58 -05:00
zzz
be5a10194a Build: Fix list of changed files in manifests
Broken in move from mtn to git
Fix some places that were broken even with mtn
2023-01-22 10:08:53 -05:00
zzz
37104e30bf i2psnark: More search CSS and js 2023-01-21 16:38:10 -05:00
zzz
8d019a7275 i2psnark: Search box CSS 2023-01-21 16:00:27 -05:00
bc43249bba Install fonts 2023-01-21 19:57:08 +00:00
zzz
3da4369c96 bump -3 2023-01-21 12:47:05 -05:00
zzz
8bbddfc336 NTCP: NAT fixes part 4
Do not rebind internal port if only SSU external port changed
so "full cone" NAT will work
Log warning if NTCP configured with fixed port different from SSU
2023-01-21 11:51:25 -05:00
zzz
38c839c389 SSU: NAT fixes part 3
Eliminate Symmetric NAT errors for "full cone" NATs with different external port
Separate isPortFixed() states for IPv4 and IPv6
Allow port changes when state is unknown
Require two tests to transition from unknown IPv4 state
Save external port config on change
Don't reset external port config at startup
Add port change event to event log
2023-01-21 11:47:31 -05:00
zzz
b8815fc67b Console: Catch graph error in Docker (Gitlab #383) 2023-01-21 11:13:42 -05:00
zzz
537d6ef0d5 SSU2: Fix initial MTU when SSU1 disabled 2023-01-21 09:36:48 -05:00
zzz
a86ab694a5 SSU2: NAT fixes part 2
Fix rare peer test NPE if we did not set charlie's hash
2023-01-21 08:09:28 -05:00
zzz
9008893308 Console: NAT fixes part 1
Remove ERR- and WARN- prefixes from translated status strings
2023-01-21 07:53:38 -05:00
zzz
b10cf8f698 Build: Add i2psnark-release target 2023-01-19 09:06:58 -05:00
zzz
1b3aed6b6a i2psnark standalone: Add search icon, display full version 2023-01-19 08:51:04 -05:00
zzz
d39d21296f i2psnark: param rename fix, missed one 2023-01-18 12:25:41 -05:00
zzz
0cbbe6297e i2psnark: Rename search param to bypass the XSS filter
Fix encode/decode search param
Copy CSS to non-default themes, not tweaked yet
Add support for shorter nf_ prefix to XSS filter
Remove unneeded float_right, reported by drzed
2023-01-18 12:21:29 -05:00
zzz
1dbd94d52d i2psnark: Search CSS and JS
WIP, more polishing todo
default theme only, others to follow
2023-01-18 11:15:22 -05:00
zzz
d45df857d6 bump -2 2023-01-17 14:59:22 -05:00
zzz
83677f01fb i2psnark: Add basic search box
searches torrent names only
CSS fixups to follow
2023-01-17 14:57:47 -05:00
zzz
5fbf385805 i2psnark: Prep for libtorrent arrival
Use extension version if client not known
Consolidate getAzVersion() calls
Add notes about client identification
2023-01-17 14:50:35 -05:00
zzz
053f261e57 i2ptunnel: Fix typo for SSL outproxy host
for new and existing installs
Reported by Opicaak
2023-01-17 14:32:25 -05:00
zzz
eb03e19f03 Console: Don't say we updated all tunnel pool settings if there weren't any
minor cleanups
2023-01-15 14:08:40 -05:00
zzz
399575aba5 i2ptunnel: Return error message from IRC client on failure to build tunnels
previously just closed the socket
2023-01-15 12:38:00 -05:00
zzz
19e3122f48 i2ptunnel: Return error code from SOCKS client on failure to build tunnels
previously just closed the socket
2023-01-15 11:18:00 -05:00
zzz
acec9b5275 i2ptunnel: Return 503 from HTTP client on failure to build tunnels
previously just closed the socket
2023-01-15 10:37:55 -05:00
zzz
522cf05880 Console: Add netdb search by introducer count 2023-01-15 10:05:20 -05:00
zzz
a3fd28dcf4 i2ptunnel: Interrupt pending client tunnel build when stop button is clicked
Message/log cleanups
2023-01-15 10:02:17 -05:00
zzz
a4220f7bc6 Transport: Add 8080 to ports list
as suggested by drzed
2023-01-15 09:02:35 -05:00
zzz
d6891d4b7a Console: Show smoothed receive BPS for SSU peers
Don't show zero send/receive BPS after 15 sec idle; show smoothed value,
so display isn't mostly zeros.
BPS sorters will now work correctly and totals are more accurate.
Pass now to send/receive BPS methods and BW estimator
Comment out UDPTransport.noteSend()
Fix alignment issue in NTCP peers table
Show 0 instead of 0.00 for zero BPS
Change rounding mode of formatters
2023-01-15 08:17:09 -05:00
zzz
65d99d2082 Build: Provide hints on how to fix it when msgfmt fails 2023-01-15 07:05:55 -05:00
zzz
f3f4cd7a21 Console: Show if data structure is compressible (advanced)
Convert IPv6 addresses to canonical form
2023-01-14 08:08:25 -05:00
zzz
cf82d3a156 Transport: isValidPort() micro-optimization
add i2pd console to list
2023-01-14 07:03:16 -05:00
idk
2ba106e38e use buildI2PSnark rather than pkg as dependency of git-bundle 2023-01-13 20:31:03 +00:00
zzz
c4fd1b610b Router: Simplify published stats values
to be only what stats.i2p needs
Disabled until next release, to preserve dev build anonymity,
tested while enabled
Commented out unsed code
ref: http://zzz.i2p/topics/3515
2023-01-12 15:25:52 -05:00
zzz
841e277180 SAM: Abort tunnel build if control socket closes
Command error handling and message improvements
Implement simple HELP command
bump -1
2023-01-12 13:35:05 -05:00
zzz
0bb9984dfa Util: Add warning about copying router.config to another router 2023-01-12 06:58:51 -05:00
zzz
f814b85a86 Console: Add ability to search netdb for a range of ports
Minor cleanup of dup strings
2023-01-11 13:44:42 -05:00
zzz
904829c1d5 Console: Hide Hidden Services Manager link until TCG is running
Use PortMapper constants to check registration
Reported by lbt
2023-01-11 13:37:29 -05:00
zzz
b2d78e4724 Console: Add service true/false to version info
As proposed at http://zzz.i2p/topics/3520
2023-01-11 13:12:09 -05:00
zzz
34be58962a SSU2: Removed cached bitmasks
Waste of space and probably slower
2023-01-11 13:01:02 -05:00
zzz
fb7cd7e3ef Streaming: now() call consolidation 2023-01-11 12:57:43 -05:00
zzz
e1e65546b8 Build: Add bundle target alias, referenced in some docs
reported by lbt
2023-01-11 12:48:21 -05:00
zzz
a6e8d53b37 Console: Incorporate bionic build patch from previous checkin
Remove patch from debian files
2023-01-11 10:15:12 -05:00
zzz
87fbec3e39 Debian files for 2.1.0
Including bionic build fix
Don't know why focal worked without it
2023-01-11 09:53:37 -05:00
zzz
a5d649ba2d 2.1.0 2023-01-10 09:32:31 -05:00
zzz
1e34738fca SSU: Rewrite/fix previous Java 7 (Android) fix
Update checklist to specify bootclasspath, so these are caught in the future
bump -16-rc
2023-01-08 14:45:17 -05:00
zzz
433340c11b SSU: Fix NPE handling SSU1 peer test msg 7
Reported by drzed
2023-01-08 13:04:23 -05:00
zzz
d9a75a5afc AppArmor: Allow classes.jsa in other locations
Remove dup line
Reported/tested by lbt
2023-01-08 13:04:23 -05:00
idk
43090cbc32 put must be followed by get in order to contain the current key, UDPTransport 2023-01-08 00:42:32 +00:00
idk
e70229140b use a containsKey()+put instead of putIfAbsent because putIfAbsent is not present in Java 8, thereby breaking Maven builds 2023-01-08 00:28:26 +00:00
zzz
b4fb8ba2c9 bump for review -15-rc 2023-01-06 14:45:01 -05:00
zzz
5e23488a96 Blocklist update 2023-01-06 14:39:47 -05:00
zzz
9adbef3f27 Pull translations 2023-01-06 14:38:46 -05:00
zzz
09a97c31fc Reseed: Exclude SSU2 with introducers from local reseed file 2023-01-04 08:52:57 -05:00
zzz
76d8d9110a Console: Add link to sort netdb country chart by count 2023-01-03 10:10:35 -05:00
zzz
67c09c69f0 Console: Replace triangle icons with ** on the new peers tab
Can't get the icons to look nice
2023-01-03 09:29:32 -05:00
zzz
513a33abe6 Profiles: Capacity calculator minor cleanup 2023-01-02 16:44:31 -05:00
zzz
b313817399 Update annotation of tunnel reject codes 2023-01-02 16:21:47 -05:00
idk
0f7dca99d1 don't attempt to pass windows flags to cc when building jbigi, jcpuid on non-Windows platforms 2023-01-02 16:59:23 +00:00
zzz
c0891c4a4c Build: Add mockito to core javadocs path to prevent warnings in mavenCentral.deps task 2023-01-02 09:54:10 -05:00
idk
a94382458e set apart windows flags including JAVA_HOME in case the path contains a space 2023-01-02 02:28:44 +00:00
idk
6856969d01 add quotes around JAVA_HOME on windows so that it can use a JAVA_HOME that exists in %ProgramFiles% 2023-01-01 23:48:57 +00:00
idk
e4fba64fc1 Quote and shellcheck the jbigi.jar build scripts in order to fix errors when building jbigi jars on Windows 2023-01-01 23:09:10 +00:00
idk
0c4fd2dbb1 quote JAVA_HOME during jbigi build 2023-01-01 22:22:03 +00:00
idk
6ad90ca38a Change the gmp mirror so that when you try to build a jbigi.jar it does not fail. Can be changed back by editing core/c/jbigi/download_gmp.sh 2023-01-01 22:05:00 +00:00
zzz
edfc9b1454 I2CP: Reduce session limit to 50
Set limit to 0 if vmCommSystem
i2ptunnel: Do not retry if session limit exceeded
2023-01-01 13:08:25 -05:00
zzz
6bcc866f38 GeoIP 2023-01
bump BuildTime
2023-01-01 11:21:31 -05:00
zzz
04d0ecc1a7 i2psnark: Prep for JS DnD (Gitlab MR !73)
Strip file:// in create form for non-JS DnD
Add IDs to relevant elements for access by JS
JS to follow after further testing
2023-01-01 10:46:07 -05:00
zzz
2ad33706e3 i2psnark: Add missing button icons (dark/light themes) 2023-01-01 10:41:59 -05:00
zzz
952d9fd471 Build: Add jsdoc target
Doesn't really do much yet because none of our js has jsdocs
2023-01-01 10:40:33 -05:00
zzz
be7e213736 Pull translations from tx
preliminary in case TX API v2 stops working
2022-12-31 15:08:09 -05:00
zzz
5818f8e26d bump -14-rc 2022-12-31 14:10:58 -05:00
zzz
6b1859421f i2psnark: Throttle torrent startup to prevent OOMs
for a large number torrents
ref: http://zzz.i2p/topics/3475
2022-12-31 14:10:06 -05:00
zzz
4af2122176 Console: Change color palette for graph rendering on dark theme
to improve text readability.
Remove post-render CSS modification of graph images

Contains code adapted from I2P+. License:
Permission is granted to upstream to incorporate I2P+ modifications under the license
of the applicable upstream subsystem as specified in LICENSE.txt.
2022-12-31 14:02:27 -05:00
zzz
ec8d0a2f61 Console: Fix dark theme CSS color tweak affecting more than the intended inbound.png and outbound.png images 2022-12-31 08:37:23 -05:00
zzz
0792526c16 Console: Move hide/show news buttons back to the right (light theme)
unintended side-effect of CSS tweak in last release
2022-12-31 08:07:03 -05:00
zzz
b607304f7b i2psnark: Update tracker list after editing torrent (Gitlab #380) 2022-12-31 07:35:25 -05:00
zzz
f2940146c4 Util: Add methods to convert IPv6 addresses to canonical RFC 5952 strings
Moved from NetDbRenderer
Use in CLI only for now
CLI and conversion micro-optimizations
2022-12-30 06:21:40 -05:00
zzz
0d97dbf534 Tunnels: Add another tier for client tunnel build limiter
only if configured for 6 or more tunnels
2022-12-30 05:50:09 -05:00
zzz
f7d134066d UPnP: Catch AssertionError when closing SSDP multicast socket
Reported on Windows 10
ref: http://zzz.i2p/topics/3500
2022-12-30 05:33:10 -05:00
zzz
dcb8009c63 Tunnels: Limit requested client tunnels during congestion
This will probably also reduce builds at startup.
Limits may require tweaks after further testing.
2022-12-29 12:07:48 -05:00
zzz
32ffd056a1 Throttle: Don't parse default values every time 2022-12-26 14:47:33 -05:00
zzz
b5ce70955b bump -12 2022-12-26 14:15:30 -05:00
zzz
2b8d3477ce SSU1: Symmetric NAT detection fixes
Never let SSU1 test result be symmetric NAT, it's probably charlie
Don't use SSU1 test if we think we are symmetric NAT
Cleanup two places to call new fail() method
2022-12-26 14:13:43 -05:00
zzz
d655ad206c SSU: Fix NPE when SSU2 disabled 2022-12-26 07:21:49 -05:00
zzz
d16aaab35f Router: Don't blocklist our own IP 2022-12-26 07:13:10 -05:00
zzz
ba0fee151b SSU2: Redesign peer test symmetric NAT detection
- Send msg 6 even if msg 5 is not received, after a short delay, to detect symmetric NAT
- Prevent test result of symmetric NAT if Charlie is the one that appears to be symmetric natted.
- Mark if Charlie unreachable if apparently symmetric natted.
- Do not treat a different IP but same port as symmetric NAT
- Increase msg 6 retransmission frequency
- Ignore msg 5 received after sending msg 6
- Call externalAddressReceived() on reception of msg 7
- Add javadoc for testComplete() state machine

Most changes only affect SSU2; some SSU1 changes to follow.

ref: http://zzz.i2p/topics/3489
2022-12-26 06:14:55 -05:00
zzz
2ce2b894b7 SSU2: Minor cleanups
Rename isSnatted() to isSymNatted()
Minor rewrite in PeerState2.gotTermination()
Remove dead peer when pinging fails in intro manager
Cleanup ip length check in externalAddressReceived()
Log tweaks
2022-12-26 05:55:47 -05:00
zzz
d9979b8f97 Console: Sort tunnels by name on /tunnels, /configtunnels, /i2ptunnel 2022-12-26 05:38:35 -05:00
zzz
2d633a0bfd SSU2: Don't replace previous destroyed peer in the cache
kill the new one instead
2022-12-23 16:39:30 -05:00
zzz
fdbdd10a89 SSU2: Refactor in-session PacketBuilder2 methods to throw IOE
Primarily for Peer Test and Relay, so the test or relay can be aborted.
Previously, sends on a dead PeerState2 were not detected or prevented.
Catch IOE throughout where necessary around all build() calls.
Add a fail() method in PeerTestManager
2022-12-23 15:47:09 -05:00
zzz
a6f7f9ec12 SSU1 peer test log level reduction
SSU2 peer test state add alice IP/port back to logging, needed for debugging
2022-12-23 14:29:19 -05:00
zzz
3dd242c1c7 SSU2: Peer test with our current address, not our address from the Bob session,
which could be different, esp. with temporary IPv6 addresses.
Could result in an erroneous SNAT result.
Add logging if different when starting test.
Check address block received in msg 6, use in logging only for now
Add logging of address block received in msg 7 if different than expected (possible SNAT)
Remove isValidPort() check in msg 5 recently added, already checked in code above
Add notes about possible externalAddressReceived() calls from peer test
Add notes about our address in PeerState2
2022-12-23 09:04:09 -05:00
zzz
defe514a31 SSU2: Enforce that address block is present in session created
Simplify check in EstablishmentManager.sendConfirmation(), we don't need to validate
RemoteHostId IP again, we did it before connecting.
Add check that received port is >= 1024.
2022-12-23 07:42:50 -05:00
zzz
31d0bc33d6 Blocklist: Don't add IPv4 addresses permanently banned to the transient list
Already hidden on /configpeers, so don't waste the space
2022-12-23 07:36:22 -05:00
zzz
3580430005 bump -11 2022-12-22 09:59:22 -05:00
zzz
ac799b7ffa SSU2: Further restrict states when we will be a peer test Charlie
and also use those states for when to publish B cap
2022-12-22 09:50:39 -05:00
zzz
4c8e0149f3 SSU2: Peer Test fixes
Check for dup msg 5
Store the time msg 6 sent
Ignore msg 5 after sending msg 6
Ignore msg 7 before receiving msg 4
Validate ip/port in msg 7
Update rcv times for dups
Log tweaks
2022-12-22 08:38:08 -05:00
zzz
150a68a3e0 SSU: Peer Test scheduling fixes
At startup, and for IPv6 so it doesn't lose out to IPv4
PeerTestEvent logging cleanup
2022-12-22 08:20:32 -05:00
zzz
321a21ae9b Util: Add SimpleTimer2.TimedEvent.toString()
to clean up timer crash messages
2022-12-22 07:27:04 -05:00
zzz
d73be206e5 SSU2: Remove ENABLE_xxx feature flags used in early development 2022-12-21 16:19:30 -05:00
zzz
c521d75ef7 CLI: List available commands more compactly 2022-12-21 09:42:57 -05:00
zzz
479ccd57df CLI: Add a "help" command 2022-12-21 07:36:03 -05:00
zzz
4e174df746 Router: Add IPv6 analysis to Sybil checker
Add to console sybil page
Fix links for IPs close to us
Header and reason tweaks
Increase verified family credit
2022-12-21 07:00:38 -05:00
zzz
a71f62c566 Router: Add IPv6 localhost and wildcard to blocklist 2022-12-20 15:12:12 -05:00
zzz
5ddb70eaea Util: Rewrite Addresses.getIPOnly() for 10x speedup 2022-12-20 15:09:10 -05:00
zzz
fd58472cc5 Sybil: Pass reason to the blocklist, for logging only 2022-12-20 14:54:35 -05:00
zzz
e9c74c7c45 bump -10 2022-12-20 08:54:55 -05:00
zzz
903477e905 Change calls from Addresses.getIP() to Addresses.getIPOnly() for peer IPs
getIPOnly() is more efficient for pure IP addresses (no hostnames)
2022-12-20 08:51:29 -05:00
zzz
fd2af4d89c log typo 2022-12-20 08:46:04 -05:00
zzz
ccb01ccf7f SSU2: Bundle RI with peer test messages 2 and 4 if possible
similar to previous checkin for relay intro
2022-12-20 08:44:55 -05:00
zzz
4d65024977 SSU2: Peer test improvements
- Return OK as Alice when only receiving msg 5, unless snatted (SSU 1 also)
- Allow and handle firewalled Charlie as Alice
- Only create peer test data once as Alice
- Store test status and send-to-Alice time in test state to support retransmission
- Don't delete state after sending msg 4 as Bob, for possible retransmission
- Check for IP mismatch from Charlie as Alice, abort test and assume good
- Check for port mismatch from Charlie as Alice and validate
- Skip unroutable addresses when searching through RI for the right one
- Respond to retransmitted msg 1 as Bob
- Respond to retransmitted msg 2 as Charlie
- Update Charlie timer to retransmit msg 5
- Only send Charlie RI to Alice (as Bob) if test was accepted
- Convert timers to SimpleTimer2 (SSU 1 also)
- Log tweaks
2022-12-20 06:12:38 -05:00
zzz
72e2161924 CLI: Add NewsHandler CLI to fetch news from servers 2022-12-19 10:09:58 -05:00
zzz
7bd220adfc Console: Fix IPv6 searches for compressed/expanded address format 2022-12-19 08:35:15 -05:00
zzz
6092e35b65 Router: Time initialization fixes and cleanups
Most changes are relevant only if NTP is disabled or failed at startup.

- Require two peers that agree for transports to initialize time
- Briefly ban skewed peer when not initialized, so another peer will be the second sample
- Allow SSU2 to initialize time even for large skews
- Do not allow NTCP2 inbound to initialize time for large skews
- Disable SSU1 time initialization when SSU2 is enabled
- When SSU2 is disabled, allow SSU1 time initialization even for large skews
- Don't adjust to large inbound NTCP2 skews when not initialized
- Round time sent in NTCP2 DateTime block
- Adjust SSU2 skew for RTT
- Don't sort by absolute skew on SSU /peers tab so we can find median
- Only call System.currentTimeMillis() once in RouterClock.setOffset()
- Log tweaks
2022-12-19 06:45:30 -05:00
zzz
51d567ecb4 SSU2: Compress and bundle Alice RI with relay intro
as Bob, to send to Charlie, if it fits.
Otherwise, delay sending relay intro, so the RI DSM gets there first.
This makes relay faster and more reliable.
Periodically clean _nonceToAlice
Log tweaks
2022-12-18 07:06:52 -05:00
zzz
33f9bd8156 Transport: Fix NPE at shutdown caused by _currentAddresses change 2022-12-17 13:54:37 -05:00
zzz
73d226e7d7 bump -9 2022-12-17 11:59:34 -05:00
zzz
f26c616fdc SSU: Rewrite isTooClose()
to use actual local IP rather than iterating through getCurrentAddresses(),
more efficient and works even when firewalled
2022-12-17 11:56:12 -05:00
zzz
db459de0c6 Console: Fix UDP disabled error when SSU 1 disabled 2022-12-17 10:10:06 -05:00
zzz
ef542d8898 SSU2: split() and send in-session termination after certain session confirmed errors
containing a specific termination reason,
and create a post-termination handler directly from IES2 for any additional packets.
Don't do this unless we get intro key and validate static key in RI.
Don't blocklist the IP for a banned router unless we have validated
the static key to prevent spoofing.
Don't queue data packet after failure
Don't send additional terminations after receiving termination ack
2022-12-17 10:04:18 -05:00
zzz
58e95dc353 SSU: Don't call test forceRunSoon() in addPeer() to prevent test thrashing.
Also removes the rebuildIfNecessary() call claimed to be removed in previous checkin.
Since we aren't thrashing any more, reschedule test after UNKNOWN results,
with the delay depending on current state.
log tweaks
2022-12-17 09:41:41 -05:00
zzz
cdc61ee6ea Add change required for previous commit 2022-12-17 09:36:32 -05:00
zzz
2d2c8fdc96 SSU: Don't call rebuildIfNecessary() from dropPeer() and addPeer() every time
to prevent thrashing.
Only rebuild in dropPeer() if the peer was a published introducer.
Only rebuild in addPeer() if the peer offered to relay and we need introducers.
2022-12-17 09:33:47 -05:00
zzz
d9bb3d0b96 SSU2: log tweaks 2022-12-17 09:29:09 -05:00
zzz
05d60d70e2 SSU2: Immediately remove establish state from EstablishmentManager on fatal error
to free up space and prevent problems handling additional packets
2022-12-17 09:17:55 -05:00
zzz
67d20d4af5 Transport: Change _currentAddresses from COWAL to standard ArrayList and lock
COWAL caused problems because replaceAddress() was removing the wrong address,
since RouterAddress.equals() does not compare caps, so empty '4' and '6' addresses would be equal.
So we could temporarily end up with multiple v4/v6 addresses.
COWAL wasn't really buying us anything anyway.

Fix removeAddress() that called the listener even if no change.
2022-12-17 08:43:25 -05:00
zzz
95bf6be670 SSU2: PacketHandler log tweaks 2022-12-16 08:40:36 -05:00
zzz
8d132a0ba7 Console: Make the /configlogging overrides box bigger if necessary (advanced only) 2022-12-16 06:59:25 -05:00
zzz
bbbc127193 bump -8 2022-12-15 15:08:58 -05:00
zzz
21c7ad4a89 SSU2: Enhance PeerTestState logging
avoid dup previous charlies on list
2022-12-15 15:05:10 -05:00
zzz
af5456b846 add javadocs for banlist return values 2022-12-15 15:03:06 -05:00
zzz
2c955e300f SSU: Check banlist after session confirmed
blocklist IP if banned
2022-12-15 15:01:52 -05:00
zzz
138d674662 SSU2: Reduce log level of 'new ack not found' 2022-12-15 14:59:46 -05:00
zzz
9b0ace19c1 Router: Change transient IPv4 blocklist to LHMCache
Reduce transient blocklist sizes if slow
Improve logging of block source
2022-12-15 14:57:20 -05:00
zzz
3eb4083cb3 SSU2: Fix retransmission of session confirmed
Was setting packet length to number of packets.
Add check and log in UDPSender
Add notes where length is checked
2022-12-15 14:50:38 -05:00
zzz
799944b23b SSU2: Don't attempt to connect to ourselves as an introducer
reported by drzed
2022-12-15 14:17:24 -05:00
zzz
8bda9bf804 SSU2: Update activity on path challenge/response 2022-12-14 17:23:31 -05:00
zzz
232586c709 bump -7 2022-12-14 16:11:16 -05:00
zzz
32a9f47375 Tunnels: Reduce log level of can't-decrypt build messages 2022-12-14 16:09:30 -05:00
zzz
9d50e4d5ed NTCP: Log source of clock adjustment at startup 2022-12-14 14:58:44 -05:00
zzz
f50f55bb54 Merge branch 'fix/chacha' into 'master'
Fix wrong arguments order in ChaCha20 encrypt

See merge request i2p-hackers/i2p.i2p!72

Broken in 1.8.0. Almost certainly broke LS2 encrypted leaseset, but not yet tested.
Did not break anything else. I tested that this fix didn't break anything.
2022-12-14 19:54:10 +00:00
zzz
e71ba76d98 SSU2: Catch "shift too big" IAE from acked bitfield while sending termination
Add preliminary code to terminate session before
there are too many unacked messages to cause the IAE
(untested)
log tweaks

reported by drzed
2022-12-14 14:42:12 -05:00
zzz
4aa6d15933 SSU2: Another consolidation of keys for building retry 2022-12-14 14:35:12 -05:00
zzz
980276b966 SSU2: Preliminary fixes for handling retransmitted retries
and storing session request packet for retransmission
Previously, we would regenerate handshake state on every retry,
and we would not re-save the new session request packet after a retry.
Check for wrong token received in additional retries.
2022-12-14 14:32:08 -05:00
zzz
cf32b7844b SSU2: Reject peer test or relay as Charlie if snatted
remove dup peer test 6 logging
2022-12-14 14:23:22 -05:00
zzz
a112c3a1ed SSU2: Consolidate dup encrypt header keys in IES2/OES2 2022-12-14 14:15:56 -05:00
zzz
9f9a88cf32 SSU2: Drop short session request messages in packet handler
both before and after retry, before passing to IES2
log tweaks
2022-12-14 14:06:18 -05:00
zzz
28a79def5a NTCP: Fix rare NPE sending termination
reported by drzed
2022-12-14 10:51:34 -05:00
zzz
4443fb464a Router: Add stack trace to log error
to catch the message-to-ourselves culprit
2022-12-13 16:27:48 -05:00
zzz
08c31aa6f6 Tunnels: Tighten the hop throttle more
after further testing, thx obscuratus + drzed
2022-12-13 12:39:02 -05:00
a393912213 Fix ChaCha20::encrypt 2022-12-14 00:53:52 +08:00
zzz
20f414c7fa SSU: Don't publish B cap when snatted
as suggested by orignal
2022-12-13 06:27:41 -05:00
zzz
580f954254 SSU2 Peer Test: Bob asks another Charlie on rejection 2022-12-12 12:22:22 -05:00
zzz
3472871e35 SSU: now() call reduction 2022-12-12 05:53:40 -05:00
zzz
803265660e SSU2: Destroy PS2 cipher states when done 2022-12-11 15:12:15 -05:00
zzz
4a4ca0cdf0 SSU2: Handle retransmitted token request
and resend retry.
Previously failed to decrypt it.
2022-12-11 15:11:12 -05:00
zzz
415e31e560 SSU2: Allow termination in retry
Handle skew reason in termination, possibly ban peer
Adjust clock at startup when terminated with skew reason
Don't send immediate termination to a too-close address
Javadoc fixes
Log tweaks
2022-12-11 11:35:31 -05:00
zzz
dc400c652a SSU2: Send termination on inbound session/token request
(rate limited) at conn limits or when alice is banned.
Process retry payload even if token is 0, to get termination reason
Wait longer for session request after retry, allowing for at least 2 retransmissions, to reduce IES2 failures
Ban peer if he bans us in retry
Remove unused writePayload()
Javadoc fixes
Log tweaks
2022-12-11 09:18:51 -05:00
zzz
897ea797cb Graphs: Fix RRD time skew handling
rrd4j throws different exception than jrobin did
2022-12-10 17:29:07 -05:00
zzz
01618c6202 SSU: Update activity timestamps for relay and peer test messages
Javadoc fixes
Log tweaks
2022-12-10 13:00:33 -05:00
zzz
337fd36633 SSU2: Peer Test fixes
Don't set AlicePortFromCharlie in msg 5, should be msg 7 only
Assume success if no address block in msg 7 (i2pd)
Require introducers for SNAT states
Don't log no charlie port if no IP
Add some TODO notes
Log tweaks
2022-12-10 12:11:59 -05:00
zzz
75e23fd1e3 Tunnels: Tighten the hop throttle
drop sooner when over limit to better protect the network
penalize throttled peers in profile to discourage use in our tunnels
2022-12-09 09:23:45 -05:00
zzz
944dff0aa7 Console: Add peer IP/port to transport tab tooltips (advanced only) 2022-12-09 07:14:38 -05:00
zzz
7425484b55 SSU: Disable SSU1 option, part 6 - don't bid on SSU1 addresses 2022-12-09 06:37:19 -05:00
zzz
19269dbaf3 SSU2: Fix IAE creating ACK block
by removing unneeded 255 max ranges check in constructor.
Higher limit of 512 is enforced in PacketBuilder2.
Reported by drzed
2022-12-08 08:01:08 -05:00
zzz
59afc44c8a Console: Show "--" for values < 1 on profiles tabs 2022-12-07 17:35:14 -05:00
zzz
8ada237bfa Console: Remove "Standard" for peers and "unknown" for caps on profiles tabs 2022-12-07 17:27:50 -05:00
zzz
a77f016288 Console: Show "--" for 0% fail rate on floodfill tab 2022-12-07 17:04:38 -05:00
zzz
5a6f92bbbf Console: Change "integrated" to "floodfill" in summary bar 2022-12-07 17:01:02 -05:00
zzz
2e6a4930a0 Console: Fallback to receive MTU on MTU sort in SSU tab 2022-12-07 16:57:56 -05:00
zzz
855bb2af33 SSU2: Post-termination handler part 9
Cancel timers on eviction from cache
2022-12-07 15:55:21 -05:00
zzz
55e2fae135 SSU2: Post-termination handler part 8
Implement termination retransmission
Scale size of handler cache based on max conns
Kill handler sooner once we get an ack
Javadoc fixes
2022-12-07 10:19:18 -05:00
zzz
55f2d782ce SSU2: Post-termination handler part 7
Kill handlers at shutdown
2022-12-06 13:06:37 -05:00
zzz
41e05c8135 SSU2: Token improvements part 2
Don't send tokens in the handshake, now that we have a handler
to process tokens received in the termination ack
2022-12-06 12:52:43 -05:00
zzz
7fdd3d1711 SSU2: Post-termination handler part 6 WIP
Add the handler
2022-12-06 12:45:09 -05:00
zzz
809f927219 SSU2: Post-termination handler part 5 WIP
Don't create a new inbound token if we have one that's still good,
for when the handler retransmits terminations
2022-12-06 12:30:46 -05:00
zzz
ad18c98330 SSU2: Post-termination handler part 4 WIP
Save destroy reason in PeerState2
Add PeerState2 methods to get data for new handler
Log when token received
2022-12-06 12:18:56 -05:00
zzz
2451ea31bb SSU2: Post-termination handler part 3 WIP
PacketBuilder2 takes SSU2Sender
Don't check session lifetime or router shutdown to send token with termination
2022-12-06 12:14:16 -05:00
zzz
2e817416d5 SSU2: Post-termination handler part 2 WIP
PeerState2 implements SSU2Sender
2022-12-06 12:09:00 -05:00
zzz
0fd6c672d3 SSU2: Post-termination handler part 1 WIP
Add interface to go over PeerState2 and the new handler
2022-12-06 11:45:33 -05:00
zzz
3e4014a6f6 Debian: Change i2p-doc priority from extra to optional
per Debian manual, extra is deprecated and means the same thing as optional
https://www.debian.org/doc/debian-policy/ch-archive.html#s-priorities
2022-12-05 09:12:47 -05:00
zzz
706cd5a129 SSU2: Token improvements and fixes part 1
- Set cache size based on connection limit
- Track average inbound cache eviction time
- Set inbound expiration based on cache time
- Reduce max inbound expiration
- Fix saving inbound token sent after relay response or hole punch
- Dont send or save tokens if we are symmetric natted
- Sort persisted tokens by expiration so they are expired in correct order on reload
- Periodically expire tokens from cache
- Add getters to Token class
- Add missing case IPV4_SNAT_IPV6_UNKNOWN to EnumSets
2022-12-04 10:04:18 -05:00
zzz
974ffabd18 Debian changelog for 2.0.0-2ubuntu1 fix (gitlab #376) 2022-12-02 15:50:24 -05:00
zzz
d632e08386 Debian: Fix stray char in links file causing symlinks in / (gitlab #376) 2022-12-02 13:20:23 -05:00
zzz
5e623a349c Console: Hide totals row on /peers status tab if only one transport 2022-12-02 10:01:48 -05:00
zzz
8e7c8cab48 SSU: Disable SSU1 option, part 5 WIP - more MTU fixes 2022-12-02 09:15:28 -05:00
zzz
1eee60c0ce SSU: Disable SSU1 option, part 4 WIP - MTU fixes 2022-12-02 08:13:26 -05:00
zzz
1650ce35d0 SSU: Disable SSU1 option, part 3 WIP - NPE fixes 2022-12-01 17:27:19 -05:00
zzz
bdad71bd08 SSU: Disable SSU1 option, part 2 WIP
- Null out SSU1 things
- Don't publish SSU1 intro key
- Use all introducer slots for SSU2
2022-12-01 16:20:33 -05:00
zzz
2c460e095d default true 2022-12-01 10:47:01 -05:00
zzz
1b6ece965c Console: Hide SSU1 row on /peers status tab if disabled 2022-12-01 08:25:37 -05:00
zzz
d0cd620364 UDP: Add option to disable SSU 1 - Part 1 - WIP
More todo, do not attempt until feature is completed
2022-11-30 16:05:38 -05:00
zzz
f8e0ee65f2 i2ptunnel: Change enc type defaults
ECIES (ratchet) introduced about 4 years ago, and we are still defaulting to both ECIES and ElG in most places.

There are four cases:

- New install: $I2P/i2ptunnel.config as shipped
- New tunnel: i2ptunnel code sets default
- Existing tunnel, no enc type config: i2ptunnel code sets default
- Existing tunnel, config changed and saved via UI in last 4 years: Setting as in config file

Changes:

- New install: Change eepsite and IRC client to ECIES-only; shared clients remains both
- New tunnel: Change from both to ECIES-only
- Existing tunnel, no enc type config: Change servers to ECIES-only; clients remain both
- Existing tunnel with enc type config: No defaults, no change
2022-11-28 09:38:34 -05:00
zzz
f67b62a3a1 javadoc typo 2022-11-28 07:34:24 -05:00
zzz
6096fc993c SSU: Reduce log level on SSU1 intro slot, normal if it's a SSU2 slot 2022-11-28 07:32:08 -05:00
zzz
6b44254c16 Console: ConfigTunnels backend minor cleanup 2022-11-28 07:29:58 -05:00
zzz
b60be22754 Util: Add path length constraint = 0 to selfsigned certs 2022-11-28 07:15:19 -05:00
zzz
10b23915f1 i2ptunnel: Change default POP tunnel name to match the hostname 2022-11-26 12:44:09 -05:00
zzz
cb5d7f1f8d i2ptunnel: Fix SOCKS outproxy port configuration after testing
log tweaks
2022-11-26 10:54:22 -05:00
zzz
dfe36b64a5 Util: Fast check for random nextInt(1) and nextLong(1)
Document differences from Java's random for n=0
Entropy harvester cleanups, we're not going to add a factory as jrandom implied.
2022-11-26 09:36:30 -05:00
zzz
cb5be9530a SSU2: Avoid rare NPE handling apparent session confirmed without inbound state
reported by drzed
2022-11-26 09:31:31 -05:00
zzz
3d54dea3dd SSU: Don't build a 4 cap address at startup if configured for IPv6-only 2022-11-26 09:27:44 -05:00
zzz
d726737b23 Console: Hide IPv4/v6 columns on /peers status tab
if disabled or no address
2022-11-26 09:13:09 -05:00
zzz
d9a9c17d02 i2ptunnel: Allow IRCv3 ACCOUNT and CHGHOST through the filter 2022-11-25 10:49:12 -05:00
zzz
84f8506912 Profiles: Don't let one corrupt file kill the loader thread
Name the loader thread
Reported by Qubes
ref: http://zzz.i2p/topics/3469
2022-11-25 08:30:41 -05:00
zzz
c2efb40b62 Console: Tag some /netdb strings that are already tagged elsewhere 2022-11-24 13:42:41 -05:00
zzz
cae522f90b Console, i2psnark standalone: Fix UI configuration of Argentinan Spanish
Add partial Danish translation for i2psnark
Enable zh_TW UI configuration for i2psnark standalone
2022-11-24 12:41:21 -05:00
zzz
d036993b23 i2ptunnel: Outproxy type config UI HTML fixup
reported by drzed
2022-11-24 07:39:08 -05:00
zzz
21a90fc2ec Tunnels: Adjust expiration job start if default reject time overridden by config
reported by drzed
2022-11-23 17:51:18 -05:00
zzz
17aa96ce09 Console: Add LS lookup to search form 2022-11-23 17:12:47 -05:00
zzz
d82e2fe5ac bump -1 2022-11-23 12:24:29 -05:00
zzz
965f84bbfa Console: Add status and banned tabs to /peers (WIP)
Status tab now the default
2022-11-23 12:23:17 -05:00
zzz
a825949a8a i2ptunnel: Fix log message on config migration 2022-11-23 12:10:21 -05:00
zzz
6b2bbda02a SAM: Make enough space for dests with certs without realloc 2022-11-23 12:08:11 -05:00
zzz
495d91193c i2ptunnel: SOCKS 5 tunnel improvements and torsocks support
- Add support for Tor RESOLVE extension by caching and returning fake IP
- Handle user/pw when not required to support Tor stream isolation
  (not really isolating, just handling the authentication)
- Fix user/pw authentication
- Handle outproxy config changes after start
- Support CONNECT outproxies
- Add config UI for outproxy type
- Enable IPv6 (untested)
- Support outproxy config with :port (untested)
- Various cleanups

Further testing required
2022-11-23 12:03:08 -05:00
zzz
50ee30b133 Router: KeysAndCert compressible padding (Proposal 161, Gitlab MR !66)
Update some KeysAndCert and PKF debug output

ref: http://zzz.i2p/topics/3279

Replaces the 256-byte ElG key in dests with padding.
Make all padding in dests and router identities a repeating random 32-byte pattern.

This will make gzipped dests and router identities be much smaller:
Dests: appx. 320 bytes smaller (82% reduction)
RIs: appx. 288 bytes smaller (74% reduction)

Expected to primarily benefit database store messages and streaming SYNs.
Does not rekey or affect existing destinations or router identities.
Testers running this patch may be identifiable via transient destinations.
New installs with this patch will be identifiable via router identities.

This also will significantly speed up Destination creation as
we will no longer generate an ElG keypair.

Tested for several months.
2022-11-23 11:49:00 -05:00
zzz
c9ea1e1a22 SSU2: Increase Session Created max padding
to possibly make protocol identification harder
Preliminary; final value TBD.
2022-11-23 09:58:04 -05:00
zzz
98477eef9f SSU: Remove unneeded old queue latency check in UDPSender
as the queue is CoDel already
reported by drzed
2022-11-23 09:53:09 -05:00
zzz
0d571a5565 Build: Add debcheckpatch to release targets 2022-11-23 09:46:43 -05:00
zzz
dae60e5387 CLI: Sort MTU output by address 2022-11-23 09:45:30 -05:00
zzz
66567bc618 Console: Change mtn tunnel in help FAQ to git 2022-11-23 09:41:14 -05:00
zzz
a40adc5465 Crypto: Don't use AccessController in I2PProvider, deprecated as of Java 17
ref:
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/security/AccessController.html
2022-11-23 09:36:39 -05:00
zzz
5d259efdd8 Console: /configlogging fixes
Add UI for enabling log compression (requires routerconsole.advanced)
Don't save and display override changed message unless overrides changed
Only call ctx.logManager() once in helper/handler
2022-11-23 09:32:08 -05:00
zzz
fb14907fa8 Console: Remove brackets on /debug update and app manager sections and other cleanups for readability 2022-11-23 09:06:01 -05:00
zzz
77bf7f1658 Console: Dark theme banlist margin fix 2022-11-23 08:45:09 -05:00
zzz
eb5b18ed23 SusiDNS: Fix off-by-one in next page last item number 2022-11-23 08:43:03 -05:00
zzz
8fe9c487d3 Build: Windows script updates for 2.x.x 2022-11-22 13:26:04 -05:00
zzz
9b097da22f Debian files and doc updates for 2.0.0 2022-11-22 13:24:54 -05:00
zzz
3d4909381c Build fix for 2.x.x versions 2022-11-21 13:03:54 -05:00
zzz
8d1d9a020f 2.0.0 2022-11-21 13:00:21 -05:00
zzz
52adc9dc16 Pull translations from transifex 2022-11-18 13:45:25 -05:00
idk
f02bf9b72b quote %JAVA% in eepget.bat script on Windows to prevent paths from splitting. Closes 31 on i2p.www, which was mis-filed 2022-11-17 22:07:55 -05:00
idk
907e649647 update Docker.md to reflect safe defaults, close #374 2022-11-14 23:51:12 -05:00
idk
da17c8df52 Merge branch 'i2p.i2p-31337-master-patch-36622' into 'master'
Allow passing the IP address where the router console is reachable when running a Docker container

See merge request i2p-hackers/i2p.i2p!68
2022-11-14 18:55:22 +00:00
idk
d4155625e4 Allow passing the IP address where the router console is reachable when running a Docker container 2022-11-14 18:55:21 +00:00
zzz
114694434c SAM: Change default nickname for primary sessions 2022-11-12 17:00:11 -05:00
zzz
e54f5ffadd i2ptunnel: Fix IRC USER filtering
Wasn't passing through user and realname fields
Pass through RFC 2812 mode field if present
reported by RN
2022-11-12 15:26:27 -05:00
zzz
7b75ee5a0a SAM: Add warning at startup if not bound to localhost 2022-11-09 10:45:53 -05:00
zzz
d435e44e5f Update Debian doc 2022-11-09 10:37:20 -05:00
zzz
109402cea5 Refresh Debian patches 2022-11-09 10:36:34 -05:00
zzz
73cde7abba Systray: Javadoc fix, make new method private 2022-11-09 10:30:49 -05:00
zzz
2f3615e001 poupdate-source 2022-11-09 08:30:59 -05:00
idk
524b2ab417 Merge branch 'edge-registry-query' into 'master'
change registry query from retrieiving iexplore.exe to edge.exe

See merge request i2p-hackers/i2p.i2p!70
2022-11-07 02:44:16 +00:00
idk
d43c9d047b change registry query from retrieiving iexplore.exe to edge.exe 2022-11-07 02:44:15 +00:00
zzz
d774b63d83 Drop muwire from console home page 2022-11-06 11:38:18 -05:00
zzz
b54eb9b4d5 SSU: Temporarily ban ip/port after inbound handshake failure 2022-11-01 11:55:20 -04:00
zzz
5947275aae SSU2: Prep for more padding in handshake 2022-11-01 09:25:44 -04:00
zzz
f3f669dc2e SSU2: Fail IES2 on all session request after retry errors
Don't hexdump for RI errors
Don't throw ISE when sending 2nd retry
2022-11-01 09:21:09 -04:00
zzz
ddd6a37507 SSU: Prefer UDP in China
Don't exceed conn limit even when preference is always
2022-11-01 09:06:50 -04:00
zzz
37e93f6097 GeoIP 2022-11-01 2022-11-01 08:42:21 -04:00
idk
1e5a69a80b Swap old trac wiki with new mediawiki wiki 2022-10-29 10:22:40 -04:00
zzz
e12b3c697d SusiDNS: Comment out debug logging 2022-10-22 13:53:46 -04:00
zzz
0224a0f03b Console: Make NavHelper non-static
add NavService interface
hang off ClientAppManager
i2psnark: register additional instances with NavService
2022-10-19 15:33:53 -04:00
zzz
f83f467b28 SusiMail: Add icons to the buttons that were missing them (dark theme)
Change mark-all icon (light theme)
2022-10-19 13:05:50 -04:00
zzz
bed4563257 Debian: Change dependency from transitional package libservlet3.1-java
to libjsp-api-java and libservlet-api-java
and update symbolic links to the jars in /usr/share/java
Note that the previous symlink to servlet-api-3.1.jar was
another symlink to servlet-api.jar which was actually API 4 anyway.
2022-10-19 12:33:06 -04:00
zzz
d2d9a067ce javadoc fix 2022-10-19 11:46:19 -04:00
zzz
8fee843315 Tunnels: ConnectChecker fixes
add support for 4 and 6 caps
add support for SSU2
remove support for NTCP 1
2022-10-17 14:18:50 -04:00
zzz
21d665b812 Console: CSS fixes for lists in news entries 2022-10-17 11:04:36 -04:00
idk
144271e4ca Merge branch 'programdata-path-fix' into 'master'
remove Application Data from path to I2P service config on Windows

See merge request i2p-hackers/i2p.i2p!65
2022-10-16 21:58:34 +00:00
idk
24fb6c9347 remove Application Data from path to I2P service config on Windows 2022-10-16 21:58:33 +00:00
zzz
1c29d752bd SSU2 Relay: Use from port in hole punch if different from relay response port
to support Charlies behind symmetric NAT
Check for IP mismatch in hole punch
Ban Charlies with bad IP/port
Ban Charlies who ban us
2022-10-16 12:13:26 -04:00
zzz
3f1d2f9808 i2psnark: Increase piece limit to 64K
as requested by RABADA ref: http://zzz.i2p/topics/3436
2022-10-15 08:19:30 -04:00
zzz
166d1ba86b SSU2: Track recently-closed sessions (gitlab #370)
and drop packets received on them, to prevent SSU1 fallback processing
2022-10-10 11:33:05 -04:00
zzz
64873218ba SSU2: Enable by default 2022-09-28 09:26:28 -04:00
zzz
0eb96d6ef0 Installer: Fix error on Windows when username contains a space (gitlab #367)
in fixperms.bat
2022-09-28 09:17:44 -04:00
zzz
beaeb9c835 SSU2: Ensure min packet size for pings 2022-09-23 11:20:17 -04:00
zzz
5b1a023be6 SSU2: Convert 1276 MTU to 1280 to workaround bug in 1.9.0 2022-09-23 11:18:36 -04:00
zzz
c082fc8fa6 SSU2: Fail handshakes while inside sync
to prevent races and fail-after-fail ISE
Override fail() to destroy handshake state
2022-09-23 09:14:03 -04:00
zzz
0e8b757249 SSU2 IES2 reduce log levels 2022-09-20 12:01:08 -04:00
zzz
c1b241ab8f i2ptunnel, eepget: Add support for SHA-256 digest proxy auth (RFC 7616)
Requires re-saving user/pw on proxy side
2022-09-20 08:26:05 -04:00
zzz
ab49a149ba Router debug: Don't show enc. type for local router in tunnel config
as it was always showing ElG which was incorrect
ref: http://zzz.i2p/topics/3403
2022-09-14 08:28:10 -04:00
zzz
f64894ea12 Router: ProfileOrganizer and TunnelPeerSelector cleanup
of unused code, in prep for some redesign
2022-09-10 14:11:00 -04:00
zzz
a34bf5d408 Console: Include SSU2 addresses in transports chart
Linkify router family name in RI
2022-09-10 12:50:29 -04:00
zzz
ca569f0739 Router: Remove some ancient HandlerJobBuilder registration code 2022-09-10 08:12:42 -04:00
zzz
88a66928c1 SSU2: Enable handling of ack-immediate flag by default
test code that was off by default was previously checked in
2022-09-09 12:33:53 -04:00
idk
2144486917 Specify type on emptyList so it compiles with Java 8 2022-09-08 21:57:01 -04:00
zzz
0f560139f3 unused field 2022-09-07 10:11:39 -04:00
zzz
b610b7a695 Transports: Don't rekey noise params on testnet 2022-09-07 10:09:05 -04:00
zzz
26f882edd5 SSU: Fallback processing for MTU detection
take the minimum of all interfaces if specific interface not found
Update CLI to support address args for testing
2022-09-07 10:01:32 -04:00
idk
f00e020f2b Fix unexpanded styles on addressbook pages #365 2022-09-06 18:09:58 -04:00
idk
edd0dd0b0d fix padding on expanded elements in SusiDNS 2022-09-06 15:54:44 -04:00
idk
031fa45eb8 fix incorrect background color on expanding element in SusiDNS 2022-09-06 15:39:45 -04:00
zzz
a2eee5a673 NetDB: Fix reseeding when clock is skewed
reported, fixed, and tested by zlatinb
2022-09-06 11:56:33 -04:00
zzz
45c160f27a Data: Cache SSU2 string 2022-09-06 09:39:14 -04:00
zzz
7ba59b4338 SSU2: Don't publish or connect if our MTU becomes too small
after initial check in constructor
Don't rectify 1280 IPv4 MTU down to 1276
Add note about replay detector
2022-09-06 09:35:29 -04:00
zzz
554b17fe9a SusiDNS: Fix adding to empty address book
by doing form processing even if book is empty.
Do all form processing before displays so the
displays reflect any form add/delete.
Broken in 0.9.50 when form processing call was moved.
Hide replace and add alternate buttons if book is empty.
Ref: https://www.reddit.com/r/i2p/comments/wu7nac/how_do_i_add_to_the_private_address_book/
2022-09-04 08:14:19 -04:00
zzz
64632eed4a UPnP: Fix opening IPv6 ports 2022-09-03 12:01:59 -04:00
zzz
49299f3f28 NetDB: Query connected peers for their RI directly
Negative cache router hash when expiring RI
Log tweaks
2022-09-03 11:59:39 -04:00
zzz
00774590b0 SSU2: Fix ISE after sending retry for clock skew in session request
log tweaks
2022-09-01 12:21:33 -04:00
zzz
52b640b582 Router: Ensure database store message is processed before reply job (Gitlab #364)
by processing DSM inline in InNetMessagePool.
Caused random lookup failures of RI and LS.
Made worse by previous change removing duplicate store from reply job.
thanks obscuratus and drzed
2022-09-01 11:55:00 -04:00
zzz
911e69e3ae Emphasize checklist step to try Maven jars build before release
to not break Android build
ref: Gitlab MR !64
2022-08-31 07:56:13 -04:00
zzz
d809d6653d SSU2: Implement ack-immediate flag
Use a single ack timer for each session rather than
creating a new one for every ack
Log tweaks
2022-08-29 16:47:19 -04:00
idk
8df81fc0a1 Merge branch '1.9.0-java7-classpath-fix' into 'master'
explicitly set types of some objects so that the code can be compiled with a Java 7 bootclasspth

See merge request i2p-hackers/i2p.i2p!64
2022-08-29 15:45:55 +00:00
zzz
ed76829562 Console: Don't lookup RI if banned 2022-08-28 15:28:17 -04:00
zzz
4f4044c3f0 Console: Add notification and summary bar info on deadlock
Check for deadlock more frequently
2022-08-28 15:24:34 -04:00
zzz
3a4bfc9c07 Util: Add option to gzip router logs
Primarily for devs. No UI.
remove shutdown hook ID
2022-08-28 15:07:30 -04:00
zzz
b25c207e9a Console: Linkify router hash even if not in netdb
as the console will do the lookup if not
2022-08-28 11:22:31 -04:00
idk
fcae43547b explicitly set types of some objects so that the code can be compiled with a Java 7 bootclasspth 2022-08-27 19:26:03 -04:00
zzz
b34b0cc399 SSU2: Fix packets exceeding MTU by up to 3 bytes 2022-08-25 10:58:14 -04:00
zzz
f4875d12fa SSU2: Immediately fail session request containing zero token
i2pd will send this after retry with zero token and termination
2022-08-25 10:56:34 -04:00
zzz
2f06e9bebf SSU2: Implement path challenge and connection migration
mark session dead after receiving destroy
log tweaks
2022-08-25 08:57:02 -04:00
zzz
9b6dde008d Router: Hopefully fix deadlock via rebuildRouterAddress() and UDPTransport 2022-08-25 08:46:25 -04:00
zzz
6ddaa72a86 Add deadlocks to event log 2022-08-23 13:01:32 -04:00
zzz
d064de1913 Debian files for 1.9.0 2022-08-23 11:36:06 -04:00
zzz
97013f8874 blocklist update 2022-08-22 15:15:20 -04:00
zzz
39954032d2 1.9.0 2022-08-22 10:16:29 -04:00
zzz
44f0acead5 Refresh debian patches 2022-08-21 07:28:57 -04:00
zzz
6d024b49a9 Fix encoding of getopt translations az and es_AR 2022-08-21 06:36:20 -04:00
zzz
8a379d5394 Pull translations from Transifex 2022-08-19 12:54:48 -04:00
zzz
972adde7eb Router: Add SSU2 keys to the killKeys() list 2022-08-16 18:13:02 -04:00
zzz
f3dd06ad1e Bump build time 2022-08-13 13:32:26 -04:00
zzz
55603782bb New translation: Spanish (Argentina) 2022-08-13 13:31:53 -04:00
zzz
3d65f93277 i2psnark: CSS fix for disabled edit torrent button 2022-08-12 09:42:22 -04:00
zzz
e35d173982 SSU2: Enable for Android, ARM, and 2% of others 2022-08-10 08:11:11 -04:00
zzz
ec6e9b1bfb Router: Hopefully fix clock/job queue deadlock after clock shift
ref: i2p.i2p/-#6
2022-08-06 11:00:09 -04:00
zzz
ca6046f821 GeoIP 2022-08 2022-08-06 10:57:36 -04:00
zzz
c81b4645a8 SSU: Try to keep a mix of v1/v2 introducers 2022-08-05 10:51:08 -04:00
zzz
0687ef8364 SSU2: Block bob's IP in relay response from charlie
(i2pd bug, fixed today)
2022-08-04 17:33:31 -04:00
zzz
8d149136fe SSU2: Remove unused ECN variable
Add RTTdev to logging
2022-08-04 08:40:18 -04:00
zzz
2a83c8f6ee i2ptunnel: New outproxy (new installs only) 2022-08-04 05:58:30 -04:00
zzz
689016f48e SSU2: Pass source ip/port to path challenge/response callbacks
(more prep for connection migration)
2022-08-02 09:38:11 -04:00
zzz
146bbf67f8 SSU2: Add state lookup by conn ID
As fallback for failed lookup by RemoteHostId.
This will eventually be the primary lookup after most traffic is SSU2.
For now, only used to receive traffic from a peer that changed IP/port.
SSU 1/2 send destroy when replacing old session with new.
Prep for full SSU2 connection migration.
2022-07-31 11:34:55 -04:00
zzz
b606c2084b LogManager: Prevent hangs at shutdown on Mac after dock right-click-quit (Gitlab #363) 2022-07-29 12:23:34 -04:00
idk
c1efe6daab Merge pull request #27 from mehdie79/master
Fix errors in HACKING.md
2022-07-28 14:23:49 -04:00
zzz
4bdb7d752f SSU2: Send response to path challenge 2022-07-27 11:48:27 -04:00
zzz
6d9aca9d9b SSU2: Path challenge/response block types 2022-07-27 11:43:00 -04:00
zzz
e250531174 SSU2: Stub out path challenge/response 2022-07-27 10:56:18 -04:00
zzz
5948a7dec3 SSU: Only decrease MTU if the retransmitted packet was large 2022-07-27 10:30:56 -04:00
zzz
4e4718b3b1 NetDB: Publish ff stats based on current caps, not previous
Comment out unused contact property
2022-07-27 09:34:02 -04:00
zzz
d94ff6ad86 Router: Log warning if no family keys loaded 2022-07-27 09:16:01 -04:00
zzz
e4a8a6492d SSU2: Send termination in response to termination 2022-07-26 09:51:41 -04:00
zzz
17695915fa SSU2: Fix bitfield shifts of 256 or more 2022-07-25 13:17:56 -04:00
zzz
69adf84363 Console: Fix saving flat clients.config file
when in portable configuration and changing the
launch browser on startup setting on /configservice
ref: http://zzz.i2p/topics/3347
2022-07-21 09:19:25 -04:00
zzz
af8272b970 SSU: Reduce max establishment time 2022-07-19 12:08:26 -04:00
zzz
5355ee7740 SSU2: Shorten token expiration based on cache size 2022-07-19 11:55:59 -04:00
zzz
02cd83187b GeoIP: Don't lookup route48 addresses 2022-07-19 11:21:12 -04:00
zzz
f5ca15c28d SSU2: Retransmit session confirmed after receiving apparent retransmitted session created
Retransmit handshake messages faster and expire faster (SSU 1/2)
log tweaks
2022-07-19 11:17:54 -04:00
zzz
b7db6ae77c SSU2: Fix storage/checking of local firewalled IP address/port in token file 2022-07-19 11:15:24 -04:00
idk
4aa6ee2308 Merge branch 'master' of i2pgit.org:i2p-hackers/i2p.i2p 2022-07-17 15:34:48 -04:00
idk
21dc07bf5a add note about possible need for Java 17 options to startapp.sh 2022-07-17 15:34:25 -04:00
idk
4a6fe9b291 Merge branch 'docker_updates' into 'master'
Switch to OpenJDK17

See merge request i2p-hackers/i2p.i2p!61
2022-07-17 19:33:23 +00:00
zzz
8aef6ce292 SSU2: MTU and other fixes
Use minimum MTU for IPv6 session confirmed to avoid PMTU issues
Set default MTU for known IPv6 tunnel brokers
Check for s mismatch in session confirmed RI
Don't put DateTime block after Termination block
Fix first message failed check
Log sent data packet size
Log tweaks
2022-07-17 11:28:00 -04:00
c9cf208de7 Fix errors in HACKING.md 2022-07-17 01:45:55 -07:00
zzz
097fa34e91 SSU2: Send retry with termination block on clock skew 2022-07-15 15:03:22 -04:00
zzz
c2ffcb8512 SSU2: Don't rectify MTUs to mod 16 in SSU2 addresses
Set max MTU for range48.org brokered addresses
Limit MTU for brokered addresses in UDPAddress also
2022-07-15 08:51:43 -04:00
zzz
2432680ed3 SSU2: Fail session if first outbound message fails
Reduce max consecutive message failures to fail session (SSU 1/2)
Set peer as unreachable for these failures
Reduce max consectutive session confirmed retransmissions
Fix session confirmed retransmission timing
Respond to relay tag request in data phase
Log tweaks
2022-07-12 07:29:20 -04:00
zzz
8e985eb951 SSU2: Fix NACK handling when higher than previous highest acked
was treating them as acks
2022-07-10 13:01:56 -04:00
zzz
a18a5136b7 Console: Only display news if a new entry is found
not simply when a new file is downloaded
2022-07-09 09:41:13 -04:00
zzz
73c8ee826e SSU2: Support other reason codes in destroy message 2022-07-09 07:31:46 -04:00
zzz
2a4ab118de SSU2: Persist SSU2 tokens
Move establisher and packet handler initialization
to after the address initialization
2022-07-08 14:12:31 -04:00
zzz
70596d0548 SSU: Initialize MTUs
SSU2: Don't log MTU warning at startup
Remove unused dropPeerCapacities()
2022-07-08 11:13:58 -04:00
zzz
6ede06cfdf SSU2: Send termination before dropping session after failure to get Session Confirmed ack 2022-07-08 11:09:58 -04:00
zzz
8818c78cbd Transport: Don't lookup RI in wasUnreachable()
to reduce netdb lookups
2022-07-08 10:00:04 -04:00
zzz
9489b41cb7 Util: Fix UnmodifiableSortedSet compiler warnings 2022-07-05 12:02:28 -04:00
zzz
9a9722dd3e SSU2: Fix peer test throttling
Only throttle messages 1 and 2
Send limit response on throttle
Throttle IPv6 based on first 8 bytes only
2022-07-05 07:37:51 -04:00
zzz
ec3a88dc34 Console: Add cancel button to netdb search form 2022-07-04 08:32:16 -04:00
zzz
4e21fe74e5 NetDB: Lookup handling cleanups
Allow lookups of our RI even when hidden
Consolidate routerHash() calls
Remove unused router.publishUnreachableRouters option, was default true
2022-07-04 08:30:21 -04:00
9dc8ca4edb Merge branch 'jbigi-apple-silicon' into 'master'
jbigi for Apple silicon

See merge request i2p-hackers/i2p.i2p!63
2022-07-03 12:46:31 +00:00
efc3b847ac jbigi for Apple silicon 2022-07-03 13:43:29 +01:00
3701cf9782 Merge branch 'gmp-patch-x18' into 'master'
Add ability to apply patches to GMP.  Apply fix for x18 register.  Run GMP tests after build.

See merge request i2p-hackers/i2p.i2p!62
2022-07-03 11:48:36 +00:00
a171d71bbe Add ability to apply patches to GMP. Apply fix for x18 register. Run GMP tests after build. 2022-07-03 11:09:01 +01:00
a6ef362ad7 Switch to OpenJDK17 2022-07-02 16:31:35 +00:00
c2f3732469 Merge branch 'jbigi-mac-arm64' into 'master'
JBigi build changes for M1

See merge request i2p-hackers/i2p.i2p!60
2022-07-02 13:11:54 +00:00
454cd6bda6 JavaVM framework isn't a thing anymore 2022-07-02 13:22:28 +01:00
zzz
740c7fad4d SSU: Remove copy of peers in idle timeout checker
Just iterate through the main map.
Log tweaks
2022-06-30 18:22:53 -04:00
zzz
c875f1d105 SSU2: Fix last check of local RI for relay
Expire relay token quickly
Log tweaks
2022-06-30 17:15:33 -04:00
idk
43945dcbbf fix dark them address book css. closes #343 2022-06-26 12:28:03 -04:00
zzz
3c7659277d SSU: MTU fixes for IPv6 and SSU2
Fix setting local IPv6 MTU when firewalled
Fix publishing MTU when firewalled or hidden
Save local MTU when changing addresses, not when publishing
Add SSU2 MTU methods (no mod 16 required)
Allow MTU up to 1500 for SSU2 transport style
Disable SSU2 at startup if local MTU too low
2022-06-25 13:14:59 -04:00
zzz
26cffabf86 Build: Update GMP download script to 6.2.1 2022-06-25 08:33:32 -04:00
zzz
897338b790 SSU2: Add checks of peer test msg 1 IP/port 2022-06-24 16:56:47 -04:00
zzz
ac3fc6a0d8 JBigI: Drop 32-bit OSX libs 2022-06-23 12:29:46 -04:00
zzz
20acd7cf61 Debian: Update apparmor profile
see gitlab MR !59
2022-06-23 09:20:35 -04:00
zzz
08e95655c1 SSU2: More MTU checks
Add code for bob rejecting alice peer test address
Don't allow MTU to exceed his MTU
Don't use a token about to expire
Send token with termination message
Add internal type to termination message
log tweaks
2022-06-22 11:00:56 -04:00
zzz
5d27ce3f8d SSU: Rewrite adjustMTU()
to make it more responsive to conditions and a more effective PMTU algorithm.
Move MTU up and down in increments rather than simply shift between min and max
Increase or decrease based on success or failure of each message
Only increase if the successful message was almost as large as current MTU
Clear increase/decrease counters when changing MTU the other way
Don't wait for 10 packets to increase MTU
Reduce max retransmissions from 30% to 10%
2022-06-22 08:07:13 -04:00
zzz
1e95c123e5 Console: Fix SSU TX/RX sorters on /peers 2022-06-21 12:41:47 -04:00
zzz
a6536ea48a Crypto: Fix equality checking of ECParameterSpecs for private keys too
see earlier checkin for public keys
2022-06-21 09:43:16 -04:00
zzz
9aa9f7a714 SSU2: Fix swapped dest/src conn IDs for peer test 2022-06-20 15:19:09 -04:00
zzz
723257d6ef SSU2: First fragments can be 5 bytes larger than followon fragments 2022-06-20 12:05:45 -04:00
zzz
c5323a8d36 SSU2: Fix overhead calculation for followon fragments
so as not to exceed MTU
2022-06-20 07:37:05 -04:00
zzz
67082463e4 Util: HostTxtParser CLI improvements 2022-06-19 12:07:23 -04:00
zzz
b3072d9ef3 SSU: PeerState _remotePeer cannot be null 2022-06-19 12:05:39 -04:00
zzz
3c4956f0c3 SSU2: Add delayed lookup of RI for relay and peer test
Prefer SSU2 introducers for slots 1 and 2
log tweaks
2022-06-19 12:04:10 -04:00
zzz
d69a65605d SSU2: Don't delete empty ipv6 address at startup
Needed for SSU2 handshakes
2022-06-19 12:01:44 -04:00
zzz
2bf7d5ddea Util: New UnmodifiableSortedSet based on ArraySet
use in OrderedProperties
2022-06-17 13:07:22 -04:00
zzz
c2edd7e926 SusiDNS: Fix classloading on Java 11+
Caused SusiDNS and addressbook to be in a different context
addressbook config would be stored in base dir
and subscriptions would not load because it couldn't find i2ptunnel
2022-06-17 12:52:36 -04:00
zzz
ed1e705d35 Crypto: Fix equality checking of ECParameterSpecs
in SigUtil.fromJavaKey()
as the class does not define equals().
Affects Android family key loading where the class does not match our class.
Tested via unit test to compare provider class sun.security.util.NamedCurve
to our class java.security.spec.ECParameterSpec, untested on Android.
Add conversion test to CertUtil loadcert CLI.
ref: http://zzz.i2p/topics/3328
ref: i2p.android.base gitlab ticket #47
2022-06-17 10:34:34 -04:00
zzz
fa145ff7c5 Util: ArraySet improvements
Was never used; prep for actual usage
Move from router to core
Add Set constructors that are more efficient
Add addUnique() method
Allow size of set passed in constructors
Prepare for extension
javadocs
2022-06-17 10:21:15 -04:00
zzz
7610b3842f SSU2: Hole punch processing
Validate and process hole punch payload
Send session request immediately after receiving hole punch
Remove some unused code
Log tweaks
2022-06-16 08:22:55 -04:00
zzz
d812f82e92 SSU2: Fixes
Fix conn ids on hole punch
Fix min size on relay response
2022-06-16 08:16:12 -04:00
zzz
0a87559ba2 SSU2: Add per-introducer relay state machine
Enable relay
Set session created token to 0 as per spec
Log tweaks
2022-06-14 12:48:00 -04:00
zzz
c248279a03 Console: Minor fix for dark theme /logs version section 2022-06-13 07:11:31 -04:00
zzz
22efde37e3 SSU2: Relay WIP part 15
Fix sending charlie's address in relay response
Fix sending session request after introduction
Send 0-length endpoint in relay response on failure
Log tweaks
2022-06-12 16:08:23 -04:00
zzz
c976b86b6e SSU2: Fix peer test msg 1 signature 2022-06-12 13:20:37 -04:00
zzz
3ef06f88c9 SSU2: Relay WIP part 14
Fixes after testnet testing:
Fix NPE in OES2 constructor
Fix relay request signature
Fix relay response signature verification bugs
Fix unhandled state OB_STATE_INTRODUCED
Refactor state handling to switch
Remove dup copy in SSU2Util.sign()
Log tweaks
2022-06-12 12:54:52 -04:00
zzz
2ec0894c35 SSU2: Relay WIP part 13
Reject SSU1/SSU2 relay request mismatch as Bob
2022-06-11 13:06:29 -04:00
zzz
d85d501291 SSU2: Relay WIP part 12
Don't send SSU1 relay request to SSU2-connected introducers
and vice versa
Log tweaks
2022-06-11 09:13:36 -04:00
zzz
e4996a2db6 SSU: No need to validate Bob IP/port on relay intro as Charlie
as it is received in-session only
Log tweaks all over
2022-06-10 16:50:46 -04:00
zzz
ffc4520382 Transport: Remove mtn port from invalid list 2022-06-10 16:03:48 -04:00
zzz
386b259666 SSU: Reduce level of SSU 1 relay logging
to make it easier to debug SSU2 relay
2022-06-10 15:09:23 -04:00
idk
ee5e3a97ed Merge branch 'master' of i2pgit.org:i2p-hackers/i2p.i2p 2022-06-10 13:39:54 -04:00
idk
a70c988a07 Automatically configure clients and client tunnels to listen on the container network address instead of the localhost. Closes #358 2022-06-10 13:39:27 -04:00
zzz
788babeaa0 SSU2: Relay WIP part 11
prevent dup SSU2 introducers take 2
2022-06-10 13:29:42 -04:00
zzz
3befe90007 i2ptunnel: Add tunnel name to offline expiration log messages 2022-06-10 09:53:55 -04:00
zzz
bfdf75f45b SSU2: Fix test/relay response code for banned IP 2022-06-10 09:08:08 -04:00
zzz
9de618d644 SSU2: Catch errors on bad ack blocks
so rest of payload can be processed
Improve debug output on errors
2022-06-10 07:50:43 -04:00
zzz
cdf778514c SSU2: Don't attempt SSU1 fallback validation on a SSU2 peer
This should actually fix the HMAC NPE
2022-06-10 07:35:53 -04:00
zzz
03f315fc1c SSU2: Relay WIP part 10
Fix OES2 initial state when pending intro
Handle relay response as Alice
Check relay request and relay response sigs as Bob
Remove unused method OES2.reset()
Fix javadoc for one OES state
2022-06-10 07:32:54 -04:00
zzz
379227592c hosts.txt update 2022-06-09 15:08:01 -04:00
zzz
3d9ded4ab1 SSU2: Relay WIP part 9
Alice side:
check for valid v2 introducers,
fetch Bob RIs if not found,
connect if not connected,
then send relay request
2022-06-09 12:24:29 -04:00
zzz
29c827c076 SSU2: Ignore dup session confirmed 2022-06-09 11:54:52 -04:00
zzz
5582814d7c Noise: Add state info to debug output 2022-06-09 09:49:06 -04:00
zzz
43a5998cfd SSU2: Set timer to remove peer test state
Reduce SSU 1/2 max test time as Bob
2022-06-08 11:31:42 -04:00
zzz
d1633938db NetDb: Bypass checks on lookups of our router hash 2022-06-08 11:04:33 -04:00
zzz
5129665256 SSU: Request RI from introducer if we don't have it 2022-06-08 10:58:16 -04:00
zzz
0d51b2d25f Transport: Don't requeue message after multiple failures
Change failed transports from a Set to a List for efficiency
Check fail count before getting bids
Don't remove from netdb after a failure
Other minor tweaks
2022-06-07 14:22:27 -04:00
zzz
ba7b154a09 SSU: Ban IP on bad handshake signature 2022-06-07 14:15:00 -04:00
zzz
52bb2aea94 SSU2: Peer test fixes
per spec, Alice hash not included in msg 1/2 sig
Add sig checks of msgs 1/3 at Bob
Fix checking of 'B' cap in peer selection
2022-06-07 14:08:53 -04:00
zzz
265804a750 Console: Add deadlock detector 2022-06-06 17:01:15 -04:00
zzz
74795a83d6 SSU2: Relay WIP part 8
prevent dup SSU2 introducers
2022-06-06 16:25:30 -04:00
zzz
0fe437f649 SSU2: Check for missing address block in peer test msg 7 2022-06-06 16:24:19 -04:00
zzz
a2ec81eaec Util: Cache new SSU2 properties 2022-06-06 16:21:44 -04:00
zzz
df4be26878 SSU: Don't allow android to be introducers 2022-06-06 16:20:44 -04:00
zzz
06456fb318 SSU2: Peer test fix message 7
Put source address of msg 6 into address block for msg 7
Use msg 7 address block for received address
2022-06-06 11:41:31 -04:00
zzz
d9c932ac2e Compile fix previous checkin 2022-06-06 11:40:24 -04:00
zzz
d680cfd80c SSU2: Relay WIP part 7
Add SSU2 parameter support to UDPAddress
Count SSU2 introducers in UDPAddress
Fix reuse of SSU2 introducers
Don't immediately remove introducer for idle time
2022-06-06 11:07:45 -04:00
zzz
4a9f8240db SSU2: Relay WIP part 6
Fix saving relay tag as Bob
Select introducers by newest connection instead of random
Ping introducers more often
Check and set ping time when pinging introducers
Remove unused nextCipherKey
Debug: Prefer selecting SSU2 introducers
Log tweaks
2022-06-05 11:21:04 -04:00
zzz
266dc09384 Transports: Periodically send RI to connected peers (Gitlab ticket #356) 2022-06-03 08:15:01 -04:00
zzz
4dd5e7737b SSU: Make cipher/MAC keys final
Possible fix for HMAC NPE
2022-06-03 08:07:29 -04:00
zzz
af6722c57b SSU2: Relay WIP part 5
Publish SSU2 introducers
2022-06-02 11:39:30 -04:00
zzz
2ff0a13990 SSU2: Relay WIP part 4
Decrypt and handle hole punch as alice
2022-06-02 10:14:37 -04:00
zzz
cfdc2203fb SSU2: Relay WIP part 3
Put alice hash in relay intro as Bob
Fix relay intro/response generation and signing
Add token to relay response as Charlie
Store relay nonce as Bob
Handle relay response as Bob and forward to Alice
Stub out handling relay response as Alice
2022-06-02 08:43:50 -04:00
zzz
2c53424210 SSU2: Relay WIP part 2
Handle relay request as bob
Send relay intro as bob
Send relay response rejection as bob
Check for valid time in relay request and relay intro
2022-06-01 13:59:15 -04:00
zzz
8b0edde290 SSU2: Relay WIP part 1
Pass relay data from PS2 to Intro manager
Handle relay intro as charlie
Send hole punch as charlie
Send relay response as charlie
Update hole punch format to match spec
2022-06-01 13:12:35 -04:00
zzz
a4d3bf285d SSU2: Enable peer test 2022-06-01 09:01:50 -04:00
zzz
3acc4b754a SSLEepGet: Send Host header to HTTPS proxy
ref: RFC 2617 sec. 5.2
2022-05-30 10:39:38 -04:00
zzz
ef08dfad55 SSU2: Remove role field from peer test block
to match spec change
2022-05-29 10:18:19 -04:00
zzz
b9099fbd99 i2psnark: Fix scrollbar hiding X box on Firefox 100 2022-05-28 15:54:02 -04:00
zzz
c9a6950550 Crypto: Handle conversion from Java JCA 15+ EdEC keys
Change from unchecked to checked exception on unknown keys
2022-05-28 15:14:29 -04:00
zzz
80f76e38b4 i2psnark: Fix DHT not restarting after router restart
cancel DHT cleaner and explorer on stop
2022-05-28 13:00:32 -04:00
zzz
7ea3c430aa Util: FileLogWriter minor optimization 2022-05-28 12:32:39 -04:00
zzz
d467dc28b9 I2CP: Only send one notification to each session listener
for reportAbuse(), disconnected(), and errorOccurred(),
because a single listener may be registered for multiple ports/protocols
2022-05-28 12:02:52 -04:00
zzz
8ac78af293 Console: Require full restart on transport enable/disable
Don't do soft restart if full restart required
2022-05-28 11:58:02 -04:00
zzz
e44eeaf5ae Router: Don't fail to start up on unchecked family key errors 2022-05-28 10:53:25 -04:00
zzz
17cc514bb1 Console: Add TODOs for country variants of readme files
Clean up language selection code in ResourceHelper
2022-05-27 11:59:49 -04:00
zzz
86996dde28 UPnP: Don't bind HTTP listen sockets to all addresses at startup
The lib was binding to all addresses, and then our
UPnP.updateInterfaces() was closing most of them on first run.
Fix the lib to only bind to the non-public and non-deprecated ones,
using the same getLocalAddresses() method as in our code.
2022-05-27 11:18:48 -04:00
zzz
34789fdb30 Streaming: Improve error message on unsupported sig type
Fallback to Ed25519 on error
2022-05-27 09:29:49 -04:00
zzz
a74f36358f i2psnark standalone: Skip browser launch if so configured 2022-05-26 12:29:35 -04:00
zzz
a6ad525197 Addressbook: Add CLI 2022-05-26 11:57:34 -04:00
zzz
0826b1e228 Crypto: Throw checked exception
for unimplemented ElG import, so CertUtil.loadPrivateKey() will
continue processing and then
fail with the correct exception and error message on bad input.
Pull constant KeySpec out of loop.
2022-05-25 09:12:12 -04:00
zzz
5d3c29fb27 Debian files for 1.8.0 2022-05-24 12:29:31 -04:00
zzz
8256f61d56 1.8.0 / 0.9.54 2022-05-23 09:25:37 -04:00
zzz
ffc5ed8dc2 i2psnark standalone: Add hint to disable browser launch on windows 2022-05-23 09:10:48 -04:00
zzz
860eb22af7 refresh Debian patch 2022-05-23 08:47:56 -04:00
zzz
1a050303fa bump for review 2022-05-20 13:30:19 -04:00
idk
ce0c84c5d9 make SAMException class public so that it can easily be used by SAM implementers/embedders. Looks like it should have been public, all the constructors are public but the public keyword is missing on the class itself. Make tabs and spacing consistent in that file. 2022-05-19 14:37:17 -04:00
zzz
b537bd18b0 bump -20-rc 2022-05-19 13:40:25 -04:00
zzz
de79f52c81 New zh_TW translations 2022-05-19 13:35:28 -04:00
zzz
a5bc80da09 i2ptunnel: Improve message on filter file error 2022-05-19 13:15:16 -04:00
zzz
5f4ad87d10 Bump build time 2022-05-19 13:13:16 -04:00
zzz
cc56c4b506 Rebuild updated man page translations 2022-05-19 13:12:39 -04:00
zzz
13efc59916 Pull translations from Transifex 2022-05-19 13:10:57 -04:00
zzz
515a9b8d0d i2psnark: Fix 'left' amount in announce exceeding size
and causing tracker error on initial announce
2022-05-17 09:51:34 -04:00
zzz
52958b95d5 i2ptunnel: Add log message on reconnect 2022-05-14 08:58:58 -04:00
zzz
b36ed7de1a SSU2: Method scope 2022-05-14 08:52:15 -04:00
zzz
693aefe83a javadoc 2022-05-14 08:50:37 -04:00
zzz
ed30da0f0f NetDB: Remove dup now() calls 2022-05-14 08:48:13 -04:00
zzz
81255e19ae Transport: Fix thrashing of UPnP IPv6 listen sockets
Strip % suffixes from addresses before comparing
Fix HTTPMUSocket.getLocalAddress() to return the correct bound address
Throw exception on multicast socket bind failures, don't attempt
further operations on failed sockets
Add toString() to sockets for debugging
Log tweaks
2022-05-11 11:54:25 -04:00
zzz
07dbab9f02 Util: Rename modified apache classes (Gitlab ticket #353)
to avoid conflict in applications linking to apache jars
As requested by 'mesh' project
Remove with-libhttpclient-java build option
No known external uses other than obsolete i2pcontrol plugin
2022-05-11 07:54:56 -04:00
zzz
bf27bf140d poupdate-source 2022-05-10 12:41:09 -04:00
idk
3a906a6ce5 Merge branch 'sam-secure-session' into 'master'
Interactive SAM Authentication Interface

See merge request i2p-hackers/i2p.i2p!58
2022-05-07 16:36:39 +00:00
idk
47e02f7930 Interactive SAM Authentication Interface 2022-05-07 16:36:38 +00:00
zzz
75b808fcf6 DoH Server list update 2022-05-06 08:50:13 -04:00
zzz
5cbdb7d806 Tomcat 9.0.62 2022-05-02 11:31:45 -04:00
zzz
2c8428d85e GeoIP 2022-05-01 2022-05-02 10:15:06 -04:00
zzz
8fe9d7ac06 SSU2 minor updates
Send ack for peer test and relay blocks
Add SSU2 pending inbound states to establisher check
Remove unused PacketBuilder2 method
2022-04-30 11:44:52 -04:00
zzz
db8a843e82 SSU: Enforce peer test message 4 in-session
for routers 0.9.52 or higher
2022-04-29 09:41:10 -04:00
zzz
a730c1acea SSU2: Handle RI block in Data and Peer Test messages
Don't process out-of-session Peer Test message unless enabled
2022-04-28 10:52:01 -04:00
zzz
d6aaf3ee3a NTCP: Don't flood RI block unless newer
Don't accept store of our RI in RI block
2022-04-28 10:49:13 -04:00
zzz
9e4063a161 NetDB: Don't flood RIs banlisted forever 2022-04-28 10:47:01 -04:00
zzz
008943f699 SSU2: Peer Test fixes part 6
Change size/ip/port fields to match changes in proposal 159
2022-04-27 08:30:22 -04:00
zzz
71a58cb1bf Crypto: Destroy ChaCha/Poly after one-time-use 2022-04-25 10:05:16 -04:00
zzz
4a6f6f8647 SSU2: Peer Test fixes part 5
Fix extraction of Charlie address after receiving message 4
for use in message 6
2022-04-25 07:38:48 -04:00
zzz
32bba60bed SSU2: Peer Test fixes part 4
Fix NPE sending message 6
2022-04-24 15:46:57 -04:00
zzz
0f3abf0c9e SSU: Publish empty IPv6 address when missing introducers 2022-04-24 10:23:33 -04:00
zzz
5c1b6ba703 SSU2: Add properties to address when missing introducers 2022-04-24 09:36:23 -04:00
zzz
5e6ec442a7 SSU2: Fix PacketPusher NPE 2022-04-24 09:35:00 -04:00
zzz
cdf5bec155 SSU2: Peer Test fixes part 3
Reject if alice/charlie already connected
Do not retransmit msg 1 after receiving msg 4
Log tweaks
2022-04-24 08:57:20 -04:00
zzz
281bf68098 SSU2: Peer Test fixes part 2
Don't send message 5 unless we sent accept in message 3
Fix packet length for messages 5-7
Pass messages 5-7 from PacketHandler to PeerTestManager
Decrypt and process messages 5-7
Handle messages 4 and 5 in either order
Don't set test complete after message 5
Build data block for message 6
Log tweaks
2022-04-23 15:57:00 -04:00
zzz
ce2b5639b5 SSU2: Peer Test fixes part 1
Store our IP/port in PeerState2
Send our IP/port in message 1
Fix signature validation of message 4
Check for 0 status in messages 1 and 2
Fail on nonzero status in message 4
Log tweaks
2022-04-23 12:13:03 -04:00
zzz
4c10b414c4 InNetMessagePool: Remove some low-level logging 2022-04-17 10:13:46 -04:00
zzz
4c15a0e1c4 i2psnark: Make PeerCoordinatorSet and ConnectionAcceptor final 2022-04-17 10:11:19 -04:00
zzz
203fbdaa9f Console: Usage formatting on /tunnels 2022-04-17 10:10:18 -04:00
zzz
9431b9cfdc i2psnark: Soft restart fixes part 5
Do not stop the ConnectionAcceptor after RouterRestartException,
delay and reconnect instead.
Fix restart() to actually restart after stopped.
2022-04-17 09:56:07 -04:00
zzz
2bec84dd88 Streaming: Soft restart fixes part 4
Do not clear the DisconnectListeners after notification
2022-04-17 09:51:30 -04:00
zzz
cf7efcada8 I2CP: Soft restart fixes part 3
Remove low-level I2CP reconnector
as it may result in duplicate destinations after
higher-level (i2ptunnel) or application-layer reconnections
Root cause identified by BiglyBT
Gitlab issue #350
2022-04-17 09:45:40 -04:00
zzz
dda25bf1ed Router: Restart fixes part 2
Don't set our RI loaded from disk if too old
Rekeying was prevented by previous checkin,
but this fixes root cause
2022-04-14 08:25:16 -04:00
zzz
04b1bdb453 Router: Soft restart fixes part 1
Reset uptime on soft restart
Don't rekey after failure to store our RI due to clock skew
Change comm system state during soft restart
Restarter log tweaks
2022-04-13 10:28:43 -04:00
zzz
e04d31eb04 Update: Log full path to update file 2022-04-12 09:33:06 -04:00
zzz
706ed2ced2 javadoc 2022-04-12 09:33:06 -04:00
zzz
bb7278c5f6 Transport: Remove unnecessary isEmpty() check 2022-04-12 09:33:06 -04:00
zzz
3edc235104 SSU2: Minor updates
send timeout code in termination
remove unused intro key block handling
log tweaks
2022-04-12 09:33:06 -04:00
zzz
806046df64 One more ihost to itag change, missed in earlier checkin 2022-04-12 09:33:06 -04:00
zzz
345c64ebaf Tunnels: Don't build client tunnels less than min length
even if we don't have enough peers
2022-04-12 09:33:05 -04:00
zzz
53eb6ba7e0 Console: Fix Sybil closest hash tabs 2022-04-12 09:33:05 -04:00
zzz
eaa526583d Transport: Fix UPnP deadlock 2022-04-12 09:33:05 -04:00
idk
c0b8fe94a8 fix margins on dark theme bandwidth config table and info div 2022-04-11 13:59:26 -04:00
idk
6e5049c1db remove remaining absolute tags from xhr's on wizard page 2022-04-11 13:56:11 -04:00
idk
949f619ecc fix margin on bandwidth configuration page, fix alignment on bandwidth configuration page, align informational text to language start 2022-04-11 13:35:13 -04:00
zzz
f7c3e06db5 I2CP: Fix external I2CP broken when session ID is 0
one chance in 64K, broken since 2005
don't revert previous attempted fix using synching,
that's still a good idea
2022-04-11 10:30:29 -04:00
idk
1a26e1789c remove the startup wizard images themselves from the source tree 2022-04-08 16:55:31 -04:00
idk
e40bbc9f18 Overhaul CSS n New Install Wizard in order to make it less dependent on absolute positioning. Remove confusing M-Lab measurement table since the meaningful results are already populated in the configuration table. Adjust postioning of some elements on the bandwidth config pages. remove the old images from both themes. 2022-04-08 16:53:36 -04:00
idk
ec72f3cdf6 disable high-contrast mode on browsers where it is possible 2022-04-07 22:36:09 -04:00
zzz
b19998c072 Console: Change sidebar netdb tooltip 2022-04-06 08:37:41 -04:00
zzz
66e1c94bee Console: Use full hash for links to RI
for efficient lookup and to prevent display of dup prefixes
2022-04-06 08:22:12 -04:00
zzz
0449589406 SSU2: Fix hashcode function to detect dup acks
Arrays.hashCode() interacted badly with it,
causing numerous false positives
2022-04-05 14:13:23 -04:00
zzz
cc85df19aa SSU2: Fragmented Session Confirmed
Revert related parts of "Prep for fragmented RI",
we are now fragmenting Session Confirmed instead.
Fragment and send multiple Session Confirmed packets if required
Reassemble Session Confirmed packets

Don't process ack block identical to previous received
Log tweaks
bump -12
2022-04-05 09:26:42 -04:00
zzz
8418bda5a5 Console: Add netdb search options for v1 or v2 only transports 2022-04-05 08:22:26 -04:00
zzz
75492514ca SSU: Fix packet-too-large check in UDPSender 2022-04-05 07:55:28 -04:00
zzz
e43810f182 SSU2: Don't send our RI after outbound handshake, it's in the handshake already 2022-04-05 07:49:43 -04:00
zzz
9d49dc7af7 SSU2: Fix NPE in PeerState.loadFrom() 2022-04-05 07:47:56 -04:00
zzz
680320dede SSU2: Add termination reason codes 2022-04-05 07:45:02 -04:00
zzz
b2d6a091d1 Add more family certs 2022-03-31 06:05:57 -04:00
zzz
5d22a2152a Data: Add cached X25519/Ed25519 key cert, now common 2022-03-28 08:30:36 -04:00
zzz
acbf849b44 Crypto: Micro-optimize AES encrypt loop 2022-03-28 08:08:22 -04:00
zzz
7cf9895908 Transport: Add util methods for AddressType
WIP, not hooked in
2022-03-28 06:38:18 -04:00
zzz
d41c39a4d0 Debian: Add Java 18 2022-03-28 06:24:08 -04:00
zzz
b1852c127b SSU2: Prep for fragmented RI (WIP)
Fix IES2 not being removed from pending after complete
Don't send DSM after handshake
Validate conn ID before pkt type for data pkts
More log tweaks

SSU: Increase min pending establish states limit (unless slow)
Reduce IB establish timeout to 15s
Log pending inbound establish states when limit exceeded
Log tweaks to add establish state lifetime
Bump -11
2022-03-27 12:36:12 -04:00
zzz
8c59c514b2 Router: Validate family sig at startup
when loaded from router.info, and discard if invalid or when family changed.
This fixes some routers out there with bad sigs.
Don't loop forever through LoadRouterInfoJob.
2022-03-27 08:21:22 -04:00
zzz
93493a6d15 Crypto: Add provider in CertUtil so we can load EdDSA certs
Check cert sigs when loading, and log warning on failure
2022-03-27 08:00:08 -04:00
zzz
03e5c6c13c Crypto: Add official EdDSA OIDs to provider 2022-03-26 13:05:28 -04:00
zzz
826bf3c24f SSU2: Hook in IMF Bloom filter to detect dups
Call messagePartiallyReceived() even for dups or expired messages
so an ack is generated.
2022-03-26 11:39:10 -04:00
zzz
68273cd256 SSU2: Reduce ack delay, see MR !57
See previous checkin for SSU 1.
This change dramatically reduces the measured RTT to get it much closer to the real RTT by reducing the ack delay.
With the ack delay dependent on the measured RTT, the measured RTT will increase.

Simulation results: For a denominator D in the ack delay calculation (currently 2) and a true RTT = TRTT:
For D <= about 2, measured RTT -> TRTT + 2 * TRTT/D For D >= about 4, measured RTT -> TRTT + TRTT/D

In other words, for D == 2, measured RTT -> 2 * TRTT. For a TRTT of 50, the measured RTT is 100.
D == 2 is too small. It's been like that since 2005.
Testnet results: measured RTT 80-90

This changes D to 6. measured RTT -> 6/5 * TRTT.
Simulation results: For a TRTT of 50, the measured RTT is 58.
Testnet results: measured RTT 60
2022-03-26 07:04:49 -04:00
zzz
e130f85a65 Merge branch 'ssuackdelay' into 'master'
SSU: Reduce ack delay to minimize addition to measured RTT

See merge request i2p-hackers/i2p.i2p!57
2022-03-26 10:53:49 +00:00
zzz
9385ce7080 Console: Prevent creating a family that another router is using 2022-03-25 08:47:19 -04:00
zzz
da190cc24f SSU2 cleanups
Remove padding and unknown block callbacks
Remove handshake state logging in IES2 now that i2pd works
2022-03-25 08:27:53 -04:00
zzz
2a6dc58659 SSU: Reduce ack delay to minimize addition to measured RTT 2022-03-25 05:59:33 -04:00
zzz
f4eda0551d Router: Change quick address check for introducers
from ihost0 to itag0, because SSU2 probably won't use ihost
2022-03-24 17:31:48 -04:00
zzz
0560b3221d SSU2: Flush tokens on ip/port change
both inbound and outbound
2022-03-24 05:21:58 -04:00
zzz
631a6dd2b2 I2CP: Synch fixes
Synch fields in the data messages both directions,
after one report of zero session ID in MessagePayloadMessage
to an external client on fast hardware with Java 18.
Add new constructors for efficiency.
Deprecated setters, unit tests not changed, TODO.
Should fix all the other messages also, TODO.
2022-03-23 07:25:01 -04:00
zzz
0154a87cbf SSU2: Refactor tokens
Store OB tokens by IP/port
Centralize token generation and expiration in Establishment Manager
Add methods to flush OB tokens on IP/port change
Log tweaks
Javadoc fix
2022-03-23 06:46:01 -04:00
zzz
4f8ad3b6cb Router family fixes
Don't overwrite an existing family keystore file
Don't allow starting a new family with an existing family keystore file
Don't add family to RI until we have restarted and have a keystore file
Don't fail a netdb store for no family sig
Don't ever fail our own netdb store for family errors, to avoid rekey/restart
2022-03-22 08:03:18 -04:00
zzz
458e980e2f bump -10, javadoc typo 2022-03-20 07:59:32 -04:00
zzz
e08d2f354a File missed in previous netdb checkin 2022-03-20 07:57:43 -04:00
zzz
037e6940a9 SSU2: More work on peer test
generate msgs 1,5-7
handle msgs 5-7
log tweaks
2022-03-20 07:53:41 -04:00
zzz
b3055feff6 NetDB: Remove duplicate store in FloodOnlyLookupMatchJob
which bypassed all the checks in HandleFloodfillDatabaseStoreMessageJob
Don't store an entry which is older
2022-03-20 07:45:33 -04:00
zzz
c520dcb0f6 NetDB: Refactor family validation
Return a result code from verify()
Load all known certs at startup rather than continually reloading them
Only give full verified status to known keys
Enforce signatures in netdb store when key is available
Show family verification status on /netdb
Export our cert to disk if missing
Add stormycloud family cert
Bypass /24 Sybil penalty
2022-03-20 07:41:49 -04:00
zzz
fc88d672c5 Console: Fix rare IAE on destination sort 2022-03-18 11:40:09 -04:00
zzz
c62884ef85 SSU2: Implement peer test state machine
msgs 5-7 still TODO
WIP, untested
2022-03-18 10:21:30 -04:00
zzz
d9c629a6b1 SSU2: Log tweaks 2022-03-17 16:45:16 -04:00
zzz
70b7d1204b SSU2: Still more prep for Peer Test (WIP) 2022-03-17 16:43:24 -04:00
zzz
a90bbc3554 SSU2: More prep for Peer Test (WIP) 2022-03-17 16:10:26 -04:00
zzz
c2ec6cdeff SSU2: Set _lastACKSend 2022-03-17 16:08:15 -04:00
zzz
f57abe84bd SSU: Peer Test refactor
to store Bob's PeerState directly in PeerTestState
prep for SSU2
2022-03-17 16:04:28 -04:00
zzz
a1ee8220bb SSU2: Relay and Peer Test WIP
Packet building, fix peer test block
Not hooked in
2022-03-17 10:48:10 -04:00
zzz
ce73b9e8da Console: Remove CSS for hidden text on /graph 2022-03-16 07:59:55 -04:00
zzz
e6c3c097b5 Console: Remove UTC text already hidden by CSS 2022-03-16 07:47:26 -04:00
zzz
8961009292 SSU2: Minor cleanups
Add min packet size constants and notes
Don't attempt to decrypt a packet as a new inbound session if too small
Remove unused payload[] in IES2, now decrypted in-place
Log level tweaks in Establisher
2022-03-16 07:28:22 -04:00
zzz
de27cb1a46 Util: Increase min log file size limit
Rotate the log before we hit the limit, not after
2022-03-16 07:22:00 -04:00
zzz
e8afbc5b92 Transport: Don't use HE addresses for GeoIP
Limit max MTU for HE addresses
2022-03-15 14:30:04 -04:00
zzz
587409daa7 SSU2: Compress large RIs in Session Confirmed
even if they would fit in the MTU uncompressed,
to save bandwidth and room for other blocks
2022-03-15 07:23:53 -04:00
zzz
af5019c8dd SSU2: Fixes part 11
Save data messages received before or immediately after session confirmed
by queueing them for processing after the PeerState2 is created.
The fragments for the first I2NP message from Alice to Bob are frequently lost,
this will hopefully fix it.
Not fully tested, needs wider network testing.
2022-03-15 07:20:23 -04:00
zzz
46bba0fe71 SSU2: Fixes part 10
Avoid relaying until it's implemented:
Don't use SSU2 for an SSU address with introducers (fixes NPE)
Don't connect to SSU2 address without host/port
Don't ask for relay tag
Log tweaks
2022-03-15 07:12:25 -04:00
zzz
049456493f SSU2: Stubs for relay and peer test (phase 2) 2022-03-13 12:42:13 -04:00
zzz
2f63762c80 SSU2: Fixes part 9
Fix length calculation to see if new token block will fit in session confirmed
Extend timeout after sending retry
Fix retx timer for sess req after sending token req
Remove dup call to confirmedPacketsSent()
Cancel ack timer when sending acks
Include intro key in firewalled addresses too
Use SSU2 version of ping packet for SSU2 peers
Reduce max padding
Log tweaks
2022-03-13 07:33:36 -04:00
zzz
ca0d9f5a26 Tunnels: Reduce build reply timeout 2022-03-12 11:37:29 -05:00
zzz
aa620f5ed3 SSU2: Fixes part 8
Fix packet length for retransmitted handshake messages
Expire pending acks
2022-03-12 11:08:20 -05:00
zzz
15bb157126 NTCP: Encrypt handshake options in-place
round timestamp in Session Created
2022-03-12 09:48:33 -05:00
zzz
7e3e42ce42 i2psnark standalone: Add DTG and notifications 2022-03-11 07:23:46 -05:00
zzz
981c5e3878 i2psnark: Don't js-reload CSS on first click 2022-03-11 07:13:09 -05:00
zzz
393ee71ad9 SSU2: Fixes part 7
Clean up and optimize ack handling
Log tweaks and javadocs
2022-03-10 10:27:19 -05:00
zzz
97736cef1c SSU2: Fixes part 6
MTU and related fixes:
Fix max fragment size
Fix max space for acks
Fix max packet size
Pull MTU from best address in Session Confirmed
Pass MTU from establish state to peer state
Use SSU2 min/default/max MTU in PeerState
Stop looping when out of space in OMF (SSU 1 too)
2022-03-09 13:53:16 -05:00
zzz
25af51faf9 SSU2: Fixes part 5
Correctly calculate skew after retry in establish state
Pass calculated skew from establish state to peer state
Round time in DateTime block
Periodically send DateTime block
Handle DateTime block in peer state
2022-03-09 07:04:31 -05:00
zzz
a717dfb923 DTG: Add new ExternalMain class for app context use
that does not require router.jar
and rework other classes as necessary
2022-03-09 05:21:58 -05:00
zzz
e594b9532c SSU2: Track dup packets received
Log tweaks
2022-03-09 04:37:36 -05:00
zzz
a7a5b06b5c I2NP: Fix TunnelGatewayMessage.calculateWrittenLength()
so it doesn't null out the contained message.
Required for SSU2.
Unrelated TunnelDispatcher cleanup done while trying to find the problem.
2022-03-08 05:39:47 -05:00
zzz
eb72e97c03 SSU2: Fixes part 4
Fix deadlock in AckTimer
Enforce token in IES2
Increase bitfield sizes in PS2
Log tweaks
2022-03-07 10:44:17 -05:00
zzz
25cdc988e1 SSU2: Fixes part 3
Handle acks
Set ack timer
Retransmit session confirmed
Fix bitfield constructor when no ranges
2022-03-07 09:55:10 -05:00
zzz
3ce669575f SSU2: Fixes part 2
Add method to put additional blocks in data messages
Send and handle termination blocks
2022-03-06 07:31:16 -05:00
zzz
63aa64f8bb Console: Improve class selection on /configlogging 2022-03-06 06:16:59 -05:00
zzz
a6f61d2bf6 SSU2: Fixes part 1
after initial testnet testing

Use correct intro key for Session/Token request
Fix state management in EstablishmentManager, OES2, IES2
Fix next send time during handshake
Fix header decryption in PacketHandler
Add additional packet checks in IES2 handling
Remove expired IES immediately (SSU1 also)
Failsafe sleep in EstablishmentManager on exception
Remove dup requestSent() calls
Don't release packet in PS2
Log tweaks and javadocs
2022-03-06 06:15:23 -05:00
zzz
9457271ce6 Transport: Fix wasUnreachable() for transports with alt style
Only affects NTCP for now.
This bug had little impact when both transports were enabled,
but significantly harmed connectivity and tunnel building for NTCP2-only.
Decrease unreachable cache time in testnet
Make cache cleaner a little more efficient
2022-03-04 09:17:26 -05:00
zzz
22512d3889 i2psnark standalone: Add more CLI messages
Increase memory
2022-03-04 07:15:16 -05:00
zzz
a7115263f0 i2psnark: Reduce log level 2022-03-04 05:57:27 -05:00
zzz
c4b167b845 i2psnark: Fix css icon link 2022-03-04 05:52:44 -05:00
zzz
5e09245234 i2psnark: Add js theme preview 2022-03-04 05:47:18 -05:00
zzz
fee38c1c32 Console: Add SSU version column to /peers 2022-03-04 05:36:18 -05:00
zzz
a1ced67bad Transport: Fix port selection for NTCP-only 2022-03-04 05:06:01 -05:00
zzz
87f7d470a6 bump -3 2022-03-03 13:38:37 -05:00
zzz
32d60858da NTCP: Start out reachable if SSU disabled
So peers will attempt to connect
2022-03-03 13:37:28 -05:00
zzz
be4ad7eba9 NetDB: Load reseed RI if newer than that in-memory
previously, was only loaded if not known at all
2022-03-03 13:11:08 -05:00
zzz
7f8fa825ac SSU2: More debug logging additions/fixes 2022-03-02 11:08:57 -05:00
zzz
1cd5926f6c SSU2: Debug logging additions/fixes 2022-03-02 11:04:19 -05:00
zzz
9c31be66e6 SSU2: Data phase updates
Send immediate ack of Session Confirmed
Process I2NP messages and fragments in Session Confirmed
2022-03-02 10:47:47 -05:00
zzz
0e89b07ae8 SSU2: Data phase fix
Fix initialization of IMS when receiving last fragment first
2022-03-02 09:37:10 -05:00
zzz
7b6e6270ba SSU2: Data phase more fixes
Fix writing follow-on fragment block
Call messageFullyReceived() for I2NP block
Override messageFullyReceived() to avoid NPE
2022-03-02 09:05:09 -05:00
zzz
9d9310a726 SSU2: Data phase fixes
Fix receiver CipherState key
Override clearWantedACKSendSince() to avoid NPE
Add/tweak debug logging
2022-03-02 08:32:22 -05:00
zzz
0f26baf114 SSU2: Implement split()
Use socket address in PacketBuilder2
Decrypt session confirmed in-place
Check for RI in session confirmed
Copy session confirmed to PeerState2 for retx
RTT calculation fixes
State transitions
Javadoc fixes
WIP, untested
2022-03-01 13:52:16 -05:00
zzz
5ef93f11a9 Util: Add Addresses.getConnectedAddressTypes()
method to efficiently get all types in one pass
2022-03-01 07:25:49 -05:00
zzz
ce53714ba1 Util: Add AddressType enum 2022-03-01 05:48:20 -05:00
zzz
50ce3c2856 NetDB: New reseeds 2022-03-01 05:15:49 -05:00
zzz
21c1f89249 SSU2: Validate DateTime block in handshake messages 2022-02-28 16:50:41 -05:00
zzz
46ef49f2cf SSU2: Token Req. and Retry fixes
Fix Token Request and Retry payload generation
Implement Token Request and Retry payload decryption
Decrypt payloads in-place
Change from numbers to constants
2022-02-28 16:24:59 -05:00
zzz
e53a59b4ac SSU2: fix PS2 packet numbering 2022-02-28 13:36:19 -05:00
zzz
a13f2b9768 SSU2 more fixes
Fix OES2 MTU
Fix Token Request header encryption
2022-02-28 12:32:36 -05:00
zzz
44c30e78fc SSU2 fixes
Fix NPE in PS2
Fix Token Request message type
2022-02-28 10:01:05 -05:00
zzz
ec63f41b27 SSU2: Handle handshake messages
Decrypt handshake headers in Packet Handler
Pass handshake messages to Establishment Manager
SSU 1 and 2: Pass establish state to Establishment Manager
so it doesn't have to look it up again
Add notes about causes of decrypt failures
WIP, untested
2022-02-28 09:18:06 -05:00
zzz
c19944384e SSU2: Fix packet numbering to match spec 2022-02-27 14:50:13 -05:00
zzz
0c08a05bce SSU2: Hook in new classes to EstablishmentManager
Implement handshake retransmissions
Fix up calls to IES2/OES2
split() TODO
not hooked in to PacketHandler yet
WIP, untested
2022-02-27 12:03:28 -05:00
zzz
7eda9c77af SSU: Don't use SSU2 for peer test or relay
Add getAltStyle() so getTargetAddresses() will return SSU2
Add getSSUVersion()
2022-02-27 06:38:43 -05:00
zzz
66045cebc2 SSU2: Store RI in IES2 2022-02-27 05:41:48 -05:00
zzz
2b93dbbf48 SSU2: Add token support to EstablishmentManager 2022-02-27 05:26:04 -05:00
zzz
759f6968f6 Add SSU2 support to OMF 2022-02-26 17:15:07 -05:00
zzz
e3db28542c SSU2: Fix overhead calculations 2022-02-26 16:33:35 -05:00
zzz
e7f98e9243 SSU2: Add acks to data messages
implement buildPing() and buildACK()
2022-02-26 15:39:50 -05:00
zzz
4908f760d9 SSU2: PeerState2 I2NP handling
Handle complete messages and fragments in PeerState2
Send complete messages to transport
Add SSU2 constructor and reader in IMS
Change fragment callback to avoid an extra copy
Fix checks of fragment blocks
MessageReader cleanups for SSU1
Other cleanups

WIP, untested, not hooked in
2022-02-26 11:31:04 -05:00
zzz
6bb3657de2 SSU2: Start of packet handling
Store CipherStates in PeerState2
Add missing getVersion() overrides
2022-02-26 08:25:55 -05:00
zzz
dc40755e7c Sybil: Improve family analysis
Increase credit if family sig is verified
Speed up analysis by only looping through RIs once
Add link to all family members
Add SUNYSB certificate
bump -2
2022-02-25 10:36:17 -05:00
zzz
140ab47354 Fix SSU2 enable logic 2022-02-24 14:42:33 -05:00
zzz
da887f7c6c SSU2: Publish keys and version in address when enabled 2022-02-24 08:49:57 -05:00
zzz
f4be99ecd0 SSU: Add SSU2 class extensions and packet builder
Pass XDH key builder to UDPTransport
Add SSU2 static keygen when enabled
WIP, not hooked in
2022-02-24 06:13:28 -05:00
zzz
b8407a261e SSU2: ACK bitfield support and conversion to ACK block
WIP, not hooked in
2022-02-23 15:55:03 -05:00
zzz
969a8a5d8a SSU: Add support for SSU2 fragmentation to OMS 2022-02-23 15:22:40 -05:00
zzz
b57d9f2f7e SSU: More prep of classes for SSU2 extension 2022-02-23 11:57:03 -05:00
zzz
c9a97d889b SSU: Prep classes for SSU2 extension
add SSU2 states
2022-02-23 10:55:51 -05:00
zzz
51bdd9a283 SSU: Add getVersion() methods (prep for SSU2) 2022-02-23 09:25:21 -05:00
zzz
04dd18615c i2psnark: Load sytem mime types if available 2022-02-23 08:12:39 -05:00
zzz
265f5ee5df Util, i2ptunnel: Update firefox user-agent 2022-02-23 07:08:34 -05:00
zzz
9c3f8602da i2psnark standalone: Add startup message
update readme
2022-02-23 06:28:42 -05:00
zzz
74dedcf7f0 SSU2: More WIP 2022-02-23 06:12:35 -05:00
zzz
ae2b99b1c6 Build: Fix it 2022-02-22 14:53:41 -05:00
zzz
818ecc3563 Build: Fix testscripts target 2022-02-22 14:52:35 -05:00
zzz
5ccbeca676 bump -1 2022-02-22 10:34:31 -05:00
zzz
a621f56c33 Console: Add search for SSU2 transport 2022-02-22 10:32:25 -05:00
zzz
1513695768 Update: Add notification for new version
remove old Java 7 check
2022-02-22 10:30:41 -05:00
zzz
63e202f8f0 SSU: Start of SSU2 support
WIP, not hooked in
2022-02-22 10:27:42 -05:00
zzz
80535875ad SSU: PacketHandler cleanup (prep for SSU2) 2022-02-22 10:22:16 -05:00
zzz
f0ad921fd2 NetDB: Prevent rare deadlock via FloodfillMonitorJob at startup 2022-02-22 10:06:07 -05:00
zzz
63f3d88f78 Util: Speed up PRNG nextInt() and nextLong()
Add signedNextInt()
2022-02-22 09:57:35 -05:00
zzz
9f7f1bbcab Crypto: Prep for SSU2
- ChaCha20: Add ivOffset param
- ChaCha20/Poly1305: Add adOffset/adLength params
- Noise: Add XK-SSU2 initializer
- Noise: Add notes about handshake offsets
2022-02-22 09:45:22 -05:00
zzz
edc9d6fec5 NTCP: Reduce max writer threads 2022-02-22 09:07:58 -05:00
zzz
a089156afc Remove BOB source 2022-02-22 08:58:56 -05:00
zzz
767a5043ab Debian files for 1.7.0 2022-02-22 08:04:03 -05:00
zzz
3b9c26fe8a 1.7.0 2022-02-21 09:12:59 -05:00
zzz
961936f8d5 bump for review 2022-02-18 13:58:02 -05:00
zzz
7ea31835c2 more translations from Transifex 2022-02-18 13:44:08 -05:00
zzz
bf1f2e4635 pull translations from Transifex 2022-02-18 13:39:24 -05:00
zzz
198008472a i2psnark standalone: Raise open files ulimit
copied from i2prouter script
2022-02-17 13:58:10 -05:00
91e9d95df7 Merge branch 'docker-host-networking' into 'master'
Make Docker host networking safer

See merge request i2p-hackers/i2p.i2p!54
2022-02-16 15:53:32 +00:00
1b5feda517 generic advice for cloud deployments 2022-02-16 15:51:28 +00:00
29f74ba72a change interfaces 0.0.0.0->127.0.0.1 and update documentation 2022-02-16 11:14:10 +00:00
zzz
d6684403a2 Add new Japanese man pages 2022-02-12 13:47:52 -05:00
zzz
388aa233e0 Add new Slovenian translated resources 2022-02-12 13:30:33 -05:00
idk
ea92b79340 set table-width to fixed on console dark theme, and run the auto-indenter on the console light theme to fix it's inconsistent tabs. Merge the chrome-overrides rules on the console light theme CSS. Changes to light theme are entirely cosmetic, except that they improve the reliability of my CSS linter. 2022-02-11 23:01:51 -05:00
idk
3ba754d723 Merge branch 'master' of github.com:i2p/i2p.i2p 2022-02-11 15:34:41 -05:00
idk
d651d25de6 Merge pull request #26 from zlatinb/github-actions
Use GitHub Actions to publish installer.jar on each push
2022-02-11 15:32:37 -05:00
idk
00ea32938e set .wizardimg css to display: none on the dark theme so the light-theme background images don't show up. Normalize the wildly inconsistent tabs tabs in console.css 2022-02-11 15:27:50 -05:00
37002822b3 install.jar fix name 2022-02-11 19:50:40 +00:00
50d56ccbe8 gettext 2022-02-11 19:46:27 +00:00
48cb6f79ef Use GitHub Actions to publish installer.jar on each push 2022-02-11 19:38:04 +00:00
idk
a325e63426 use updateType instead of key for error message in ConsoleUpdateManager with custom UPP 2022-02-10 12:42:50 -05:00
zzz
309e306337 javadoc fixes 2022-02-10 09:02:39 -05:00
zzz
2ba56a5e17 Bump build time 2022-02-10 08:39:46 -05:00
zzz
c949ad5205 Update Manager: Add an UpdateType for the API version 2022-02-10 08:37:52 -05:00
zzz
5621b4bf97 GeoIP 2022-02 2022-02-10 08:28:19 -05:00
idk
dbfe8d24a8 log not-found key should an UPP error occur 2022-02-09 21:33:32 -05:00
zzz
548c0994a7 poupdate-source 2022-02-09 14:25:09 -05:00
zzz
d0ca1d38ca NTCP: Fixes for SSU disabled
Update RI reachability after first inbound connection
Allow local address in test mode
2022-02-09 06:39:18 -05:00
idk
96560e8590 Increase size of unicode links on proxy.css 2022-02-07 00:26:18 -05:00
zzz
19712cfd95 SSU: Fix race NPE in debug logging 2022-02-06 09:51:46 -05:00
idk
3dcc954341 Put description of jump link function on newline in proxy.css 2022-02-04 17:26:27 -05:00
zzz
568b5e303f Tunnels: Avoid buggy routers
SSU: Don't bid on connection to buggy routers
2022-02-03 10:36:03 -05:00
idk
73d90ed5c4 Don't add os-arch to pluginname if it's already correct 2022-02-03 01:51:33 -05:00
idk
b2fe36b0d3 Revise ShellService.name to match ShellService directory if the directory includes -SystemVersion.getOS or -SystemVersion.getArch 2022-02-02 17:37:02 -05:00
idk
632a1578a2 Check executable status of shellservice plugins in start. If the ShellService plugin name doesn't correspond to a directory, check plugin name+-$OS-$ARCH and name+$OS. 2022-02-02 15:18:25 -05:00
idk
e28f4be46b Merge branch 'plugin-config-redux' into 'master'
Adds the ability to use `$OS`  and `$ARCH`  variables in clients.config and plugins.config(updateURL.* only)

Closes #340

See merge request i2p-hackers/i2p.i2p!52
2022-02-02 18:57:30 +00:00
idk
73e34b3941 Adds the ability to use $OS and $ARCH variables in clients.config and plugins.config(updateURL.* only) 2022-02-02 18:57:30 +00:00
b4e2366458 Merge branch 'filefilter-fix' into 'master'
Fix for FileFilterDefinitionElement.  Issue #349

See merge request i2p-hackers/i2p.i2p!50
2022-01-31 13:22:44 +00:00
1389e89f6d Merge branch 'junit-deprecations' into 'master'
fix junit deprecations, issue #339

See merge request i2p-hackers/i2p.i2p!51
2022-01-31 13:11:17 +00:00
c3abe7b3d4 Do not use forEach 2022-01-31 13:10:26 +00:00
042c1e88aa fix junit deprecations, issue #339 2022-01-31 11:39:57 +00:00
899ce0f959 Fix for FileFilterDefinitionElement. Issue #349 2022-01-31 04:38:48 +00:00
zzz
5dd8139aad Reseed, DoH: Fixes for IPv6-only 2022-01-30 11:25:36 -05:00
zzz
13ee324d36 NTCP2: Clock skew handling improvements
as discussed in #ls2 meeting
- Bob replies with Session Created even if skewed,
  so that Alice finds out what the skew is
- Alice handles Session Created timestamp and drops if skewed,
  bans Bob, and updates clock if NTP failed
- If Alice does reply with SessionConfirmed, Bob will send a
  destroy with a skew error code
- Don't change skew error code if netdb store failed
- Fix skew adjustment for RTT by Bob
- Call setLastBadSkew() in the right places
- Fix ntcp.invalidInboundSkew and ntcp.invalidOutboundSkew stats
2022-01-26 07:28:43 -05:00
zzz
afa7278080 NTCP: Ban IP if RI signature fails 2022-01-25 12:22:57 -05:00
zzz
b6be2d7e65 bump -9 2022-01-25 09:42:33 -05:00
zzz
78ba3d1f68 Console: CSS tweak for messages 2022-01-25 09:41:12 -05:00
zzz
d930f0a64a Console: Set encoding for CSS 2022-01-25 09:40:02 -05:00
zzz
c1dc3c8275 Data: Remove dup check for negative tunnel ID 2022-01-25 09:37:26 -05:00
zzz
8bf87da4b1 Transport: BW limiter log and javadoc improvements
Portion of gitlab MR !49
2022-01-25 09:35:33 -05:00
zzz
8812e822f9 Util: CDPQ stat description tweak 2022-01-25 09:29:43 -05:00
zzz
f17cd24dc8 UDP: Pass message priority through to the packets
Change UDP-Sender queue from CoDel to CoDelPriority
No change to CoDel params

UDP msg priorities:
High priority: ack-only, session request/created/confirmed, relay request, hole punch, injected
Low priority: ping, destroy, peer test, relay intro/response
2022-01-25 09:27:49 -05:00
zzz
b9f53069bb Tunnels: Reimplement, re-enable using tunnel builds as a tunnel test,
but without ooming
disabled in 2009 because of ooms
2022-01-25 09:10:00 -05:00
zzz
21f5f7c148 Tunnels: Enable tunnel testing by default
disabled since 2011
2022-01-25 09:03:14 -05:00
idk
3057103875 tweak light proxy.css on non-mobile screens 2022-01-23 11:02:47 -05:00
idk
2752015b6e Simplify, add better logging, correctly mark state change in ShellService 2022-01-22 21:26:59 -05:00
idk
f2e0aacbf0 use Arrays.toString to convert trimmed process args to application args in ShellService. 2022-01-22 14:56:04 -05:00
idk
3e8f8a2bd3 add null check to isProcessRunning() in new ShellService 2022-01-22 00:12:37 -05:00
zzz
77e30e246d Util: Fix leak of SimpleTimer2 shutdown task 2022-01-21 09:09:32 -05:00
idk
5e7a00ede4 Merge branch 'fix-docker-configs-support' into 'master'
Allow chown to fail so files can be managed via docker configs and secrets

See merge request i2p-hackers/i2p.i2p!48
2022-01-16 16:45:56 +00:00
ba55ec09ed Allow chown to fail so files can be managed via docker configs and secrets 2022-01-16 16:45:56 +00:00
zzz
0b058c0ffd i2psnark: Add UDPTrackerClient
WIP - not hooked in, untested - target 1.8.0 / 0.9.54
Requires significant changes to TrackerClient
Adapted from mtn branch i2p.i2p.zzz.udpsnark (2014)
Ref: Proposal 160
2022-01-16 08:58:03 -05:00
idk
61422d9f7f Merge branch 'docker_update' into 'master'
Upgrade base image to latest version of Alpine

See merge request i2p-hackers/i2p.i2p!47
2022-01-15 20:32:48 +00:00
zzz
b63a2e41be i2psnark: html fix 2022-01-15 11:52:13 -05:00
zzz
606961c788 Console: Add ban counts to headers 2022-01-15 06:59:52 -05:00
9573c6ed0f Upgrade base image to latest version of Alpine 2022-01-14 20:17:52 +00:00
idk
70bb63e8ab Make the buttons on the save host form look like the links on the jump host form 2022-01-10 17:16:30 -05:00
idk
b96255a65b Merge branch 'master' of i2pgit.org:i2p-hackers/i2p.i2p 2022-01-10 14:44:45 -05:00
idk
e15dae5c5f Turn jump button-links back into regular-looking hyperlinks when resolution indicates we are not on a mobile device 2022-01-10 14:28:40 -05:00
zzz
695cf8796d javadoc: Add API version 2022-01-10 09:07:07 -05:00
zzz
175f043819 javadoc: Add message flow chart 2022-01-10 08:57:01 -05:00
zzz
662ea995c1 javadoc note 2022-01-07 10:48:48 -05:00
zzz
b8670e1e5b hosts.txt update 2022-01-07 05:53:50 -05:00
zzz
7f4441078d Router: Prevent deadlock at startup
in the transports through PLRIJ via FNDF.publish()
2022-01-06 07:18:42 -05:00
zzz
150248d8d7 Plugins: Fix webapp classpath setting when the webapp name does not match the plugin name 2022-01-05 16:50:33 -05:00
zzz
aaa1da4c66 Plugins: console-icon path is relative to consoleLinkURL if specified,
otherwise relative to plugin name, as before
2022-01-05 15:08:35 -05:00
zzz
8167f5184d hosts.txt update 2022-01-05 06:25:01 -05:00
zzz
034a5acd37 i2pcontrol: Send translated tunnel status string 2022-01-04 13:09:34 -05:00
idk
7249f21602 redirect output and error from process builder to files within the plugin directory 2022-01-03 14:26:27 -05:00
idk
d1192f74f2 Remove platform-specific workarounds from Java 8+ version of ShellService 2022-01-03 14:18:16 -05:00
zzz
13f910be70 i2ptunnel: Add hooks to get the session from the contoller 2022-01-02 11:23:23 -05:00
zzz
2d42541b79 i2pcontrol: Handle more router states mapping to i2pcontrol states
Linkify start/stop webapp on password page
2022-01-02 11:13:15 -05:00
zzz
131da9bdb9 javadoc fixes 2021-12-30 09:59:26 -05:00
zzz
bc97e955e2 bump -7 2021-12-28 12:24:37 -05:00
zzz
faa1bf117a i2ptunnel: Add IRC filter support for IRCv3 message tags
Required for irc.ilita.i2p
2021-12-28 12:07:07 -05:00
zzz
aa386f3bdc bump -6 2021-12-28 10:02:27 -05:00
zzz
f1170b948f NetDB: StoreJob reliability improvements
- Always use a lease as the reply tunnel when publishing LS through a client tunnel
  This ensures we're not using about-to-expire tunnels for the reply,
  and ensures the ff is able pick an alternate
- Don't count skipped peers as attempted in FloodfillVerify
- Pass failed and skipped peers to FloodfillVerify job to be skipped there also
- Pass failed and skipped peers from FloodfillVerify job to the next StoreJob on failure
- Consolidate common reply token generation code in StoreJob
- Ensure tunnel diversity in StoreJob retries by only
  using tunnels closest to the target for the first request.
  This increases reliability by not reusing the same tunnels for all retries.
- Refactor StoreState to rework inefficient methods and unused data
- Clean up commented-out code in StoreState
- Log tweaks
2021-12-28 09:57:42 -05:00
zzz
59ab40779c NetDB: RepublishLeaseSetJob
Don't requeue on failure if there is a newer LS, KNDF will have already done that.
Log tweaks and cleanups
2021-12-28 09:44:39 -05:00
zzz
85b9862b64 NetDB: Ensure tunnel diversity in ISJ retries
by only using tunnels closest to the target for the first request.
This increases reliability by not reusing the same tunnels for all retries.
2021-12-28 09:24:35 -05:00
zzz
132d76a06b NetDB: SearchJob minor cleanup, only call getHash() once 2021-12-28 09:15:48 -05:00
zzz
c4b4b2d4b2 NetDB: Increase lookup throttle time
This reduces the max lookup rate
2021-12-28 09:12:29 -05:00
zzz
db6914f555 NetDB: Use same dbResponseTime rate in ff peer selector as in KNDF.getPeerTimeout()
10 minute rate is too short
Change to getAvgOrLifetimeAvg()
Reduce max time
2021-12-28 09:02:40 -05:00
zzz
bef729463d NetDB: Fix usage of dbResponseTime stat
Actually update the stat for stores in dbStoreSent();
we are generally storing to different ffs than lookups, so we need the
stat for stores as well, since we use it as the timeout in StoreJob.

Change from 1-day to 1-hour stat.
Switch to avgOrLifetimeAvg() so the rate is always valid.
Reduce max time used for timeout.
This allows more peers to be tried before total timeout
Previously, the per-peer timeout was almost always the max.
Make sendStore() package private.
Javadocs and cleanups.
2021-12-28 08:56:47 -05:00
zzz
d0e72aca66 Console: Partial string case-insensitive match for netdb family search 2021-12-28 08:55:29 -05:00
zzz
46ee8be9c6 i2psnark standalone: Add version number to header 2021-12-27 12:40:33 -05:00
zzz
cc3d2cf67b bump -5 2021-12-27 09:00:11 -05:00
zzz
57c997730f Console: Fix display of ip lookup param with netmask in netdb search 2021-12-27 08:55:49 -05:00
zzz
0826f431ef i2psnark standalone: Fixes for router startup and shutdown
so that torrents stop when the router stops and restart when the router restarts.

- Use BWLimits from the DirMonitor as a periodic test that the router is there
- DirMonitor does not attempt to autostart torrents if BWLimits test fails
- DirMonitor does autostart existing torrents when BWLimits test passes again
- Register disconnect listener with socket manger and stop all torrents on disconnect
- Use stopTorrent(true) on router errors to prevent changing the persisted torrent running status
- Change autostart default to true for standalone

Possibly more todo for corner cases or other start/stop/fail scenarios.
2021-12-27 08:52:56 -05:00
zzz
c63cb378e8 I2CP: Send DestroySession message when destroying session
in client-side AppContext SimpleSession, to prevent router-side
error message when closing socket, e.g. for BW limits check
2021-12-27 08:32:04 -05:00
zzz
242dc92397 Banlist: Increase ban time again for routers without netID
it's not a i2pd bug at startup that fixes itself.
2021-12-27 08:27:11 -05:00
zzz
26f34d6985 Debian: Update URL in watch file 2021-12-23 15:28:07 -05:00
idk
e002d3f558 Move ShellService into net.i2p.router.web 2021-12-23 15:10:24 -05:00
zzz
3d5dd639e3 i2psnark standalone: Use previously translated I2CP connect error 2021-12-23 13:49:18 -05:00
zzz
2bfedfbc74 i2psnark standalone: Translate I2CP connect error 2021-12-23 13:06:58 -05:00
zzz
70131c6b25 i2psnark standalone: Pass ctx to logger 2021-12-23 12:02:19 -05:00
zzz
e946040ddd i2psnark standalone: Redirect jetty logging to i2p log 2021-12-23 11:54:51 -05:00
zzz
bab37e57fe i2psnark: Add note for translators 2021-12-23 11:23:00 -05:00
zzz
70e06de846 i2psnark: Translate theme names, translated sort 2021-12-23 11:01:05 -05:00
zzz
11f60a7192 i2psnark standalone: Set launch-i2psnark +x 2021-12-23 09:47:48 -05:00
zzz
6282c365bb i2psnark standalone: Update readme 2021-12-23 09:12:57 -05:00
zzz
621ea49621 i2psnark standalone: Add da, el, and fa to language menu 2021-12-23 08:16:32 -05:00
zzz
e51738d180 i2psnark standalone: Add jbigi.jar
as requested by R4SAS
2021-12-21 06:51:06 -05:00
zzz
811442f9cb Transport: Async NTCP writes (MR !43)
- Write directly from writer threads, except for during establishment and when write doesn't complete; throw those to the pumper as usual
- New NTCPCon writelock, readlock, and statlock (formerly all on NTCPCon.this) to prevent deadlocks
- NTCPCon chan and key now volatile, remove synch to prevent deadlocks
- All interestOps changes now lock on the key via setInterest() and clearInterest() since changes may now happen in multiple threads
- Set _paddingConfig at initialization to avoid NPE

Greatly reduces pumper loops and CPU

As proposed by jogger
Reviewed by zlatinb
Ref: http://zzz.i2p/topics/3192
2021-12-21 06:37:10 -05:00
zzz
464a39b939 MaskedIPSet: More efficient string generation
and don't IAE on 8 byte negative value
2021-12-19 10:53:50 -05:00
zzz
1a05083ed0 Tunnels: Double mask value for IPv6
rather than using a fixed value of 6
so IPv6 default is now 4
2021-12-19 08:38:13 -05:00
zzz
937b6120ff i2psnark standalone: Add notes about changing browser and port 2021-12-18 07:52:30 -05:00
zzz
2a451cdb97 bump -3 2021-12-18 06:34:21 -05:00
zzz
ccba4a197d Tunnels: Do not allow failed tunnels to be rebuilt 2021-12-18 06:33:36 -05:00
zzz
feaff690a3 Debian build doc update 2021-12-18 06:28:19 -05:00
zzz
098ef9a0ff Tunnels: remove log in test timeout job 2021-12-18 06:27:18 -05:00
zzz
f317d29dd5 javadoc fix 2021-12-18 06:25:04 -05:00
zzz
f17b568f19 Tunnels: Remove old NTCP cost=2 check in MaskedIPSet 2021-12-18 06:22:54 -05:00
zzz
5029516087 i2ptunnel: Use defined SOCKS constants 2021-12-18 06:21:25 -05:00
zzz
69699638ae i2psnark: Add avif mime type 2021-12-18 06:19:49 -05:00
zzz
e6c76fa5ae Console: CSS tweak for update status box 2021-12-18 06:18:49 -05:00
zzz
b8435f5e9e Tunnels: Cleanup settings for IP restriction
Check bounds at initialization
Remove unused setIPRestriction()
2021-12-18 06:17:41 -05:00
zzz
5995b0b7a7 Tunnels: Restore support for IP restriction in client tunnels (MR !45)
Removed in May 2011 when we added fast tier slices
Also add support in exploratory tunnels
Create MaskedIPSet in peer selectors, pass to ProfileOrganizer.selectXXX() for each call.
Not required for one-hop tunnels.
Disable for test networks (i2np.allowLocal)
Reported by 'vulnerability_reports' http://zzz.i2p/topics/3215
2021-12-18 06:14:09 -05:00
zzz
80237a57bd Reseed: Renew SSL cert 2021-12-13 07:01:41 -05:00
idk
c4cfe420a6 disable any chance of JNDI lookups in log4j.properties file by setting %m{nolookups}. I don't think we're actually vulnerable to CVE-2021-44228 if I'm understanding correctly, by default it doesn't seem like we actually use log4j for much of anything and we don't do much logging of arbitrarily crafted remote inputs, but also it seems like this JNDI lookups thing is way more trouble than it could possibly be worth to us. Maybe it's a good idea to make sure it's turned off by default. 2021-12-10 21:01:37 -05:00
zzz
14c5d54f0e Reseed: Server list update 2021-12-10 07:58:08 -05:00
zzz
b1a4a8517e i2ptunnel: Refactor UDPTunnel, Streamr, and SOCKS UDP for I2CP ports
- Add fromPort and toPort to Sink interface (breaking API change)
- Change cache maps from Destination to I2PSocketAddress to include port
- Accept host:port for destination in Streamr Client, use port
  as toPort in pinger
- Change to muxed listener in I2PSource, only listen for
  specified protocols
- Eliminate thread and queue in I2PSource, process messages inline
  in the listener
- Add support for handling both repliable and raw datagrams in
  a single I2PSource instance
- Remove verify option from I2PSource and I2PTunnelUDPServerBase,
  always verify repliable datagrams
- Add getPort() method to UDPSource
- Add a constructor to UDPSink to pass in an existing DatagramSocket
- Change I2PTunnelUDPClientBase to receive both repliable and raw
- Change SOCKSUDPTunnel reply handling strategy to key on I2CP toPort;
  remove ReplyTracker; the tunnel would not have worked before, because
  it expected raw replies only but MultiSink required a destination
  to look up where to forward the reply.
- Mark SOCKSUDPTunnel as preliminary; note lack of support
  for raw replies; untested
- Change Streamr Client Pinger to support fromPort
- Change Streamr Server to remember fromPort in subscriptions
  and use it as toPort in data stream
- Move fields to top of classes for sanity
- Cleanups and log tweaks
2021-12-08 13:05:27 -05:00
zzz
22ff40bc84 Build: Add missing @Override annotations (dep-ann lint) 2021-12-07 15:33:41 -05:00
zzz
b5d7dffb08 Debian: Add explicit dependency on libservlet3.1-java (Debian #997213)
libjetty9-java used to depend on libservlet3.1-java
but now in sid it doesn't.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=997213
2021-12-07 14:14:32 -05:00
zzz
a59cad0066 Router: Tweak shutdown messages
Change one from CRIT to WARN
Translate one of them
Attempt to translate class name in notifications
2021-12-05 07:21:57 -05:00
zzz
cbb6a6db65 DTG: Add menu items to control notifications
Fix check for successful configuration save
2021-12-05 06:38:28 -05:00
zzz
730b9790d9 Console: Remove job queue link on /configservice 2021-12-04 16:54:12 -05:00
zzz
ebf6ca5b34 Console: Case-insensitive sort of jobs on /jobs 2021-12-04 16:03:53 -05:00
zzz
0422134a86 SusiMail: Notify new messages on DTG
experimental
2021-12-04 12:47:47 -05:00
zzz
1a77352fa7 i2psnark: Notify completed downloads on DTG
experimental
2021-12-04 11:59:39 -05:00
zzz
cc971eb34f Build: Fix minimum Java version in installer config 2021-12-04 10:56:45 -05:00
zzz
fa0e59435e DTG: Change icon from white to black on Windows by default
Will be set to the opposite of the console theme.
2021-12-04 10:48:11 -05:00
zzz
962cc31f31 DTG: Show all CRIT messages on DTG.
Experimental, may add a separate config or disable later.
Show I2P starting message in DTG
2021-12-04 09:50:08 -05:00
zzz
87362fd68b i2psnark: Edit torrent page cleanup - remove unneeded info 2021-12-04 08:02:37 -05:00
zzz
51f6bef5dc i2psnark: Respect newlines in torrent comments 2021-12-04 07:38:24 -05:00
idk
a1ea48e2b6 Fix the very first ShellService bug, the long pid should be parsed from the pidString from the wrapper output, or it won't be available 2021-12-03 22:44:46 -05:00
zzz
e9aa3a55cc Add file missing from previous checkin to fix build 2021-12-03 16:51:51 -05:00
zzz
d03c690724 Tunnels: Immediately fail outbound tunnels when
we can't connect to the first hop
by attaching an onSendFailJob in OutboundSender.
Check if failed in isValidTunnel()
2021-12-03 12:51:01 -05:00
zzz
2a900a8c5b i2psnark: Add torrent edit page
Additional UI cleanup to follow
2021-12-03 06:26:14 -05:00
zzz
de995761db Tunnels: Change tunnel test failure count to AtomicInteger 2021-12-03 06:15:37 -05:00
zzz
cfbdf8385d Tunnels: Count consecutive build timeouts per-pool
Use exploratory paired tunnel after too many timeouts
2021-12-03 06:10:21 -05:00
zzz
83b959c4a1 Tunnels: Remove 2nd arg on TestJob failure stats 2021-12-03 05:51:56 -05:00
zzz
e66ec208a8 Tunnels: Refactor build completion handling
- Add result code to BuildExecutor.buildComplete() and TunnelPool.buildComplete()
- Remove BuildExecutor.buildSuccessful(), move to buildComplete()
- Move ExpireJob creation to buildComplete()
- TunnelPool.buildComplete() now calls addTunnel()
- Eliminate some now() calls
2021-12-03 05:48:27 -05:00
zzz
cf22186182 Router: Shorter ban time for localhost addresses 2021-12-01 15:51:44 -05:00
zzz
890a8927a5 DTG: Add notification service to display popup messages
unused for now
2021-12-01 08:37:51 -05:00
zzz
dd439bc9be Transport: Add NTCPConnection.getRemoteIP()
to match SSU PeerState method
2021-11-30 11:24:24 -05:00
zzz
537a8bf19b Console: Linkify router hashes on Sybil analysis 2021-11-30 11:14:51 -05:00
zzz
bd0c696b84 CLI: Allow empty blocklist when signing news feed 2021-11-30 11:11:30 -05:00
zzz
5c56884d7f bump -1 2021-11-30 10:51:33 -05:00
zzz
b53707074f DTG: Add classpath to jar, add early check for support when called by CLI
for ease of command-line testing
2021-11-30 10:26:52 -05:00
zzz
6cb8d2eeb7 i2ptunnel: Increase default priority for IRC and standard tunnels 2021-11-30 10:23:14 -05:00
zzz
3895cd1068 Console: NetDB search form improvements 2021-11-30 09:53:44 -05:00
zzz
5b2fbc4ec4 Build: Add bumpBuildTime target 2021-11-30 09:35:06 -05:00
zzz
87654e2f4f Build: Remove BOB from installer, updater, and clients.config
Source remains for now and may still be built with ant buildBOB.
Existing non-package installs will continue to work.
2021-11-30 09:31:06 -05:00
zzz
9c29f8c8ff Debian files for 1.6.1
fix a lintian warning about compare-versions
update launchpad doc for git
2021-11-30 08:53:49 -05:00
zzz
619c36d18d 1.6.1 2021-11-29 12:21:54 -05:00
zzz
cf10a2d5b6 Tunnels: Fix NPE in BuildHandler 2021-11-29 12:19:02 -05:00
zzz
56fdc244d4 1.6.0 2021-11-29 10:41:18 -05:00
zzz
adc69c0d9a Refresh Debian patch 2021-11-29 10:31:55 -05:00
zzz
dd9a5548a8 Man pages: Update bug reporting URL 2021-11-27 08:52:30 -05:00
zzz
ab88f86954 ShellService: More import cleanup 2021-11-27 08:05:57 -05:00
zzz
9466b225b6 blocklist update 2021-11-26 12:47:35 -05:00
zzz
ef1e2b02de Build: Fix the tagged string with '75%'
which causes gettext to add a java-printf-format directive,
then the testscript fails if the translated
string doesn't have a '%' in it; strip out the directive
Bump for review
2021-11-26 11:13:41 -05:00
zzz
ee68aec647 Pull translations 2021-11-26 11:06:29 -05:00
zzz
3dfeb92b63 Update bug report links 2021-11-24 10:33:30 -05:00
zzz
ee5288ebb1 i2ptunnel: AccessFilter findbugs 2021-11-24 09:08:18 -05:00
zzz
488acdfd98 Util: ShellService findbugs and cleanups 2021-11-24 08:59:08 -05:00
idk
ee2e7ec30d Merge branch 'master' of i2pgit.org:i2p-hackers/i2p.i2p 2021-11-23 14:08:19 -05:00
idk
40466bc602 Tweak location of dark theme animation. Closes #335 2021-11-23 14:06:41 -05:00
zzz
d8d6954ef0 BuildTime update 2021-11-23 09:57:59 -05:00
zzz
0aa4550bbe Add Hungarian man pages 2021-11-23 07:51:47 -05:00
zzz
ad82946fd3 Tunnels: Drop request if hop throttle exceeded by 50%
Revert banning peer in throttles
2021-11-23 07:25:53 -05:00
zzz
77b48a48ab Console: Remove tinhat from home page at op's request 2021-11-22 09:38:35 -05:00
zzz
d948fa8db3 Update: Fix registered version of feed blocklist after update 2021-11-21 08:50:10 -05:00
zzz
31393c2bef Update: Add message about pack200 plugins 2021-11-21 08:32:09 -05:00
zzz
e3fc34ef1f Tunnels: Ban peer on excessive build requests
Drop requests if previous or next peer is banned
Console: Drop peer when manually banned
Update: Drop peer when banlisted
2021-11-21 08:17:43 -05:00
idk
d7fdd6d9dc Merge pull request #24 from kfeoktistoff/debian_mkdir_log_on_startup
debian: create a log dir on startup if absent
2021-11-20 21:53:06 +00:00
idk
5a3a7b843a Merge pull request #23 from shisheng-1/Modify_GRADLE_1
Improve GRADLE build Performance
2021-11-20 21:22:01 +00:00
e06f8961b4 debian: create a log dir on startup if absent 2021-11-20 17:35:28 +00:00
idk
9d1aa5b762 Merge branch 'shellservice' into 'master'
Manage Fork-and-Exec Plugins by Monitoring them by PID

See merge request i2p-hackers/i2p.i2p!39
2021-11-17 17:42:50 +00:00
idk
2e71a0b36a Manage Fork-and-Exec Plugins by Monitoring them by PID 2021-11-17 17:42:45 +00:00
zzz
b072f40ed1 Initial Slovenian translations for a few resources
not added to menu yet
2021-11-17 09:00:00 -05:00
zzz
35d2f118ce poupdate-source 2021-11-17 08:30:23 -05:00
idk
3f7f315951 Place .wizardnotice at bottom right of screen above the buttons on both dark and light themes(#335) 2021-11-16 12:21:40 -05:00
zzz
6ef4c74d97 NTCP: Move wantsWrite(byte[]) from EventPumper to NTCPConnection
for sanity in following the write code path, rather than
going from con to pumper to con, keep the code in con.
Prep for possible write-side improvements in a future release,
ref: http://zzz.i2p/topics/3192
2021-11-16 11:09:05 -05:00
zzz
0e4d684e7d NetDB: Add new reseed 2021-11-16 10:58:38 -05:00
zzz
e3be6b50ce Tunnels: Use connected peer for closest inbound hop when
approaching conn limits to increase tunnel build success

This should reduce chances of tunnel builds pushing us over conn limits,
and reduce build failures and watchdog warnings when at conn limits.
2021-11-12 07:21:27 -05:00
zzz
dad2bed334 GeoIP 2021-11-01 2021-11-09 08:35:11 -05:00
zzz
bbe66f0e18 Util: DoH server list update 2021-11-08 13:04:01 -05:00
27bf65c1a4 Improve GRADLE build Performance 2021-11-06 00:13:26 +08:00
zzz
9c7b415d62 Util: Don't warn for new SU3 file types 2021-11-03 08:11:05 -04:00
zzz
78e4572a8c CSS button and checkbox spacing,
NTCP table fixes
2021-10-28 09:08:52 -04:00
zzz
4507ecd5f2 javadoc PKF clarification 2021-10-28 09:06:54 -04:00
zzz
721d39c01d Remove UDPPacketReader logging 2021-10-28 08:25:43 -04:00
zzz
427fc1c1ca More javadocs on getLibDir() 2021-10-27 10:02:45 -04:00
idk
33f1b3be87 Merge branch 'add-libdir' into 'master'
Add an i2p.dir.lib property

See merge request i2p-hackers/i2p.i2p!40
2021-10-26 16:22:37 +00:00
idk
7e1c8c7983 Add an i2p.dir.lib property 2021-10-26 16:22:36 +00:00
idk
aa6b27d829 Merge branch 'backup-locale-conf' into 'master'
This adds inclusion of /etc/locale.conf to i2prouter i2p.init, per backup's...

Closes #326

See merge request i2p-hackers/i2p.i2p!41
2021-10-26 16:06:13 +00:00
idk
999e2615c3 This adds inclusion of /etc/locale.conf to i2prouter i2p.init, per backup's... 2021-10-26 16:06:12 +00:00
zzz
807b7d672f Debian: Update JRE dependencies 2021-10-23 12:03:49 -04:00
idk
685a2f1e39 4217a05ae9 and 1e70849bde were mis-tagged, cannot rewrite history on master, they apply to #335 and not #338 2021-10-21 13:53:48 -04:00
idk
4217a05ae9 Make the background images closer to exactly the same size on /welcome, #338 2021-10-21 13:40:28 -04:00
idk
1e70849bde Checkin consistency fixes for wizard themes, should address remaining issues with #338 2021-10-21 12:53:01 -04:00
zzz
1ab3e9b310 SSU: Send Bob-to-Alice Peer Test message in-session
Matches what i2pd does.
More checks to require in-session for
Alice/Bob and Bob/Charlie Peer Test messages.
2021-10-20 09:37:32 -04:00
zzz
fd2cf972bf Javadoc typos 2021-10-14 07:49:02 -04:00
zzz
d9eed6446e Util: Add more Intel processors to CPUID 2021-10-13 08:51:12 -04:00
zzz
6b823e6381 Tomcat 9.0.54 2021-10-11 10:46:26 -04:00
zzz
917b7e615e javadoc fix 2021-10-11 07:43:15 -04:00
zzz
af97381461 Jetty 9.3.30.v20211001
Remove patched SslConnection.java for Jetty #6072, fix included in this release
2021-10-10 12:09:12 -04:00
idk
4975bb1482 Fix positioning of options on welcome page between instructional text and progression buttons 2021-10-06 11:43:21 -04:00
zzz
83e2246195 Console: eepProxy -> proxy 2021-10-05 10:32:20 -04:00
zzz
3632070e3f i2ptunnel: Move the "(0 = unlimited)" text from section headers to tooltips 2021-10-05 09:56:55 -04:00
zzz
0cb30a085c i2ptunnel: Save access list as B64 to save space
Convert access list to B32 and sort in UI
Remove blank lines in get/set
2021-10-05 09:34:57 -04:00
zzz
a7a59a2b1b NetDB: Reduce ban time for routers without netId
Don't ban routers with bad netId before RI validation,
unless that router sent the RI
2021-10-05 08:40:30 -04:00
zzz
bf7155b935 NetDB: Consolidate getKBucketSetSize() calls
reported by jogger
fix javadoc
2021-10-03 10:13:04 -04:00
zzz
62fb294f54 Console: Replace n/a with -- on floodfills page for readability 2021-10-03 09:46:18 -04:00
zzz
b7e710b28f Wizard: Add theme picker page
Clean up configui.js
CSS cleanups for new page TODO
Gitlab #335
2021-10-03 09:05:26 -04:00
zzz
4a8534e4e6 SSU: Downgrade fragmentation log errors to warn
reported by drzed
2021-10-02 13:40:23 -04:00
zzz
aa4e2f5c95 Console: ConfigUIHelper minor refactor (prep for wizard) 2021-10-02 09:06:50 -04:00
zzz
fe4fbce7bd Wizard: Add a simple progress ticker to bw test status 2021-10-02 08:10:40 -04:00
idk
33374eacaa add input:disabled and button:disabled to dark theme css 2021-10-01 13:12:21 -04:00
zzz
cea76ed9d5 i2ptunnel: Fix enc type configuration logic 2021-10-01 08:18:07 -04:00
zzz
f41db2685e i2ptunnel: Center text in buttons (light) 2021-10-01 07:40:31 -04:00
zzz
95bf068b0a i2ptunnel: Remove experts-only label for X25519-only option 2021-10-01 07:39:09 -04:00
idk
e2caa246f2 Line up the columns on results page of the bandwidth wizard. Remove some unnecessary box-shadows which are causing optboxes to appear blurry in some cases. 2021-09-30 16:36:46 -04:00
idk
bed013d858 hide notification div when bandwidth test is complete, switch back to green icon for slide messages 2021-09-30 14:14:10 -04:00
zzz
282460cb3f Console: Add js to /configui to preview themes
Save theme change before form processing so no refresh required
Enable/disable reset and apply buttons on config clicks
Prep for theme picker in wizard
2021-09-30 09:55:35 -04:00
idk
f015d1f490 Merge branch 'master' of 127.0.0.1:i2p-hackers/i2p.i2p 2021-09-29 17:56:48 -04:00
idk
f0758ee36f Adjust alignment of notifications and increase contrast on dark theme /welcome, progress on #335 2021-09-29 17:55:49 -04:00
idk
c77e9537ae Adjust alignment of notifications and increase contrast on dark theme /welcome, progress on #337 2021-09-29 17:54:08 -04:00
zzz
b7de63e922 Console: Wizard HTML fixes 2021-09-28 12:15:01 -04:00
zzz
13ade14289 Console: Refactor wizard progress indicator 2021-09-28 09:52:07 -04:00
zzz
2b43e4e4b5 Router: Rekey all Android/ARM routers 2021-09-27 10:26:03 -04:00
idk
571986a78b Add transparent channel to wizardlogo.png s and blend with exclusion instead to improve appearance of logo on dark theme. 2021-09-26 02:24:42 -04:00
zzz
d7c89be9a2 Tunnels: Implement Bloom filter for short TBM
Reduce TBM Bloom filter size and interval for EC routers
2021-09-25 09:12:15 -04:00
zzz
d466fd6799 UDP: Use a single PacketBuilder everywhere 2021-09-22 12:44:28 -04:00
zzz
116ec88f56 UDP: Replace ACKSender thread with per-PeerState delayed ack timers
(low latency improvements part 2)

Timer is created in PeerState messageFullyReceived() and messagePartiallyReceived().
Don't send a delayed ack-only packet if acks are sent in a data packet first.

Reviewed and tested by zlatinb.
Related MRs: !36 !37 !38
2021-09-22 12:12:16 -04:00
346372e002 Merge branch 'ssu-low-latency-2' into 'master'
SSU low-latency changes pt1

See merge request i2p-hackers/i2p.i2p!37
2021-09-17 16:36:42 +00:00
f14b7d53a3 reduce the delay in ACKs to the minimum of rtt/2 and the constant 2021-09-17 17:32:37 +01:00
3355daa334 introduce a lock just for _sendWindowBytesRemaining field 2021-09-17 17:31:45 +01:00
zzz
67fea26638 Wizard: remove 'Tcpbw100' from test status messages 2021-09-16 11:50:44 -04:00
zzz
b1c367777d Console: Add constants for wizard page numbers
to make it easier to add/remove/reorder pages later
2021-09-16 10:50:57 -04:00
zzz
3917dc6d2f I2CP: Don't call listener.readError() after external client disconnect via destroySocketManager()
prevents log error on normal client shutdown
reported and tested by zlatinb
2021-09-10 13:43:26 -04:00
zzz
2d239edf34 Update: Get backup URLs from news feed
Remove hardcoded backup URLs
Parse i2p, clearnet, and clearnet-ssl URLs from news
Write i2p, clearnet, and clearnet-ssl URLs to old news format
Clearnet and clearnet-ssl URLs currently unused; no handler is registered
2021-09-05 10:47:10 -04:00
1fbe084b74 Update build.xml 2021-09-03 07:16:57 +00:00
7a37f09334 Merge branch 'choking-retransmission-fix' into 'master'
Prevent the sender from sending too far ahead of an unacked packet

See merge request i2p-hackers/i2p.i2p!35
2021-09-02 17:26:54 +00:00
1ae05103e4 Prevent the sender from sending too far ahead of an unacked packet 2021-09-02 18:22:12 +01:00
zzz
a66422fa3c Console: Catch error checking systray availability (gitlab issue !331) 2021-08-28 09:05:38 -04:00
zzz
dabc29f8a5 Build: Always echo JDK version 2021-08-27 09:51:32 -04:00
zzz
132da4a35a Debian: Add copyright file to apparmor list 2021-08-27 09:42:28 -04:00
zzz
ea1eac2343 Tunnels: Enable sending short tunnel build messages,
remove debug settings
2021-08-26 10:23:13 -04:00
zzz
569e035bfd Router: Increase rekey probability to 1 in 4 2021-08-26 09:57:16 -04:00
zzz
8b1b5d4eb3 Debian files for 1.5.0
Fix build error dh_installdocs linking from the libjbigi-jni arch package
to an arch:all package, this is an error for compat level 10.
2021-08-26 09:52:40 -04:00
zzz
33f64f7913 build checklists and windows scripts updates for 1.x 2021-08-24 09:58:17 -04:00
zzz
e340fc885d 1.5.0 / API 0.9.51 release 2021-08-23 10:34:39 -04:00
zzz
63b3da265b javadoc fix 2021-08-23 09:21:24 -04:00
zzz
03f2cbfc89 bump -10 for review 2021-08-20 13:58:51 -04:00
zzz
7f5e7e54c0 Add Hungarian readme
fix routerconsole po files failing testscript
2021-08-20 13:19:42 -04:00
zzz
30aab77047 Pull translations from Transifex 2021-08-20 12:56:07 -04:00
zzz
367a35e531 refresh Debian patches 2021-08-20 09:28:29 -04:00
zzz
76a48f5983 GeoIP 2021-08-01
BuildTime update
2021-08-20 09:08:43 -04:00
idk
6a1ad6bef5 line up margin for unordered list on susidns.css 2021-08-18 16:50:08 -04:00
zzz
ef947e2dbc spelling fix 2021-08-14 09:38:42 -04:00
zzz
de73dec4b8 Crypto: Fix corruption of EC and DSA private keys on Java 17
Update test to try all key types
2021-08-13 10:15:24 -04:00
zzz
4938e13f0e poupdate-source 2021-08-11 11:38:49 -04:00
zzz
dc48afe89d Remove dead links 2021-08-11 08:18:40 -04:00
idk
15cfa147a6 Add descriptions of the address book section to the front page in susidns. This is the last string change I intend to check in for this cycle. 2021-08-10 16:10:07 -04:00
zzz
7d1656c20f UPnP: Fix construction of absolute URLs
where the service relative URL is an absolute path
and the location absolute URL is below the top level.
Fixes communication with "Freebox" UPnP routers.
ref: http://zzz.i2p/topics/3157
2021-08-07 08:39:05 -04:00
zzz
2cb0650980 javadoc fix 2021-08-03 08:37:41 -04:00
zzz
cf38697774 Update: Show restart button after an update is handled by a post-processor 2021-08-02 11:36:38 -04:00
zzz
f2b878d02a Data: Remove unused static field deprecated long ago 2021-07-30 12:17:15 -04:00
zzz
877b1f5f56 Build: Add resources to dependencies
remove unused systray icons
2021-07-30 10:35:12 -04:00
zzz
a634a9e3cf Util: DoH server list update 2021-07-30 10:12:59 -04:00
zzz
c652d597c9 Tunnels: Prop. 157 updates
- Enable handling
- Remove option to disable garlic reply
- Add option to enable sending
2021-07-29 09:51:21 -04:00
zzz
9db50256a8 Console: whitespace fix 2021-07-28 11:11:46 -04:00
zzz
2edac95be9 Tunnels: Updates for proposal 157
- Fix compatibility check for OB tunnels
- Add test code to send STBM to explicit peers
- Skip too-many-tunnels check when in test mode
- Cleanups and Log tweaks
2021-07-28 11:09:51 -04:00
idk
d246689242 Address some font size, section size, and spacing issues on proxy.css 2021-07-23 17:01:52 -04:00
zzz
6eb1510324 Transport: Fix UPnP IPv6 NPE
ref: http://zzz.i2p/topics/3153
2021-07-23 11:07:59 -04:00
zzz
24ef2b5189 Prop. 157 fix for ChaCha20 IV
after testing with i2pd
2021-07-22 15:15:26 -04:00
zzz
2b3a0f0232 bump -5 2021-07-20 10:52:33 -04:00
zzz
cd7c2efda8 build doc update 2021-07-20 10:50:13 -04:00
zzz
ca879f04e3 javadoc 2021-07-20 10:49:14 -04:00
zzz
369c40322e Make method static 2021-07-20 10:47:50 -04:00
zzz
3244fe1b0f Tunnels: Add check for prop. 157 layer enc. type 2021-07-20 10:44:38 -04:00
zzz
6b2a4a8fda Streaming: remove unneeded returns 2021-07-20 10:39:59 -04:00
zzz
83e67ad9d8 Sybil: Increase min display points 2021-07-20 10:37:08 -04:00
zzz
9f0d6c302f Router: New blocklist entries
as reported by drzed
2021-07-20 10:34:57 -04:00
zzz
d42d41ce0a Util: Check java versions up to 17 2021-07-20 10:33:53 -04:00
zzz
7ff6373d0c Output stream to string optimizations 2021-07-20 10:31:52 -04:00
zzz
3bf3a4ff9d NetDB: Increase min ff version to 0.9.38
previously was .38 for LS2 stores/lookups only
2021-07-20 10:26:17 -04:00
idk
4c5823ecb7 remove console.css lines from build.xml 2021-07-20 09:22:36 -04:00
idk
8b95aa9652 Merge branch 'proxy-css' into 'master'
Proxy Error Page CSS

Closes #330

See merge request i2p-hackers/i2p.i2p!34
2021-07-19 18:30:52 +00:00
idk
71ccd10ba6 Proxy Error Page CSS 2021-07-19 18:30:52 +00:00
zzz
426fbcbfa3 Prop 157 updates
- Fix registration of reply key/tag with SKM
- Allow OTBRM down client tunnel
- Disable tunnel hop throttles for allowLocal
- Various cleanups
2021-07-18 14:22:57 -04:00
zzz
a7d9ca920f Prop 157 updates
- Don't require AES keys for short records
- Derive keys from noise ck
- Use derived keys to garlic-encrypt reply at OBEP
- Register reply key with SKM
- Only use short message for client tunnels if client supports EC
- Set nonce for chacha/poly reply record
- Add tagsReceived() for single tag to MuxedSKM
- Add extended TunnelCreatorConfig.toStringFull()
- BRR toString() enhancements
- Test enhancements
2021-07-16 12:28:04 -04:00
idk
f40eff6b7e Merge branch 'master' of 127.0.0.1:i2p-hackers/i2p.i2p 2021-07-14 15:34:45 -04:00
idk
187ebf4c4a remove echelon.i2p from the English-language readme.html 2021-07-14 14:43:35 -04:00
zzz
1e7b13db66 HopConfig: Remove unused reply fields
previously moved to TunnelCreatorConfig
toString() enhancements
2021-07-14 10:51:57 -04:00
zzz
bc13f64403 Prop. 157 javadoc updates 2021-07-13 11:32:11 -04:00
zzz
617fff175e Tunnels: Prop. 157 updates
- remove ITBM
- remove plaintext slot from OTBRM
2021-07-13 09:47:30 -04:00
zzz
8710aa0065 Fix package for new "filter" 2021-07-13 08:23:32 -04:00
idk
558aa6e421 Merge branch 'x-i2p-location' into 'master'
Adds an X-I2P-Location header filter to the default I2P site

See merge request i2p-hackers/i2p.i2p!22
2021-07-12 14:21:23 +00:00
idk
1911132f11 Adds an X-I2P-Location header filter to the default I2P site 2021-07-12 14:21:23 +00:00
zzz
373924e650 Streaming: Reduce immediate ack delay 2021-07-07 08:31:17 -04:00
zzz
9c74cafd92 UPnP: IPv6 address validation fix 2021-07-02 07:51:01 -04:00
zzz
e88eed760d Streaming: Minor cleanups
- Remove unused stream.trend stat
- Optimization of getting first value from TreeMap
- Only notify reader of input stream when new data available
2021-06-27 11:50:20 -04:00
zzz
b7322e1647 Tests: Add resources to test jars
Fix duplicate classes in i2ptest.jar
Change classpath in routertest.jar to point to i2ptest.jar
2021-06-22 10:00:44 -04:00
zzz
bb19fcdac3 Tunnels: Changes for new build messages (Prop. 157)
- Remove ITBM, change record length from 236 to 218 bytes
- Fix check of blank record in BuildReplyHandler
- Fix offset constants for short record in BuildRequestRecord
- Fix BuildMessageTestStandalone test 6 (short inbound)
- ITBM class removal TODO
2021-06-22 09:06:40 -04:00
zzz
d71a472367 fix deprecation in test 2021-06-21 12:06:29 -04:00
zzz
e5186b0f7b Improve error handling on sort 2021-06-20 09:39:12 -04:00
zzz
fd6219356d Jetty: Case-insensitive sort on directory listing, put directories first 2021-06-20 09:28:10 -04:00
zzz
ea8597d1fb Console: Add preliminary Permissions-Policy header
other places TODO
2021-06-18 09:58:57 -04:00
zzz
970be35084 Transport: Remove 4/6 caps config
since 0.9.50 is out.
Log tweaks
2021-06-18 09:23:22 -04:00
zzz
c65b4689d0 SSU: Fix handling of bad peer test responses
Always abort test with an unknown result,
to prevent false firewalled indication.
Log tweaks
2021-06-18 09:11:42 -04:00
zzz
7628168c3d Tunnels: Consolidate tunnel key generation
in BuildRequestor.createTunnelBuildMessage()
to prep for derived keys in prop. 157
2021-06-17 12:58:46 -04:00
zzz
65b57fed9f minor css fix on /stats 2021-06-16 09:50:39 -04:00
zzz
67288f27b6 Crypto: Increase key pools for slow machines
Increase EDH key pool for all
Return unused EDH keys to XDH pool
ref: http://zzz.i2p/topics/3139
2021-06-16 09:50:04 -04:00
zzz
10cc00a9c8 Console: Format news dates using DataHelper 2021-06-16 09:08:44 -04:00
zzz
2cbb9b44ea Unused field 2021-06-16 09:00:53 -04:00
zzz
f9e8fa8150 Tunnels: Continue work on prop. 157
- Add new internal-only ShortTunnelBuildReplyMessage,
  for processing of STBM as a reply.
- Add support for inbound tunnel tests to TunnelBuildMessageStandalone.
  The ITBM test is WIP.
- Add checks for unset plaintext record in ITBM and OTBRM
2021-06-13 15:28:48 -04:00
zzz
aa0e0b3a62 Tunnels: Change class of TunnelPoolSettings random key
from Hash to SessionKey. It's not a Hash.
2021-06-13 11:34:17 -04:00
zzz
4c6aa8cfc1 Tests: Add serialize/deserialize test for STBM/OTBRM 2021-06-13 10:52:42 -04:00
zzz
010d1a9953 Tunnels: Continue work on new build messages (proposal #157)
WIP, still disabled, proposal not complete

- Use ChaCha20 to encrypt/decrypt records
- Add OTBRM methods for plaintext record
- Add OTBRM checks for correct plaintext slot number
- Add BRR checks to prevent use of nonexistent AES key/IV
- Set plaintext reply at OBEP in BuildHandler
- Allow OTBRM in InboundMessageDistributor
- Remove timing measurements in BuildMessageProcessor.decrypt()
- Add test to BuildMessageTestStandalone for outbound build
- Add check for all replies to BuildMessageTestStandalone
- Log tweaks
2021-06-13 10:31:02 -04:00
zzz
3fbfb689af Tests: Add ECIES test to BuildMessageTestStandalone 2021-06-12 16:20:07 -04:00
zzz
2bb3cf046d Tests: Fix BuildMessageTestStandalone 2021-06-12 15:42:47 -04:00
zzz
988e0e796f Tests: Fixup tunnel test after build classes move 2021-06-12 10:45:18 -04:00
zzz
d93e16e52e UPnP: Bind to IPv6 addresses for search responses
Older miniupnpd 2.0 will send a SSDP search response with an IPv6 location to a IPv4 address,
but newer ones 2.2 won't. So we need to also bind to an IPv6 address for the SSDP search
to receive the router's IPv6 location. Then we can bind to our public IPv6 address
for a port forward and it will work when miniupnpd is configured for "secure".

Also, don't bind a POST request to a mismatched v4/v6 address.
2021-06-11 09:29:16 -04:00
zzz
d5a499591d Update: Make backup news URL configurable (see gitlab MR !33) 2021-06-10 12:36:52 -04:00
zzz
41c8f6d0d5 Merge branch 'dmg' into 'master'
Add support for dmg and exe updates

See merge request i2p-hackers/i2p.i2p!33
2021-06-10 16:18:31 +00:00
zzz
b73d5d6557 Add support for dmg and exe updates 2021-06-10 16:18:31 +00:00
zzz
4f12081b59 Tunnels: Move 3 build classes from tunnel to tunnel/pool
and make package private, so all the tunnel build classes are in one place.
2021-06-08 12:47:28 -04:00
zzz
ad48ff61f3 Console: Change all config page headers to "Configuration" 2021-06-08 10:25:00 -04:00
zzz
4aef8d66e3 Console: Remove "configure homepage" item from /home 2021-06-08 10:19:18 -04:00
zzz
2f371301ad NetDB: Prevent rare deadlock in rebuildRouterInfo()
by making it always nonblocking.
as reported by drzed
2021-06-08 10:06:41 -04:00
zzz
c2c922b665 Tunnels: Switch from SHA256 to SipHash for arbitrary deterministic sort
of peers. For efficiency.
ref: http://zzz.i2p/topics/3082
thx: jogger
2021-06-08 09:44:17 -04:00
zzz
aee9a3f639 Tunnels: Extend use of high cap peers in expl. tunnels at startup, after extended downtime 2021-06-08 09:28:15 -04:00
zzz
d9c98580d1 Continue implementation of short tunnel build messages (proposal 157)
- Generate and parse short record format
- Encrypt and decrypt short records
- Register handlers for 3 new messages ITBM/STBM/OTBRM
- Send ITBM/STBM if all hops support it (disabled)
- Reply with OTBRM at OBEP if STBM received (disabled)
- Send STBM at IBGW if ITBM received (disabled)
- Add logic for when to send new messages
- ChaCha encryption of other short records
- Fix compare logic in ITBM parser (ticket #2814)

All is still preliminary, disabled, untested; proposal is still incomplete

Still todo:
- Fill in plaintext record for ITBM/OTBRM
- OTBRM key/tag
2021-06-08 08:43:40 -04:00
zzz
8b4a93554f Router: Fix JobQueue getLastJobBegin() and getLastJobEnd() (ticket #2809) 2021-06-01 09:32:21 -04:00
zzz
f9b5ee697c Transport: Consolidate now() calls 2021-06-01 09:01:40 -04:00
zzz
6dab5b44ae unused import 2021-06-01 08:53:29 -04:00
zzz
e7bef3f4e8 Console: Fix deprecation in rrd4j 2021-06-01 08:51:16 -04:00
zzz
ff44ba4e07 i2psnark: Fix autostart for magnets 2021-06-01 08:50:18 -04:00
zzz
b88c8a4f6a UPnP: Fix IPv6 address check (ticket #2811) 2021-05-23 07:38:28 -04:00
zzz
58aa95df87 Router: Increase rekey probability 2021-05-21 09:52:26 -04:00
zzz
56a1184da7 Build: Update RRD4J version in manifest 2021-05-21 09:48:21 -04:00
zzz
ecc8b2a1c6 Console: Don't show default cost for NTCP2 either 2021-05-21 09:47:43 -04:00
zzz
288170a728 Console: Remove unused H cap from legend 2021-05-21 09:02:58 -04:00
zzz
b9efc002c0 RRD4J 3.8
Merged in our previous javadoc fixes
Their updated font-selector code remains commented
out in RrdGraphConstants.getFont()
Now requires Java 8
2021-05-21 07:36:57 -04:00
zzz
6926f5769e Systray: Drop unused BrowserChooser 2021-05-20 09:04:26 -04:00
zzz
9036aa84f6 Build: Remove broken list-changes targets 2021-05-20 08:56:21 -04:00
zzz
557c1d0f04 Console: Make the /confighome headers match the home page headers
Fix padding on file chooser buttons
2021-05-20 08:47:20 -04:00
zzz
2bb14c317f Debian files for 0.9.50
checklist updates
2021-05-19 09:50:47 -04:00
zzz
cb7dcda57f Fix dup patched/unpatched jetty classes 2021-05-18 08:47:18 -04:00
zzz
48cfb6114b 0.9.50 2021-05-18 08:21:33 -04:00
zzz
16d50f1e4f Console: Fix tooltip 2021-05-18 08:06:25 -04:00
zzz
fb6e8249d0 bump for review 2021-05-15 14:03:03 -04:00
idk
f83bd18693 set min-height of susidns iframe to the height of the browser's viewport, and automatically show the howitworks section on the susidns homepage. Gets rid of the double-scrollbar on the iframe 2021-05-15 12:02:33 -04:00
zzz
33954094a0 Fix bug reporting links in readme files 2021-05-14 12:57:14 -04:00
zzz
aa16cc02a1 Pull translations from transifex 2021-05-14 12:45:48 -04:00
zzz
bcc6f9e053 Remove deleted script from test 2021-05-14 12:21:31 -04:00
zzz
6796a3cdfe Remove ancient C, CSharp, Perl, Python SAM v1 client libs
See http://i2p-projekt.i2p/en/docs/api/samv3 for maintained list of v3 clients
Remove unmaintained v3.0 protocol doc, link to website instead
2021-05-14 11:45:47 -04:00
idk
59439da702 bump infodiv on slide four of /welcome 2% further to the right 2021-05-13 11:51:00 -04:00
a7467aca2a Merge branch 'gradle-reproducible-2' into 'master'
Fixes for reproducible Gradle build

See merge request i2p-hackers/i2p.i2p!32
2021-05-13 12:45:50 +00:00
ec163549f9 Fixes for reproducible Gradle build 2021-05-13 12:45:50 +00:00
zzz
3196e3dfd2 BuildTime update 2021-05-13 07:47:54 -04:00
zzz
d2eda3e2e2 Blocklist update 2021-05-12 08:33:18 -04:00
8c36f5d5f0 Merge branch 'gradle-reproducible' into 'master'
reproducible builds with Gradle

See merge request i2p-hackers/i2p.i2p!30
2021-05-11 17:50:14 +00:00
8532103e64 reproducible builds with Gradle 2021-05-11 17:50:14 +00:00
zzz
121cb2c94c NTCP: Fix reported NPE in debug logging on java 16 2021-05-10 08:42:04 -04:00
zzz
ea7183eeda Sybil: Fix retention of old analysis files when configured to never delete 2021-05-10 08:38:35 -04:00
idk
57f1ac43ad Un-cramp headline hight on welcome wizard pages in narrow browser windows 2021-05-10 02:11:06 -04:00
idk
4a88400ce3 Fix misplaced text on bandwidth wizard bandwidth configuration slide 2021-05-08 10:58:10 -04:00
zzz
8ab9d82dbd Console: Add tooltip to unban link
Don't show both ban and unban buttons if peer param provided
Don't put hash in form again after ban/unban POST
2021-05-07 08:57:36 -04:00
idk
e04695eed8 Remove all the remaining mtn stuff from the mavenCentral target dependencies since it's no longer transitionally needed 2021-05-06 02:10:27 -04:00
idk
1c275260e0 Widen the table layout on welcome wizard page 4 and lose the image 2021-05-06 02:06:42 -04:00
zzz
38dbe2f509 poupdate-source 2021-05-05 12:02:22 -04:00
zzz
4bfca43e9c News: Move welcome author definition so it doesn't get tagged in the wrong bundle 2021-05-05 11:26:34 -04:00
zzz
f77677f1f4 Router: Unused methods and fields (findbugs) 2021-05-05 10:58:16 -04:00
zzz
e8d3193331 GeoIP 2021-05 2021-05-04 17:09:36 -04:00
zzz
3d362814df Console: Update bug report URLs 2021-05-02 09:37:26 -04:00
idk
2cce2ce857 Push wizard language settings 10% to the right to look better on smaller resolutions. #13 2021-04-28 17:51:34 -04:00
idk
bd29df70c6 Merge branch 'docker-3' into 'master'
Docker cleanup and documentation

See merge request i2p-hackers/i2p.i2p!29
2021-04-28 21:46:22 +00:00
37100ca93d Docker cleanup and documentation 2021-04-28 21:46:22 +00:00
idk
aa117229a2 s /notifcation/notification/ 2021-04-28 15:30:56 -04:00
987bff0008 Merge branch 'docker-2' into 'master'
More Docker changes

See merge request i2p-hackers/i2p.i2p!28
2021-04-28 04:12:24 +00:00
8fa70c9cde More Docker changes:
* disable in-network updates
* persistent directory for snark downloads
* listen on port 12345 for i2np connections
* restore multi-stage build
* use better ant target
* allow passing -Xmx via the JVM_XMX variable

Many thanks to LoveIsGrief for the suggestions!
2021-04-28 04:12:24 +00:00
zzz
20c528debe Router: Cleanup fix for gitlab ticket #16
Only check for clients.config if there was no clients.config.d
2021-04-27 10:58:17 -04:00
idk
9f23102428 Merge branch 'docker-home' into 'master'
Docker persistent home

See merge request i2p-hackers/i2p.i2p!27
2021-04-27 03:55:42 +00:00
179b79f8ab Docker persistent home 2021-04-27 03:55:42 +00:00
zzz
1e8e4762a3 Systray: Remove old doc
Remove old Main-Class from manifest
Add Class-Path to manifest
2021-04-26 10:19:51 -04:00
zzz
bf6dcbce32 Console: Add author for initial news 2021-04-25 11:44:54 -04:00
zzz
28ea0e9025 Tomcat 9.0.45 2021-04-25 10:53:47 -04:00
zzz
fe507b63b5 SSU: Add more state transitions that require confirmation 2021-04-25 10:33:40 -04:00
zzz
a4a3235888 SusiMail: Add class-path to test jar 2021-04-25 07:29:35 -04:00
zzz
21485eff87 SusiMail: Prevent infinite loop on decoding error
More test mods
Fix StringBuilderWriter.write(int)
2021-04-24 19:37:18 -04:00
0a24e56ded Merge branch 'master' into 'master'
Merged into my fork, not main repo

See merge request i2p-hackers/i2p.i2p!26
2021-04-24 23:11:52 +00:00
ee5a87ae44 Merged into my fork, not main repo 2021-04-24 23:11:52 +00:00
zzz
f753728d8a SusiMail: Fix up commented-out test so it works
(if you uncomment it)
2021-04-24 17:09:40 -04:00
zzz
78168be85c Jetty: Add patch for CVE-2021-28165 - Jetty #6072 -
Jetty server high CPU when client send data length > 17408

This affects SSL connections only, which is not part of our default setup.
Adapted from workaround at:
https://github.com/eclipse/jetty.project/security/advisories/GHSA-26vr-8j45-3r4w
Put the new checks directly in the unwrap() method,
rather than subclassing SslConnection, as that would require config file changes.
2021-04-24 16:04:33 -04:00
zzz
41e46448d5 Jetty: SslConnection.java unmodified from 9.3.29.v20201019
Patch to follow in next commit
2021-04-24 15:56:51 -04:00
zzz
a1172c8726 Close buffer on failure too 2021-04-24 10:47:27 -04:00
cc223626de Merge branch 'susimail-fix-iox' into 'master'
Null-out the InputStream of the Buffer object when writing.  Fixes #17

Closes #17

See merge request i2p-hackers/i2p.i2p!25
2021-04-24 14:24:32 +00:00
c58ccfa204 Null-out the InputStream of the Buffer object when writing. Fixes #17 2021-04-24 15:23:04 +01:00
idk
025445fc65 When checking whether to use Roaming appdata(like on older installs or on installs where people deliberately use Roaming appdata) also check whether clients.config exists and if it does, set home to Roaming appdata since people may be updating from routers before the migration to clients.config.d directories. This should fix #16 2021-04-22 23:27:31 -04:00
idk
f62c748342 Add a unicode arrow to the buttons on the address book interstitial. More CSS tweaks to work on more resolutions 2021-04-21 21:56:45 -04:00
idk
f03b1bce76 Fix CSS on redesigned address book interstitial page so it no longer overflows on narrow or short pages 2021-04-20 18:41:27 -04:00
zzz
1a05475f47 SSU: Don't start peer test when shutting down 2021-04-20 08:58:48 -04:00
zzz
23b704960d NTCP: More NTCP1 removal cleanup 2021-04-20 08:50:00 -04:00
zzz
388bac5aae NTCP: Set outbound addresses at startup when force-firewalled
TODO: set outbound addresses on transition to firewalled later
2021-04-20 08:24:50 -04:00
zzz
5af19314db SSU: Call replaceCurrentExternalAddress() from startup()
for local interfaces even when not force-firewalled, because REA2()
now needs them to set the IPs regardless
2021-04-20 07:33:08 -04:00
zzz
58bae9f1bd Proxy: Fix merge error in previous commit 2021-04-20 07:27:53 -04:00
idk
3192a5e67b Make option buttons on addresshelper interstitial larger and contain their own descriptions. Place the button to proceed without adding on one side, place the button to save and continue on the other. Remove redundant save-and-continues. 2021-04-19 17:42:07 -04:00
zzz
0546ef4fa4 Proxy: Decode IDN hostnames in error pages 2021-04-18 10:39:35 -04:00
zzz
bbc8501ba5 Console: Don't include SSU (RA) caps in RI caps definitions 2021-04-18 08:50:14 -04:00
zzz
11151464f3 Router: State transition fixes 2021-04-17 14:30:25 -04:00
zzz
b0249a22dc i2psnark: Add webp mime type 2021-04-15 07:51:33 -04:00
idk
b152e701fb I2P Configuration->Configuration. 2021-04-12 23:27:34 -04:00
idk
bc2bba7d56 I2P Configuration->Configuration. Add I2PDiagnostics to default, default_advanced summarybar 2021-04-12 22:40:23 -04:00
zzz
38289543a0 i2psnark: Add jxl mime type 2021-04-12 10:33:49 -04:00
zzz
cebef747ef Transport: Don't update queue size stat unless enabled 2021-04-12 10:32:58 -04:00
zzz
76fd180b63 SSU: Fix peer test getting stuck
Timer was not getting rescheduled in all cases,
so testComplete() was never called,
so no more tests could run.
Always remove test when testComplete() is called.
Log tweaks
2021-04-12 10:30:37 -04:00
zzz
926fdc097f Proxy: Precompress error page CSS 2021-04-11 09:06:23 -04:00
zzz
39bebaff7c Console: /netdb transport table fixes 2021-04-11 08:58:24 -04:00
zzz
0963a1339c SSU: IPv6-only fixes 2021-04-11 08:54:40 -04:00
idk
ba745f3a8f Create 'Diagnostics' Sidebar section to delineate config and non-config items in the sidebar. Rename 'I2P Internals' to 'I2P Configuration.' Move items to categorically appropriate sidebar sections. Fix slight awk on /home. 2021-04-10 14:58:08 -04:00
zzz
f0e606cc46 Router: Don't fail migration at install if missing eepsite/ or clients.config,
for embedded applications.

Ensure a migration failure is logged if file does exist.
Reported and tested by zlatinb
2021-04-09 09:08:36 -04:00
zzz
009eb8c9f6 SSU: Fix IPv6 introducers
Ensure introducers are required when force-firewalled
Log tweaks
2021-04-08 14:20:31 -04:00
zzz
02cf79c4c8 NetDB: Don't repeatedly log about reseed disabled 2021-04-08 14:16:07 -04:00
zzz
5f1fc80848 Debian: Fix link to compiler jar (Debian ticket #986474) 2021-04-08 07:11:48 -04:00
zzz
7482142431 Util: Parameterize CDPBQ
Same as CDBQ earlier. To allow experiments on adjusted params.
2021-04-06 08:36:05 -04:00
zzz
67d9c0ef8e Drop launcher script from tests 2021-04-05 10:02:40 -04:00
zzz
039d918454 Build: Remove OSX and browser launcher code
Will probably be replaced with jpackage in i2p-jpackage-mac repo
If we do resurrect the launcher, it will be moved to a separate repo
2021-04-05 09:14:34 -04:00
zzz
e16c80516d I2NP: Add msg ID to all build msg toString() 2021-04-05 08:37:28 -04:00
zzz
857f52bbf7 Console: Convert update versions to times for debug page 2021-04-05 08:34:22 -04:00
zzz
4acf0ecd05 Sybil: Register blocklist version with update manager
Fix "very close" message when configured for all routers
2021-04-05 08:05:17 -04:00
zzz
2eedfe5382 SSU: Add note about skew threshold 2021-04-04 13:56:13 -04:00
zzz
a2dde559f1 SSU: Don't call PS.expireInboundMessages() from messageReceived()
it's already called from IMF
2021-04-04 13:25:57 -04:00
zzz
de108dbc5e Tunnels: Fix build message timestamp check for ECIES records
Log tweaks
2021-04-04 13:21:07 -04:00
zzz
00d3965303 SSU: Log enhancement, fix possible log NPE 2021-04-03 17:12:49 -04:00
zzz
7ad7846f86 SAM: Remove subsessions when primary session closes 2021-04-03 15:25:20 -04:00
zzz
1307e5b2e0 SSU: Remove restrictions on IPv6 introducers (prop. 158)
WIP, not fully tested
Don't try to rebuild IPv4 address when IPv4 disabled
Don't bid on a peer if marked unreachable
Fail outbound immediately if no valid introducers
Reduce IPv6 too-close length check from 8 bytes to 4
Log tweaks
2021-04-03 15:24:03 -04:00
zzz
1b1b0f545f SSU: Fix dup IPv6 introducers 2021-04-02 09:30:29 -04:00
zzz
9b361ce71c NetDB: Negative cache LS received with zero leases
Ratchet: Don't schedule a reply to a LS with zero leases
2021-04-01 08:12:35 -04:00
zzz
562b86636a SSU: Update address when IPv6 introducers change (prop. 158)
Enable ipv6 check in locked_rebuild()
Change locked_needsRebuild() to return codes for ipv4/v6
Change locked_needsRebuild() for introducers so it only
returns true if more are available
Change rebuildExternalAddress() so we can do a rebuild of ipv6 without an IP
Only call rebuildIfNecessary() on peer drop if it could have been an introducer
Fix check in pickInbound() for support of AliceIP field
Log tweaks
2021-03-31 12:50:21 -04:00
zzz
8447086c59 Transport: Fix NTCP removing IPv4 address when SSU removes IPv6 address 2021-03-30 07:14:35 -04:00
idk
f9422c9589 Fix double overflow scrollbar on Hidden Services Manager 2021-03-29 21:12:29 -04:00
zzz
2a74dce3ad Util: Clarify deprecated IPv6 addresses 2021-03-29 14:27:15 -04:00
zzz
fed3063f36 Transport: Don't open UPnP ports when force-firewalled 2021-03-29 14:15:42 -04:00
zzz
e6f5ab967e Transport: Don't open UPnP ports when hidden 2021-03-29 14:04:38 -04:00
zzz
953b64af4a SSU: Don't request introducers when hidden 2021-03-29 13:38:18 -04:00
zzz
e21a3a366b Router: Fix decryption of blinded leasesets
Reverse cache wasn't regenerated at midnight,
so decryption would fail after the first routing key change.
We had the rollover() method but it wasn't called.
2021-03-27 08:15:01 -04:00
idk
0fbcd6ddf7 Fix a couple small CSS issues on SusiDNS, Hidden Services Manager. Darken the Active Arrow dropdown. 2021-03-26 16:26:40 -04:00
zzz
4a135a667b Console: Fix swapped SSU dup rx/tx columns
total row was right, per-peer rows were wrong
increase render buffer size
2021-03-26 07:29:26 -04:00
zzz
1309688477 i2ptunnel: Force non-SSL socket to local target
if incoming traffic is to a known SSL port,
to avoid SSL-over-SSL
2021-03-25 14:40:47 -04:00
zzz
af14c3bc4a Console: Don't show IP for disabled IPv4/v6 on /confignet 2021-03-25 09:04:09 -04:00
zzz
684506b0be Transports: Don't open UPnP ports for disabled IPv4/v6 2021-03-25 08:46:00 -04:00
zzz
aecd8efcca SSU: Implement IPv6 introductions (proposal 158)
WIP
Offer intro key for IPv6
Pick introducers for IPv6
Publish address with IPv6 introducers
Reduce churn of selected introducers
Only adjust transport bid if they publish C cap
Log tweaks
2021-03-25 08:03:33 -04:00
idk
3eab36fd37 Fix theme selection on Mail. 2021-03-24 20:06:07 -04:00
idk
8e15eda83b fix up dark theme for new UI elements on dark theme. Fix theme selection on Address Book. 2021-03-24 18:31:04 -04:00
idk
501de01753 Fix some style issues in the iframed version of Address Book. Add a Description field to each address book page. 2021-03-24 16:42:38 -04:00
idk
e1c312046a Explain that the address book pairs human-readable names with I2P Destinations on the index page 2021-03-24 15:22:28 -04:00
idk
8af64ddef1 Style and script changes to addressbook:
Make tables drop-down items in javascript-enabled browsers. The rules are: no javascript, all tables start expanded. This is the default. If javascript is enabled and the addressbook is empty, expand the "Add new host" section by default. If javascript is enabled and the addressbook is not empty, then collapse all sections but leave the headings visible.
  Improvements to addressbook CSS for consistency with rest of light theme. Add drop-down arrows to headings on drop-downable sections.
2021-03-24 14:09:07 -04:00
zzz
5f39426073 NetDB: Don't note 'enabled floodfill' in event log every startup when forced on 2021-03-24 09:32:01 -04:00
zzz
0eb4096aad Console: Add eepsite table on debug page 2021-03-23 08:28:38 -04:00
zzz
0ab429e1ed NetDB: Sort published addresses for consistency 2021-03-23 08:17:38 -04:00
zzz
bd6d6426fd SSU: Try to fix IPv6 transition from firewalled to non-firewalled
state was right but published address wasn't updated because looking
in wrong place for saved ipv6 address
2021-03-23 08:14:17 -04:00
zzz
9a106cb326 I2NP: lookup message debug output fixes 2021-03-22 12:42:28 -04:00
zzz
bbfd94359b Tunnels: Don't count established routers as new in OBEP throttle (ticket #2245)
reported by zlatinb
patch from jogger
2021-03-22 12:38:57 -04:00
zzz
64695a8060 SSU: Fix persisting IPv6 firewalled state 2021-03-22 12:02:36 -04:00
zzz
86b49546c8 Sybil: Persist blocklist 2021-03-22 10:36:42 -04:00
zzz
12c4f43109 Transport: Better IPv6 address check
We don't want to match on "46"
2021-03-22 07:00:17 -04:00
zzz
d5fd754a25 Tunnels: Garlic encrypt ITBM to IBGW
WIP, see proposal 157.
Will not take effect until we actually send ITBMs.
Tested with regular VTBMs.
2021-03-21 09:25:47 -04:00
zzz
c5691ac623 html fix
thx drzed
2021-03-20 15:24:38 -04:00
zzz
844f17500b Console: Add API version to /logs 2021-03-20 13:00:09 -04:00
zzz
4e1848c336 I2CP: Ensure nickname properties are set 2021-03-20 12:58:14 -04:00
zzz
b55fbbf099 Boolean.valueOf() -> Boolean.parseBoolean() 2021-03-20 12:27:46 -04:00
zzz
838295c014 SAM: Improve checks for unset tunnel nickname 2021-03-20 12:12:21 -04:00
zzz
005ac38742 Tunnels: Fix RED dropping for part. tunnels (Gitlab MR !24)
Part 1:
Change bandwidth estimate to exponential moving average
(Similar to Westwood+ Simple Bandwidth Estimator in streaming)
instead of 40 ms bucket.
Also use it for tunnel.participatingBandwidthOut stat.
Remove linear moving average code previously used for stat
Reduce RED threshold from 120% to 95% of limit

Part 2:
Fix the other part of RED which is the dropping calculation.
Previously, it simply used the bandwidth to start dropping if
it was higher than a threshold. The drop percentage rose from
0 to 100%, linearly, based on how far the bandwidth was
above the threshold. This was far, far from the RED paper.

Now, we follow the RED paper (see ref. in SyntheticREDQueue javadoc)
to calculate an average queue size, using the exact same
exponential moving average method used for bandwidth.
Similar to CoDel, it also includes a count of how long
the size is over the threshold, and increases the drop probability with the count.
The unadjusted drop probability rises from 0 to 2%
and then everything is dropped, as in the RED paper.
The low and high thresholds are configured at 77 ms and 333 ms of queued data, respectively.

The queue is "synthetic" in that there's not actually a queue.
It only calculates how big the queue would be if it were
a real queue and were being emptied at exactly the target rate.
The actual queueing is done downstream in the transports and in UDP-Sender.

The goals are, for an 80% default share, to do most of the
part. traffic dropping here in RED, not downstream in UDP-Sender,
while fully utilizing the configured share bandwidth.
If the router goes into high message delay mode, that means we are not dropping enough in RED.
Above 80% share this probably doesn't work as well.

There may be more tuning required, in particular to achieve the goal of "protecting" the UDP-Sender
queue and local client/router traffic by dropping more aggressively in RED.

This patch also improves the overhead estimate for outbound part. tunnel traffic at the OBEP.

Reviewed, tested, acked by zlatinb
2021-03-20 10:49:30 -04:00
zzz
03c657b466 javadoc fix 2021-03-19 13:02:35 -04:00
zzz
3615a9b235 SSU: Skip router addresses with introducers and '6' cap
for now, until implemented, see proposal 158
2021-03-19 11:36:17 -04:00
zzz
0dcc126af0 DoH: Minor cleanups
Handle lower-case date: header
2021-03-18 11:02:26 -04:00
zzz
7143eb3faa DoH: Add new servers
from https://github.com/curl/curl/wiki/DNS-over-HTTPS
2021-03-18 10:19:41 -04:00
zzz
1d83ef46e7 SSLEepGet: Use DoH by default (reseeding)
DoH: Update server list
2021-03-18 09:48:05 -04:00
zzz
615365ec24 Util: Specify hostname for SSLEepGet socket when using DoH 2021-03-18 09:39:14 -04:00
zzz
1e0847271f Util: Fix EepHead fail if headers specify chunked 2021-03-18 09:11:21 -04:00
zzz
0b1fb651e9 EepGet timeout fixes part 2
Have SocketTimeout interrupt thread
Cancel SocketTimeout and use soTImeout after reading headers if able
Cancel SocketTimeout in finally
Cleanups and javadocs
2021-03-18 09:07:45 -04:00
zzz
bd724d1e1f Transports: Enable 4/6 caps
Set i2np.transportCaps=false to disable
Fix NTCP2 address with host and caps after state transition
Bump -7
2021-03-16 08:59:22 -04:00
zzz
e81df54bba Console: Change netdb SSU caps search
to be contains() like the RI caps search, not equals()
2021-03-16 08:23:05 -04:00
zzz
07e3ee6bda Util: Roll our own IPv6 address parsing
Don't bother with ::, still send that to InetAddress.getByName()
2021-03-15 08:22:52 -04:00
zzz
810c2f912c Util: Prevent DataHelper complaining about split() for ipv4 2021-03-15 08:10:48 -04:00
zzz
a1340d8796 Util: Roll our own IPv4 address parsing
to avoid InetAddress.getByName() calls
May help high CPU usage on Windows?
Reported by parg: http://zzz.i2p/topics/3083
More empty hostname checks
2021-03-15 07:41:02 -04:00
zzz
be863d643e SSU: Fix IPv6 addresses not being removed on some state transitions
Ensure IPv4/v6 peer tests are alternated
Reschedule peer test if result is UNKNOWN and a state transition is pending
Fix peer test last send time not being set in all cases
2021-03-15 07:37:08 -04:00
zzz
47283e6ef7 Console: Limit share portion to 90%
We want the part. traffic RED dropper to have some effect
and not let traffic back up at the router bandwidth
limiter and into the UDP-Sender queue,
as it removes any room for client and router traffic,
and throws the router into high message delay mode.
2021-03-13 08:44:11 -05:00
idk
15b6638538 Check in copy.js 2021-03-11 21:18:29 -05:00
idk
56db652ee8 switch Hostname Preview from a direct link to a JS copy function and a textarea. In the presence of noscript, hide the copy button 2021-03-11 21:17:07 -05:00
idk
831a9cebfa check that hostname ends with .i2p when generating tunnelPreviewHostname 2021-03-11 17:20:37 -05:00
idk
a04bb77c68 Adds a button for previewing i2ptunnels using the hostname or sharing I2P Sites with a hostname without using the addressbook or a jump service 2021-03-11 13:54:55 -05:00
idk
8d11a97c9d Fix margin on /peers for issue #14 2021-03-11 13:50:41 -05:00
zzz
023a7fdebe NetDB: Queue RI file deletion and delete in a single thread
Do both writes and removes in the writer thread
As suggested by jogger http://zzz.i2p/topics/3082
log tweaks
2021-03-10 14:17:45 -05:00
zzz
77375148e3 NTCP: More NTCP 1 removal cleanup 2021-03-10 07:16:29 -05:00
zzz
5c232792cc SSU: Don't change ports in some cases 2021-03-10 07:03:33 -05:00
zzz
6e03300371 Throttle: Don't do exponential calculation unless necessary
Limit to ~5% < drop prob. < 100%
2021-03-09 09:59:33 -05:00
zzz
731bf920f6 Util: Consolidate dup BandwidthEstimator interfaces 2021-03-09 07:37:51 -05:00
zzz
c1c2f4bb2e UPnP: Reduce some log levels
of logggung that was added during IPv6 development
2021-03-08 09:14:19 -05:00
zzz
6a54af399d NTCP: Remove NTCP 1 suppport
Remove individual 1/2 enable config
Additional cleanup to follow
2021-03-08 09:05:32 -05:00
zzz
82b7eea5f0 SSU: Increase CoDel drop threshold at UDPSender queue
Increase min and max queue size
Tweak stats
Util: Allow creation of CoDel queues with non-default parameters
New params are tentative, may be adjusted later
2021-03-08 08:12:10 -05:00
zzz
0b71fcf2e6 Util: Fix text display of enc type in key cert 2021-03-07 08:33:57 -05:00
zzz
e4c7ef183f SSU: Require confirmation for IPv6 firewalled state transitions 2021-03-06 08:18:16 -05:00
idk
c8341e77ab Change button on /help from Reachability to Network 2021-03-04 21:42:14 -05:00
zzz
51d2862d75 Console: Improve explanation on /configfamily
based on whether configured or not
escape the family name
2021-03-04 19:27:03 -05:00
zzz
10d303aee5 Router: Increase rekey probability 2021-03-04 19:04:29 -05:00
idk
b0b7c1c3d1 Work on centering restart/shutdown immediately/cancel buttons, for #5 2021-03-04 16:00:24 -05:00
zzz
6339445e35 i2ptunnel: Remove stray character on auth form 2021-03-04 14:31:15 -05:00
zzz
f5a6bb1211 i2ptunnel: Fix title for b32 auth proxy error page 2021-03-04 14:28:09 -05:00
zzz
662fd484de i2ptunnel: Add missing button icons for proxy forms 2021-03-04 14:17:45 -05:00
zzz
fda53416d3 Transports: Prefer IPv6 temporary addresses if the kernel does
This helps us pick the right address at startup,
so we don't switch after peer testing.
2021-03-04 08:42:08 -05:00
zzz
638d471d6b I2CP: Additional changes for release/API version split
Missed in previous checkin
2021-03-04 07:58:49 -05:00
zzz
74c493b1fe Debian: apparmor update 2021-03-04 07:16:03 -05:00
zzz
10b90f45f0 UPnP: IPv6 part 12
Fix retention of deprecated messages
log tweaks, finals
2021-03-03 19:53:24 -05:00
zzz
8e465f4da7 Console: Fix text, anchors and tooltips for links to reachability help
Fix list of subscriptions in /help
2021-03-03 13:16:08 -05:00
zzz
ca1b6bbe42 SSU: Fix replaceAddress() for multiple addresses without host/port 2021-03-03 12:37:21 -05:00
zzz
3fbe4ed7e8 SSU: Increase hole punch rate limit 2021-03-03 11:21:49 -05:00
zzz
c36c8678ed NTCP: Fix reachability status when force-firewalled 2021-03-03 11:08:57 -05:00
zzz
c3099c7cfa SSU: Don't publish IPv4 address at startup when force-firewalled
Publish empty '4' address if firewalled and no introducers
Publish empty '6' address if firewalled
4/6 caps fixes
2021-03-03 10:36:44 -05:00
zzz
ee2482c2c1 SSU: Fix validation of current introducers
Broken in 0.9.48 when we made intro keys random
2021-03-03 08:17:27 -05:00
zzz
64ebcea50a SSU: Fix transition out of IPv4 firewalled after UPnP success 2021-03-03 07:06:42 -05:00
zzz
c6c2ee94a7 SSU: Fix NPE in introduction manager
(move ip length check after isValid() null check)
2021-03-03 06:15:26 -05:00
zzz
6520f69a38 SSU: Only advertise 'C' cap if we can really introduce
Only ask for relay tag if we don't have enough
2021-03-03 06:13:36 -05:00
zzz
eecb6bef69 Console: Hide address cost unless advanced 2021-03-02 14:51:50 -05:00
zzz
4a9424b485 Transport: Don't record reachability changes in event log shortly after startup 2021-03-02 09:15:58 -05:00
zzz
f04c0740c4 Util: Reduce log level on SimpleTimer2 cancel failure 2021-03-02 09:09:54 -05:00
zzz
d3563752a1 UPnP: IPv6 part 11
Change IPv6 last-firewalled config after UPnP success
Minor cleanup in changeAddress()
2021-03-02 09:05:11 -05:00
zzz
e1cd22e6ee UPnP: IPv6 part 10
Enable IPv6 by default
Don't force listen sockets to IPv4 only
2021-03-02 08:15:13 -05:00
zzz
63e9b7f034 UPnP: IPv6 part 9
Subscribe to IPv6 service also
Limit event subscription time
Renew subscriptions periodically
2021-03-02 07:39:46 -05:00
zzz
ea736d71ef UPnP: IPv6 part 8
Retain old UID when refreshing
Continue to forward deprecated addresses for a while
Refresh mappings before lease expiration
Log tweaks
2021-03-01 16:39:17 -05:00
zzz
ca974a85c5 Console: Fix whitespace on /help 2021-03-01 11:13:11 -05:00
zzz
2ee4cbabfe UPnP: IPv6 part 7
Fix IPv6 port forwarding. Source must be wildcarded.
2021-02-28 16:11:12 -05:00
zzz
aa91dc985d UPnP: IPv6 part 6
IP mismatch detction fix take 2
Fix set of SSU comm states used for requiring address confirmation
2021-02-28 11:34:28 -05:00
zzz
12e9e79010 UPnP: IPv6 part 5
Update UID as received from UPnP on add,
so that removal of the mapping works.
2021-02-28 11:13:43 -05:00
idk
3c94f529ad remove the bashism in travis.sh 2021-02-28 10:43:07 -05:00
zzz
c04265c37a Build: Drop BOB demos from test script 2021-02-28 10:05:48 -05:00
zzz
9177459db6 UPnP: IPv6 part 4
WIP - disabled by default
Store local IPv6 address at startup so UPnP can attempt to forward it
Request forwarding of ports to IPv6 addresses
Update status on successful IPv6 forward
Fix IP mismatch test for IPv6
Log tweaks
2021-02-28 10:00:11 -05:00
zzz
851752a57a UPnP: IPv6 part 3
WIP - more to follow
Add support for WANIPv6FirewallControl service
Add class extending PortForward to request forwarding to a specific IP, and to store UID
Bind POST socket to local IP for POST to WANIPv6FirewallControl service
Reduce max forward attempts
Don't sleep after last forward attempt fails
Log tweaks
2021-02-28 08:36:29 -05:00
zzz
eb535762c4 UPnP: IPv6 part 2
Add support for storing multiple location URLs in DeviceData
Add methods to prefer IPv6 for location URLs
Prefer IPv6 for POST target to WANIPv6FirewallControl service
Add method to bind local address for POST, needed for security checks when forwarding IPv6
Remove IPv6 checks from XML URL parser
Remove unused call in QueryRequest
2021-02-28 08:08:07 -05:00
zzz
fa3ca565ca UPnP: Move IPv6 checks from Parser to ControlPoint
... as they were being bypassed for known devices.
This fixes erratic UPnP results for devices sending multiple
SSDP search responses, one for IPv4 and one for IPv6.
Temporary fix until we add support for multiple location URLs to DeviceData.
2021-02-27 12:35:42 -05:00
zzz
f09de33978 NTCP: Don't publish IP at startup when configured as firewalled
Ensure we have an outbound NTCP2 address published even when configured as firewalled
2021-02-25 10:59:15 -05:00
zzz
daf894dbe3 NetDB: Fix NPE validating expired blinded LS2 2021-02-25 07:20:27 -05:00
zzz
3af5a87782 bump -3 2021-02-25 06:37:00 -05:00
zzz
9c677eb465 SSU: Enable RelayRequest over IPv6
This supports IPv6 introducers.
This requires that Alice (the requester) include the IPv4 address in the RelayRequest
when sent over IPv6, and that Bob (the introducer) uses that address instead of
the source address.
IPv6 address will be published in ihost[0-2].
This was specified as of 0.9.24 but never implemented by Java or i2pd.
Bob-Charlie and Alice-Charlie comms must still be over IPv4.
WIP, not fully tested.
IPv6 introductions is part 2, TBD.
ref: http://zzz.i2p/topics/3060
2021-02-25 06:34:57 -05:00
zzz
c609e43d90 Transports: Adjust conn limits for some platforms 2021-02-25 06:25:55 -05:00
zzz
e63e9c58a8 SSU: Avoid outbound connections to routers that disconnect quickly 2021-02-24 11:10:40 -05:00
zzz
7f3f46c8ba Jetty: Fix detection of SSL connector for registration with PortMapper 2021-02-24 10:13:37 -05:00
zzz
6e2292354a Build: More prep for different release and API versions
Use API version as manifest Specification-Version
Use API version in I2CP
Reduce sybil penalty for version and banlist
2021-02-23 10:43:32 -05:00
zzz
58e5c55cfd SSU: Rename method to be more accurate 2021-02-23 10:17:12 -05:00
zzz
20e56c2e52 SSU: Optimize one-byte writes in PacketBuider 2021-02-23 10:12:33 -05:00
zzz
f076789915 Transports: Add 4/6 transport caps
WIP, disabled by default for now, to be enabled before relese
Add caps to NTCP2 when in hidden mode or firewalled
Add SSU address and caps when in hidden mode
Add 4 cap to introducer address
Other cases todo; ref: http://zzz.i2p/topics/3050

When hidden, store last IP address in config,
calling replaceCurrentExternalAddress(), and IP change event logging;
wasn't done before
2021-02-23 10:01:31 -05:00
idk
d132d0ccdb Merge branch 'ci-ant-test' into 'master'
CI: add job to run tests with ant

See merge request i2p-hackers/i2p.i2p!21
2021-02-22 18:16:19 +00:00
zzz
182039964f Util: Assume the OSX M1 is not slow 2021-02-21 11:07:24 -05:00
zzz
fe43da82f2 Profiles: Disable peer test (ticket #2456) and tunnel test response time stat
Peer test tries only one peer every 5 minutes, and uses a store of
the peer's own router info, which is not helpful.
Peer test records its result as a dbLookup success/failure,
but for the peers that are not floodfill, this stat is useless.

The tunnel test is disabled by default except for hidden mode.
The tunnel test response time stat uses a large amount of memory (5 rates)
and has apparently never been used since it was added in 2004.
There's also a separate tunnel test time average variable, separate
from the stat, that is also unused.

Each is disabled with a separate hardcoded config,
pending evaluation of whether and how to make the tests useful
and where to effectively use the result for peer selection.
2021-02-21 10:31:34 -05:00
zzz
6e3b483c03 Util: Store multiple eepsite ports in PortMapper
Jetty: Register all servers with PortMapper
Console: List all Jetty servers in sidebar
2021-02-21 09:17:31 -05:00
idk
1a5fedbb6d Fixup the bandwidth wizard so it works on more resolutions 2021-02-20 16:41:35 -05:00
zzz
b656274c92 Router: Don't rekey previous ECIES every restart on ARM 2021-02-20 14:26:56 -05:00
zzz
5d5e6fa3c2 i2psnark: Fix theme selection 2021-02-19 07:58:28 -05:00
zzz
b92d94ea04 Javadoc spelling 2021-02-18 10:48:21 -05:00
zzz
3bec2b5c73 I2NP: New build messages part 2 (prop. 157)
Rename ShortTunnelBuildReplyMessage to OutboundTunnelBuildReplyMessage (type 26)
Add InboundTunnelBuildMessage (type 27)
Add methods for plaintext record
Update readMessage() and writeMessageBody()
Fix calculateWrittenLength()
Update javadocs
WIP, untested, not hooked in yet
2021-02-18 10:30:51 -05:00
zzz
1d2dbb3cc2 Console: Change "Legal" headers to "Licenses" 2021-02-18 09:01:33 -05:00
zzz
70cd6daa7c Console: Change netdb header icons 2021-02-18 08:29:25 -05:00
zzz
e14de8235f NTP: Year 2036 fixes (gitlab ticket #12) 2021-02-18 08:08:56 -05:00
zzz
89070163cd Reseed: Only log in event log if successful 2021-02-18 07:37:45 -05:00
zzz
60cdfb3af9 Drop .mtn-ignore file 2021-02-18 07:33:19 -05:00
zzz
c19730a32b Bob: Drop Demos/ 2021-02-18 07:31:11 -05:00
zzz
0f730398d4 Build: Omit empty jars and wars from installers
...only needed for updaters
Remove mtn call in release target
Add release menu
Add note on pushing git tag
2021-02-18 07:25:45 -05:00
zzz
ad66437421 Debian changelogs 2021-02-18 06:32:47 -05:00
zzz
b3f60402af 0.9.49 2021-02-17 10:11:58 -05:00
zzz
4fd9f6e9b2 Bump for review 2021-02-15 10:52:44 -05:00
zzz
31a01f0f00 New translation resources from Transifex 2021-02-15 10:15:52 -05:00
zzz
4bf98da6de Pull translations from Transifex 2021-02-15 09:12:15 -05:00
zzz
e645a16e6a Build: Test script fixes 2021-02-15 09:00:31 -05:00
zzz
56beb1aec5 Build: Refresh Debian patches, update release checklist for git 2021-02-14 09:58:56 -05:00
zzz
2eb83171f4 Util: Update build time 2021-02-13 08:05:39 -05:00
zzz
c837bd9bfd Util: Renew my news and update certs, drop str4d certs 2021-02-13 07:29:00 -05:00
idk
9af1c7e4ea add myself as a backup update signer using the same keys I use to sign the backup news feed 2021-02-12 19:50:03 -05:00
idk
53416a5fc5 Add back icons to I2PSnark buttons and center them 2021-02-11 18:44:27 -05:00
idk
69f48f49d1 Fix centering of percent downloaded in snark light theme address bar. Point .priority* image url()s to new location in resources directory for icons clock.png clock_red.png and cancel.png 2021-02-11 12:16:36 -05:00
zzz
b2655dc86b Util: Fix up KeyStoreUtil CLI 2021-02-10 10:04:54 -05:00
zzz
48d3f6469d Drop monotone cheat sheet doc 2021-02-10 08:39:24 -05:00
zzz
c8471d5d9b NetDB: Ensure blind data is rewritten after updating expiration 2021-02-09 09:24:34 -05:00
zzz
92d91dfc3a Proxy: Update jump URL at op's request 2021-02-08 08:17:05 -05:00
zzz
745a9f083b NetDB: Only rewrite blind cache at shutdown if changed 2021-02-06 11:35:39 -05:00
zzz
ce3db7ed9f Util: EepGet timeout fixes part 1 (WIP)
SocketTimeout fix for total timeout remaining less than inactivity timeout
SocketTimeout javadoc fixes
EepHead check for null SocketTimeout, javadoc fixes
2021-02-06 10:54:43 -05:00
zzz
d51a7ccf38 Router: Consolidate watchdog logging 2021-02-06 10:45:21 -05:00
zzz
5502eda407 NetDB: Ensure RI is published after netdb is initialized
Improve logic for publishing RI direct vs. through exploratory
Fix store failed job being called twice
2021-02-06 10:35:09 -05:00
zzz
eefd8b71ad NTCP: Don't publish saved local address when hidden 2021-02-06 09:52:41 -05:00
zzz
c0c84fd6a5 Proxy: New jump server, restore old jump server now working 2021-02-06 09:33:23 -05:00
zzz
79d270e2d5 make git tunnel type 4 only 2021-02-05 11:26:02 -05:00
zzz
7d08a2377c web-site -> website 2021-02-05 10:39:21 -05:00
zzz
a87033f04c poupdate-source 2021-02-05 10:23:49 -05:00
zzz
4b7921838b Fixup initialNews.xml location for poupdate-source 2021-02-05 09:33:20 -05:00
zzz
64b862d378 GeoIP 2021-02-01 2021-02-05 09:21:24 -05:00
idk
8db8c6a028 add SSH tunnel for gitssh.idk.i2p services to i2ptunnel.config files for docker and regular installs 2021-02-04 13:10:18 -05:00
zzz
8d60d68e23 Util: Stub out yggdrasil address detection
WIP - not hooked in
2021-02-03 09:27:12 -05:00
zzz
56fabe31e2 Tunnels: Peer selection tweaks
Remove blanket unreachable test for inbound tunnels, replace with reachable test for IBGW only
Retain inbound reachable test for hidden routers
Retain inbound reachable test for first hour of uptime
Add outbound reachable test for first hour of uptime
Add locally-unreachable test for outbound tunnels (was inbound only)
Minor cleanups
Log tweaks
2021-02-03 08:40:46 -05:00
idk
f7934e2ed5 Go over about the first half of the 'hostname' mentions and decide whether they need to specify something like 'hostname or IP address' or whether 'address' would be a more-self-evident term 2021-02-01 23:51:28 -05:00
idk
fdb4ec7d7c Switch from 'host name' to 'hostname' 2021-02-01 23:12:49 -05:00
zzz
a4777f3e5d Console: Indent address options on /confignet
hostname -> host name or other rewording
2021-02-01 15:48:16 -05:00
zzz
3314d4bf31 finals 2021-01-31 13:54:34 -05:00
zzz
20c7c8785b Router: Update list of hidden mode countries
List updated using the Freedom in the World Index 2020
Force hidden mode routers to LU
Don't publish stats in first hour of uptime
Add H.323 to invalid ports list
Improve crashed message in event log
2021-01-31 12:32:52 -05:00
zzz
0b4fe1aa56 Util: Improved classification of public/local IPv6 addresses 2021-01-31 11:10:35 -05:00
idk
1c8614bc33 Allow wider i2ptunnel panel in dark mode, also force a dockerhub build 2021-01-30 23:22:07 -05:00
zzz
af4c41ef08 UPnP: Race-proof the fix 2021-01-30 08:46:29 -05:00
zzz
33397433ac UPnP: Fix NPE (android gitlab ticket #1) 2021-01-30 08:35:33 -05:00
zzz
af6ecde867 Util: More javadocs for getIP() change 2021-01-29 07:58:59 -05:00
zzz
706a4f5e08 Merge branch 'test-net.i2p.util.Addresses' into 'master'
Util: Fix net.i2p.util.Addresses::getIP empty string
Test parts of net.i2p.util.Addresses

See merge request i2p-hackers/i2p.i2p!16
2021-01-29 12:45:59 +00:00
6a18bf086f Util: Fix net.i2p.util.Addresses::getIP empty string
The standard library behavior is to return the localhost when null or an empty string is passed.
getIP seeked to override that behavior, but didn't treat the empty string case.
Test parts of net.i2p.util.Addresses
2021-01-29 12:45:59 +00:00
idk
29cbac6a41 Merge branch 'build-docker' into 'master'
Fix docker build

Closes #6

See merge request i2p-hackers/i2p.i2p!19
2021-01-28 20:09:33 +00:00
idk
e48ba4b83c Change the default I2P site theme so that it looks like the default light theme, diff provided by sadie, reviewed and checked in my idk 2021-01-28 14:27:02 -05:00
d7638b4167 CI: test🐜 Install gettext for translations 2021-01-27 20:20:29 +01:00
f39ddcb14a CI: Install junit4 for test:ant 2021-01-27 20:13:08 +01:00
3c48b18f43 CI: Fix pwd for test:ant 2021-01-27 20:05:17 +01:00
317b59a9af CI: Where's the build.xml?? 2021-01-27 20:01:16 +01:00
4c1076ee07 CI: Create override properties with echo 2021-01-27 19:56:03 +01:00
16e886ca3e CI: quiet down wget 2021-01-27 19:53:47 +01:00
f68abc41b7 CI: add job to run tests with ant
`gradle` works easily in the dev environment while ant is a little more involved.
In order to allow easy setup with gradle in the dev environment
 and to allow ant-less, local environment while ensuring that nothing in ant is broken
 this job comes into play.
2021-01-27 19:46:03 +01:00
zzz
1dfdf79d15 Console: Spelling fixes all over, from pospelchek 2021-01-27 11:03:57 -05:00
b2f4445f50 CI:build_docker: cache entire ci-exports/ folder
Restoring cached globbed files doesn't seem to work.
The folder only contains a single file anyway,
 so it shouldn't endlessly grow in size.
2021-01-27 16:23:18 +01:00
acbb8d1a24 Docker: Preconfigure clients and tunnels
The follow clients and tunnels are available on all interfaces (0.0.0.0) of the container:

 - routerconsole
 - SAM
 - I2P HTTP Proxy
 - Irc2P
2021-01-25 22:30:04 +01:00
bd1017ba92 Docker: Expose only the ports necessary
The range of 5k ports should be replaced by a more precise choice of ports.
It also pollutes the `docker inspect` output with 5k more lines.
2021-01-25 22:00:12 +01:00
zzz
cb22f31d96 Tunnels: Update profiles for tunnel peers on corrupt message at endpoint 2021-01-24 09:38:03 -05:00
idk
451e53a674 Increase height of i2ptunnel iframed div 2021-01-23 23:12:09 -05:00
idk
9f7b0390a3 Remove background gradient from Hidden Services Manager pages and Snark Light theme. Allow hidden services manager items to use the whole width of the window. 2021-01-23 22:03:28 -05:00
idk
c400232cdf Make usage of 2-word Address Book consistent across console instead of mixed up(AddressBook, Address Book, addressbook, Addressbook, address book). Upper-case in app titles, lower-case in the text. Change CSS on address book to have the rounded buttons used in the rest of the console. 2021-01-23 21:04:49 -05:00
c87e74ea1d CI: Move build_docker to build stage 2021-01-23 22:56:10 +01:00
idk
c95430f33b Merge branch 'activate-ci-for-master' into 'master'
Ready: Activate CI test job for master

See merge request i2p-hackers/i2p.i2p!17
2021-01-23 21:42:19 +00:00
4a9131c39d CI: Add build_docker job conditions
We shouldn't build it for every single branch and commit
2021-01-23 22:37:29 +01:00
b47269f14e CI: Fix docker load command
It wasn't working at all which mean we would never use the cache
2021-01-23 22:36:56 +01:00
fb317b44ba CI: make sure we can build Docker image 2021-01-23 22:32:10 +01:00
e64e12b3fb Fix docker build
ant needed to be updated to >1.9, but the old image used an old alpine
 with the max version of ant being 1.8.

The build is split into 2 phases to reduce the size of the image.
A builder makes the installer and installs it in one image.
The installed files are copied over to the actual result image.
2021-01-23 18:19:31 +01:00
zzz
08c46e55f5 Console: pull new and updated readme translations
Eepsite: pull new and updated help translations

Replace possibly more-translated, but very very old (not from transifex) pages
2021-01-23 11:58:41 -05:00
zzz
5e5886395c Tests: Add mockito classpath to core tests
javadocs for new test classes
2021-01-23 09:47:22 -05:00
zzz
4776080ce6 Merge branch 'test-context' into 'master'
ConvertToHash test I2PAppContext part

See merge request i2p-hackers/i2p.i2p!15
2021-01-23 14:17:27 +00:00
79a868b8fe Use TestContext to replace existing I2PAppContext
This allows us to mock parts of the I2PAppContext as we like.
The mocking is done when `testContext` is created in the constructor,
 which replaces the existing global context.
2021-01-23 14:17:27 +00:00
zzz
c79e6455fd Build: Drop old Makefile.gcj 2021-01-22 09:16:03 -05:00
zzz
b7262aa592 Console: Drop old proof page 2021-01-22 08:43:47 -05:00
596f6e01cc CI: Activate for master
After a merge request has been merged, the result should also be tested.
Otherwise gitlab won't run it
2021-01-21 21:42:31 +01:00
idk
d95c85cdbe Fix the border-radius on the buttons and textareas in Address Book. Make the usage of Address Book agree on the titles. 2021-01-21 12:35:13 -05:00
zzz
f71e59a049 Merge branch 'test-convert' into 'master'
Test net.i2p.util.ConvertToHash

See merge request i2p-hackers/i2p.i2p!13
2021-01-20 14:38:37 +00:00
169fb59d7d test: fix I2PSocketExceptionTest::testUnknownStatus
In non-English environments, the message is translated.
2021-01-20 14:38:37 +00:00
zzz
922178b2c7 SSU: Fix deadlock with router restart
http://zzz.i2p/topics/3036
2021-01-20 09:27:55 -05:00
zzz
74a9193ba5 Console: Fix link to UPnP status 2021-01-20 09:25:58 -05:00
idk
335409f1d2 Find and fix the bug which appears in 'https://old.reddit.com/r/i2p/search?q=console&restrict_sr=on&sort=relevance&t=all' a bunch of Reddit posts, due to a mistake in the Firefox Profile Installer which expected router.config to be in the (deprecated)Roaming application data, even though it was in the Local Application Data, and if it did not exist, created it. If the (deprecated)Roaming application data directory had a router.config file, then I2P attempted to use the Roaming application directory, and the user could end up with a router that had no client apps configured, resulting in a poor UX 2021-01-18 00:26:33 -05:00
idk
d6edb9e96c Merge branch 'gitlab-ci' into 'master'
Tests on Gitlab CI

See merge request i2p-hackers/i2p.i2p!12
2021-01-17 23:10:34 +00:00
f150855f1c test: fix I2PSocketExceptionTest::testUnknownStatus
In non-English environments, the message is translated.
2021-01-17 23:10:34 +00:00
zzz
655ce09796 Console: Remove echelon.i2p from home page at op's request 2021-01-17 10:06:44 -05:00
zzz
91ebec15d5 NetDB: log/stat tweak 2021-01-17 09:51:49 -05:00
zzz
b17d321503 Ratchet: log tweaks 2021-01-17 09:47:04 -05:00
zzz
a6398d88a9 i2psnark minor cleanup 2021-01-17 09:40:11 -05:00
zzz
59969db16c Sybil: Limit stored analysis files if no console to view them
Reduce stored file time to 10 days
Min stored time is 2 * analysis interval
2021-01-17 09:32:23 -05:00
zzz
b68a5ea7fd Router: Fix up warning about no console for split config files
clean up multiple getContext() calls
2021-01-17 09:18:21 -05:00
idk
c2234685b9 eepsite=>I2P site to match the new terminology on the web site, and more fine-tuning to CSS to sharpen image appearance 2021-01-17 01:11:51 -05:00
zzz
ce7daaa02a Router: Limit max addresses in RI 2021-01-14 10:32:35 -05:00
zzz
b19999f95a Router: Move Sybil subsystem from console to router 2021-01-14 09:46:38 -05:00
zzz
92ecc9f8e8 Router: Log crashed event if old router.ping file is found at startup 2021-01-14 09:25:21 -05:00
zzz
aa2ba92db8 Router: Change default encryption type to ECIES-X25519 (proposal 156)
As of 0.9.49. 0.9.48-x dev builds will not rekey.
New installs only.
Existing install rekey probability: 1 in 128
To be increased in later releases, see proposal 156 for details.
2021-01-14 08:54:17 -05:00
zzz
5f3c41244b Jetty: Fix URI in request logs
Use standard getRequestURI() instead of Jetty internal getHttpURI(),
which apparently changed somewhere along the way

Hide Jetty ClosedChannelException from I2P logs
2021-01-13 08:54:46 -05:00
zzz
bf29132898 Tunnels: Downgrade log error to warn 2021-01-12 09:49:09 -05:00
zzz
a424331b78 i2psnark: Don't decrement downloaded counter after receiving bad piece
Received reports of counter going negative
2021-01-12 08:23:36 -05:00
idk
ccb0c279f7 Fix the width of the custom options at the bottom of i2ptunnel on the light theme 2021-01-11 12:48:07 -05:00
zzz
7fe01fb9a7 Console: Delete rrd files for no-longer-configured stats at startup 2021-01-11 10:21:54 -05:00
zzz
66c4c10a78 Console: Improve parsing of email address (part 2) 2021-01-10 08:03:15 -05:00
zzz
163967311e Console: Improve parsing of email address for mailto: link on /plugins 2021-01-10 07:24:28 -05:00
zzz
75734448c5 I2NP: Stub out new tunnel build messages (proposal 157)
WIP - not hooked in yet
2021-01-09 12:00:18 -05:00
zzz
aed1de84b8 SSU: Fix bandwidth estimator deadlock (ticket #2798)
Fix logging in SBE (bytes not packets)
2021-01-08 12:07:41 -05:00
zzz
51560a8ec8 i2ptunnel: Disable shared clients (DSA) (part 2)
missed case in 2020-12-29 checkin
2021-01-08 11:27:53 -05:00
zzz
ec89a80e80 Router: Disable reseeding and NTP in vmCommSystem 2021-01-07 11:04:56 -05:00
zzz
41c7b7382a SSU: Implement fast retransmit (ticket #2427)
This partially fixes the issue of packets not being retransmitted
before they expire in 10 seconds, introduced in 0.9.48 as reported by
jogger at http://zzz.i2p/topics/3003
Fast retransmit was also suggested by jogger as a solution and discussed in that thread.
This code is based on the requirements for TCP fast retransmit
as specified in RFC 5681 but cannot precisely follow the RFC
as UDP messages can be dropped without affecting later messages:
- nack counter is per-message, not per-connection
- some interactions with the retransmit timer when in fast retx mode
- msg expiration is currently 10s but max RTO is 60s
- interactions with individual fragment transmission implemented in 0.9.48-5
- this is a sender-side fix but it depends on far-end ack resend strategy

Maintain a local message sequence number and store
it in OMF, previously unused as codel is disabled
Removed acked messages from _outboundMessages as usual,
but stores message and seq. numbers in a LinkedHashMap,
so we may interpret additional acks as nacks.
Calculate the highest-acked seq. number for every incoming packet.
Marks messages older than highest acked as nacked
Fast-retransmits after 3 nacks
Window and SST adjustments per RFC 5681 sec. 2.4
Reduce resend ack quantity and timeout to improve odds of receiving "nacks"
Disable wakeup of OMF from IMF; should not be needed now that PS calls nudge()
PS.acked(partial) now returns true if any fragment was acked, not if complete
Log tweaks

Still todo: possible additional changes to ack resend strategy;
possible parameter adjustments including msg expiration;
confirm that OMF wakeup in IMF is not required;
further testing and cleanups;
take additional ideas from alternative proposal in MR !8;
stat tweaks;
find related tickets to close

Reviewed by and contains code from zlatinb in MR !8
This builds on several previous SSU improvements; see #2427 for a list.
ref: gitlab MRs !8 !9 !10 !11
2021-01-07 09:33:09 -05:00
idk
b4e1fbd857 center the text on the force restart and shutdown buttons in the sidebar 2021-01-06 16:25:07 -05:00
zzz
517ff4fa24 i2psnark: Add ability to remove I2CP options
Properly lock options map
Remove unused configured variable
2021-01-05 11:21:04 -05:00
zzz
106b1a696d SusiDNS: Hide last-modified on details page if empty 2021-01-05 09:22:36 -05:00
zzz
6cab545c45 Console: Reduce limit of concurrent graph generation on slow devices 2021-01-05 09:18:25 -05:00
zzz
619923dbf8 Build: Update external javadoc links
Add description to gradle update tasks
Add note about jetty versions
2021-01-04 11:51:24 -05:00
zzz
ed0ecdf253 Build: Add gradle updater tasks 2021-01-04 09:36:34 -05:00
zzz
d42ef2223d Build: Add i2pcontrol and imagegen to gradle build 2021-01-04 08:34:09 -05:00
zzz
e461004ed9 Build: Remove jars from gradle wars 2021-01-04 07:38:19 -05:00
zzz
2e180d4c60 Build: Add translations to gradle build (part 3 - only rebuild if necessary) 2021-01-03 10:35:04 -05:00
zzz
152ad1659b Build: Add translations to gradle build (part 2 - wars)
Several fixes for i2ptunnel gradle build
2021-01-03 09:55:42 -05:00
zzz
888311e34f Build: Add translations to gradle build (part 1 - jars) 2021-01-03 09:08:21 -05:00
zzz
2df5fb972a Sybil: Reduce default threshold 2021-01-02 09:58:08 -05:00
zzz
a481255adb Tunnels: Improve error handling of zero tunnel ID at OBEP
Reduce max time to defragment
Make logging of errors consistent
cleanups, stat tweaks
2021-01-02 09:57:27 -05:00
idk
139594df8f Move travis test runner script to own file so it's easier to work with 2021-01-02 09:12:02 -05:00
idk
659ab97f69 Try increasing sonar scanner heap size in travis builds 2021-01-02 08:49:46 -05:00
idk
963a4fe89c Extend travis timeout and make sonarqube output verbose 2021-01-02 08:39:21 -05:00
zzz
4c4dbae107 Console: Show file mod time in local time zone on /jars 2021-01-01 11:05:04 -05:00
zzz
6978049416 Console: Link to our gitlab on /jars 2021-01-01 10:49:14 -05:00
zzz
46fe1ba74a Build: Gradle fixes
Add resources to jars and wars
remove .jsi and .jsp files from wars
remove classes that are in jars from the wars for apps that have both
compile jsps in routerconsole.war
build routerconsole.jar
2021-01-01 10:17:00 -05:00
zzz
13bd5e4938 SSU: Remove router version check for random intro key, now that the release is out 2021-01-01 07:13:26 -05:00
idk
bbacf85245 travis-ci test: correct the sonarqube version for the last time, I think 2020-12-31 15:38:24 -05:00
idk
68f011f344 Remove some CSS that applies to images that aren't present in the current software. Also switch to version 2.8.0 of sonarqube in travis.yml since 3.0.0 does not seem to be available as a gradle plugin for this version 2020-12-31 15:31:52 -05:00
idk
8bd2384ac8 travis-ci test: Try updating the sonarqube plugin. 2020-12-31 13:05:26 -05:00
zzz
54dda1a15f alignment 2020-12-31 12:47:01 -05:00
zzz
3f44a555ba Console: Use local time on graphs by default, add UTC option 2020-12-31 12:36:07 -05:00
idk
86cbb2ed4e travis-ci test: Try switching to oraclejdk11 without updating the sonarqube plugin. 2020-12-31 11:52:10 -05:00
zzz
2569123055 NetDB: Drop lookups with replies going to us
Extend lookup expire time
Cleanups
2020-12-31 08:37:04 -05:00
idk
afa4b9e66d Tweak border color on /events form 2020-12-30 18:34:42 -05:00
idk
67bd5a32fd fix overlapping border on /events css, closes #4 2020-12-30 18:32:57 -05:00
idk
ada3629507 correct name of git-bundle ant target 2020-12-30 15:38:47 -05:00
idk
dcb7314306 travis-ci now requires you to use trusty if you also want to use oraclejdk8 2020-12-30 14:50:09 -05:00
idk
e3c2ad6354 fix broken travis test 2020-12-30 14:14:30 -05:00
idk
178ea252d5 Merge branch 'bundle-target' into 'master'
add a bundle target to ant that generates a current git bundle and corresponding torrent.

See merge request i2p-hackers/i2p.i2p!1
2020-12-30 15:49:41 +00:00
idk
7e4ba4eb31 Merge branch 'master' into 'bundle-target'
# Conflicts:
#   build.xml
2020-12-30 15:48:58 +00:00
zzz
de43de17f6 Crypto: Only skip N mixHash for router messages
Still required for ECIES build replies; previous checkin broke it
Make a new pattern id for N without responses
Fixes ECIES build replies
2020-12-30 07:08:47 -05:00
zzz
2ceb9c429a Console: Add tunnel nicknames to router debug page
Escape tunnel nicknames on LS debug page
2020-12-29 16:29:53 -05:00
zzz
0b59f53fe9 i2ptunnel: Disable shared clients (DSA), any server not
supporting EdDSA doesn't support LS2.
2020-12-29 15:51:51 -05:00
zzz
62fce859b9 Ratchet: mixHash() not required after message for N pattern 2020-12-29 14:15:00 -05:00
zzz
9fc97764c5 NetDB: Verify RI stores for a while after starting 2020-12-29 14:06:28 -05:00
zzz
2813d9412d Crypto: Cache AES Ciphers
About a 10% speedup
2020-12-29 10:26:41 -05:00
zzz
a0bf76a4b1 Debian: Add JRE 15,16 2020-12-28 08:29:07 -05:00
zzz
d2a79e8837 Build: Add version where missing from jar manifests 2020-12-28 08:07:50 -05:00
zzz
738ef496d4 Debian: Build fix for no geoip files 2020-12-27 10:13:02 -05:00
zzz
a2734ffa72 SSU: Fix restoration of window after failed message
Reported by and adapted from patch by zlatinb
2020-12-27 08:50:11 -05:00
zzz
8606d30e9a Build: Fixup installer build after flags move 2020-12-26 10:28:37 -05:00
zzz
a45084cfc3 Console: Move initial news to jar 2020-12-26 10:13:49 -05:00
zzz
eeaf6f3514 Console: Fix missing newlines in readme output 2020-12-26 09:36:36 -05:00
zzz
9e18ff1cd1 Router: Move countries.txt file into i2p.jar 2020-12-26 09:33:13 -05:00
zzz
665239fd37 Router: Move continents.txt file into jar
Move core resources directory to be consistent with the other subsystems
2020-12-26 08:11:00 -05:00
zzz
12f9a7187e Console: Move flag overrides to war 2020-12-26 06:12:31 -05:00
zzz
8835351b99 I2CP: Fix requesting leasesets for subsessions (ticket #2458)
Always request new LS for subsessions also
Don't reuse LS object for subsessions
Cancel rerequest timer as necessary
Fixes watchdog warnings
Fixes console status for subsessions in different states
javadocs
2020-12-24 13:56:32 -05:00
zzz
a3c44912f2 SusiDNS: Fix link to backup image 2020-12-24 10:11:41 -05:00
zzz
db9f735376 i2ptunnel: Fix writing config file twice on saving existing tunnel
Fix 'Invalid tunnel number' message on saving new tunnel
javadocs
log tweaks
2020-12-23 12:26:56 -05:00
zzz
875a7242d4 Javadoc update for DoH 2020-12-23 10:22:34 -05:00
zzz
51ecdc64a4 Debian: Refresh json patch 2020-12-23 10:18:29 -05:00
zzz
7b785ea454 I2CP: Fix encrypted leaseset for ECIES and dual-key encryption, and for offline keys 2020-12-23 10:05:58 -05:00
zzz
8f5fc44755 Crypto: Increase ratchet tag window
Set trimbehind = lookahead
Ramp up tag window faster
Check for ratchet ES encrypt fails
Log tweaks
2020-12-23 06:47:39 -05:00
zzz
010dbfa6f2 Console: Move resource helper to war, doesn't work from jar 2020-12-22 12:37:47 -05:00
zzz
e20a19c358 Console: Move readme files to war 2020-12-22 09:50:02 -05:00
zzz
387e513949 Console: Add netdb search by enc. type 2020-12-22 07:36:47 -05:00
5e005e6520 Merge branch 'whitespace' into 'master'
Whitespace

See merge request i2p-hackers/i2p.i2p!7
2020-12-21 23:00:12 +00:00
e88f40cd95 Whitespace 2020-12-21 23:00:12 +00:00
zzz
82e93a53a3 bump -7 2020-12-21 15:51:14 -05:00
zzz
fee5668c1c Merge branch 'partial-ack-fix' into 'master'
SSU: Fix partial acks not being sent when there are no 'gaps'.

See merge request i2p-hackers/i2p.i2p!6
2020-12-21 20:47:11 +00:00
zzz
abb8cbe75d SSU: Fix partial acks not being sent when there are no 'gaps'.
Workaround the bug on the sending side for pre-0.9.49 routers by sending fragments in reverse order.

Bug introduced in commit 9c4558d891 Sep 20 2014.
This partially reverts that commit.
Reported by and adapted from a patch by zlatinb
2020-12-21 10:02:20 -05:00
zzz
340df51429 Console: Fix theme selection 2020-12-20 14:40:09 -05:00
zzz
bec8feb05a Build: Fix up proxy file location 2020-12-20 14:08:13 -05:00
zzz
d86ccded53 Proxy: Move error page resources to jar 2020-12-20 13:50:54 -05:00
idk
db7d92a5cd Apply 1 suggestion(s) to 1 file(s) 2020-12-20 17:57:52 +00:00
zzz
30ffdd03c7 SSU log tweaks 2020-12-20 08:35:07 -05:00
zzz
251d8de943 Merge branch 'wplus-wip' into 'master'
SSU: Westwood+ congestion control (ticket #2427)

See merge request i2p-hackers/i2p.i2p!4
2020-12-20 13:13:34 +00:00
zzz
5e8de68746 SSU: Increase sendWindowBytesRemaining when increasing the window
Fix BWE log formatting
2020-12-19 08:23:13 -05:00
zzz
8ae29c8c00 SSU: Westwood+ bandwidth estimator classes (ticket #2427) 2020-12-19 07:26:53 -05:00
zzz
542efa0d9a SSU: Westwood+ congestion control (ticket #2427)
Reduce initial window to match RFC
Add back to window on message failure
Remove two bps stats
log tweaks
2020-12-18 14:46:26 -05:00
zzz
23c80accfa SSU: More PeerState cleanup 2020-12-18 11:58:55 -05:00
zzz
b909430725 SSU: Account for packet overhead in window calculations 2020-12-18 11:52:18 -05:00
zzz
20b413bc67 Crypto: Fix use after free (ticket #2797) 2020-12-18 11:05:36 -05:00
a9b6b86183 Merge branch 'ssu-sync-fix' into 'master'
lock locked_shouldSend on this

See merge request i2p-hackers/i2p.i2p!3
2020-12-18 13:48:40 +00:00
66b724759d lock locked_shouldSend on this 2020-12-18 09:03:52 +00:00
zzz
56059448c5 SSU: Send subset of fragments (ticket #2427)
if all fragments will not fit in the window.
Track per-fragment send count.
Reset send window when retransmitting.
Update send window when partial acks received.
Make OMS.getMaxSends() and getPushCount() track different things.
Change OMS.push() to be called by OMF and return the pushed fragments.
Use size of smallest fragment rather than total size to determine if we can send a message now.
This is an improved fix for ticket #2505.
Eliminate repeated calls to OMS.getLifetime()
Log tweaks and reduce log levels
Improves throughput on lossy connections.
Reduces latency for large messages.
This is prep for reducing DEFAULT_SEND_WINDOW_BYTES and W+, which
would have exacerbated these issues.
Additional changes to follow, implementing Westwood+, see #2427
2020-12-17 12:54:24 -05:00
zzz
1c52eeb910 NetDB: Prevent reported NPE 2020-12-16 11:01:45 -05:00
zzz
4aefe4bf7a SSU: Fix OMF looping when timer isn't cancelled after last message acked
Push out timer when no more bandwidth available
Workarounds for now, more changes to follow
2020-12-16 09:40:39 -05:00
idk
b9444cdc51 Merge branch 'fix-ides' into 'master'
Fix ides

See merge request i2p-hackers/i2p.i2p!2
2020-12-14 23:22:16 +00:00
idk
eb72e4c9f5 remove padding from control buttons on i2ptunnel in order to recenter the text vertically 2020-12-14 12:18:19 -05:00
zzz
aa181ee43f SSU: Restore sync dropped in cleanup 2020-12-12 11:00:03 -05:00
zzz
ab04f92072 SSU: PeerState cleanup 2020-12-12 10:15:02 -05:00
zzz
0830329eaf Build: delete file after building to make git happy 2020-12-12 10:13:56 -05:00
2d154cc90e update gitignore 2020-12-11 20:21:10 +00:00
183280871f get gradle assemble to work 2020-12-11 20:12:27 +00:00
067ee80ba0 remove IntelliJ and Eclipse project descriptors 2020-12-11 19:45:25 +00:00
idk
804e2f39f9 append full version to git bundle generation when generating from the ant target 2020-12-11 13:51:40 -05:00
zzz
0ad7e52b71 Router (proposal 156):
- Change router ECIES SKM to use N pattern, remove Elligator2, to match proposal changes
- Allow encrypted messages to ECIES routers
- Allow ECIES routers to become floodfill
- Add XDH factory to VM comm system for tests
2020-12-11 10:08:41 -05:00
zzz
e15110bbe1 Build: Fix i2pcontrol unset property in manifest 2020-12-11 09:00:12 -05:00
idk
2cffda6974 update the HACKING.md to reflect better and/or git-based instructions, also a test commit for git migration. 2020-12-10 13:42:02 -05:00
zzz
2300f6c226 i2psnark: Add web seeds in TrackerClient
list web seeds in UI
2020-12-06 14:25:43 +00:00
zzz
1ed8a1b6f3 i2psnark: Close RAF on error 2020-12-06 14:13:10 +00:00
zzz
c4ed7719e8 i2psnark: Preserve file attribute strings in metainfo 2020-12-06 14:00:02 +00:00
zzz
a98fe45204 Streaming: Add Retry-After header to throttle response 2020-12-06 13:26:55 +00:00
zzz
5a3e26453f Transport: Block SIP ports 2020-12-06 13:11:46 +00:00
zzz
c259000cdb Console: fixup param name 2020-12-06 13:09:57 +00:00
zzz
d683f0d9eb Util: Change DoH to the RFC 8484 protocol 2020-12-06 12:54:20 +00:00
zzz
48b8886224 i2psnark: Add WebSeed support - WIP - not hooked in yet 2020-12-06 12:43:55 +00:00
zzz
1097220d31 i2psnark: Move URIUtil from war to jar (prep for WebSeed) 2020-12-06 12:37:19 +00:00
zzz
fdeae72d38 i2psnark: Fix up standalone build 2020-12-06 12:31:22 +00:00
zzz
f870bc2ccd console: Move web resources to war 2020-12-06 12:05:53 +00:00
zzz
ec3bfa3cb7 susimail: Move web resources to war 2020-12-06 12:03:27 +00:00
zzz
c3f7c5d154 susidns: Move web resources to war 2020-12-06 12:02:11 +00:00
zzz
127b93c1e2 i2ptunnel: Move web resources to war 2020-12-06 11:59:54 +00:00
zzz
cd019f258f i2psnark: Move web resources to war 2020-12-06 11:59:11 +00:00
zzz
889b7361fe imagegen: Move CSS to war 2020-12-06 11:55:40 +00:00
zzz
99f6d4aba4 MiniDNS javadoc fix 2020-12-05 14:27:56 +00:00
zzz
69deddcbc7 Add DNS library to support RFC 8484 DoH (ticket #2201)
WIP - not yet hooked in

This is a portion of release 1.0.0 of MiniDNS from https://github.com/MiniDNS/minidns/ 2020-07-18
Only contains the minidns-core portion of the library.
Removed tests, most util classes, and DnsRootServer class.
Unmodified, as a base for future checkins.
Total size of zipped classes is about 75 KB.

This software may be used under the terms of (at your choice)
- LGPL version 2 (or later)
- Apache Software licence
- WTFPL
2020-12-05 14:21:08 +00:00
zzz
58020b4b58 Console: Swap some columns on ssu /peers for consistency
Format send window and slow start threshold values
2020-12-05 12:56:58 +00:00
zzz
df43e72a08 PRNG: Drop unused exception and interface 2020-12-05 12:51:24 +00:00
zzz
326e2c630c Debian: Files for 0.9.48
refresh patches
update release docs
2020-12-02 14:53:38 +00:00
zzz
36fdfd529f 0.9.48 2020-12-01 15:54:41 +00:00
zzz
94bdc9c5b3 Late pl,zh translation updates 2020-12-01 14:50:37 +00:00
zzz
c60e51514c Add old cert to deletelist.txt
Javadoc fix
2020-12-01 14:39:44 +00:00
zzz
7dcbbf17c3 Console: Fix headers on /debug
JS: Update license headers
patch from idk
2020-12-01 14:36:50 +00:00
zzz
5551deb246 pull RU translations 2020-11-28 19:42:22 +00:00
zzz
6e8fd42efd pull translations 2020-11-27 18:40:53 +00:00
zzz
5020100ef8 BuildTime update 2020-11-27 18:06:55 +00:00
zzz
6c2c6abfb9 NTCP: Enable nodelay by default
SSU: Don't wakeup OMF after ack if no more messages are pending
2020-11-26 18:58:22 +00:00
4940c34779 More light theme CSS tweaks to table headings and table spacing on /config*, switch from uppercase to capitalize for titles on SusiMail 2020-11-25 03:58:38 +00:00
6d5aebeaa0 remove borders from around notifications on /welcome 2020-11-24 19:27:02 +00:00
zzz
d8924119b5 NTCP: Add nodelay option for testing 2020-11-24 14:48:59 +00:00
zzz
4b445e7d35 Build: release target fixes for git 2020-11-24 14:45:02 +00:00
zzz
17e47a0c93 Build: revisions target for git 2020-11-24 14:02:20 +00:00
zzz
2ffb570850 Console: Serve default favicon.ico
i2ptunnel: Remove dup link to nonexistent theme favicon.ico
2020-11-23 18:46:12 +00:00
zzz
aef2fb8ce0 i2pcontrol: Basic HTML fixes and HTTP headers for static pages 2020-11-23 15:24:19 +00:00
zzz
875fcdfb94 NetDB: Increase min FF version for LS lookups since most are LS2 now 2020-11-22 19:46:18 +00:00
151f856b0a apply revert to h3#transports on /peers to fix cramping 2020-11-22 16:25:15 +00:00
zzz
337787be0e i2psnark: Remove old opentrackers 2020-11-21 17:27:41 +00:00
zzz
798521466d Proxy: Remove old jump servers 2020-11-21 17:24:24 +00:00
zzz
678c035fa3 Proxy: Fix CSP for conflict error page 2020-11-21 17:21:36 +00:00
zzz
ccb4210f8b NetDB: Limit max explore at startup when hidden 2020-11-20 14:37:22 +00:00
zzz
7e5dc6ad64 Tomcat 9.0.40 2020-11-20 14:11:59 +00:00
zzz
31622d0458 NetDB: Increase exploration rate when hidden 2020-11-20 12:59:22 +00:00
zzz
f9b18545f9 Reseed update 2020-11-20 12:30:52 +00:00
e67eccd1eb Remove inconsistent gradients from light theme /config items 2020-11-19 22:25:51 +00:00
cefe212a17 Get rid of uppercase text transforms on non-table headings, fix wierd white background on h4's 2020-11-19 21:44:11 +00:00
8a76d71bd5 Widen margins in langsettings dropdown 2020-11-19 21:11:04 +00:00
806df95114 Lighten up some borders on /home, improve consistency of backgrounds on /home, header margins on apps on homepages 2020-11-19 20:56:21 +00:00
c6c0b9ce8a Un-squish the SusiDNS SVG image on Firefoxes greater than 83, remove wierd padding from .optboxes 2020-11-19 18:27:29 +00:00
zzz
00a0970c95 Crypto: Adjust Java key cache sizes 2020-11-19 14:52:11 +00:00
zzz
cb1bd95f2b Build: Reproducible build fix (ticket #2279) 2020-11-19 14:28:38 +00:00
zzz
d12b52f82a Debian: Clean up old commented-out rules 2020-11-19 12:53:26 +00:00
zzz
891ffaac09 Update apparmor profile for usrmerge
https://bugs.launchpad.net/ubuntu/+source/i2p/+bug/1784023
2020-11-19 12:42:07 +00:00
zzz
36fbf0e332 poupdate-source 2020-11-18 17:54:36 +00:00
zzz
e811238d60 NetDB: Disable sending encrypted messages to ECIES routers for now
The #ls2 team plans to change the specification and re-enable after the 0.9.48 release
2020-11-17 16:21:10 +00:00
zzz
c9e6bef825 Jetty: Patch to fix console not starting on Java 11.0.9.1
Backport JavaVersion.java from Jetty 9.4.34
Jetty does not plan to fix in 9.3.x
ref:
https://github.com/eclipse/jetty.project/issues/5682
https://github.com/eclipse/jetty.project/issues/2284
http://zzz.i2p/topics/2991
2020-11-17 15:50:10 +00:00
zzz
0f002b9b69 Jetty 9.3.29.v20201019/ 2020-11-17 15:39:08 +00:00
zzz
f179a057bc Wrapper: Add missing binaries for armv7 and aarch64 to installer (ticket #2308) 2020-11-17 12:04:49 +00:00
zzz
6f5042be8f Test: Drop ancient unused DateMessage 2020-11-16 16:16:49 +00:00
zzz
2044474549 Zxing: Update to 3.4.1 (2020-09-29)
Merge in javadoc fixes
2020-11-16 15:55:27 +00:00
zzz
0b0b93f26f javadoc fix 2020-11-16 15:32:29 +00:00
zzz
595f8762ab I2NP: Don't extend DataStructureImpl, to save space
Fixup test as required
2020-11-16 14:51:35 +00:00
zzz
8644eb431e GeoIP 2020-11-01 2020-11-16 14:43:22 +00:00
zzz
223afdfc7e Wrapper: Update to wrapper 3.5.44
All binaries from Tanuki Delta Pack Community Edition,
except for armhf (armv6), compiled on Raspberry Pi:
  ant 1.8.2
  javac 1.7.0_151
  gcc 4.6.3-14+rpi1

Windows binaries remain unchanged as we must recompile them ourselves
(32 bit just to change the icon; 64 bit is not provided by Tanuki)

PPC 32-bit big endian not updated, no longer supported by Tanuki
2020-11-16 14:35:48 +00:00
zzz
de41cab08e GarlicClove: Store time as long rather than Date to save space 2020-11-11 16:00:57 +00:00
zzz
3606a42ea8 Lease: Store time as long rather than Date to save space
Add long methods, deprecate Date methods
2020-11-11 15:15:44 +00:00
zzz
6887c7edae I2CP: Don't have I2CP Messages extend DataStructureImpl, to save space
Ditto MessageId and SessionId.
Fixup unit tests as required
2020-11-11 13:09:42 +00:00
4a00691385 increment the counter on the bandwidth config page by 5 instead of 10 so that it can actually match the recommendations on the /welcome 2020-11-11 00:32:35 +00:00
1d0a2c4fac Fix right-side padding of down arrow on select boxes 2020-11-10 19:40:30 +00:00
d0016380e5 Make all the border radiuses consistent across apps. Button-like inputs get a 12px radius, text-like inputs get a 6px radius. "Professional but not prickly." nix almost all drop-shadows and most text-shadows. more 1-3 pixed tweaks to get text centered up 2020-11-10 19:15:41 +00:00
zzz
29dc311c6a Ratchet: Destroy HandshakeState after fatal NS/NSR errors 2020-11-10 15:22:46 +00:00
zzz
7aa78a1aed One more i2cp buffer size increase 2020-11-10 14:57:39 +00:00
zzz
989f64192f i2psnark: Larger read buffer for large files 2020-11-10 14:54:37 +00:00
zzz
c908c6bd05 Data: SDS no longer extends DataStructureImpl to save space
More minor i2cp efficiency improvements
KeyCertificate log tweak
2020-11-10 14:48:42 +00:00
9f51b72cab fix oversized button on i2ptunnel home page 2020-11-08 02:49:16 +00:00
zzz
a2fd817915 Tunnels: getUnknownOptions() is non-null
one more TunnelId fixup
2020-11-07 13:53:44 +00:00
zzz
5bafdd05a9 Tunnels: Simplify TunnelId and HopConfig to save space
and reduce object churn and duplication
Fixup tests, javadocs, logging as required
2020-11-07 13:40:48 +00:00
e18708bdbe round and re-center buttons on i2ptunnel home page 2020-11-07 07:18:15 +00:00
f6687c1f88 add a little padding to the left of the text in the sidebar under Local Tunnels, set links list style to none instead of using the link image 2020-11-07 02:55:35 +00:00
b9eabca403 use paste.png for the pastebin instead of pasteidk.png so in theory other pastebins could use it 2020-11-06 16:59:30 +00:00
9ec2c62f2f update the contents of /home to include git.idk.i2p and paste.idk.i2p 2020-11-06 16:57:47 +00:00
zzz
d4152ea546 NetDB: Ensure RI republish time is less than validation time
to prevent failures on connections esp. for hidden mode
2020-11-05 18:47:49 +00:00
zzz
8cc62b5b42 Util: More elimination of data copies 2020-11-04 14:27:16 +00:00
zzz
e242015145 Util: Hook in ByteArrayStream
Set accurate lengths for zero-copy
2020-11-04 12:04:24 +00:00
zzz
35da97936d Point to gitlab in console readme.html,
as approved at today's meeting
2020-11-03 20:59:39 +00:00
zzz
bfe21176ea Add host already linked in console,
as approved at today's meeting
2020-11-03 20:30:53 +00:00
zzz
d1dd9ab517 i2ptunnel: Add checks for offline expiration in alternate destination
Improve logging for expiration checks
2020-11-03 16:39:35 +00:00
zzz
c18dbe974a Remove reseed SSL cert, now using a CA 2020-11-02 22:19:49 +00:00
zzz
f69563da75 Util: New zero-copy BAOS
WIP, to be hooked in
2020-11-02 12:12:20 +00:00
zzz
057eca56d5 Console: Show offline expiration on LS debug page 2020-11-02 12:01:58 +00:00
zzz
a21a64e0c6 i2psnark: Remove unused bencode() methods 2020-11-02 11:39:40 +00:00
zzz
751af5bcd8 i2psnark: Limit max size of embedded video 2020-11-02 11:33:34 +00:00
zzz
c8605009ba i2ptunnel: Automatically restart tunnel if offline-signed private key file is updated
Periodically log if about to expire
Short delay between stop and start on restart
_tunnel is always non-null
2020-11-02 11:27:06 +00:00
zzz
5625caebda I2CP: Remove tunnels immediately on client disconnect 2020-11-02 11:21:52 +00:00
zzz
fc0a78dd7b Util: Drop class deprecated 11 years ago 2020-10-31 20:20:59 +00:00
zzz
90aab37002 i2psnark: Add support for comment and url_list to Storage CLI
Add support for multiple urls to MetaInfo CLI
Add comment to release torrent
2020-10-30 16:37:54 +00:00
zzz
5c1a529df0 Util: Fix NPE in EepGet CLI callback via PartialEepGet
Fix callback javadocs
2020-10-30 15:22:24 +00:00
zzz
6fa015c410 i2psnark: MetaInfo support for url-list (prep for BEP 19),
WIP - unused for now.
Add url-list to CLI tool for testing
Add comment support to CLI tool
2020-10-30 13:18:46 +00:00
zzz
2d1e68b53b i2psnark: Store BEP 47 padding file info in a bitmap (prep for BEP 52),
WIP - unused for now.
Don't instantiate files_utf8 unless needed, which it never is
2020-10-29 17:13:32 +00:00
zzz
35012a3bad Crypto: Precalculate Noise init hash 2020-10-29 16:51:13 +00:00
zzz
190b76d7fd Tunnels: Improved logging and handling of offline signature expiration
Store back ref to controller in tunnel
Stop server controller on I2PException
Support generation of keys with fractional days expiration for testing
2020-10-29 15:20:56 +00:00
8d0b1214d2 un-do android check in ObjectCounter and fix hte issue by correctly setting the classpath instead, see RELEASE-PROCESS.md in i2p.android.base 2020-10-29 04:04:18 +00:00
zzz
70eb2a49f9 Router: Fix ECIES tunnel testing part 2
Remove ratchet tag from RSKM on timeout
2020-10-28 13:15:26 +00:00
zzz
f231ea0951 Util: ObjectCounter better android detection 2020-10-28 12:09:55 +00:00
zzz
f9ffdd5137 Router: Fix tunnel testing for ECIES routers 2020-10-28 12:04:01 +00:00
38f9955391 fix android keySet bug that I discovered this morning 2020-10-28 04:33:47 +00:00
zzz
517ff9af28 Build: Fix dev info in maven data 2020-10-27 15:30:03 +00:00
zzz
62a91acb40 DoH: Limit response size, sort servers for test
SSLEepGet: Fix handling of state param, support max size param
2020-10-27 14:53:11 +00:00
zzz
69a5266675 DoH: Add CLI test of all servers 2020-10-27 12:45:37 +00:00
zzz
e671741329 DoH: Set user agent 2020-10-26 22:47:32 +00:00
zzz
ab55f27ea4 DoH: Add more CLI options for testing 2020-10-26 15:29:59 +00:00
zzz
cf88b3057a DoH: limit total time and max requests
Better loop checking, force DoH off for request
2020-10-26 13:44:23 +00:00
zzz
af97eedcbb Util: Fix EepGet allowCaching parameter
Add SSLEepGet method to force DoH on/off
2020-10-26 12:22:54 +00:00
zzz
7823001594 BOB: Add deprecation warnings 2020-10-25 12:31:50 +00:00
zzz
a49f87179a Router: Quick checks of eph. key MSB before Noise DH
Additional checks on ECIES BRR to catch old/buggy routers
Detailed logging of ECIES BRR decrypt fails
2020-10-25 10:55:53 +00:00
zzz
b52f85ac38 Tunnels: Add missing expiration field to ECIES BRR 2020-10-23 19:42:05 +00:00
zzz
470bc77551 fix one more ;; 2020-10-23 16:10:58 +00:00
zzz
a0822a6b71 NTCP2: Reduce min downtime for rekeying if hidden 2020-10-23 16:09:15 +00:00
zzz
15da2f85ad SSU: Minor cleanup of congestion checkin 2020-10-23 16:05:39 +00:00
zzz
9b3ff9e615 TCG: Rename method to reflect what it really does 2020-10-23 16:03:19 +00:00
zzz
df1db163f0 i2ptunnel: Remove mtn tunnel (new installs only) 2020-10-23 15:50:30 +00:00
zzz
4a4d814a17 Tunnels: Move AES reply keys from HopConfig to TunnelCreatorConfig
to save space; not stored for participating tunnels.
2020-10-23 12:58:45 +00:00
c84360ba4b Update the Firefox user-agent string to match the Firefox ESR that is currently used in Tor Browser, credit to dr|zed for pointing out the update and the fix. Tor Browser updated to Firefox ESR 78 with the 10.0 release on September 24, 2020 2020-10-22 16:12:26 +00:00
zzz
6a6064d614 Garlic: Reduce log level on misrouted message 2020-10-21 20:24:12 +00:00
zzz
49565a99f9 SSU: Redesign of the congestion control (tickets #2412, #2649, #2654, #2713),
modelled on TCP Reno (RFCs 5681 and 6298)
- Use a single timer per connection
- Resend up to half the un-acked messages per timer event instead of a single message
- Only send either old or new messages, do not mix
- Cache/avoid several timer calls
- Instead of 3 return values, allocating bandwidth is now a boolean function
- Avoid one of the iterations over all un-acked messages every packet pusher loop
- Remove 100 ms failsafe
- Fix OMF debug log NPE
With the same cpu usage the bandwidth is much higher
Significant speed improvement for lossy connections (e.g. wifi)
Patch by zlatinb
2020-10-21 18:14:51 +00:00
zzz
ee27bc3bbf Reseed: Renew SSL cert expiring soon 2020-10-21 15:21:41 +00:00
zzz
25899d41d5 NetDB: ECIES router support (proposal 156):
Support sending encrypted lookups and stores to ECIES routers
Support requesting AEAD replies to ECIES routers
Encrypt RI lookups when using ECIES even on slow machines
Switch back to RatchetSKM
Don't schedule ack timer for router SKM
Reduce getContext() calls
GMB null check cleanup
MessageWrapper javadoc clarifications
Log tweaks
2020-10-21 14:54:47 +00:00
zzz
35f6a2e2bf NetDB: Reseed after a long downtime 2020-10-21 13:46:31 +00:00
zzz
9ae5cbbc87 SSU: Increase socket buffer size (ticket #2781) 2020-10-21 12:44:27 +00:00
zzz
0ace93cec7 i2psnark: Remove references to "maggot" links 2020-10-17 15:19:23 +00:00
zzz
d387448794 ;; -> ; 2020-10-17 14:41:13 +00:00
zzz
4d82917b94 SSU: Fix calculation of nextSendDelay (ticket #2714)
patch from zlatinb
2020-10-17 12:12:15 +00:00
7a77f48963 Work on lining up some of the button text and icons a little better, fix peer icon and top/bottom icon, various padding issues 2020-10-16 04:55:48 +00:00
zzz
dee5dfc682 clear exec bit 2020-10-15 15:48:39 +00:00
zzz
5ed6f834c1 libjbigi for linux aarch64 (ticket #1840)
stripped
gcc: 7.5.0
jdk: openjdk version "1.8.0_265"
Built on: Raspberry Pi 4 Model B Rev 1.4
Add support to mbuild-all.sh
2020-10-15 15:36:38 +00:00
zzz
3b8e5f0763 i2psnark: Stub out BEP 52 message numbers
Hide BEP 48 padding directory from UI
Check for and reject BEP 52 info multihashes for now
Use cached fai.isDirectory for efficiency
Use storage.getFileCount() instead of meta.getFiles() to prep for padding files
Add notes for padding file TODOs
2020-10-15 12:04:24 +00:00
zzz
7c1798513d Util: Singleton OrderedProperties comparator 2020-10-15 11:54:43 +00:00
zzz
e54950e02e Router: MessageWrapper.wrap() and GMB support for ECIES (prop. #156 WIP)
NetDB parts still TODO
Remove PK param from GMB.buildECIESMessage(), already in config
2020-10-15 11:50:11 +00:00
zzz
b2f060795c Router: Misc. debug fixes
- StatisticsManager fix for null router in unit tests
- Debug toString() enhancements
- Dest hash logs in b32
- Javadoc fix
2020-10-15 11:39:32 +00:00
zzz
940ad61ccc Ratchet: ECIESAEADEngine main() quick test IK/N NSR 2020-10-15 11:32:25 +00:00
zzz
c1f531ea92 Ratchet: Add support for zero key (prop. #144, WIP for prop. #156) 2020-10-15 11:17:41 +00:00
zzz
0ebca7e8e3 Ratchet: Destroy HandshakeState after NS failure 2020-10-15 11:10:33 +00:00
zzz
d301669726 Router: Don't re-derive public key from private for every HandshakeState 2020-10-15 11:01:22 +00:00
zzz
010bb0a2fe NTCP: Fix sending termination on idle timeout (ticket #2777) 2020-10-12 13:29:46 +00:00
zzz
f028002c11 NTCP: Catch IAE in Reader, possibly a race with cancelled key?
http://zzz.i2p/topics/2968
2020-10-12 13:28:57 +00:00
zzz
11e1747ffc New partial translations for Kurdish, Turkmen, Argentinian Spanish 2020-10-12 12:50:49 +00:00
zzz
5dc9333bb6 DTG: Enable by default for Linux KDE and LXDE
Hide option on /configservice if not supported
2020-10-12 11:24:08 +00:00
zzz
f77acb6db6 i2psnark: Don't truncate 'file not found in torrent' status 2020-10-11 16:25:20 +00:00
zzz
22abf09bd7 i2psnark: Version the file icons
Minor cleanup of icon set selector
2020-10-11 13:22:26 +00:00
zzz
9a1d7a2ae3 Installer: Disable pack200 (ticket #2778) 2020-10-11 12:07:09 +00:00
zzz
98e5908557 i2psnark: Cache length of metainfo 2020-10-10 14:59:13 +00:00
zzz
9e36fe090c Transport: Simplify IPv6 address validation
reject reserved ranges
2020-10-10 12:59:53 +00:00
zzz
b4b6968ede Ratchet debug: Hide expired sessions
Hide sessions with null public key
2020-10-09 13:54:12 +00:00
zzz
999c4c51a2 NetDB: Don't use DSA-SHA1 routers for lookups, stores, or tunnel peers
Don't use non-ElGamal routers for lookups or stores
Prevent DSA-SHA1 routers from auto-floodfill
2020-10-09 13:46:37 +00:00
zzz
8737a6a4fd i2ptunnel: Filter server response headers even if not compressing 2020-10-07 15:02:06 +00:00
zzz
a9a5d13e06 Build: Set javac release property (ticket #2775)
Ant version 1.9.8 or higher now required
Drop support for Xenial package build
Fix up BOB build configuration
Fix i2psnark standalone build
2020-10-07 13:33:41 +00:00
ca1e2ba91e Switch Snark dark and light themes to using images embedded in the .war, and remove the images substitutions from the filesystem and css 2020-10-07 04:47:27 +00:00
zzz
2e34969bbc Add git hostnames as requested by idk 2020-10-04 16:42:50 +00:00
zzz
cead0b2fb8 Router: Add support for building tunnels through ECIES routers (proposals 152,156)
Preliminary, proposal not finalized, subject to change
Not yet compatibility tested with other implementations
Add peers to match requested length for explicitPeers
remove commented out code
log tweaks
2020-10-03 14:05:22 +00:00
9d566aea68 snark theme fixes: Revert the i2psnark buttons on the ubergine and vanilla themes back to their original versions, but keep flat buttons for dark and light themes. Fix some squashed icons and apply some slightly better icons for indicating torrent status and contents on dark theme. 2020-10-01 05:01:44 +00:00
zzz
2d9933a4a9 Router: Don't unregister a message without a selector (ticket #2771) 2020-09-28 13:59:30 +00:00
zzz
cd699c587b i2ptunnel: I2Ping CLI tunnel quantity 1
Show current setting for owndest in CLI
Skip a irrelevant log message for I2Ping
Break wait on interrupt
Log level tweaks
2020-09-27 14:38:44 +00:00
zzz
4108007b26 JBigI: Fix zen/zen2/zen3 CPU names (ticket #1869) 2020-09-27 14:33:58 +00:00
zzz
b31b42a557 Streaming: Fix copy/paste errors in tag option handling 2020-09-27 14:17:36 +00:00
zzz
c3f187abcb Console: Drop gateway icon on leasesets page,
just adds clutter with no value.
Change last-changed time on leaseset debug page to use standard formatting
2020-09-26 14:05:29 +00:00
zzz
2989d955d9 JBigI: GMP 6.2.0 for linux 64 bit (ticket #1869)
Add support for zen and zen2
Enable more fallbacks for zen and zen2
Adds Zen and Zen2 binaries, stripped
Built with gcc 9.3.0
Other binaries will be added if testing shows improvement
Fix hangs in mbuild-all.sh build script
Add silvermont and goldmont to build script, untested, support TBD
GMP is GPLv2
More info: http://zzz.i2p/topics/2955
2020-09-26 12:58:55 +00:00
zzz
ea4409897d i2ptunnel: Change enctype default to both for:
HTTP, IRC, and Streamr servers
IRC, SOCKS IRC, and Streamr clients
2020-09-22 14:52:55 +00:00
zzz
7dd7f021b0 Susimail, SAM: More defensive ByteBuffer casting to avoid runtime issues (ticket #2775) 2020-09-22 14:39:32 +00:00
zzz
2cb53ec45c Update LICENSE.txt since SSU HMAC was moved from core to router 2020-09-20 13:48:46 +00:00
8fa3e45e47 Add tags for librejs compatibility on application/console pages and in embedded javascript 2020-09-20 05:05:57 +00:00
zzz
c4a5d111e7 Build: More git support for release and Debian targets 2020-09-18 14:31:24 +00:00
zzz
dca45a9b18 i2psnark: Defensive checks for v2 format files and magnet links 2020-09-16 14:42:11 +00:00
zzz
6ffebbd5c1 GeoIP: Notify blocklist of new country file (ticket #2759) 2020-09-16 13:43:14 +00:00
zzz
aa07775a32 Blocklist: Move HTML status generation to console 2020-09-11 17:21:04 +00:00
zzz
30244f9d9b Router: Use MuxedSKM for ECIES routers (proposal 156 WIP) 2020-09-11 14:13:36 +00:00
zzz
19d4a5ce26 Blocklist: Refactoring (ticket #2759 WIP) 2020-09-10 16:20:08 +00:00
zzz
e4cb730c1b GeoIP: Generate country blocklist when hidden (ticket #2759)
WIP - full blocking requires restart for now
2020-09-10 14:00:04 +00:00
zzz
3b18e54545 Console: Fix /configclients help message for split client config files 2020-09-10 13:01:18 +00:00
zzz
2fbbd8e7d1 Crypto: Cache HMAC256 instances
Appx. 38% speedup
As suggested by jogger
2020-09-09 21:13:37 +00:00
zzz
e466331407 GeoIP: Add methods to get all IPs for a country
from a geoip 1 or 2 database,
to prep for a country blocklist (ticket #2759)
WIP - not hooked in yet
2020-09-09 15:26:24 +00:00
zzz
5d1f46e6c4 Blocklist: Track versions of each file
Adjust synchronization
Fix logging for feed file
Prep for a country blocklist (ticket #2759 WIP)
2020-09-08 13:38:10 +00:00
zzz
36318def69 Tunnels: BuildRequestor minor cleanup 2020-09-08 13:32:24 +00:00
zzz
72e4b16c1a I2NP BRR: Minor cleanup and javadoc note 2020-09-08 13:26:33 +00:00
zzz
8a10c3a097 NTCP: Call afterSend() for multiple messages in NTCP2 (ticket #2769) 2020-09-08 13:17:46 +00:00
zzz
d402300dba Console: Support remote lookup of full router hash from search form 2020-09-04 16:57:40 +00:00
zzz
ada6753255 Tunnels: For now, don't try to decrypt a build record with a ECIES key (proposal 152 WIP) 2020-09-04 15:03:14 +00:00
zzz
ceb0749e0d Util: Fix decompression of compressed zero bytes (ticket #2770) 2020-09-02 15:57:04 +00:00
zzz
4863ab3711 javadoc 2020-09-02 13:51:27 +00:00
zzz
c745cc8aa1 Ratchet: Change SparseArray from int to char to reduce space 2020-09-02 13:48:30 +00:00
zzz
273902f616 SSU: Randomize intro key 2020-09-02 13:26:10 +00:00
zzz
bb761aea96 Router: Prep for router encryption types (Proposal 156 WIP) 2020-09-02 13:09:38 +00:00
zzz
d13a7d2872 Router: Reduce next key threshold for ratchet 2020-09-02 12:55:21 +00:00
zzz
49b2ca061c New Ed25519 destinations for postman's servers 2020-09-02 12:52:25 +00:00
3e23ec8d27 fix trac#2768 2020-09-01 14:14:39 +00:00
zzz
22eeb90b81 Bump -1 2020-08-29 13:44:11 +00:00
zzz
6a69cef2a8 Ratchet: Minor cleanup 2020-08-29 13:41:48 +00:00
zzz
c1fef302f3 Crypto: ChaCha small initialization speedup 2020-08-29 13:39:52 +00:00
zzz
bd370cf407 spelling fix 2020-08-29 13:34:42 +00:00
zzz
feba993019 javadoc fix 2020-08-29 13:34:00 +00:00
zzz
623a11dd8f console: ngettext fixes 2020-08-29 13:32:34 +00:00
zzz
ba7fb00450 i2ptunnel: Prevent changing alt private key file while running 2020-08-29 12:52:00 +00:00
zzz
20b4186331 merge of '554c9e737b3a7b6585cc36c8e22de6012ca57754'
and 'cd8c225752a1e1e5be98c13e7e7f5fdb2b160642'
2020-08-25 19:50:03 +00:00
zzz
2479645d22 Debian files and checklists update for 0.9.47 2020-08-25 19:49:54 +00:00
8585e2e955 fix heading alignment for console news on light theme 2020-08-24 17:20:34 +00:00
14518dc396 fix missing classic icons from imagegen css/index, removed classic reference ie-compatability from css.jsi 2020-08-24 17:15:40 +00:00
zzz
ccd64b6f07 0.9.47 2020-08-24 15:33:54 +00:00
zzz
21efdb9bd0 bump for review 2020-08-21 19:18:06 +00:00
zzz
94778c74dc update translations 2020-08-21 19:09:48 +00:00
929c09fecc add fontawesome license to router console themes section in LICENSE.txt 2020-08-20 19:35:03 +00:00
zzz
c067f38123 GeoIP 2020-08
Meet db-ip.com license requirements
BuildTime update
2020-08-20 15:39:12 +00:00
zzz
046d1e01b0 make method private 2020-08-19 18:52:18 +00:00
zzz
cc6247fe7e findbugs all over 2020-08-19 14:50:58 +00:00
797a31924d Improve appearance of a few icons from the new icon set, all are under Fontawesome license except for move_up.png, move_down.png, move_top.png, and move_bottom.png which are used under the Feather license 2020-08-16 18:01:54 +00:00
zzz
87f9b619e5 welcome text correction 2020-08-14 15:00:23 +00:00
4ac89e7024 Remove mistaken association between Localization Lab and our Transifex efforts. 2020-08-14 13:49:18 +00:00
zzz
fceda68cd8 Remove reseed 2020-08-14 12:58:18 +00:00
zzz
07fc66ccff Profiles: Create profiles in the nonblocking path
thanks energy52
2020-08-14 12:54:39 +00:00
zzz
d7b512ca9a spelling fix 2020-08-13 19:11:00 +00:00
926f88585a fix typo on welcome.jsp 2020-08-13 18:08:58 +00:00
zzz
717e1c58fa Transport: State transition fix 2020-08-13 15:38:03 +00:00
zzz
4b3dbd8915 poupdate-source 2020-08-12 18:49:44 +00:00
9d31a41ffe remove extraneous comma 2020-08-12 18:33:50 +00:00
217571118b tag complete sentences for strings in welcome.jsp 2020-08-12 18:29:10 +00:00
b03e919cbe fix strings on welcome.jsp 2020-08-12 17:50:12 +00:00
482b305065 Fix fontawesome license file 2020-08-12 13:33:55 +00:00
27776cddb2 use color versions of the new icons(last big image checkin), add custom images for community sites, tweak some sizes on images that were squashed or stretched, remove borders on /home buttons 2020-08-11 22:01:50 +00:00
029e082cfc note icon change in history.txt 2020-08-11 05:21:18 +00:00
6087a46a0b replace basically every small image, icon, or indicator with one from a consistent source, minus personal/community sites and plugns, see licenses/LICENSE-fontawesome for more details 2020-08-11 05:10:00 +00:00
zzz
b78f6a645c Debian: Fix patch offsets 2020-08-01 14:16:16 +00:00
zzz
f8b04e398e Debian: Support libjson-simple-java 3 for bullseye
Patch adapted from Gilles Filippini
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=960589
2020-08-01 14:12:54 +00:00
zzz
097f178e2a I2NP: Locking for message ID 2020-08-01 13:49:43 +00:00
zzz
d221846c31 NetDB: Only flood LS to rotated floodfills just before
midnight if the LS will expire after midnight
Reduce number of stat periods
2020-08-01 13:34:26 +00:00
zzz
fa08d2f946 Util: Add KeyStore and SHA256 to CLI 2020-08-01 13:22:24 +00:00
zzz
336563e7c0 Router: Logging fix for client start failures 2020-08-01 13:04:33 +00:00
zzz
f4ac8e02f6 Util: More efficient use of random data 2020-08-01 12:59:50 +00:00
zzz
29d2051a34 configlogging code cleanup 2020-08-01 12:48:53 +00:00
zzz
e52359c4c0 NetDB: New reseed 2020-08-01 12:40:46 +00:00
zzz
d73b327fd0 NetDB: Track client that requested LS
OCMOSJ: Don't send to a RAP LS
2020-08-01 12:36:31 +00:00
d1bdeae596 replace tabs with spaces in HomeHelper.java 2020-07-31 14:51:05 +00:00
fa8bd4310c fix typos in the welcome wizard 2020-07-29 02:38:56 +00:00
zzz
4f8f8b659b Drop more old susi files 2020-07-28 20:34:07 +00:00
zzz
5a9eb68160 Data: Don't check LS1 revocation signature 2020-07-28 16:14:05 +00:00
b97ec8da90 clean up some of the awkward language on the welcome wizard, don't ask people to 'be patient' explain what is happening, etc 2020-07-27 17:01:48 +00:00
zzz
a3fe0092ac i2ptunnel: Change CONNECT tunnel default sigType to EdDSA (ticket #2749) 2020-07-22 17:18:23 +00:00
zzz
896dbfbacf i2ptunnel: Change default encType to both for new tunnels,
http client, shared clients, and all tunnels for new installs (ticket #2751)
Change IRC tunnel sigType to EdDSA for new installs (ticket #2749)
2020-07-22 15:34:43 +00:00
zzz
4d3561c92a i2psnark: Increase max pipeline, negotiate actual value 2020-07-19 14:45:48 +00:00
3c7b658a59 Avoid some repeated code 2020-07-16 05:25:02 +00:00
6482437795 Move plugins to their own section on /home, and make it so that if all the elements of a section are shown, that section becomes hidden(so that plugins are not enabled by default) 2020-07-15 16:06:06 +00:00
zzz
12e2dabaa8 Router: Consistent logging for network ID check
Log level change for peer test IP
2020-07-11 14:19:01 +00:00
zzz
e05545ab7c OCMOSJ: Don't lookup an expiring LS2 if unpublished 2020-07-11 13:53:53 +00:00
zzz
f0bcab2e2c NTCP: Atomics for NTCP final state (ticket #2701) 2020-07-11 13:12:25 +00:00
zzz
075ac7ab43 SAM: Rename 3.3 control session 2020-07-09 17:05:06 +00:00
zzz
31d7d7d9bb Addressbook: Rename the book nobody uses
Config migration
Version the svg
Remove very old standalone files
2020-07-09 16:45:37 +00:00
ed14aa130c Credit sadie for the first part of her redesign work 2020-07-08 17:44:12 +00:00
zzz
81007c1a03 LookupDestJob: Missing return after sending fail for blind data 2020-07-07 15:04:02 +00:00
zzz
2e3ff679f3 i2psnark: Change ETA default sort order (ticket #2733)
add markdown mime type
2020-07-07 13:22:44 +00:00
zzz
a84996399e Reseed: Enforce minimum version for bundling 2020-07-07 12:50:34 +00:00
7b872474fd turn URL's in readme into Markdown Links using URL as link text, as suggested by user gnuself on trac and approved by idk 2020-07-04 21:02:20 +00:00
531b7c2ae9 Remove extra step-indicator from first slide of welcome wizard 2020-07-03 23:21:15 +00:00
95f16c99bd Remove Why I2P from the welcome wizard. Make the welcome wizard more informative about the functionality contained within I2P. Tweaks to stylesheets on the welcome wizard. 2020-07-03 23:18:14 +00:00
462180f9a4 re-name full color logo(logogrey7.png=>wizardlogo7.png) used in welcome wizard and remove the old redundant ones. 2020-07-03 16:15:32 +00:00
505c49ad01 Tweak position of headings and infoboxes in welcome wizard, switch to full-color I2P logo on all pages 2020-07-03 15:36:14 +00:00
16d6cf0177 make expanding sections scrollable on iframed dark theme 2020-07-02 12:44:42 +00:00
zzz
112beb552b i2ptunnel: Fix missing throttling section for non-HTTP servers 2020-07-02 12:15:54 +00:00
b53cdafc84 clarify license status of new wizard assets 2020-06-28 18:50:34 +00:00
zzz
365b9053ec NetDB: Check signature in verify
Remove null checks, _target can't be null
2020-06-28 14:56:08 +00:00
aadc9a13aa improve appearance of textareas and inputs when the text inside is highlighed, on the i2ptunnel dark theme 2020-06-26 22:08:16 +00:00
39f3e3a92c more non-textual updates to the bandwidth wizard 2020-06-24 18:02:25 +00:00
9a6374c79b new images for the install wizard, re-name the images, even up the font sizes on the bandwidth configuration pages 2020-06-23 21:51:53 +00:00
zzz
3a392e84a9 Sybil: Enable analysis and blocking by default 2020-06-22 19:59:35 +00:00
zzz
c119de6188 OCMOSJ: Send meta LS failure code 2020-06-13 13:56:31 +00:00
zzz
066833819b another Broadwell CPU ID 2020-06-12 16:00:44 +00:00
zzz
c840f223cd CSS tweak 2020-06-12 15:59:12 +00:00
zzz
4c2bf3e42f I2CP: Meta LS error code handling 2020-06-12 15:58:30 +00:00
zzz
6ec95a7f13 Misc. Javadoc fixes 2020-06-10 15:28:22 +00:00
zzz
670e57b9e5 Tools: Support hostname lookups in LookupDest CLI 2020-06-10 15:21:22 +00:00
d441ead884 Fix awkward text, browsers should be plural 2020-06-09 17:11:43 +00:00
38f654edd9 Fix awkward text on console welcome browser page, adjust table spacing on configreseed 2020-06-09 17:09:36 +00:00
zzz
25b4d136b8 fix take 2 2020-06-08 12:35:06 +00:00
zzz
2b9783028d fix dup 2020-06-07 20:57:45 +00:00
zzz
6c0e18d3e2 i2ptunnel: Fix missing tunnel quantity section for servers
More ngettext
Hide some text for config advanced
2020-06-07 20:00:50 +00:00
zzz
e23f671ca3 Util: New getEstimatedDowntime() method 2020-06-07 17:20:45 +00:00
zzz
2af7066074 Jetty: Switch from jetty to tomcat jar for servlet-api
to get the 4.0 dtds
Put servlet version on the logs page
2020-06-07 16:22:21 +00:00
zzz
220f641ba6 i2ptunnel: Warn about soon-to-expire offline signatures 2020-06-06 19:42:07 +00:00
zzz
76493b398f i2ptunnel: Rename access lists 2020-06-06 19:29:45 +00:00
zzz
f1a277c4d7 I2CP, i2ptunnel: Check for expired offline signature client-side
Better error message on the router side
2020-06-06 18:44:49 +00:00
zzz
ac76d544b9 Fix creation of Encrypted LS2
Blinded flag bit goes on the inner LS, not the outer
Fix corruption of inner signature
Broken in 0.9.42
2020-06-06 17:24:26 +00:00
zzz
cd77461fba I2CP: Fix issues with persisted leaseset private keys
- Don't generate revocation key for LS2
- Fix generation of persistent revocation key for LS1
- Fix persistent private keys without persistent revocation key
- Don't put unconfigured private keys in leaseset
- Don't strip i2cp.leaseSetPrivateKey from config before it's used
2020-06-06 14:36:01 +00:00
zzz
326178ad47 CI: Try to fix travis 2020-06-03 16:09:01 +00:00
zzz
0fce24479f i2psnark: Enable dual-keys 2020-06-03 15:41:09 +00:00
zzz
3f895d32dd Router: Implement ratchet-layer acks (proposal 144)
Store destination in outbound session
Allow sending null data through OCMOSJ for ratchet acks; omit data clove
Only call messageDeliveryStatusUpdate() for nonzero nonce
2020-06-03 12:33:09 +00:00
zzz
2af26f7d5b Console: Fix alignment of totals row on /peers NTCP tab
as reported at http://zzz.i2p/topics/2901 post #5
2020-06-03 11:19:47 +00:00
zzz
765d4ea725 Console: Don't list temporary IPv6 addresses on /confignet 2020-06-02 12:01:40 +00:00
zzz
ec231ecd78 Transports: Cache the last reachable peer
Adapted from i2speed / jogger
ref: http://zzz.i2p/topics/2894 item 5
2020-06-01 13:08:03 +00:00
zzz
957767c985 Util: Move fromLong8()/toLong8() methods to DataHelper 2020-06-01 12:25:09 +00:00
zzz
3cc7374984 Transports: Make unreachable maps concurrent
Adapted from i2speed / jogger
ref: http://zzz.i2p/topics/2894 item 5
2020-06-01 12:12:04 +00:00
zzz
6461c8e880 Profiles: Make more calls nonblocking
Adapted from i2speed / jogger
ref: http://zzz.i2p/topics/2894 item 1
2020-06-01 12:03:56 +00:00
zzz
edfbc4081b Tomcat 9.0.35 (Servlet 4.0)
Switch Bionic to 9.x
Disco+ already on 9.x
Xenial remains on 8.x
Update dependencies doc
2020-05-31 15:35:18 +00:00
zzz
317bf1e9db Fix javadoc errors 2020-05-31 12:46:13 +00:00
zzz
f985004be0 Util: Update json-simple lib to 2.3.0 2017-10-04
Bundle 2.0 API only; remove 1.1 API
Convert DoH, NDT, and i2pcontrol to the 2.x API
Fix i2pcontrol handling of number values and serialization for 2.x API
Remove xenial dependency on libjson-simple-java, it has only 1.1
Set min and max version constraint on libjson-simple-java for bionic+
Based on patch from Gilles Filippini
ref: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=901827
This does not support 3.x but the patch for that will be smaller.
2020-05-31 12:37:37 +00:00
zzz
4fd834d13e Util: Fix DoH handling of Cloudflare responses 2020-05-30 21:44:48 +00:00
zzz
370f96acfb Streaming: Increase MTU for ratchet (proposal 155)
Set MTU in receiveConnection() for inbound connections
Cleanup CDR.isAckOnly()
Only call now() in MOS for debugging
Set receive.streamActive stat to 1, not 0
2020-05-30 16:24:25 +00:00
zzz
d8b308dd9d Build: Force Java 7 for mavencentral jars used by Android 2020-05-28 14:06:37 +00:00
zzz
3ad8f9b9a5 i2psnark: Fix js for delete buttons (ticket #2743) 2020-05-28 13:02:53 +00:00
zzz
4fe9a27e2e RRD4J 3.6 (ticket #2716) 2020-05-28 10:33:03 +00:00
zzz
686fe88e61 Build: Remove javac.compilerargs7 build property (ticket #2511) 2020-05-27 17:46:30 +00:00
zzz
9b5e4373d4 Debian: Fix patches for Jetty 9.3.28 (ticket #2098)
Add xenial patch to ant test target
2020-05-27 17:19:16 +00:00
zzz
03b1a4dfc0 Installer: Require Java 8 (ticket #2511)
Jetty 9.3.28 (ticket #2098)
This breaks Debian builds, fixes to follow
2020-05-27 16:08:54 +00:00
zzz
27e422f81d Installer: Sign the dlls (ticket #2704) 2020-05-27 13:23:54 +00:00
zzz
f3e821a65d UPnP fixes part 7:
Don't set I2P user agent, spoof MiniUPnPc
Don't convert string-to-bytes-to-string
Don't fallback to alternate code after failure
Don't use HttpURLConnection if proxy enabled
Add location sanity checks
Force Connection: close
Don't attempt to set Host header, HttpURLConnection ignores it
Disable following redirects
2020-05-27 12:49:15 +00:00
zzz
3fac44874e Console: Rename all the js init() functions 2020-05-27 12:35:12 +00:00
zzz
f8df7eba7f Transports: Check for Java proxy settings that could interfere 2020-05-27 12:07:50 +00:00
zzz
4574ebd8a9 Console: Don't translate "caps" 2020-05-27 11:57:59 +00:00
zzz
a00b9bb0c7 Console: Handle bad param on /peers 2020-05-27 11:54:06 +00:00
zzz
e091eeae90 Util: Reduce default gzip compression level for performance
Add fast zero-decompressor
2020-05-27 11:48:21 +00:00
zzz
0a98147315 Debian files for 0.9.46 2020-05-26 17:11:42 +00:00
zzz
e9cc4a4357 0.9.46 2020-05-25 12:32:28 +00:00
zzz
0ab4730002 javadoc fix 2020-05-25 10:25:21 +00:00
zzz
31d7b6fb7d Ratchet: Change session replace timeout value to match spec 2020-05-23 11:31:03 +00:00
zzz
26e5f4c482 Windows: Fix installation directory permissions
For new installs, change owner rather than giving 'F' permission to Users group
For existing installs, change owner and change 'F' permission to 'RX' for Users group
Local privilege escalation vulnerability
Introduced 2009-06-11, released in 0.7.5 2009-06-29
Reported by Juilo Cesar Fort of Blaze Information Security 2020-04-28
2020-05-23 11:28:15 +00:00
zzz
766649bd54 bump for review 2020-05-22 19:47:53 +00:00
zzz
bb6641ed96 pull translations from TX 2020-05-22 19:35:57 +00:00
zzz
6aa81f7ec6 UPnP fixes part 6:
Fix malformed HTTP requests
Check HTTP response code in Parser
Check content type in Parser
Debug log in Parser
Show device URL in CLI
Don't retry after parser exception
Close resources in finally block
2020-05-22 18:22:56 +00:00
a3fc8af1dd fix padding on the i2ptunnel .username and .password and and the width of the customoptions 2020-05-22 02:30:03 +00:00
05082e3ffa On iframed i2ptunnel pages, resize the height of the iframe when a config table is expanded or contacted 2020-05-22 01:29:28 +00:00
4b655070d4 reverse string change to welcome wizard, Alternatively isn't that confusing and translation is important. 2020-05-21 16:58:10 +00:00
zzz
f25037447d unit test tweaks 2020-05-21 14:11:30 +00:00
zzz
df3a03afc5 Streaming: Fix timer race (ticket #2739) 2020-05-21 11:47:39 +00:00
zzz
ded4bde905 I2CP: Add API method to get router version 2020-05-20 19:03:28 +00:00
e1d8e360a5 slightly widen the notice div on the console so text never needs to wrap 2020-05-20 17:56:43 +00:00
b373e253c9 Remove reference to to I2P Browser from the welcome wizard 2020-05-20 17:40:40 +00:00
zzz
a9d84da3b3 i2ptunnel, SusiDNS: Replace onblur with CSP-safe js 2020-05-20 11:12:49 +00:00
zzz
4b7c62aa9c Tunnel: Reduce the IBGW and client OBGW batch time
Should reduce RTT by 225 ms
2020-05-20 10:48:00 +00:00
zzz
e16c0a3271 i2ptunnel: Disable gzip for streamr server 2020-05-20 10:44:28 +00:00
zzz
ef66457181 Util: Speed up zero compression
As suggested by orignal
2020-05-19 14:24:20 +00:00
zzz
093c46c937 Ratchet: Prep for ratchet-layer acks (WIP) 2020-05-18 13:00:45 +00:00
zzz
d48d16d237 Proxy: Fix error code for incompatible encryption 2020-05-18 12:25:25 +00:00
zzz
65cd84dd2e Reseed update 2020-05-18 10:40:16 +00:00
zzz
c457ef68c7 New MuWire logo
License: CC0
Source: Funded by MuWire development
2020-05-18 09:56:15 +00:00
zzz
f00b86475d Streamr: Add expiration timer
Log tweaks
2020-05-17 18:49:47 +00:00
zzz
90bc00436c UPnP fixes part 5:
Set interfaces at startup, to prevent Android from binding to public interfaces
Log fix
2020-05-17 15:47:08 +00:00
zzz
1af32bfe79 UPnP fixes part 4:
Update SSDP listening sockets on interface changes
2020-05-17 14:56:30 +00:00
zzz
25338019ca UPnP fixes part 3:
Switch to alternate device on connected event if better
Remove mappings on device change
Fix bug, wasn't removing mappings on device removal
Retry other devices on device removal or disconnect
2020-05-17 11:05:35 +00:00
zzz
878c11b36f UPnP fixes part 2:
Change data structure of ignored devices to store full device
Don't ignore disconnected devices even if subscription successful
Clear event veriables when switching devices
Hide non-IGD devices from ignored list
2020-05-16 22:45:27 +00:00
zzz
c6c9ba76d9 UPnP fixes part 1:
Numerous fixes for handling multiple devices and selecting the best one
Fixes on device removal
Deal with devices that support permanent leases only
Locking fixes
Sort ignored devices in UI
Remove unused isDisabled field
Log tweaks
2020-05-16 21:16:51 +00:00
zzz
a0261e8fd7 BuildTime update 2020-05-16 11:50:27 +00:00
zzz
d493028c1e i2ptunnel: Disables for persistent client key 2020-05-16 11:47:21 +00:00
zzz
3992ea235d i2ptunnel: Remove javascript from proxy error pages
Add security headers
Fix typo on resetp-header
2020-05-15 21:31:37 +00:00
zzz
31b527a4c4 i2ptunnel: Hide description label if none
Identify shared clients on index page
2020-05-15 19:32:23 +00:00
zzz
09b647f283 i2ptunnel: Don't show b32 twice for non-http servers 2020-05-15 17:59:45 +00:00
zzz
40b312d7c1 Streaming: Change pushBackRTO() log error to warn (ticket #2739) 2020-05-14 18:47:54 +00:00
zzz
fad9d0e3da param length check 2020-05-14 12:57:24 +00:00
zzz
31a57b1a60 poupdate-source 2020-05-13 23:03:02 +00:00
zzz
50e44ece54 Tools: Export private key from private key file in X.509 form
Add missing loadprivatekey command to CertUtil
2020-05-13 20:19:12 +00:00
zzz
f233416bf6 Build: Tweaks for git 2020-05-13 13:28:33 +00:00
zzz
1b3885720a Console: Fix option text on /confignet (ticket #2738) 2020-05-13 12:58:10 +00:00
zzz
82dd9435a3 Console: Support stuffing form from params on /configreseed
Fix HTML errors
2020-05-13 11:40:01 +00:00
zzz
bc89d247ec Console: Support stuffing form from params on /configplugins 2020-05-13 11:04:16 +00:00
zzz
fe36482063 Console: onchange removal 2020-05-12 18:57:29 +00:00
zzz
a47f6d1b2e SusiMail: onclick removal (part 3)
Strict CSP
Fix markall/clearall logic
2020-05-12 17:43:27 +00:00
zzz
8aa23c7dc7 SusiMail: Replace onclick part 2 2020-05-12 17:32:46 +00:00
zzz
0eef0dd21b SusiMail: Replace onclick and onload, part 1
Don't reload page after mark-all and clear-all
2020-05-12 17:03:59 +00:00
zzz
a12a26f65c Console: Hide sensitive properties on /configadvanced 2020-05-12 15:38:25 +00:00
zzz
1ebed8b6aa i2ptunnel: Shared client tooltip depends on current setting 2020-05-12 14:53:56 +00:00
zzz
deb0fe338c i2ptunnel: Hide shared client warning when it doesn't apply 2020-05-12 14:17:31 +00:00
zzz
005f79c95f i2ptunnel: Disable changing shared client option while running 2020-05-12 14:07:30 +00:00
zzz
eeee8d7600 i2ptunnel: Use readonly, not disable, to avoid losing data in forms
Fix disabling of interface select box
Caused by disable changes on May 8
2020-05-12 13:21:25 +00:00
zzz
13cfdf0d5a i2ptunnel: Encrypt keys in forms 2020-05-12 12:50:35 +00:00
zzz
e77c3f23d3 i2psnark: Stricter CSP 2020-05-11 21:08:57 +00:00
zzz
d157daea10 i2psnark: Remove onclick on delete buttons
Version the js
2020-05-11 20:47:42 +00:00
zzz
9aa36562b9 i2psnark: Remove onclick on folder page 2020-05-11 20:12:40 +00:00
zzz
6a36b79a95 i2psnark: Remove onload 2020-05-11 19:33:00 +00:00
zzz
2cd2f25c56 Console: Remove onload and unsafe CSP on iframed pages 2020-05-11 18:04:19 +00:00
zzz
8631db8769 i2ptunnel: Replace edit onclick with js file
Remove unsafe CSP
2020-05-11 17:12:12 +00:00
zzz
7da2ac9ef3 Console: Fix delete confirmation on /configplugins
Replace /configclients and /configplugins onclick with js file
Remove unsafe CSP on /configclients
2020-05-11 16:43:53 +00:00
zzz
4da58258f5 i2psnark: Check for non-i2p URL 2020-05-10 20:28:30 +00:00
zzz
4f78040569 i2psnark: Check for non-i2p URL 2020-05-10 19:21:52 +00:00
zzz
0738d1d1fb i2psnark: Fix section anchors 2020-05-10 19:16:04 +00:00
zzz
e99e15209a i2psnark: Expand section when param passed in
(prep for handler)
2020-05-10 16:18:29 +00:00
96a8aa9d0c clear susidns notification the next time the user clicks anywhere on the page, closes #2419 2020-05-10 07:36:47 +00:00
0bbd747f82 clear susidns notification the next time the user clicks anywhere on the page, closes #2419 2020-05-10 07:35:40 +00:00
zzz
e31b837a7f Console: CSS fix hover over disabled button 2020-05-09 21:47:15 +00:00
zzz
ab7e428624 GeoIP: Add to CLI 2020-05-09 19:37:28 +00:00
zzz
565e7f4d67 GeoIP: Log tweak 2020-05-09 15:52:57 +00:00
zzz
910de68495 Build: Release prep - Geoip 2020-05, checklist, deletelist 2020-05-09 15:50:58 +00:00
zzz
e904c9981e i2ptunnel: Move CSS to own dir, remove allowCSS() and allowJS() 2020-05-09 12:42:44 +00:00
zzz
ddc372f58c NDT: Replace Java Timers with SimpleTImer2 to eliminate two non-daemon threads 2020-05-09 12:12:32 +00:00
zzz
4ff234c110 i2ptunnel: More disabled options 2020-05-08 22:29:09 +00:00
zzz
69ef47e68c i2ptunnel: Tooltips for disabled options 2020-05-08 20:47:39 +00:00
zzz
59901ec7c3 i2ptunnel: Fix padding on password form 2020-05-08 19:22:21 +00:00
zzz
13e38f3d3e i2ptunnel: Disable changing LS encryption on running tunnel 2020-05-08 19:16:05 +00:00
zzz
4b85f06951 Build: Fix more targets when in git workspace 2020-05-08 15:34:35 +00:00
zzz
08df2ba907 Build: Use git rev if mtn rev not available
Adapted from patch by dr|zed
2020-05-08 14:38:56 +00:00
zzz
7a192b4961 Console: More netdb formatting improvements
Hide signing key if not full
Label changes
2020-05-08 14:06:46 +00:00
zzz
d18f622458 CoreVersion: Fix previous change which broke build script 2020-05-08 13:48:33 +00:00
zzz
8a482659e0 Console: Fix padding when no addresses 2020-05-08 12:45:32 +00:00
zzz
eeecede382 Add another CoreVersion field specifically for StatisticsManager (ticket #2729) 2020-05-08 12:21:26 +00:00
zzz
d49741c2db Router: FloodfillPeerSelector cleanup (ticket #2694) 2020-05-08 11:09:11 +00:00
zzz
2ac2850cd4 Router: Min version for tunnel peers 2020-05-07 17:17:15 +00:00
zzz
3d56545210 Router: INMP and netdb DSRM selector cleanup 2020-05-07 13:25:31 +00:00
zzz
5de76252ea Router: Prevent INMP config setting from breaking things 2020-05-07 10:35:14 +00:00
zzz
778d6a2809 Streaming: Reduce default ack delay to match RFCs (ticket #2706) 2020-05-06 13:59:41 +00:00
f90cbaba5a update history.txt to include my changes to i2ptunnel and susimail. 2020-05-05 19:19:04 +00:00
zzz
6510e07b8b Console: Handle wrapper log trunctaion
More efficient line skipping
2020-05-05 16:27:07 +00:00
zzz
4996c05361 i2ptunnel: Add ECIES persistent key support
Fix changing enc type on servers
2020-05-05 14:38:04 +00:00
zzz
78effe14ad Console: Fix log clearing without wrapper (ticket #2449)
Use ABQ as buffer when reading
2020-05-05 12:51:41 +00:00
zzz
122b12fa31 i2ptunnel: Remove experts label from dual-key option
Header tweaks for translatability
2020-05-05 10:42:15 +00:00
zzz
438703a29b Ratchet: Add padding based on optimal message size
remove unused method
log tweaks
2020-05-05 10:39:16 +00:00
zzz
467a48cfe1 Build: Use --java2 for msgfmt
Runtime should be smaller and faster w/o Hashtable
Increases p200 size by < 1%; repack by 3.5%; updater by 4.5%
2020-05-05 10:36:56 +00:00
zzz
2b1c6a9d8f Console: Add wrapper log clear button (ticket #2449) 2020-05-04 21:22:13 +00:00
zzz
f1307614c6 Console: Add log clear buttons (ticket #2449) 2020-05-04 16:59:46 +00:00
zzz
ea8e340895 Util: Change LogConsoleBuffer implementation (prep for ticket #2449) 2020-05-04 15:26:50 +00:00
zzz
26af857dc7 i2ptunnel: Copy over all relevant options to other shared clients
when saving, not just tunnel quantity and length (ticket #1545)
Don't take sig type from client private key file unless persistent option is set also
2020-05-04 14:10:20 +00:00
zzz
f04526d83a Console, eepsite: Fix Arabic translation of 'Arabic' (ticket #2731) 2020-05-03 17:37:47 +00:00
zzz
a255a60944 Crypto: Don't start YK thread in app context 2020-05-03 11:06:46 +00:00
zzz
b4de0cfaf9 Crypto: Interrupt YK thread when empty 2020-05-03 09:56:21 +00:00
zzz
2188d6b222 Checkmark fix take 2 2020-05-03 09:48:04 +00:00
zzz
0528e4109d I2CP: Add PROP_GZIP
i2ptunnel: Disable I2CP gzip for HTTP server tunnels
i2psnark: Disable I2CP gzip
2020-05-02 22:16:39 +00:00
zzz
47f09479ad eepsite: Fix RTL issues on Arabic help page (ticket #2731)
patch from 'rany'
2020-05-02 10:50:44 +00:00
zzz
80d24fa70d Console: Only call getTheme() once 2020-05-02 10:38:37 +00:00
bef9ea11bf fix collapsing table behavior on i2ptunnel edit pages 2020-05-01 23:33:09 +00:00
278090a772 add missing icon from susimail light theme, fix padding on tables in i2ptunnel 2020-05-01 21:43:31 +00:00
zzz
eab688b0bc Ratchet: Fix NPE ratcheting IB NSR tagset 2020-05-01 14:04:14 +00:00
zzz
788c72c331 javadoc 2020-05-01 11:53:11 +00:00
zzz
90d9843acc Router: I2NP debug log improvements 2020-05-01 11:51:28 +00:00
zzz
d7095b69b9 Streaming: Cleanup, use field instead of method 2020-05-01 11:19:07 +00:00
zzz
dd96e29213 Streaming: Fix overhead documentation 2020-05-01 11:16:55 +00:00
zzz
fd3e181b7c i2ptunnel: Prevent changing types on stopped shared client if other shared clients are running 2020-04-30 15:19:51 +00:00
zzz
d7b5783674 i2ptunnel: Prevent changing enc type on running tunnel 2020-04-30 13:38:38 +00:00
zzz
634802c008 Streaming: Westwood+ congestion control (ticket #2719)
Increase max slow start window to 64
Change RTT calculations from double to float
Original idea from jogger
Original patch from zlatinb
Developed and tested with zlatinb
2020-04-30 12:44:55 +00:00
zzz
9e233b42a5 Ratchet: Error handling fixes, log tweaks 2020-04-30 11:29:08 +00:00
zzz
4cf8bfbe0d Ratchet: Increase callback timeout
- Mark tagsets after ratchet, and single tagsets, as acked
  so we don't go searching for the reverse tagset
  or adjust the expiration downward
- Eliminate redundant split() calculation
2020-04-29 21:40:25 +00:00
zzz
e1beeb3653 Log cleanup 2020-04-29 12:57:58 +00:00
zzz
82a918b37d Susimail, EdDSA: Convert Hashtable to HashMap 2020-04-29 12:54:37 +00:00
zzz
b6ecad3c0f Router: Convert Vector to List 2020-04-29 12:37:46 +00:00
zzz
e9d56d85af Console: Event log param fix again 2020-04-28 14:40:57 +00:00
zzz
b874bb2ba0 Ratchet: Block format updates 2020-04-27 20:51:02 +00:00
zzz
7f179551b7 javadoc 2020-04-27 19:54:44 +00:00
zzz
10be87bb59 Ratchet: Reduce tagset expiration
other minor cleanups
2020-04-27 19:52:39 +00:00
zzz
5173d24c72 Crypto: Reduce max ElG tagset expiration at receiver 2020-04-27 19:50:39 +00:00
zzz
f4a37ce75f i2psnark: Don't unchoke when we don't have pieces
Don't avoid partial pieces if there are several seeds
2020-04-27 19:49:09 +00:00
ff4cfd3eb0 improve collapsing table behavior 2020-04-27 03:17:48 +00:00
8b6d8507ec improve collapsing table behavior 2020-04-27 03:17:12 +00:00
65356f09a6 Fix padding on tunnelName 2020-04-26 11:43:02 +00:00
b0c6c845bf Improve toggle behavior 2020-04-26 11:31:14 +00:00
6859baba9f Make custom options full width of i2ptunnel page 2020-04-26 09:40:04 +00:00
c14541f4a3 Fix bug where the second time you opened a +/- table a - would not be shown and make the rest of the CSS line up right 2020-04-26 09:29:42 +00:00
1083d2939b fix +/- expand collapse on i2ptunnel tables, and fix the padding 2020-04-26 02:19:47 +00:00
zzz
2a8f23602a i2psnark: Increase min size for video preview
CSS tweaks for large videos
Mime types update
2020-04-25 14:39:05 +00:00
zzz
da5c92a599 Console: Fix summary bar event log link param (thx drzed) 2020-04-25 13:02:44 +00:00
zzz
baa26aec26 Tests: Prevent ratchet NPE in local tests 2020-04-25 11:01:27 +00:00
zzz
9da290831b Ratchet: Variable tagset lookahead/trim limits
Remove total size trimming, it's redundant
2020-04-25 10:32:33 +00:00
zzz
882f853b1d Console: Change event log param from ms to sec 2020-04-24 12:58:53 +00:00
zzz
a7de9a7f24 i2psnark: Don't mark torrent BAD on I2CP errors (ticket #2725)
Logging:
 - Log to wrapper log after log manager shutdown (ticket #2725)
 - sync methods
Router:
 - Allow clients more time to get disconnect messages at shutdown (ticket #2725)
 - Don't delete router context at shutdown, to prevent a late
   creation of a new app context (ticket #2725)
 - Don't try to delete ping file on Android
javadocs
2020-04-24 12:44:17 +00:00
zzz
f2f6dfbf18 Router: Better enc type rejection message 2020-04-23 19:31:17 +00:00
zzz
5e2db982dd Router: Check for key certs in dests (prop. 145) 2020-04-23 19:16:31 +00:00
zzz
bc11e66429 SusiDNS: Fix typo that broke the add form 2020-04-23 18:57:29 +00:00
zzz
da8f49a712 Router: GarlicMessage debug logging improvements 2020-04-23 18:56:03 +00:00
zzz
a97085ac67 Ratchet: Expire outbound TS based on inbound last-used
Fix outbound expiration time
Reduce pending tagset expiration
Increase max send acks
Increase max next key replies
Don't save ref to NS callback once called
Sync tagset for debug output
2020-04-23 16:21:25 +00:00
zzz
eb7211660f Streaming: Reduce TCB cache time 2020-04-23 13:35:02 +00:00
zzz
b182562c80 Router: Fix logging NPE (thx zlatinb) 2020-04-21 17:01:03 +00:00
zzz
25a80c78b5 Build: Manifests for test, source, and javadoc jars 2020-04-21 12:52:23 +00:00
zzz
c69af8308f i2psnark: CSS tweak 2020-04-20 18:06:33 +00:00
zzz
0cc1861649 Streaming: Single retransmit timer per connection (ticket #2715)
Only instantiate ResendPacketEvent for fast retransmit
Move packet timeout field from ResendPacketEvent to PacketLocal
Set window size to 1 on timeout
Always adjust window when acked, even if the packet was sent more than once
Reduce INITIAL_WINDOW_SIZE from 6 to 3 to reduce router DH overhead
Set maximum burst retransmissions to 16
Closer compliance to RFCs 5681 and 6298
Prep for additional changes (Westwood)
Other minor cleanups
Original patch from zlatinb
2020-04-19 14:59:08 +00:00
zzz
57cd4c5843 Ratchet: Adaptive order of muxed decrypt based on previous traffic 2020-04-19 14:21:24 +00:00
zzz
cd035e1247 Console: Add header for client SKMs on /debug 2020-04-19 11:11:24 +00:00
zzz
73886d06e8 Ratchet: Fix tagset remaining calculation
More efficient tag insantiation
Debug page fixes
Javadoc fixes
Minor cleanups
2020-04-19 10:59:32 +00:00
ae199581be Fix up the dark CSS for use with the new collapsing tables so tables line up, set ::selection highlighting on input text to a non-000 color so it shows up when you highlight it 2020-04-18 22:29:27 +00:00
zzz
bf425d8ac9 i2psnark: Periodically connect out to other seeds to fetch comments (ticket #2288)
javadoc updates
2020-04-18 15:04:43 +00:00
823dc72eaa Improve padding consistency and readability on new i2ptunnel edit config pages 2020-04-17 23:13:18 +00:00
zzz
3716ccc3ef i2ptunnel UI: Move new js from console to i2ptunnel
Move <script> from body to head
Version the js links
2020-04-17 15:53:10 +00:00
zzz
108b3a2363 Tests: Add I2CP port option to LocalClientManager 2020-04-17 13:19:41 +00:00
zzz
35bb5896a1 Streaming: Slow start fix from zlatinb 2020-04-17 12:02:26 +00:00
zzz
da9bfd48c0 Crypto: Disable speculative AES tagset usage 2020-04-17 11:59:59 +00:00
0bd3df6d98 Make the new dropdown_hover.png look consistent on i2ptunnel, re-run javascript prettifier 2020-04-17 06:02:12 +00:00
0656abd101 Add the missing dropdown_active.png image to the light theme 2020-04-17 05:36:34 +00:00
5299eb365f Re-organize the I2PTunnel UI and, in javascript-enabled browsers, turn advanced options onto accordion-menus. 2020-04-17 05:27:23 +00:00
zzz
53eb0fe7f8 SusiDNS: Remove taglib declarations where not required 2020-04-16 15:44:35 +00:00
zzz
4cdaa11024 Build: Reproducible build fix (ticket #2279) 2020-04-16 15:43:40 +00:00
zzz
e642d8e538 i2psnark: Fix TrackerClient thread name 2020-04-16 14:30:52 +00:00
zzz
cc5f13fc5e ElG/AES debug log tweaks 2020-04-16 13:27:53 +00:00
zzz
80f66113c4 i2psnark: Basic torrent file modification CLI 2020-04-16 13:24:51 +00:00
zzz
b3d5accca2 I2CP: Fix client notifier thread name 2020-04-16 13:22:23 +00:00
zzz
12ac06d5ba i2psnark: Debug page tweaks 2020-04-16 13:09:11 +00:00
zzz
7b47d3f314 Streaming:
Fix slow start (ticket #2708)
Reset retransmission timer after ack (ticket #2710)
Minor cleanups to prep for additional changes
Original analysis and patches from zlatinb
2020-04-14 12:59:26 +00:00
zzz
0d2dbcc8fc Ratchet: Additional muxed decrypt fix 2020-04-14 12:57:50 +00:00
zzz
e2cc62a21f Ratchet: Improve muxed decrypt
Try tags for both ratchet and AES before DH for either
Return empty CloveSet for ratchet errors after successful decrypt
Don't corrupt data in ECIESEngine on NS/NSR failure, for subsequent ElG attempt
Log tweaks
2020-04-14 12:13:00 +00:00
zzz
689b26102b i2psnark: CSS tweaks 2020-04-13 16:42:20 +00:00
zzz
c989addadc i2ptunnel: Allow comments in CLI command files 2020-04-13 16:41:26 +00:00
zzz
5e00bc6510 Streaming: Fix retransmission time (ticket #2709)
Remove unneeded checks on RTO max/min
Return new value from doubleRTO() (prep for ticket #2715)
2020-04-11 17:04:55 +00:00
zzz
828311a24f Debian: Fix patch offsets
Add ant target to validate patches
2020-04-10 18:49:30 +00:00
zzz
5976d4952f Jetty: Add GzipHandler for eepsites on Jetty 9.3/9.4 (ticket #2599)
by adding jetty-gzip.xml. JettyStart will copy the file
and add it to the configuration list automatically.
This does not affect standard installs which are still on 9.2;
it's only for Debian installs.
See also ticket #2098.
Partial backport from branch i2p.i2p.zzz.jetty93
2020-04-10 18:10:48 +00:00
zzz
80ae2ccea6 NTCP: Retain pending messages when replacing connection 2020-04-09 17:27:23 +00:00
zzz
370b7f1124 NetDB: Remove class M from auto-floodfill;
only 1% of floodfills are class M, and on average
they store 25% less leasesets than class N.
Reverts change to add M in 2015.
2020-04-08 20:20:55 +00:00
zzz
26b90b9d17 NTCP: More EnumSets 2020-04-08 15:36:36 +00:00
zzz
c8647fc3a5 i2psnark: Give peers preference to get their first pieces,
to mitigate effects of large pieces and allow them to
become interesting faster (ticket #2473)
2020-04-08 14:53:08 +00:00
zzz
3fa15824ee Ratchet: TagSet cleanups
Tag.toBase64() optimization
Javadoc fixes
2020-04-08 13:16:15 +00:00
zzz
1752291ffd Console: Fix disabling sidebar refresh
0 disables refresh on /configsidebar
disable ajax if refresh disabled
change refresh default to 15 sec
2020-04-07 20:47:12 +00:00
4edb9bbf7f switch success notification icon with smaller version of icon, previous commit adds css ID's to table ID's on editclient 2020-04-07 16:07:23 +00:00
e88a585703 switch success notification icon with smaller version of icon 2020-04-07 15:58:50 +00:00
zzz
928c0e9b91 Graphs: Reduce rrd4j sync thread pool size
disable pool if not persisting
stop pool on shutdown
2020-04-07 14:47:18 +00:00
zzz
83a4f5f2f0 Transport: Hang the X25519 keygen thread off CommSystem so Ratchet can use it
Don't start NTCP if neither 1 nor 2 is enabled
2020-04-07 13:23:36 +00:00
zzz
f54db66f77 Console: Use same IPv6 checkmark for NTCP and SSU 2020-04-07 13:21:41 +00:00
zzz
f16981d844 i2ptunnel: Unhide encryption type options 2020-04-06 21:08:52 +00:00
zzz
f6b5a2d493 Ratchet: Simplify OB Session; there can be only one active OB TS
Fix bugs handling of out-of-order nextkeys
Expire unacked tagsets every time through
Remore unused OB session methods
2020-04-06 20:27:47 +00:00
zzz
14b33a1e4c Ratchet: Don't allocate space for tagset keys initially 2020-04-06 15:23:30 +00:00
zzz
c99adeeb61 Ratchet: Use append() for keys too 2020-04-06 14:35:03 +00:00
zzz
b979a97905 Ratchet: Use SparseArray.append() instead of put() for efficiency 2020-04-06 14:29:07 +00:00
zzz
916b296ee0 Ratchet: Expire unused tagsets sooner 2020-04-06 13:54:49 +00:00
zzz
f9f64a441b Ratchet: Fix sorting for sessions on /debug 2020-04-06 13:22:58 +00:00
zzz
2482df7121 Ratchet: Decrypt ES messages in-place 2020-04-06 13:02:27 +00:00
zzz
f9d7cfa7e1 log level tweak 2020-04-06 12:46:16 +00:00
zzz
5229c0e811 Ratchet: Replace session if NS received after 3 minutes
Update lastUsed on NSR or first tag received
2020-04-06 12:45:46 +00:00
zzz
1ca9674f3f RatchetSKM: Group debug output for IB tagsets by pubkey, not session key
ElGamalSKM: Debug header change
ElGamalAESEngine: Minor cleanups for efficiency
2020-04-06 11:31:18 +00:00
zzz
c77e41c59e Ratchet: Next Key completion
Fix NextSessionKey constructor with null data
Fix handling of next keys
Fix sending OB next keys
Fix RatchetSessionTag.equals() for use in SKM
Delete OB NSR tagset when adding OB ES tagset
Log tweaks
2020-04-06 10:42:44 +00:00
zzz
8c4410277d Ratchet: Next Key WIP, got first ratchet working
Remove more ElG tag code from SKM
2020-04-04 11:56:25 +00:00
zzz
2ec9a4ab64 PKF: Add support for addsubdomain 2020-04-03 19:38:39 +00:00
zzz
6b05acff8d Ratchet: Next Key WIP 2020-04-01 18:44:06 +00:00
zzz
471b53698a Ratchet: Validate NS datetime block; add NS key bloom filter 2020-04-01 12:58:24 +00:00
zzz
7404bdc4fd NetDB: Add support for database lookup ratchet replies (proposal 154)
Add support for ElG-encrypted database lookups and stores from ECIES-only destinations
Add ratchet support to MessageWrapper
Application-specific timeout for MessageWrapper-generated tags
Refactor tunnel TestJob to use MessageWrapper
Add ratchet support to TestJob
TestJob cleanups
2020-03-31 19:21:35 +00:00
zzz
9307cc8a0c Ratchet: Add support for database lookup replies (proposal 154) 2020-03-31 18:43:52 +00:00
zzz
6dd0b23c61 Ratchet: Remove ID and DI from ACKREQ block
Use callback != null to specify request for ack
2020-03-30 20:09:29 +00:00
zzz
97f002bfb5 minor optimization 2020-03-30 17:03:20 +00:00
zzz
22ca4d0e44 Ratchet: GMB method to encrypt to a single key/tag for prop. 154 2020-03-30 16:53:14 +00:00
zzz
86fc6478f5 debug log tweak 2020-03-30 16:48:41 +00:00
zzz
dee92b5290 Ratchet: Updates
- Prep for prop. 154 with SingleTagSet
- Variable timeout for tagsets
- Start cleaner sooner
- Make key optional in next key block
- HTML debug output improvement
- log tweaks and javadocs
2020-03-30 16:44:42 +00:00
zzz
b19b529afe Ratchet: Expire tags too far behind current one 2020-03-29 17:53:28 +00:00
zzz
0c4cf5d3cd Ratchet: Add timeout job in OCMOSJ 2020-03-29 12:04:13 +00:00
zzz
eeb7ea4cae Ratchet: Acks and callbacks
- Store callbacks and ES acks in OutboundSession
- Calls from engine to SKM for callbacks and acks
- Pass key ID and remote key back in SessionKeyAndNonce
- Implmenent multiple acks in ACK block
2020-03-28 13:22:32 +00:00
zzz
23634afbc9 Ratchet: More updates
- Reply callback from ratchet to OCMOSJ (ES TODO)
- Store key ID in tagset (prep for next key)
- Move debug tagset ID from engine to tagset
- OCMOSJ minor cleanups
2020-03-27 19:38:24 +00:00
zzz
acf3abb19b Ratchet: Updates
- Modify NextKey, start of support (WIP)
- Don't expect DSM reply to ECIES destinations
- Debug setting to always sent ack request
2020-03-27 16:55:53 +00:00
zzz
c5435410ba atomic 2020-03-24 19:14:28 +00:00
zzz
786d68ce9a javadoc 2020-03-24 19:01:07 +00:00
zzz
0170ff2337 Blockfile: Add b32 to export output 2020-03-24 18:58:23 +00:00
zzz
a5c0448053 Graphs: Note restart required when changing persistence setting 2020-03-24 16:28:03 +00:00
zzz
7a1e2865fc Graphs: Fix rrd4j deprecation warnings 2020-03-24 16:19:33 +00:00
zzz
0c19216c4c Profiles: Remove unused ProfileManager.summarizePeers() 2020-03-24 13:08:23 +00:00
zzz
f2787a8df6 Profiles: Don't decay during first 90 minutes of uptime
Change decay from .75 twice a day to .84 four times a day;
approx. same overall decay in a day (.5)
Parameterize decay variables for clarity
Fix multiple NPEs in ProfileOrganizer CLI
Other cleanups
2020-03-24 13:03:40 +00:00
zzz
7654a0af42 Tunnels: Make new tunnel selection round-robin
Remove one-second stickiness, as OCMOSJ caching does the job better
http://zzz.i2p/topics/2454
2020-03-24 12:33:29 +00:00
zzz
5c1700c2ab Ratchet: Make DI optional in ACK request
Don't put ACK request in NS or NSR
2020-03-20 19:01:56 +00:00
zzz
6487fb0516 Tunnels: FragmentHandler cleanup (ticket #2699) 2020-03-20 12:32:28 +00:00
zzz
42fb3bb2e9 drop anoncoin from /home 2020-03-20 12:29:18 +00:00
f57876dc3b merge of '996d0dc0db49250004a12cd4eb0374a477ff3617'
and 'ee72efae66f864d6e5ff42879055800bbbd44436'
2020-03-20 01:50:39 +00:00
0a7027dd9b add 'ant bundle' target which generates a git bundle target iff the working copy is a git repository. Does not work with mtn clones. 2020-03-18 18:12:57 +00:00
idk
1154d28be7 add a bundle target to ant that generates a current git bundle and corresponding torrent. 2020-03-18 13:39:22 -04:00
zzz
0e68df6ba4 i2psnark: Hide non-i2p trackers on details page 2020-03-17 14:14:36 +00:00
zzz
7707c4bb94 Ratchet: Stub out ack and ack request blocks 2020-03-15 18:40:01 +00:00
56639fa7d2 Fix dead links and inconsistent links in the readme.html, slight expansion to browser configuration options. 2020-03-07 18:02:38 +00:00
zzz
f0a15d084a change from textarea to input 2020-03-05 14:36:58 +00:00
zzz
de6cee8f6a update default irc server list 2020-03-04 13:25:42 +00:00
zzz
8b075f26bf Console: Fix wizard XHR initialization 2020-03-01 17:58:55 +00:00
zzz
5455820a74 Console: Add security headers to XHR targets 2020-03-01 17:57:05 +00:00
zzz
d38c660c36 Console, i2ptunnel: Hide temporary IPv6 addresses from bind options 2020-03-01 15:41:49 +00:00
zzz
3f629ce1af Console: Disable browser launch on /configclients when a service 2020-03-01 14:20:06 +00:00
zzz
29f9986f40 i2ptunnel: Check for same interface before warning of dup port 2020-02-29 14:44:07 +00:00
zzz
d505a2fe76 log level tweaks 2020-02-29 14:32:07 +00:00
zzz
3eb573295b SusiDNS: Support adding b32's (ticket #2101) 2020-02-29 14:11:04 +00:00
zzz
0b9babab42 Profiles: Limit average speed calculation to max high cap peers
Make reorganize() methods pkg private
2020-02-29 13:44:42 +00:00
zzz
c190ddd6b0 typo 2020-02-28 18:54:04 +00:00
zzz
53118fa9c6 Console: Fix /viewlicense for Debian packages 2020-02-28 18:49:20 +00:00
zzz
8cf241f6da Debian: Remove fonts-dejavu as package recommendation,
not needed for rrd4j with our patch
2020-02-28 16:59:07 +00:00
zzz
6774af6910 Systray: Don't attempt to launch browser when running as a service
Console: Hide/show things on /configservice when running as a service
Util: Add isWindowsService() and isService()
2020-02-27 17:30:16 +00:00
zzz
eb73f0aae2 Fixup rrd4j javadoc errors, tested with JDK 15 b11 2020-02-26 17:04:06 +00:00
zzz
0bec84a3b1 Profiles: Fix bug which caused speed values to be
divided by 3 after being read from file
Remove _isFailing field
Minor cleanup
Don't persist profiles when in vmCommSystem mode
2020-02-26 16:36:36 +00:00
75c2d24c45 merge of '0279ae34b6386470db3de49cbb7dcbdc5629c575'
and '9100eed7ff963fd8a54ab922b65208cfd5fb15b3'
2020-02-26 00:24:03 +00:00
53e77df77d Bump router version for osx build 2020-02-26 00:23:58 +00:00
zzz
326a85ea4f Profiles: add to 'big countries' list,
fix typo, thx drz
2020-02-25 15:32:51 +00:00
zzz
e567f7b460 Build: jrobin.jar no longer depends on i2p.jar 2020-02-25 15:22:55 +00:00
zzz
ab28ee960e Add missing parts of rrd4j 3.5 omitted from previous checkin (ticket #2684)
Apache 2.0 and LGPLv2.1
2020-02-25 15:15:23 +00:00
zzz
88a4261b03 Remove tagged string that was never translated anyway 2020-02-25 15:01:37 +00:00
zzz
e7a66659e9 OCMJH comment out unused code 2020-02-25 14:58:10 +00:00
zzz
44a935d086 debug for ratchet 2020-02-25 14:56:10 +00:00
zzz
1e5414f74f drop old tagged strings 2020-02-25 14:54:16 +00:00
zzz
357d400bc6 add install5.xml to release check 2020-02-25 14:46:35 +00:00
zzz
594f1c7f8b Util: Add isRTL() 2020-02-25 14:45:10 +00:00
zzz
4a845f0b73 checklist update 2020-02-25 14:39:48 +00:00
zzz
bc791f91ab NetDB: Comment out unused FloodOnlySearchJob code 2020-02-25 14:38:31 +00:00
zzz
f938090d6a NetDB: Don't send 'fake hash' for exploration any more,
no longer required for compatibility,
exploration option supported since 0.9.16
2020-02-25 14:36:44 +00:00
zzz
d9ea6b1f9c rrd4j patch (ticket #2684)
So that DejaVu fonts are not required in the classpath.
We set the default font to Monospaced.
All fonts are then set in SummaryRenderer.
2020-02-25 14:14:34 +00:00
zzz
5bed4a0d7f Replace old jrobin with rrd4j 3.5 (ticket #2684)
2019-02-10
From https://github.com/rrd4j/rrd4j/releases
Copyright (c) 2001-2005 Sasa Markovic and Ciaran Treanor.
Copyright (c) 2011 The OpenNMS Group, Inc.
Copyright 2011 The RRD4J Authors.
Apache 2.0 and LGPLv2.1

Unmodified as a base for future merges, except for omitted
files listed below.
This rev will not work; font patch to follow in next revision.

Following directories and files omitted:
converter/
core/RrdBerkeleyDbBackendFactory.java
core/RrdBerkeleyDbBackend.java
core/RrdMongoDBBackendFactory.java
core/RrdMongoDBBackend.java
demo/
graph/RrdGraphDefTemplate.java
inspector/
eu/bengreen/data/utility/
2020-02-25 14:04:21 +00:00
zzz
4826bbd333 debian files for .45 2020-02-24 22:38:12 +00:00
zzz
0540c76c51 release build fix for non-pack200 2020-02-24 17:33:47 +00:00
zzz
f081e88420 0.9.45 2020-02-24 17:13:44 +00:00
zzz
4030d0b427 Installer: Restore i2plogo.bmp, required for launch4j standalone executable (ticket #2608) 2020-02-24 17:07:48 +00:00
zzz
c5f6c9a498 Javadoc fixes after testing with JDK 14 build 36 2020-02-22 16:16:08 +00:00
zzz
403440bab8 bump for review 2020-02-21 18:05:39 +00:00
zzz
8ed7a029d7 more translations 2020-02-21 17:53:09 +00:00
zzz
ec6807cd2c pull translations 2020-02-21 17:50:51 +00:00
zzz
226494028a Update: Extend torrent update timeouts and limits for larger files (ticket #2693) 2020-02-20 18:55:48 +00:00
zzz
4bcd896829 Build: Add non-pack200 release targets (ticket #2693)
Update: Don't require pack200 for in-net update (ticket #2693)
2020-02-20 18:36:03 +00:00
zzz
2524a7a69d GeoIP: Prefer more recent of mmdb or Debian files if we have both 2020-02-20 16:44:18 +00:00
zzz
2805388a4c GeoIP: Add unknown and Kosovo country codes for db-ip.com (ticket #2692)
https://db-ip.com/faq.php
2020-02-20 15:42:22 +00:00
zzz
631a082ebd Util: Change GeoIP update script to use db-ip.com (ticket #2692) 2020-02-20 15:26:12 +00:00
zzz
24b98b86c2 update BuildTime 2020-02-19 15:22:57 +00:00
zzz
5ee903765e Util: Improve LookupDest CLI, add to CommandLine 2020-02-18 17:07:41 +00:00
zzz
c0db50ed0f Debian: Remove GzipFilter in base-context.xml,
does nothing with Jetty 9.4 (ticket #2599)
2020-02-17 17:48:09 +00:00
zzz
3403ea3b51 Install: Remove commented-out GzipFilter in cgi-context.xml,
it will never work, to be replaced with GzipHandler
2020-02-17 16:22:39 +00:00
zzz
daf595ab7e i2psnark: Revert API changes that broke i2psnark-rpc plugin
compile-tested only
2020-02-17 15:47:03 +00:00
zzz
fd958df118 Console: Fix jump-to-section on /stats 2020-02-15 18:28:45 +00:00
zzz
dd794ceee4 NTCP: Remove closed connections from write queue (ticket #2686) 2020-02-15 16:25:44 +00:00
zzz
c19a63c6a2 increase max share ratio 2020-02-14 14:09:34 +00:00
zzz
84bea6438f poupdate source 2020-02-12 17:12:50 +00:00
zzz
d3bd2ce190 I2PTunnel, I2CP: Place ECIES first in LS2
Data: Add debug code to ignore LS2 key order
2020-02-12 17:04:07 +00:00
zzz
e82f420ee6 Remove TODO comment, already fixed 2020-02-12 13:59:43 +00:00
zzz
a035901f0a console: /netdb margin fix 2020-02-12 13:48:25 +00:00
zzz
e73ddb548a i2ptunnel: Change default sig type to Ed for non-shared HTTP client 2020-02-12 13:05:50 +00:00
zzz
fd87c609f2 Reseed: Remove download.xxlspeed.com 2020-02-11 15:16:22 +00:00
zzz
17060c0100 Stats: 4 stats no longer required (thx drzed) 2020-02-11 13:51:12 +00:00
zzz
fe16ccb434 Transport: Mark yggdrasil IPv6 prefix as not routable
Minor cleanup of the checking code
2020-02-10 14:43:57 +00:00
zzz
a46100bde5 I2CP: I2CPMessageHandlerMap cleanup 2020-02-09 16:14:49 +00:00
zzz
0478ac75e9 Console: Show local tunnel status as green if any leases are valid 2020-02-09 15:04:30 +00:00
zzz
d42235486e update string as requested for translatability 2020-02-09 14:01:21 +00:00
zzz
dd3dbbf7f9 SSU: Skip down interfaces when looking for MTU,
handle bad values better
2020-02-05 16:43:58 +00:00
efe85cc30a resources/installer/i2plogo.png is CC-BY-3.0 US(ura), license is in licenses 2020-02-05 15:59:36 +00:00
0b3e6acb97 undo systemd unit change until I've tested it better, it was checked in by accident 2020-02-04 21:06:07 +00:00
aa6c218122 Shrink izpack installer logo 2020-02-03 18:59:30 +00:00
033c37f4a0 Shrink izpack installer logo 2020-02-03 18:59:01 +00:00
zzz
e7ddee5509 Graphs: Add stat for render time (ticket #2684) 2020-02-03 15:41:06 +00:00
zzz
f8283c04ca Console: Fix redirect to /graphs when clicking stop/restart on /graph 2020-02-03 15:03:23 +00:00
zzz
0f7bcbf4bb Graphs: Clean up font setting, fix bugs (ticket #2684)
Unit font now monospaced on Linux and Mac as intended
Don't set Droid Sans font, not present in any platform by default
Fix font scaling for Japanese
Detect more RTL languages
Make fonts configurable
2020-02-03 14:19:35 +00:00
c4fce448c3 Use the new icon in the installer 2020-01-31 02:09:16 +00:00
zzz
c4c75c0ce5 javadoc fix 2020-01-27 16:21:05 +00:00
zzz
2988e58cb2 merge of '33d6437ea30f37b47795bc9e443064a00d297266'
and 'd264b4d7a1ab4e8fc4b510285f0ff30e26a27ca3'
2020-01-27 14:36:00 +00:00
21ae518102 new images are under the Feather(MIT) license, installer/resources/themes/console/images/console/{light,dark}/console_status_running.png
installer/resources/themes/console/{light,dark}/console_status_stopped.png
        installer/resources/themes/console/{light,dark}/console_status_starting.png
        installer/resources/themes/console/images/title_window.png
        installer/resources/themes/console/images/local_down.png
        installer/resources/themes/console/images/local_up.png
        installer/resources/themes/console/images/local_inprogress.png
        installer/resources/themes/console/images/info/network_status/network_ok.png
        installer/resources/themes/console/images/info/network_status/network_hidden.png
        installer/resources/themes/console/images/info/network_status/network_firewalled.png
        installer/resources/themes/console/images/info/network_status/network_warning.png
        installer/resources/themes/console/images/info/network_status/network_testing.png
        installer/resources/themes/console/images/info/network_status/network_error.png
        installer/resources/themes/console/images/info/network_status/network_clockskew.png
        installer/resources/themes/console/images/info/network_status/network_vm.png
        installer/resources/themes/console/images/info/network_status/rejecting.png
        installer/resources/themes/console/images/info/network_status/accepting.png
        installer/resources/themes/console/images/info/network_status/rejecting_hidden.png
        installer/resources/themes/console/images/info/errortriangle.png
        installer/resources/themes/console/{light,dark}/warning.png
        installer/resources/themes/console/{light,dark}/warn.png
        installer/resources/themes/console/images/info/infowarn.png
        installer/resources/themes/console/images/info/infohelp.png
        installer/resources/themes/console/{light,dark}/infowarn.png
        installer/resources/themes/console/{light,dark}/infohelp.png
        installer/resources/themes/console/{light,dark}/confirmed.png
        installer/resources/themes/console/{light,dark}/help.png
        installer/resources/themes/console/images/favicon.ico
        installer/resources/themes/console/{light,dark}/favicon.ico
        installer/resources/themes/console/images/inbound.png
        installer/resources/themes/console/images/outbound.png
        installer/resources/themes/console/images/folder.png
        installer/resources/themes/console/images/cursor_zoom.png
        installer/resources/themes/console/{light,dark}/newsbullet_mini.png
2020-01-26 17:57:40 +00:00
zzz
8bebb884c3 Console: Fix light theme sidebar bandwidth graph 2020-01-26 17:19:20 +00:00
zzz
4401265200 Tunnels: Don't test ECIES-only tunnels 2020-01-26 13:41:19 +00:00
094613b8de fix some issues with fonts and narrowness in light and dark themes, revise some icon choices on both themes 2020-01-25 21:10:43 +00:00
6e38cce149 merge of '1dd202cbab5db44efb071d2b37c26b0fe8822b21'
and '692f541c9c3da4e376de3e3d8dbccff5bf33dc45'
2020-01-25 00:16:38 +00:00
9c626a07c5 Adding two new reseed hosts, hosted by me. 2020-01-24 20:00:40 +00:00
80db2faeb7 Check in the undraw bell for the news notification, make the dark theme logo purple with a darker shadow to match the theme 2020-01-24 19:58:34 +00:00
b31eb3f53b Change the color and size of the new square logo, remove background setters in mobile css for router console since they aren't needed anymore 2020-01-24 16:15:45 +00:00
b572a330ed improve the consistency of the icons used throughout both the themes, round off buttons on light CSS theme, new favicon, bigger logo, don't fix sidebar height to 36px 2020-01-24 00:27:40 +00:00
zzz
98f7f30864 SSU: Use same valid IP criteria for sending relay request as for
receiving relay response
2020-01-22 20:48:32 +00:00
zzz
23d24a48b5 SU3File: Add date output to CLI
Bump -5 for previous Ratchet Elligator2 change
2020-01-21 21:00:54 +00:00
zzz
064e4046a6 Ratchet (proposal 144):
- Randomize high two bits of Elligator2 encoding (incompatible change)
- Fix NPE in RatchetTagSet.toString()
- Use zeros for padding block
- Add more debug logging
2020-01-21 17:54:14 +00:00
50c86147b0 Fix some uncaught stuff in the new dark CSS theme 2020-01-16 18:35:18 +00:00
zzz
3c9e78bd76 i2ptunnel: Fix NPE if no config file 2020-01-15 14:10:49 +00:00
zzz
f65cfbf92c SSU: Extend timeout for msgs with multiple fragments (ticket #2640) 2020-01-11 14:19:31 +00:00
4ad4e579d8 round button borders on /help 2020-01-09 19:43:53 +00:00
1f6b3c1107 round off the remaining icons from the susimail light theme, fix some css issues from the dark theme 2020-01-08 17:45:49 +00:00
zzz
a2a646e1f5 i2psnark: Support "preview" HTML5 play for partial files 2020-01-08 17:12:10 +00:00
zzz
ea05af42fa Jetty 9.2.29.v20191105, Tomcat 8.5.50 2020-01-08 14:16:16 +00:00
520faf477d icon consistency dark theme 2020-01-07 17:29:50 +00:00
cf2a4ba053 fixed non-rounded icons on susimail menus 2020-01-07 17:25:37 +00:00
zzz
1a0b25a6ef Console: Don't refresh bw graph with js unless enclosing summary bar refresh time is longer 2020-01-03 14:52:58 +00:00
zzz
23598ab011 Console: Add hellips to restart messages 2020-01-03 13:51:01 +00:00
zzz
7ac189696b Console: Remove scroll-in-scroll for wrapper logs 2020-01-03 13:49:00 +00:00
zzz
ecdccac37e Console: Refactor the configstats js
Don't toggle the full stats box with toggle-all
2020-01-03 13:31:10 +00:00
zzz
e865f451ca i2psnark: CSS tweaks so the refresh isn't as glitchy
Reduce default refresh to 15 sec
bye whippy
2020-01-03 12:56:24 +00:00
zzz
3d80f0122f merge of '93f632609768276d0eccf0e9f518436ec83dfa57'
and '9908ac36a27905f02e28e8db9f93a32777fe9c62'
2020-01-03 12:12:55 +00:00
zzz
0a34f3d5dd Tests: Drop empty unit test files 2020-01-03 12:12:05 +00:00
b588297458 delete two excessive background rules 2020-01-03 04:05:24 +00:00
b524e91888 add license info to checkin 2020-01-03 03:28:27 +00:00
29f8fec912 big CSS update across all dark-theme apps and susimail light-theme 2020-01-03 03:24:55 +00:00
zzz
09d31cb107 Util: Add https redirect support to EepGet and SSLEepGet
Add https support to EepGet CLI
2020-01-02 16:38:47 +00:00
zzz
fa9f60bcd9 Console, webapps: CSP improvements
i2ptunnel, susidns: Add headers.jsi
Console: Remove onload and use nonce for inline scripts where able
Version remaining js links
2019-12-25 12:18:00 +00:00
zzz
63b48e30be Console: Banlist and sidebar CSS tweaks 2019-12-24 14:01:04 +00:00
zzz
e714e7082e Console: Don't show a temporary IP ban if it's permanently banned also 2019-12-24 13:44:35 +00:00
zzz
9966c40d28 checklist update 2019-12-24 13:39:52 +00:00
zzz
9dbec9fbb5 drop unused flag 2019-12-24 13:35:50 +00:00
zzz
aa472feea9 i2ptunnel: Double default conn. and POST limits 2019-12-24 13:02:12 +00:00
zzz
c7a6584481 snark: psi's open tracker is back 2019-12-24 12:00:33 +00:00
zzz
ae994e3230 Console: Fix displayed name when installing new plugin 2019-12-21 14:24:18 +00:00
zzz
fcd8a3ae69 i2psnark: Fix autostart for torrent files copied into the dir
Use Collator for case-insensitive sort
Use Exception.getLocalizedMessage()
Prevent duplicate torrent starts
Don't write debug info to wrapper log
Increase max piece size
Navbar cleanup
2019-12-21 12:54:48 +00:00
zzz
ccaf4ce4b9 Console: Don't show 'Unresolved TCP address' error,
NTCP2 addresses may have triggered it.
2019-12-21 10:04:04 +00:00
zzz
5772b7d9ae NetDB: Randomize explore and refresh job delays 2019-12-20 16:07:24 +00:00
zzz
61ec10ff47 I2CP: Don't throw exception on early internalConnect()
ClientManager.isAlive() returns true even on port conflict
Hide port conflict message in console
2019-12-20 16:04:35 +00:00
zzz
c3138793fe SSU: Move statement affecting debug stats (ticket #2676) 2019-12-20 12:58:04 +00:00
zzz
c5904b080b SSU: Reduce log level on packet size error (ticket #2675) 2019-12-20 12:15:32 +00:00
zzz
7d10ef7a19 Add partial translations: bg, ca, cs, hi, hr, sq, sr 2019-12-20 11:17:14 +00:00
zzz
938410d68b Console: poupdate to remove strings moved to core and router 2019-12-19 14:24:18 +00:00
zzz
dd0d84fece Router: Add a router strings bundle 2019-12-19 14:08:28 +00:00
zzz
b2aa649c2a Build: Add encoding to all javac targets 2019-12-19 11:19:52 +00:00
zzz
74020ae5a3 CommSystem: Reduce IPv6 status thrashing 2019-12-19 10:56:13 +00:00
zzz
6f3cfd83cd Router: Prep for a router strings bundle 2019-12-18 13:43:17 +00:00
zzz
10b8c92fdb Proxy: Clean up links in error pages 2019-12-18 12:23:49 +00:00
zzz
520da91735 Console: Get log level translations from core 2019-12-17 19:24:41 +00:00
zzz
d73fc85c34 Move log level translations to core 2019-12-17 18:59:55 +00:00
zzz
4eca698584 Fix ngettext in DataHelper to make TX happy 2019-12-17 18:27:55 +00:00
zzz
3fa3b69cbc Fix ngettext in LogWriter 2019-12-17 17:33:04 +00:00
zzz
bf94460420 Core: Move date/time/size translations from console to core,
so apps can use them.
Fix translation in LogWriter, was never included in console.
2019-12-17 17:21:35 +00:00
zzz
d054652952 NetDB: Fixes for hidden routers losing peers (ticket #2673)
Explore more aggressively, increase thresholds
Explore with standard non-explore lookup if low on floodfills
Run RefreshRoutersJob if low on floodfills
Refactor SearchReplyJob to process all hashes at once
Transport: Use NTCP and SSU equally if hidden
2019-12-17 16:17:15 +00:00
zzz
ad3c978c7c Console: Partial az translation 2019-12-16 17:57:53 +00:00
zzz
3277ea4854 Console: Hide services sidebar section if empty
Use Exception.getLocalizedMessage() everywhere
HomeHelper javadoc
2019-12-15 15:48:19 +00:00
zzz
7b6e25db8b Console: Fix Hebrew translation
SusiMail: Add partial Hebrew translation
2019-12-15 15:39:38 +00:00
zzz
1974cc5559 Console: XML stats as attachments, not inline 2019-12-14 17:52:37 +00:00
zzz
9c534fda7b Console: Stat group display names 2019-12-14 14:17:06 +00:00
zzz
a5efce883a CoalesceStatsEvent: Add new known peers stat
cleanups
2019-12-14 13:18:02 +00:00
zzz
6197454225 Console: Add Content-Disposition header to graphs 2019-12-14 12:57:41 +00:00
zzz
64e9e2aebe PeerManager: Add countPeersByCapability() 2019-12-14 12:35:27 +00:00
zzz
faf130cf38 Elligator2 cleanups, thx orignal 2019-12-10 15:26:53 +00:00
zzz
831c1945a5 Fix build (missed one file) 2019-12-05 15:54:44 +00:00
zzz
26ecf364a6 drop unused icons 2019-12-04 18:19:20 +00:00
zzz
74b61a7ba6 Console: Sort advanced section after translation 2019-12-04 18:01:22 +00:00
zzz
d65208b917 Console: Sort help section after translation 2019-12-04 17:36:34 +00:00
zzz
bf70a1520b Console: Sort internals section after translation 2019-12-04 17:16:14 +00:00
zzz
3a3416d2a5 Console: Sort summary bar services section
Simplify data structures in NavHelper
Index NavHelper map by untranslated app name
NavHelper cleanups
2019-12-04 17:01:29 +00:00
zzz
00667151da Console: Rework summary bar services section
Move icon selection from CSS to code
Use plugin-configured icon if available
2019-12-03 19:18:20 +00:00
zzz
a9abf3babf less code inside synch block 2019-12-03 15:53:49 +00:00
zzz
cad3c46ea6 OCMOSJ: Cancel timeout job on reply
JobQueue: Improve removeJob()
2019-12-03 15:43:44 +00:00
zzz
9289a6daa9 NDT: Fix JSON encoding of extended login (ticket #2672)
Disable middlebox and firewall tests
Don't NPE if no middlebox test
Change version to match measurement-kit
Don't prefer IPv6, it is unreliable
Disable SSL by default, unreliable
Add 30s timeout to initial handshake to prevent long hangs on SSL
2019-12-03 14:57:32 +00:00
f2f29d6a6c merge of '2c002e114a71d2110b0c2313843dd3b41aa9a5f4'
and '87ba4083f66afda026363d0d844d0fa8e7486312'
2019-12-02 20:15:20 +00:00
3e888f8936 merge of '5a9a93d4878eb2e2757a350fa1b2b799745e7c1d'
and 'd00191a61a9b395dee95cfbc02f6e38664eb3d50'
2019-12-02 20:14:55 +00:00
cbccba8dc2 Changes for OSX launcher with the 0.9.44 router. 2019-12-02 20:14:50 +00:00
zzz
7cfc16ca36 NDT: Prevent NPE on JSON parse of bad/empty input (ticket #2672) 2019-12-02 17:45:22 +00:00
zzz
f7a2d23f1e NetDbRenderer debug log cleanup 2019-12-02 15:34:27 +00:00
zzz
31e8ff8f45 Update manager: Notify GeoIP type and file version 2019-12-02 15:29:42 +00:00
zzz
3a7ee4f211 Console: Move restart status up in summary bar
Process restart status first regardless of display order
2019-12-02 15:25:10 +00:00
zzz
cc3c2d4d1a misc. minor cleanups 2019-12-02 15:21:46 +00:00
zzz
11d89e248e i2psnark HTML5 minor cleanups 2019-12-02 15:01:23 +00:00
zzz
2bb94bea80 Debian changelogs for 0.9.44 2019-12-01 21:46:56 +00:00
zzz
2bfd421b19 0.9.44 2019-12-01 17:12:05 +00:00
zzz
4c9c83231b CSS tweaks after review 2019-12-01 17:04:46 +00:00
zzz
32044f1682 bump 2019-11-30 19:00:16 +00:00
zzz
51f7348d8a pull translations 2019-11-30 18:58:53 +00:00
ae345cfb85 SusiDNS and router console css nits 2019-11-30 17:21:08 +00:00
52edc35275 SusiDNS and router console css nits 2019-11-30 17:10:57 +00:00
d5bc948bb4 fix css indentations 2019-11-30 06:42:55 +00:00
86ff3420b5 Tab-Menu Layout Changes, color updates to the light theme, new icons, highlight active page in susidns 2019-11-30 06:39:13 +00:00
zzz
6b0e3750c9 Add more partial Persian translations, add to config page 2019-11-29 13:57:05 +00:00
zzz
600c681143 misc updates:
GeoIP, BuildTime, checklist, blocklist
2019-11-27 12:22:25 +00:00
zzz
e1189b9c9f i2psnark: Error messages take 2 2019-11-25 13:36:48 +00:00
zzz
9feeb76d6c i2psnark: Add thebland back as default also 2019-11-25 12:28:51 +00:00
zzz
9f02b27c4a i2psnark: Error message improvements 2019-11-24 16:59:27 +00:00
zzz
345cdd3eb0 Debian: Add apparmor support for Java 11 (Github PR #19) 2019-11-24 16:20:09 +00:00
zzz
def1e2ec68 i2psnark: Restore tracker.thebland.i2p 2019-11-24 16:10:55 +00:00
zzz
62c9ae67d0 new translations 2019-11-24 14:14:00 +00:00
zzz
10b756b726 poupdate-source 2019-11-24 13:28:11 +00:00
zzz
bf9d136a2b readme edits 2019-11-24 13:13:08 +00:00
9ffd71e0b8 Settle on strings for new categories on the router console home page 2019-11-23 18:41:42 +00:00
zzz
6fa13313f0 Tunnel building:
- Don't count zero-hop tunnels as part of the pool when building
   - Don't build more than one zero-hop tunnel in a pool
   - Assume high build failure rate for new installs
   - Reduce threshold for tunnel length override
2019-11-23 16:51:14 +00:00
zzz
27fa991783 Remove dead reseed 2019-11-22 13:12:59 +00:00
09f6429b5f update javadoc 2019-11-21 15:12:30 +00:00
252a7972a1 only load a file filter definition if the definition has been modified since the last load 2019-11-21 15:12:04 +00:00
131ebc4d5a do not write to disk if there are no new breaches #2666 2019-11-21 14:56:25 +00:00
zzz
4e81e48d64 Use "Base32" and "Base64" consistently in strings
Update clearnet user-agent to match TBB
2019-11-21 13:59:26 +00:00
zzz
7b391fa17a I2CP: Don't put ECIES first in LS2 2019-11-20 15:01:22 +00:00
zzz
5e67f4232a I2CP: Prevent an uncaught OCMOSJ exception from killing the session 2019-11-20 14:54:46 +00:00
zzz
398b4ceade SSU: Lower ACKSender log level (ticket #2651) 2019-11-17 17:35:12 +00:00
zzz
03f4624f91 Transport: Save IPv6 firewalled state across restarts (ticket #2175)
Use EnumSets in UDPTransport
2019-11-16 17:12:40 +00:00
zzz
79334afcbc Console: Fix plugin icon-code images 2019-11-15 21:11:40 +00:00
zzz
c711d48835 Console: Hide more SSU peer info unless advanced 2019-11-15 13:55:04 +00:00
zzz
394db0b307 SSU: Remove redundant field (ticket #2659) 2019-11-15 13:45:58 +00:00
zzz
8bb1347e6e i2psnark: Don't start tunnels when autostart enabled but no
torrents set to autostart (ticket #2662)
Remove trackers apparently down
Don't show flv with HTML5
Another escape fix
2019-11-15 13:11:53 +00:00
zzz
e22810fd93 SSU minor cleanups 2019-11-15 11:06:14 +00:00
zzz
8218d55874 SSU: Fix log value (ticket #2652) 2019-11-14 15:51:52 +00:00
zzz
652b75a749 Transport: Remove unused currentReceiveSecond (ticket #2661) 2019-11-14 13:44:52 +00:00
zzz
620917cd70 Transport: Fixes for IPv6 firewalled logic (ticket #2175) 2019-11-14 13:25:38 +00:00
zzz
b8ed77da9a Consolidate I2CP property definitions 2019-11-13 18:06:35 +00:00
zzz
65b3cdbb12 Console: Hide buttons on /configkeyring if no entries 2019-11-13 17:39:56 +00:00
zzz
cecf255706 i2ptunnel: Don't delay after ConnectException if stopped
(fixes zzzot stop delay)
2019-11-13 15:37:16 +00:00
zzz
a854ccee69 remove plugins link 2019-11-13 14:07:01 +00:00
zzz
6e2ad50e16 i2psnark: Disable HTML5 for playlist files
Another escaping fix
2019-11-12 20:20:07 +00:00
zzz
fdb3c68d3f cleanup 2019-11-12 17:04:53 +00:00
zzz
d2e2109799 Router: Shutdown ECIES engine 2019-11-12 17:03:03 +00:00
zzz
9f0c3ee345 Debian: Fixup patch to match wrapper.config change 2019-11-12 17:00:36 +00:00
zzz
725509fe5c i2psnark: Exclude some video types from HTML5 2019-11-12 16:57:17 +00:00
zzz
13318a12da Console: Fix NPE on bad input 2019-11-12 16:55:39 +00:00
zzz
e8bf2ee30d i2psnark: Audio playlist support
Add HTML5 player for single-file torrents
2019-11-12 12:20:19 +00:00
eda91af7c7 pick a better icon for hidden services manager, improve some text, and hide some of the stuff in /monitoring 2019-11-11 17:57:08 +00:00
zzz
9ddb655a88 KeyGenerator: Use new PrivateKey constructor to cache pubkey
Clear cached public key on private key destroy()
2019-11-11 14:24:11 +00:00
zzz
9d46a5d838 Router: Set default sig type to EdDSA for Android 2019-11-11 14:17:27 +00:00
f7471713da Re-categorize items from /home and introduce 2 new categories. Make them configurable on /confighome 2019-11-11 00:49:26 +00:00
b5d7f3e460 only declare one string for determining appdata, use old roaming appdata if it is present. 2019-11-09 08:23:41 +00:00
7b53b0d3ad leave roaming appdir installs that already exist alone 2019-11-09 01:36:53 +00:00
ff293d50a9 introduce divs to allow selecting buttons on /home by category 2019-11-08 17:42:53 +00:00
zzz
552100da17 i2psnark: More playlist mime types 2019-11-08 16:44:09 +00:00
zzz
a2b23f96e8 i2psnark: HTML5 on details page 2019-11-08 15:02:03 +00:00
zzz
14499c2993 i2psnark: Playlist mime type 2019-11-08 14:49:11 +00:00
zzz
dfc533b6e8 i2psnark: Another escaping fix 2019-11-08 14:48:30 +00:00
zzz
2738b3d29c i2psnark: Increase progress bar size again 2019-11-08 14:45:59 +00:00
zzz
07b7ab4262 Ratchet: Hook in MuxedEngine decrypt 2019-11-06 16:20:14 +00:00
zzz
b7f6cfbf46 Ratchet: Replace old session if new NS received
Log tweaks
2019-11-05 19:11:29 +00:00
zzz
ebc8dbe947 Ratchet: Increase tagset sizes
fix compile error
2019-11-05 17:26:22 +00:00
zzz
01d6cea017 Ratchet: Simplify lookup of OB session from IB NSR 2019-11-05 17:15:37 +00:00
zzz
160bcd7da8 MV log tweaks 2019-11-05 17:07:21 +00:00
zzz
bc40978297 Router: No longer check the clove ID in the Bloom filter, just check the expiration.
The Clove ID is just another random number, and the message ID in the clove
will be checked in the Bloom filter; that is sufficient.
Checking the clove ID as well just doubles the number of entries in the Bloom filter,
doubling the number of false positives over what is expected.
For ECIES-Ratchet, the clove ID is set to the message ID after decryption, as there
is no longer a separate field for the clove ID in the transmission format.
2019-11-05 16:43:12 +00:00
zzz
656dd42276 Ratchet: Prep for next key 2019-11-05 15:20:52 +00:00
zzz
4d1d11d1d4 Ratchet: Bob transition to ES
Store PK in RTS
New RST constructor
Log tweaks (lots)
2019-11-05 14:13:35 +00:00
zzz
3ae5b90c98 Ratchet: Expire pending outbound
Prep for Bob transition to ES
Log tweaks
2019-11-04 18:03:06 +00:00
zzz
2846c33b40 Ratchet: Debug page fixes 2019-11-03 17:06:33 +00:00
zzz
b5f6c58a0b Ratchet: Implement expiration
Store creation and last-used in tagset
Catch all decrypt/encrypt exceptions
Debug page improvements
2019-11-03 16:51:51 +00:00
zzz
3ba48fda86 Ratchet: Track pending sessions
Transition from NSR to ES
HandshakeState.clone() fix for multiple NSRs
Add tagset ID numbers
Debug logging
2019-11-02 15:42:16 +00:00
zzz
7c4569816f Ratchet: NSR send/recv fixes 2019-11-01 12:56:16 +00:00
zzz
0cd8073f39 Ratchet: WIP on NSR send/recv 2019-11-01 12:22:20 +00:00
zzz
71411be6d9 Ratchet: Changes to match current proposal 144
Pass CloveSet to/from ECIESEngine
2019-10-31 10:56:01 +00:00
zzz
a51ee8e745 findbugs all over 2019-10-30 15:26:56 +00:00
zzz
3719081469 Build: More findbugs source paths 2019-10-30 13:41:33 +00:00
zzz
2216a58143 I2NP: Javadoc fixes
Improve DataMessage.toString()
2019-10-29 16:30:08 +00:00
zzz
dc29525e5c Console: Remove theme choice objects on /configui
so we don't get snakes with noscript
(thx drz3d)
2019-10-28 16:07:25 +00:00
e5163c6ee5 Set autobits to false in wrapper.config. See #2299 2019-10-27 14:32:43 +00:00
c5db5f0de3 Fix runplain.sh for OSX. See #2299 2019-10-27 14:30:30 +00:00
zzz
3d75b3dc31 OCMOSJ: Keep bundling LS until acked
log tweaks
2019-10-27 12:24:08 +00:00
zzz
591b994b75 OCMOSJ: Bundle unwrapped ack with LS for ratchet dest 2019-10-27 12:21:22 +00:00
zzz
135e9ad31f NetDB: Don't send encrypted lookup reply to ratchet dest 2019-10-27 12:18:07 +00:00
zzz
eee9e47cac Transport: Publish IPv6 address on transition to non-firewalled (ticket #2175) 2019-10-25 13:27:30 +00:00
zzz
df6465f802 TestJob: Remove unused wrappedKey param from buildMessage() 2019-10-25 12:23:43 +00:00
zzz
0c256d30c7 OCMOSJ: Select target key in LS based on local client's support
Hook new SKMs and ending into Garlic Message encryption/decryption
Remove unused wrappedKey param from buildMessage()
Log tweaks and javadoc fixes
WIP
2019-10-25 12:21:33 +00:00
zzz
43c93bceed I2CP: Set client SKM based on configured encryption 2019-10-25 11:36:46 +00:00
zzz
f021abcae0 Crypto: Add ECIES Engine to context 2019-10-24 14:32:05 +00:00
zzz
7b28640e91 Crypto: Ratchet and Muxed SKMs and Engines (WIP) 2019-10-24 14:28:39 +00:00
zzz
6a47319b66 Crypto: SessionTagListener for RatchetTagSet 2019-10-24 14:01:53 +00:00
zzz
ee46678955 Crypto: RatchetTagSet using SparseArray 2019-10-24 13:54:20 +00:00
zzz
8c498069d8 Crypto: SparseArray mods
Remove AOSP dependencies
Remove unneeded code
Javadoc fixes
2019-10-24 13:50:29 +00:00
zzz
7389216560 Crypto: SparseArray from AOSP
Latest as pulled from android.googlesource.com
Copyright (C) 2006 The Android Open Source Project
Licensed under the Apache License, Version 2.0
Unmodified, as reference for future merges,
will not compile, mods to follow
2019-10-24 13:46:32 +00:00
zzz
129e474ecb I2CP: Add config to disable loopback for testing 2019-10-23 14:02:30 +00:00
zzz
3ed8620e5a I2CP: Fix error message for config errors (ticket #2639) 2019-10-23 13:48:39 +00:00
zzz
436a8b8720 Router: Register all LS2 keys with KeyManager 2019-10-23 13:38:41 +00:00
zzz
5d8871c17c NetDb: Don't try to garlic encrypt netdb messages with a ECIES key 2019-10-23 13:21:22 +00:00
zzz
d84fc4f0c8 Data: Add LeaseSet methods to get encryption key by type 2019-10-23 13:13:13 +00:00
zzz
2c2f90089b Crypto: Noise modifications to support ratchet:
- Add IK support
- Add generic key factory support
- Add method to get ephemeral key
- Add method to get encoded ephemeral key
- Add clone() support
- Add back ChaCha debug support
2019-10-23 13:02:00 +00:00
zzz
236354e5a8 Crypto: Base classes for ECIES-Ratchet (proposal 144) 2019-10-23 12:33:13 +00:00
zzz
aa3d2f39b1 Router: Fix logic error in check for local destinations 2019-10-23 12:23:04 +00:00
zzz
fb67ebb38d Crypto: New KeyFactory interface 2019-10-23 12:17:21 +00:00
zzz
a9d4798bfe Data: Cache public key in private key class 2019-10-23 12:15:58 +00:00
zzz
8484a22fc4 Router: Add KeyManager support for multiple leaseset private keys 2019-10-23 12:11:17 +00:00
zzz
0f7ebf2f71 Crypto: Don't zero-fill arrays already initialized 2019-10-23 12:04:41 +00:00
zzz
db37745a1c i2ptunnel: Add encrytion type selection to form 2019-10-23 11:57:22 +00:00
zzz
b12e7214c8 Build: Make 3 release targets, with jbigi/geoip/neither 2019-10-23 11:35:33 +00:00
zzz
079d464629 Startup: clients.config.d files must have a ".config" suffix 2019-10-23 11:26:35 +00:00
zzz
6dd2e9bb6b fix comment 2019-10-23 11:18:42 +00:00
zzz
413eb7d0eb Console: Consolidate 'selected' strings 2019-10-23 11:16:02 +00:00
zzz
68a03b835a Data: Reduce SessionTag size by flattening class 2019-10-23 11:08:42 +00:00
zzz
eef6c5cb33 Build: Recognize gettext 0.20 2019-10-23 11:00:23 +00:00
zzz
652f9bb6a0 Debian/Ubuntu updates for 0.9.43 2019-10-22 16:36:23 +00:00
zzz
ab7b85cc1a 0.9.43 2019-10-21 19:47:35 +00:00
zzz
2335f547f7 add new man pages to debian 2019-10-21 19:46:09 +00:00
zzz
701f777035 bump for review 2019-10-18 18:29:56 +00:00
zzz
77259293a8 Maxmind GeoIP 2019-10-15 2019-10-18 18:24:35 +00:00
zzz
4e231b26c3 I2CP: Remove pre-43 test code for BlindingInfo 2019-10-18 18:23:26 +00:00
zzz
9889d1adcb Console: changed headers and app colours on /home, headers in sidebar, news, and /console.
patch from sadie
2019-10-18 18:22:17 +00:00
2377b1adde remove unused image from bandwidth wizard 2019-10-18 18:07:59 +00:00
zzz
47aa6101d4 New zh_TW translations for desktopgui and i2psnark
New ro man pages
Fix ru man page error
New transifex translation of zh readme
2019-10-18 13:41:10 +00:00
zzz
7161785c5b pull translations from transifex 2019-10-18 12:53:27 +00:00
zzz
2ca9fe2050 fix html error 2019-10-18 12:46:30 +00:00
zzz
1095a140de Util: Fix eepget -p :port 2019-10-16 12:57:50 +00:00
0485e690c6 fix some colors and some padding in the new bandwidth wizard 2019-10-15 23:57:09 +00:00
20103957a9 remove unused 48x48 flags from the installer package 2019-10-13 15:27:46 +00:00
zzz
9670858095 SessionIdleTimer log level reduction 2019-10-13 13:59:28 +00:00
2bc8d58476 fix the trailing whitespace added by my IDE 2019-10-12 17:27:54 +00:00
zzz
70fd0c6f6a Tests: Disable NTP in context for unit tests 2019-10-12 14:47:59 +00:00
zzz
2b1a7015e4 poupdate-source after spelling fix 2019-10-12 14:14:56 +00:00
zzz
e8404a75fb spelling fix 2019-10-12 14:12:37 +00:00
zzz
05c30b4f1d NTCP: Performance improvement (tickets #2619, #2620) 2019-10-12 13:23:28 +00:00
zzz
29eabc4706 TCG javadoc notes for android 2019-10-11 16:14:26 +00:00
zzz
049b34f7cf Console: Fix mime type and encoding on javadoc pages 2019-10-10 14:48:23 +00:00
zzz
31f2c51e7e poupdate-source 2019-10-09 19:06:33 +00:00
zzz
71cc55fa7d langbox tweaks 2019-10-09 18:53:00 +00:00
68a65d5cac fix tooltips on new gear links, shrink them down a little bit 2019-10-09 17:31:44 +00:00
e4c5c4862f Improve accuracy of TunnelControllerGroup message 2019-10-08 18:14:42 +00:00
cb2544157f fix erroneous log message in TunnelControllerGroup, replace language flags with a link to configui instead 2019-10-08 18:10:34 +00:00
zzz
612bdda281 build.xml comment 2019-10-08 14:11:43 +00:00
zzz
db5dd6a626 I2NP: Remove unused I2NPMessageHandler methods 2019-10-06 16:31:18 +00:00
16db73b092 Improve bandwidth wizard CSS on narrow browser windows 2019-10-05 23:05:01 +00:00
c259abc82c remove metadata from undraw assets 2019-10-05 15:30:23 +00:00
99b33fabe6 regular-ize image sizes, make spacing more similar between dark and light themes of bwwizard, fix some background stuff 2019-10-05 07:45:32 +00:00
81133a1a95 undo absolute positioning of messages 2019-10-04 05:26:43 +00:00
9b3380cef3 check in undraw license 2019-10-04 05:13:11 +00:00
87ba8577e9 fix css leaking from new bandwidth wizard to main router console in light mode. Images for new bandwidth wizard(installer/resources/themes/console/images/wizard/*.png) under the UnDraw license, which is in (licenses/LICENSE-undraw.txt). Make font size consistent on bandwidth page in light mode. 2019-10-04 05:11:42 +00:00
zzz
aca5617935 i2psnark: Start with minimum tunnel count (ticket #2623) 2019-10-03 14:10:18 +00:00
e44a7c5054 modern-styled bandwidth configuration menu 2019-10-03 05:44:53 +00:00
zzz
142508c872 configkeyring html fixes 2019-10-02 20:23:47 +00:00
zzz
788e041939 Installer: Clean up old hosts.txt entries
see http://zzz.i2p/topics/2778
2019-10-02 14:04:48 +00:00
zzz
3563fdf9e4 Console: Add date columns on /configkeyring 2019-10-02 14:02:20 +00:00
zzz
ea8ac884fa i2ptunnel: Results page after generating LS2 DH key 2019-10-02 13:56:11 +00:00
zzz
bf33e8432d CSS -ms-user-select for IE 10
https://www.w3schools.com/csSref/css3_pr_user-select.asp
2019-10-02 13:52:03 +00:00
zzz
18ed1a6bb3 PortMapper: Fix URL generation for IPv6 hosts
Console: Remove i2pwiki.i2p (ticket #2626)
2019-10-01 16:09:17 +00:00
zzz
830e08065b spelling 2019-09-30 17:03:59 +00:00
zzz
c1722a9f82 i2psnark: Log more cases where torrent file gets renamed
(followup to changes for ticket #2291)
2019-09-30 17:01:02 +00:00
zzz
e5475bc229 i2psnark: Recognize more ebook file suffixes 2019-09-30 16:59:32 +00:00
d81bf6a417 Re-added -notimestamp for javadoc 2019-09-29 11:07:24 +00:00
zzz
3710ff9aa1 javadoc fixes 2019-09-28 12:07:59 +00:00
679aa1afac Revert javadoc thingy that didn't work. 2019-09-27 14:03:47 +00:00
zzz
320569ef7f Tomcat 8.5.46 2019-09-21 14:30:57 +00:00
zzz
4f0d764540 i2ptunnel: Support quoting for custom options (ticket #2603)
This also allows closing of ticket #2163.
2019-09-19 16:22:51 +00:00
zzz
a768afe05b i2psnark: Fix breakage of error tables 2019-09-18 16:37:06 +00:00
zzz
d15e068123 i2psnark: Details page cleanups part 2 2019-09-18 14:13:39 +00:00
zzz
c1431565ed i2psnark: Details page cleanups 2019-09-18 13:54:40 +00:00
zzz
2b6cb2099a I2CP: More BlindingInfo serialization fixes
Shorten lookup timeout on router side so the client gets the reply before timeout
2019-09-18 12:37:26 +00:00
zzz
f9a2193e2f i2ptunnel: New CLI BlindingInfo test
I2CP: Fix BlindingInfo serialization
2019-09-17 17:30:42 +00:00
zzz
0d325d5a28 i2ptunnel: Interstitial after auth save form 2019-09-17 15:00:50 +00:00
zzz
520da24e0c i2ptunnel: Improve query parsing in local HTTP server,
as required for b64 keys in form
2019-09-17 14:26:20 +00:00
zzz
69638caa7b i2ptunnel: B32 auth form improvements 2019-09-17 13:18:47 +00:00
zzz
62914d7678 i2ptunnel: Remove streamr, connect, and httpbidir from wizard
Don't override defaults in wizard
2019-09-17 12:09:26 +00:00
zzz
94c96b09e9 Router: Implement expiration for BlindData entries 2019-09-17 11:17:14 +00:00
zzz
0c2a8e9244 Util: Add sigtype/enctype help to PKF
remove dead code from SU3File help
2019-09-17 11:05:48 +00:00
zzz
67cd6409a0 EepHead: Don't output null values in CLI 2019-09-14 14:14:11 +00:00
zzz
65d0ea3f0b i2ptunnel: Fix SSL wizard for split config (ticket #2610) 2019-09-14 13:39:39 +00:00
zzz
f1b725a320 Util: Don't attempt to load hidden cert files (ticket #2622) 2019-09-14 11:40:39 +00:00
zzz
9e39cbe502 reseed: Fix adding netid param (ticket #2621) 2019-09-14 11:23:59 +00:00
zzz
8d104f7fea i2ptunnel: New form for blinding info (WIP) 2019-09-12 17:42:44 +00:00
zzz
e66d64d89b comment out debug log 2019-09-12 16:13:59 +00:00
zzz
9d28b17a04 I2CP: Don't return dest for a b33 lookup if we don't have the
required auth or secret
2019-09-12 16:09:44 +00:00
zzz
43f055ec28 I2CP BlindingInfo fixes 2019-09-12 13:56:00 +00:00
zzz
b4a5cc07c2 i2ptunnel: New b32 error page
Do basic b32 checks before looking up with session
Util: Fix AIOOBE on bad input to base 32 decode
log tweaks
b33 decode error message tweaks
2019-09-10 14:21:28 +00:00
zzz
479461ab3b I2CP: New Blinding Info message (proposal 123)
client- and router-side support
new session lookupDest2() method
return new b33 failure codes from lookup
show b33 alternates in tools
stub out support in HTTP client
2019-09-10 12:37:11 +00:00
zzz
c99a42f0b1 I2CP: Write single byte directly 2019-09-09 15:35:58 +00:00
zzz
65698aa0da remove unnecessary buffers 2019-09-08 19:59:55 +00:00
zzz
7f75d0254c Transport: Don't automatically transition from firewalled to non-firewalled
when IPv6 address changes
2019-09-08 17:09:09 +00:00
zzz
331ecf0625 Transport: Prefer temporary IPv6 addresses when in laptop mode 2019-09-08 12:09:35 +00:00
zzz
32d420e76f GeoIP: Also use saved IPv6 address for local router lookup 2019-09-08 12:08:09 +00:00
zzz
ee5a22be24 Console: Case-insensitive sort for plugins 2019-09-08 12:05:00 +00:00
zzz
b51962aeac Jetty: Support annotation scanning of plugins for Servlet 3.0 @WebServlet
Requires 4 jars not yet bundled:
 asm.jar
 javax-annotations-api.jar
 jetty-annotations.jar
 jetty-plus.jar
2019-09-07 16:59:24 +00:00
zzz
e73640bb8d Debian: revert allowing JRE 8 2019-09-07 13:40:01 +00:00
zzz
92515179e9 javadocs 2019-09-07 13:37:31 +00:00
zzz
c5f126c196 log tweaks 2019-09-07 13:34:56 +00:00
zzz
bb88555a63 Transport: Detect IPv6 address changes
Use same IPv6 address as previous if still valid
Log tweaks
2019-09-07 13:29:37 +00:00
zzz
e03a94647c Console: Fix first row of version info not selectable (ticket #2615) 2019-09-07 11:10:05 +00:00
zzz
8eda9abab7 Util: Fix time zone for formatted time/date 2019-09-07 11:00:29 +00:00
zzz
aed6d433c8 Transports: Remove IPv6 addresses on transition to IPv6 firewalled
log tweaks
2019-09-06 15:51:32 +00:00
zzz
71376d53c5 fix spacing on help page 2019-09-04 16:42:04 +00:00
zzz
9a84f77fab Add Romanian eepsite help page 2019-09-04 16:33:26 +00:00
zzz
2590fd8253 Debian: Allow recent JREs
require Jetty 9.4 or higher
2019-09-04 16:06:49 +00:00
zzz
ea3bddbcd6 i2psnark: un-rotate magnet icon 2019-09-04 15:53:48 +00:00
zzz
d04f0dae37 SusiMail: Show "to" rather than "from" in sent and drafts folder (ticket #2571)
Fix sort links going to wrong folder
2019-09-04 14:24:30 +00:00
zzz
3504bddea4 SSU: Don't mark peer unreachable if it reports we have a bad port,
as it could be due to the NAT external port range (ticket #2467)
Add log message
2019-09-04 13:49:29 +00:00
zzz
b3a5f1f8c1 SSU: Fix IPv6 peer test not firing
more debug logging
2019-09-03 16:46:31 +00:00
zzz
0f2f7e2454 Utils: Fix SAN verification for IPv6 hostnames
Add Quad9 DoH servers
Change Google DoH server hostname
2019-09-03 15:34:21 +00:00
zzz
b119d0be43 Tunnels: Use context AES for hop processing
and related cleanups
2019-09-03 12:42:10 +00:00
zzz
566221b732 Tests: Fix InboundTest so it can be run without a real router 2019-09-02 18:07:23 +00:00
zzz
81ab35abe6 Tests: Fix broken OutboundTest
never worked - didn't check result, processed own config
2019-09-02 14:01:02 +00:00
zzz
b2e37243ab i2psnark: CSS fixes -
increase progress bar size
don't justify comments
2019-09-02 13:59:16 +00:00
zzz
a6e3621c06 Util: Consolidate and standardize date/time formatting (ticket #2016) 2019-08-30 18:38:12 +00:00
zzz
96d8385f49 bump 2019-08-29 12:43:07 +00:00
zzz
912d25b775 Data: Mark Destination method that doesn't support sigtypes as deprecated 2019-08-29 12:24:45 +00:00
zzz
55cdd81017 Transport: UPnP HTML output fix 2019-08-29 12:19:11 +00:00
zzz
a1c18fd0aa Transport: Tweak log levels 2019-08-29 12:18:33 +00:00
zzz
5f3da69acc Router: Job Queue cleanups and javadocs (ticket #2590) 2019-08-29 12:15:13 +00:00
zzz
e6dcfaee15 Transport: Move I2PHMac to ssu package
Remove Mac interface
2019-08-29 12:07:30 +00:00
zzz
f724b2208b i2psnark: Drop debug icon 2019-08-29 11:59:40 +00:00
zzz
89b70895d7 Debian files for 0.9.42
checklist updates
2019-08-29 11:56:55 +00:00
cff2ae3ac9 Hotfix change to make 0.9.42 build on Mac OSX without disabling javadoc. (Since maven builds are built on OSX it's something that really should work fine) 2019-08-28 08:38:06 +00:00
zzz
ec0f8566b6 0.9.42 2019-08-27 12:28:25 +00:00
zzz
2ebe59436a bump for review 2019-08-23 18:19:01 +00:00
zzz
dcf6983607 translated man page updates 2019-08-23 18:17:22 +00:00
zzz
1779202ff9 translation updates from Transifex 2019-08-23 18:15:48 +00:00
zzz
6483abe7cf Transport: Add Turkey to hidden mode list 2019-08-23 18:01:09 +00:00
zzz
6618561237 Console: CSS updates from sadie 2019-08-22 16:06:19 +00:00
zzz
d8c9b0942f Transport: add Kazakhstan to hidden mode list 2019-08-20 15:39:03 +00:00
zzz
9938e50528 Tunnels: Remove timing calls unless for debug logging
Log client in b32
2019-08-19 17:14:43 +00:00
zzz
232b7f30d5 Build: Fix javadoc errors with Oracle JDK
Tested with 12.0.2
2019-08-19 16:33:19 +00:00
zzz
adba7e4c25 update earliest time 2019-08-19 14:49:57 +00:00
zzz
764f89f5c5 MaxMind GeoIP 13-Aug-2019 2019-08-19 14:47:29 +00:00
zzz
87180e0e2d SSU: Increase initial concurrent messages limit (ticket #2576)
Add comments for ticket #2427
2019-08-19 14:18:16 +00:00
6789a735e3 fix typo 2019-08-18 19:12:06 +00:00
65eb9b17db fix checks for config parameters in TunnelControllerGroup constructor 2019-08-18 19:08:27 +00:00
zzz
64ba43c007 Jetty: Log stack trace if 2nd arg is a Throwable (ticket #2592) 2019-08-18 14:53:32 +00:00
zzz
b2dec2f4b2 Tunnels: Clean up debug timing calls in preprocessor 2019-08-17 17:55:45 +00:00
zzz
789f482373 Transports: Disable eph. key reuse 2019-08-17 17:39:25 +00:00
zzz
a667c36d2d Tunnels: Reduce IBGW batching time (ticket #2586) 2019-08-15 19:27:05 +00:00
zzz
65e2132a25 SSU: Reduce ACK time to 150 (ticket #2574) 2019-08-15 17:45:06 +00:00
zzz
5e76118ffd po update source 2019-08-14 20:13:35 +00:00
zzz
131a70057e Console: Clean up help text, tag for translation (ticket #2298) 2019-08-14 19:52:54 +00:00
21ace66a46 Tests: Fix streaming integration tests after access filtering changes 2019-08-10 18:02:23 +00:00
459eb7fdcd Tests: Unify core test resources across JUnit and ScalaTest
Fixes a test failure running the ScalaTests under Ant
2019-08-10 17:19:21 +00:00
8586c28b5f Travis CI: Use Trusty build environment
Travis CI recently bumped the default build environment from Trusty to
Xenial. The latter does not enable installing Java 7 or 8, which we
still test against.
2019-08-10 16:52:40 +00:00
f32c863ba8 Tests: Temporarily mitigate discrepancy between Ant and Gradle in SingleFileNamingServiceTest 2019-08-10 16:48:21 +00:00
ee84e7e3e1 Tests: Fix compilation bug after SSU HMAC implementation move 2019-08-10 16:46:41 +00:00
cf4298f759 Jetty: Fix Gradle build 2019-08-10 16:10:07 +00:00
13190931b9 EdDSA: Reduce diff between vendored code and upstream
Includes missing license information.
2019-08-10 15:39:41 +00:00
zzz
08be6a4f4a i2ptunnel: Add failsafe timeouts for local sockets (ticket #2568) 2019-08-05 15:55:43 +00:00
zzz
7f015c4794 i2ptunnel: Add configs to override user agent
Not particularly helpful yet, because we don't have a way to
quote or escape spaces in the custom options field.
2019-08-05 15:34:46 +00:00
zzz
7b46d43492 update tooltip 2019-08-05 15:29:36 +00:00
zzz
a4bcff093f Transports: Implement cross-network detection (proposal 147)
Reseed: Send network ID in query string (proposal 147)
2019-08-05 14:27:17 +00:00
zzz
fb7b3c2793 Streaming: Reduce immediate ack delay (ticket #2584) 2019-08-04 21:08:29 +00:00
zzz
397bf43147 i2psnark: Fix autostart to start only torrents running previously,
save torrent running status on torrent stop when autostart is enabled,
remove dup call to startTorrent()
(ticket #2120)
2019-08-04 20:29:46 +00:00
zzz
49af26d958 i2psnark: Add checks for dup data dirs (ticket #2291)
Add two HashMaps for faster dup checks
2019-08-04 18:54:01 +00:00
zzz
0ce4811dec SSU: Fix stall when higher-priority message is added to queue (ticket #2582) 2019-08-04 16:28:41 +00:00
zzz
d3e3ec4d35 Transport: Allow local addresses when configured 2019-08-03 15:29:30 +00:00
zzz
8ed0dd2a5c Router: Fix Bloom filter false positives
caused by lack of sync around buffers.
Use temp buffers instead.
Most likely to affect high-bandwidth or testnet routers;
appears to be rare on lower-bandwidth routers.
2019-08-02 15:48:05 +00:00
zzz
8158753dac i2psnark:
- Fix announce hosts of the form b64dest[.i2p]
- Add last activity stat
- Disallow illegal filenames on Windows
- cleanups and log tweaks
2019-08-01 20:20:44 +00:00
zzz
e3481f6730 JBigI: GMP 6.1.2 for linux 64 bit (ticket #1869)
Adds Broadwell and Skylake binaries
Updates all other linux 64 bit binaries
32 bit libraries will not be updated
Other OS 64 bit binaries may or may not follow at a later date
2019-07-27 15:52:38 +00:00
zzz
165beb3fbd TCG: split config log tweaks and cleanups
Fix warning about no tunnels loaded
Add notes in config default files
2019-07-27 11:32:38 +00:00
zzz
5d367940d5 History for prop, -4 2019-07-26 13:00:51 +00:00
zzz
617294b7fa propagate from branch 'i2p.i2p.zzz.confsplit' (head 324249e53469a81e66f9d1c1989d9f53817868f4)
to branch 'i2p.i2p' (head cf6476e03a43a35fea6697b29f9ff43f77875100)
2019-07-26 12:53:03 +00:00
zzz
240d59393f Debian: Change debian files from stretch (Jetty 9.2, Tomcat 8, Java 8) to buster (Jetty 9.4, Tomcat 9, Java 11)
Add debian-alt/stretch files
Update debian-alt/precise, trusty, xenial, bionic, disco to include
 the changes from buster, not stretch
Remove debian-alt/buster, unstable files
Doc updates
2019-07-26 12:48:17 +00:00
zzz
6b94dc2dbd configclients: Only save files that have changed when in split config 2019-07-24 13:37:20 +00:00
zzz
3a0873c991 streaming debug log tweak and notes on ID mismatch 2019-07-23 21:08:30 +00:00
zzz
72ef065ab7 log tweak 2019-07-23 15:57:30 +00:00
zzz
66ecdb2f7a Data: Initial support for enc types in PrivateKeyFile and I2PSessionImpl
CreateRouterInfoJob updates and cleanups; KeyCert updates
2019-07-23 15:56:03 +00:00
zzz
e2980603b7 Router: Checks for new enc types
- Prevent encrypted lookups or stores
- Prevent participting in our tunnels
- Handle padding
- Checks in crypto classes
2019-07-23 13:29:37 +00:00
zzz
885e0468b2 NetDB: Mark ls2 received via garlic as blinded if bit 2 set in flags 2019-07-22 15:35:07 +00:00
zzz
3bfbb6aef6 i2ptunnel:
Store configFile path in controller so it doesn't change
Simplify assureConfigFile()
Sanitize tunnel name when creating config file name
Sort config when saving
Don't copy config when saving
Make shouldMigrate() private
Javadocs
2019-07-20 18:05:17 +00:00
zzz
365820172a Console: Split up /help page, prep for translation (ticket #2298) (WIP)
Summary bar -> sidebar
Remove static translated help pages
Add jsp for LICENSE.txt
2019-07-19 20:30:22 +00:00
zzz
d73058fd65 Console: Remove links on /configclients 2019-07-19 16:33:22 +00:00
zzz
7374484ccb Data: Set flag bit when blinded 2019-07-18 18:42:42 +00:00
7d4229acab use for(Properties props: tunnels) to migrate tunnels 2019-07-18 17:04:36 +00:00
41128f1457 remove redundant functions 2019-07-17 14:34:41 +00:00
61f45b3a3a Remove un-needed imports 2019-07-17 02:25:07 +00:00
aaacb2e558 Fix the configFile property so that removeControllers can work, fix cross-platform/un-migrated platform bugs, override equals so the list of controllers can remove a controller by passing the object 2019-07-17 02:22:07 +00:00
9c2dc47a8a use .equals instead of == 2019-07-15 19:31:04 +00:00
2db0a65425 Save tunnel configs on tunnel creation, only save one config at a time. 2019-07-15 19:05:03 +00:00
zzz
fd781f4894 TCG:
private/public method tweaks and revert API breakage
remove loadSplitConfig()
don't create empty file in assureConfigFile()
throw exception on empty config
locking fixes
formatting cleanups
@since fixes
log tweaks
2019-07-15 16:22:51 +00:00
4a099854f7 Make sure listFiles returns i2ptunnel.config on un-migrated platforms, don't loop over loadControllers in startup() 2019-07-13 08:34:54 +00:00
ff379c36cb NPE fix 2019-07-13 08:10:24 +00:00
d5970f17de more consistency fixes 2019-07-13 07:18:25 +00:00
595e43b8a4 fix the bug where it tries to migrate an already migrated config file, pass around files instead of strings, use the FileSuffixFilter, eliminate irrelevant code 2019-07-13 06:10:30 +00:00
zzz
6adc665fd3 Build: Move SSU HMAC implementation from core to router 2019-07-12 18:40:46 +00:00
zzz
1be569db7a Test: Fix broken junit test build 2019-07-12 17:33:03 +00:00
zzz
63e75ed307 increase max plugin size to 128 MB 2019-07-11 19:17:14 +00:00
zzz
6b990689cc imagegen:
Generate RGB QR code images
re-enable font anti-aliasing
scale font based on text and image size
2019-07-11 14:04:12 +00:00
zzz
3e48bf80f1 Add muwire.i2p to home page
as approved at July 2 meeting
icon: public domain
2019-07-10 12:13:30 +00:00
zzz
5341166e95 NetDb: Pick alternate reply GW for netdb store reply
if connected, to reduce connections
2019-07-09 18:36:02 +00:00
zzz
685088ccca NetDb: Fix NPE on store of Encrypted LS (ticket #2563) 2019-07-09 18:31:37 +00:00
zzz
7a64505139 Console: Hide netdb RI and LS tabs (ticket #2558) 2019-07-04 12:34:14 +00:00
zzz
df223af23d debian files for 0.9.41 2019-07-03 21:25:55 +00:00
zzz
8d74a196cf debian release build fix 2 2019-07-03 17:07:24 +00:00
zzz
26d74620a9 debian release build fix 2019-07-03 17:04:00 +00:00
zzz
e458361193 Fix bad reversion
0.9.41
2019-07-03 12:22:40 +00:00
zzz
fea35512a7 bump for review 2019-06-28 16:57:09 +00:00
zzz
d5dda73742 Add Romanian readme.html 2019-06-28 15:19:49 +00:00
zzz
86fd8ce391 Add Farsi translations for i2psnark and i2ptunnel
Add eepsite help translations for Polish and Portuguese
Fix Dutch eepsite help that had wrong language in it,
instalsler/r checkin last weekocroot/help/index_nl.html
2019-06-28 13:44:09 +00:00
zzz
e24333206e pull translations 2019-06-28 13:23:51 +00:00
zzz
0231d5eec2 merge of '35e9236c690ee69648566ad3a2b43ec6560570a7'
and 'f1938ed516f15ce07b8f4f4fc6338eac16a45b89'
2019-06-27 17:15:26 +00:00
zzz
258aea136e remove outproxy 2019-06-27 17:14:35 +00:00
44e1b6058f Add ability to set custom LogManager 2019-06-27 15:16:47 +00:00
zzz
051e18f9c7 Console: New network status icons from Sadie
Source: https://github.com/feathericons/feather
Feather is licensed under the MIT License.
https://raw.githubusercontent.com/feathericons/feather/master/LICENSE
2019-06-27 14:57:41 +00:00
zzz
a66fb815a6 Console: New dark theme logo
Created under contract to I2P by
Ura Design https://ura.design/projects/i2p
Copyright (c) 2019 The Invisible Internet Project. All rights reserved.
Creative Commons Attribution-ShareAlike 4.0 International License
https://creativecommons.org/licenses/by-sa/4.0/
2019-06-27 14:51:37 +00:00
zzz
3e8386382b Transport: Fix issues with leaving hidden mode (ticket #2557)
Lookup our IP even if not in our RI
Lookup IPv6 addresses detected in UDP
Javadocs
2019-06-26 16:12:19 +00:00
zzz
87109c8fef imagegen: Catch render error (ticket #2507) 2019-06-25 17:58:52 +00:00
zzz
7ecee9dfdb Streaming: Increase size of recently-closed cache 2019-06-25 14:23:32 +00:00
zzz
9dc24d5f27 Router: Disable MessageHistory job on Android 2019-06-25 14:19:31 +00:00
zzz
e6b5fc8fd4 I2CP: One more HostReply return code 2019-06-25 14:15:10 +00:00
zzz
b52e8d6b5c I2CP: Prevent sending message to a local meta destination 2019-06-25 13:34:59 +00:00
zzz
ce6551dacd log tweak 2019-06-25 13:30:35 +00:00
zzz
f7d785b6d2 log fix 2019-06-25 13:29:52 +00:00
zzz
27e060eee5 comment fixes 2019-06-25 13:28:30 +00:00
zzz
cf1c1bb3f7 encrypted ls2 test tweaks 2019-06-25 13:26:30 +00:00
zzz
85a2c9026a KeyGen test tweaks 2019-06-25 13:24:38 +00:00
zzz
d084f93506 test code 2019-06-25 13:21:22 +00:00
zzz
8433f658f8 Streaming: Check that destinations match 2019-06-25 13:18:26 +00:00
zzz
2cdb86fa1e Use checked sort 2019-06-25 13:10:53 +00:00
zzz
d8e06a0d14 Deprecate unused StatLog 2019-06-24 14:33:56 +00:00
zzz
c1418a1c2e StatManager cleanup and synch
BuildTime update
Make clock.skew stat non-required
2019-06-24 14:23:33 +00:00
zzz
b99f239f3d I2CP: Ensure that callbacks are called on abnormal close
throw IAE on invalid listener protocol/port
log tweaks
2019-06-22 16:58:44 +00:00
zzz
1a030c3f92 Console: New unthemed and light theme logo
Created under contract to I2P by
Ura Design https://ura.design/projects/i2p
Copyright (c) 2019 The Invisible Internet Project. All rights reserved.
Creative Commons Attribution-ShareAlike 4.0 International License
https://creativecommons.org/licenses/by-sa/4.0/
2019-06-22 12:40:36 +00:00
zzz
41e9bfc6b7 Console: Remove home page entries 2019-06-22 12:29:35 +00:00
zzz
f40655fc2f Console: New icons from Sadie
Source: https://github.com/feathericons/feather
Feather is licensed under the MIT License.
https://raw.githubusercontent.com/feathericons/feather/master/LICENSE
2019-06-21 19:51:35 +00:00
zzz
845e5ed37c missed one 2019-06-21 16:58:13 +00:00
zzz
019c3171c4 Update hidden mode list using the Freedom in the World Index 2019
https://freedomhouse.org/report/countries-world-freedom-2019
2019-06-21 16:41:54 +00:00
zzz
93a3f09971 poupdate-source 2019-06-19 18:47:33 +00:00
zzz
51457bd873 Remove atomike reseed and cert
Add backup plugin cert
Add log for one case where no valid RIs found in reseed
2019-06-18 17:35:14 +00:00
zzz
ebe95fc575 i2ptunnel: Improve logging when no outproxy configured (ticket #2338) 2019-06-18 13:24:48 +00:00
zzz
6d8431a77e I2CP: Use EnumSets for state checking 2019-06-17 15:46:28 +00:00
zzz
a8f2745169 Router: Don't check for ping file at startup on Android 2019-06-17 14:56:03 +00:00
zzz
61cdc7c7d2 Console: Hide news section in summary bar if news fetching
is disabled, or if empty (ticket #2301)
2019-06-17 13:11:23 +00:00
zzz
3aeadaa719 i2psnark: Fix QupZilla detection (ticket #2026) 2019-06-16 16:14:35 +00:00
zzz
a542b182ea i2psnark: Increase DHT blacklist time (ticket #2275)
Update time if already blacklisted
Prune blacklist if too big
2019-06-16 14:59:55 +00:00
zzz
1ddc651b11 Console: Fix stopping webapps at shutdown (ticket #2508)
RouterAppManager log tweaks
2019-06-15 16:02:22 +00:00
zzz
b0bca2f16c Util: Avoid dup context warning when SU3File called twice from gradle 2019-06-12 18:14:18 +00:00
zzz
d9775a5f10 INMP refactor 2019-06-09 16:42:43 +00:00
zzz
ea2ef7b127 Add Farsi susimail translation 2019-06-09 15:51:52 +00:00
zzz
6d9aa92ed0 Tests: Fix some bashisms, add more files to bashisms check 2019-06-09 15:50:50 +00:00
zzz
0c54b6d9da Eepsite Help page:
Add links to Arabic, Hungarian, Indonesian
Fix link to Italian
2019-06-09 15:04:20 +00:00
zzz
5ede0a139c UPnP: Set lease duration of 3 hours, always refresh the lease 2019-06-09 11:48:03 +00:00
2918d6006f fix un-migrated and monolithic config saving 2019-06-09 02:20:23 +00:00
zzz
2c97dc2bcd Job: Deprecate getAddedBy(), suppress warnings 2019-06-08 16:12:51 +00:00
zzz
7e6a92ab7b NetDB: Faster startup for non-Android too 2019-06-08 13:14:14 +00:00
zzz
46ad48d5d1 log cleanup 2019-06-08 13:09:24 +00:00
zzz
2c24a68135 NetDB: Fix Deliv. Status msg sent direct to tunnel,
must be wrapped in a Tunnel GW msg.
2019-06-08 12:58:05 +00:00
357feca7b1 fix bug when configs are un-migrated 2019-06-08 07:26:24 +00:00
920a83ddab tiny formatting fix 2019-06-08 04:11:18 +00:00
42e3406529 re-name inConfig to reflect new purpose 2019-06-08 04:04:53 +00:00
7336f64c26 fix saving config files from ui 2019-06-08 04:03:31 +00:00
c1731f68fa when deleting configs, move them to a backup location 2019-06-08 00:51:59 +00:00
zzz
5ed953e11e NetDB: Fix NPE on failed decrypt of enc. ls2 2019-06-07 19:50:56 +00:00
e4892c6d5c fix removeConfig so it backs up and removes the files 2019-06-07 18:12:44 +00:00
zzz
1a200a16cc Make TunnelPool final in PooledTunnelCreatorConfig
Don't pass around both pool and cfg in args
Remove unused methods
Cleanup multiple now() and getSettings() calls
2019-06-07 15:19:06 +00:00
zzz
e50bf00fa8 Log tweaks, bump -10 2019-06-06 15:00:35 +00:00
zzz
e75881d6cc Build: Forgot libjcpuid 2019-06-06 13:53:00 +00:00
zzz
75ace4266e Build: New target jbigi-linux-x86-64-only 2019-06-06 13:47:42 +00:00
zzz
e82a547bce CPUID/NBI: Prep for GMP 6.1.2
Add Skylake support (ticket #1869)
Recognize more Intel "Lake" processors
Clean up CLI output
2019-06-06 13:28:44 +00:00
zzz
6d72aeed8c cleanup and logging 2019-06-05 18:00:39 +00:00
zzz
c01bf47c8a NetDb: Fix to set netDb ready immediately after reseed 2019-06-05 17:37:23 +00:00
zzz
4bd0f06cd6 jbigi: Support android builds using NDK
Prep for GMP 6.1.2
2019-06-05 17:13:15 +00:00
zzz
aab6529f62 Data: Fix for change of default auth type,
handle old value from persistent cache
2019-06-05 17:09:49 +00:00
zzz
11c8e8e794 dont migrate clients.config if android 2019-06-05 12:15:46 +00:00
zzz
0d1dbc7992 dont migrate clients.config if portable 2019-06-05 12:08:01 +00:00
zzz
7cd60bb0e7 Util: Add EKU to selfsigned certs 2019-06-05 11:47:59 +00:00
zzz
697b617c7a finals 2019-06-03 13:06:44 +00:00
zzz
fe6c7cd41f Transport: Fix large messages in SSU (ticket #2505) 2019-06-03 12:12:43 +00:00
zzz
eea0990b54 Use hasWrapper() util method 2019-06-03 11:39:56 +00:00
zzz
aa0bafb8a8 Update PAC file for additional security 2019-06-02 12:39:18 +00:00
zzz
c4ebc7357d TCG: Add new getInstance() method for Android
so instance with stale context is not returned.
Return null in Android for old method.
2019-06-02 11:08:38 +00:00
zzz
471c5d49d1 I2CP: Cleanups for single-byte reads
Stub out new error codes for prop. 123
2019-06-02 10:59:39 +00:00
zzz
eff2bdbf87 Build: Fix Debian (ticket #2517) 2019-06-02 10:17:59 +00:00
zzz
b5de81582f more renaming protection 2019-06-01 20:06:22 +00:00
zzz
500246ebed NetDB: Don't wait for all RIs to be read in on Android
to tell the router we've loaded them, lets i2ptunnel start faster.
2019-06-01 19:46:09 +00:00
38f135ceb9 That took me entirely too long to figure out 2019-06-01 18:42:22 +00:00
0a1a2ed82a unwrap some loops, get rid of configFiles(), fix loadConfig 2019-06-01 16:20:53 +00:00
zzz
0a774c6c58 remove cryptic logging 2019-06-01 14:12:48 +00:00
zzz
f44a8e49c5 Tunnels: Ensure GW Pumper threads stop on Android 2019-06-01 14:05:40 +00:00
zzz
1109331dfc Transport: UPnP fixes for Android 2019-05-31 21:43:41 +00:00
zzz
8a4c4694ec Blinding: cache b32, sort by b32 on /configkeyring 2019-05-31 15:26:20 +00:00
zzz
b4f331e621 Router: Fix persistence of blinded privkey and timestamp 2019-05-31 13:17:30 +00:00
zzz
67224858b7 whitespace 2019-05-30 15:36:11 +00:00
zzz
447e29e381 Console: More reword of tooltips 2019-05-30 15:28:36 +00:00
zzz
aae81a7b5f Console, i2ptunnel: Reword blinding options and tooltips
i2ptunnel: Unhide blinding options
2019-05-30 15:16:47 +00:00
zzz
f049319500 Console: Support deleting blinded entries on /configkeyring 2019-05-30 14:26:11 +00:00
zzz
6b3896c1f8 increase default max conns per minute 2019-05-30 12:16:12 +00:00
zzz
652c3d5dc2 Build: More mavenLocal cleanup 2019-05-30 12:02:10 +00:00
zzz
4d29bfefde i2ptunnel: Fix double-b64 of default client name
Add new default client if all are revoked
2019-05-30 11:39:42 +00:00
zzz
16ac93c36b maven script cleanups 2019-05-30 10:58:09 +00:00
zzz
040e092153 Blinding:
- Fix bugs with lookup password
- Log tweaks
2019-05-29 19:08:33 +00:00
098bde2a32 New ant target 'mavenLocal' + changes in the script to support this. 2019-05-29 18:22:33 +00:00
f94d2d5578 Script to install development builds to local maven. 2019-05-29 18:07:28 +00:00
zzz
30a34acd41 log fix 2019-05-29 15:56:39 +00:00
zzz
dca04f7f60 store save time in config files 2019-05-29 15:52:24 +00:00
zzz
307a8239fb log tweaks 2019-05-29 15:51:04 +00:00
zzz
e189236e3e flip LS tab order 2019-05-29 12:42:36 +00:00
zzz
a3fe7467c3 store ls secret as b64 2019-05-29 11:53:55 +00:00
zzz
973aab8f53 Blinding:
- Blinding only throws IAE
- Remove context arg from encode()
- Hook in new form args on /configkeyring
- Show b33 on /configkeyring
- Remove support for appended secret in b33
- Persist cache immediately when storing secret or privkey
- Fix i2ptunnel for std. ls2
- Add auth/secret required flags to BlindData
more to do
2019-05-28 15:12:20 +00:00
zzz
0c7c19451c missed file from previous checkin 2019-05-27 17:57:47 +00:00
zzz
73b00eb206 Console: Start rework of /configkeyring for LS2
Not hooked up yet - WIP
2019-05-27 15:44:51 +00:00
zzz
90e6458428 I2CP: Add per-client auth to generated leaseset
Set key on router side before verifying
2019-05-26 12:09:28 +00:00
4fdcd25671 add some logging while I fix stuff 2019-05-25 17:35:57 +00:00
zzz
c2e2cc2e57 i2ptunnel: Revert user-select, already in css, doesn't work on input 2019-05-24 19:36:11 +00:00
zzz
2abd59e6d4 i2ptunnel: Per-client auth config
Hide encryption key for per-client auth
User-select: all for dest and reg fields
2019-05-24 17:42:11 +00:00
65481ad61e improve config saving code, never use deprecated config function 2019-05-23 16:59:27 +00:00
zzz
47c64c2eef i2ptunnel: Rework server encryption key UI in prep for blinded keys
Remove generate button, automatically generate when required
Refactor auto configuration
2019-05-23 13:22:29 +00:00
zzz
7bdfd071ae i2ptunnel: select box for sig type 2019-05-23 11:12:19 +00:00
zzz
7858dbe757 i2ptunnel: Add LS2 option, change to select box 2019-05-23 10:41:34 +00:00
8466cdc675 saveConfig for multi-configuration 2019-05-23 00:29:06 +00:00
zzz
ea5ddfcf36 i2ptunnel: Shared key is PSK 2019-05-22 18:27:34 +00:00
zzz
332898351c i2ptunnel: Per-client auth options (WIP) 2019-05-22 18:12:49 +00:00
zzz
2ec34f4827 I2CP: Set local privkey for encls2 2019-05-22 17:01:26 +00:00
zzz
7489a64e6c NetDB: Set secret and privkey before decrypting encls2 2019-05-22 16:30:32 +00:00
zzz
06fa817bde Data: Per-client auth for enc. LS2 (proposal 123) 2019-05-22 16:11:36 +00:00
zzz
cb762356da Data: Cache data for per-client auth 2019-05-22 16:01:10 +00:00
zzz
62649a6343 Crypto: Add X25519 DH method, prep for enc. ls2 auth. 2019-05-22 11:04:17 +00:00
zzz
a6434fb71e NTCP2: Use KeyGenerator for X25519 keys 2019-05-22 11:02:12 +00:00
zzz
a8f11d1834 Profiles: Omit comments from stored profiles 2019-05-21 17:24:18 +00:00
zzz
67e7e45779 Sybil: Skip comment lines in stored files
Escape % in stored reasons
Improve error handling when loading files
2019-05-20 18:27:29 +00:00
zzz
cafdca9a7b proxynet.i2p 2LD host 2019-05-20 13:53:29 +00:00
zzz
7efb290f13 addressbook: remove log info message 2019-05-20 13:51:43 +00:00
zzz
b3cb09481c Console: Hide some columns on SSU tab unless advanced 2019-05-20 12:50:27 +00:00
zzz
f543a45a72 Tunnels: Increase tunnel reuse probability 2019-05-20 11:17:18 +00:00
zzz
099cacd3e3 Installer: Fix -console install for izpack 5 (ticket #2492)
Switch to izpack 5 for non-windows release installer
2019-05-20 11:07:46 +00:00
zzz
b89720e710 Sybil: Delete old stored analysis if configured
Fix display of config tab
2019-05-19 18:38:21 +00:00
zzz
1ffc006b2e Build: Remove dependencies on Nashorn (ticket #2367) 2019-05-19 14:31:11 +00:00
zzz
f2f5df0db4 Sybil: Run IP and family tests on all routers
Hide some n/a fields, rework some text
Rename some config properties
2019-05-19 11:42:26 +00:00
zzz
10354df425 Sybil: Option to run on non-floodfills too 2019-05-18 21:45:55 +00:00
zzz
03bd3e2db3 checklist/doc updates 2019-05-18 14:43:13 +00:00
zzz
11b391bc35 Javadoc fixes from FreeBSD ports
https://svnweb.freebsd.org/ports?view=revision&revision=501144
2019-05-18 14:14:08 +00:00
zzz
a6e6d29d33 Sybil:
Show routers in analysis even if no RI available
Date format fixes
Put date in ban reason
Show ban reason
Add link to banlist
2019-05-18 13:10:45 +00:00
zzz
6600f373da Streaming: Fix NPE in debug logging (ticket #2504) 2019-05-15 10:58:15 +00:00
zzz
efa72dbb56 EepGet: Don't continue when requested a partial but didn't
get it, and the output is to a stream
Javadocs and log tweaks
2019-05-15 10:32:54 +00:00
zzz
4e267f690d Util: Don't set restrictive permissions on exported certs 2019-05-14 17:41:29 +00:00
zzz
05318013e2 Console: Prevent editing a client while it's starting 2019-05-13 14:44:35 +00:00
zzz
8840532ed0 Sybil: Auto-blocking 2019-05-13 13:28:04 +00:00
zzz
48a92ca1e7 Sybil: Auto-block UI 2019-05-13 12:15:19 +00:00
zzz
ff71540428 Snark: remove italics on speeds 2019-05-13 11:01:31 +00:00
zzz
f04b41c99a Console: Hide transport table unless advanced 2019-05-13 10:49:49 +00:00
zzz
847ebda3e2 Tunnels: Fix connection checker for NTCP2 2019-05-13 10:05:43 +00:00
zzz
e174a46801 javadoc fixes 2019-05-12 20:45:17 +00:00
zzz
04a985cd8c Consolidate Java version checking code, fix bugs
where versions are in different forms
Add warning about Java 7
2019-05-12 20:20:13 +00:00
zzz
adb1c6f58e Jetty: Fix webapps in eepsite (ticket #2477) 2019-05-12 18:14:55 +00:00
zzz
9eec35713c Utils: Allow absolute path to certs in I2PSSLSocketFactory 2019-05-11 13:37:18 +00:00
f6efdceaca Update test/check to support FreeBSD/MacOSX iconv which don't support the -o argument. Solution, use pipe instead. 2019-05-10 22:22:57 +00:00
zzz
c1adcfcc19 NetDB: Use expl. tunnels to verify Meta LS2 (proposal #123) 2019-05-10 17:33:39 +00:00
zzz
0a7330393d NetDB: Store Meta LS2 to floodfills (proposal #123) 2019-05-10 17:02:30 +00:00
zzz
63b2f29633 Begin i2p.i2p.zzz.confsplit branch
Code from Jan. 2018, never checked in, probably untested,
definitely incomplete.
2019-05-10 14:58:41 +00:00
zzz
d8980d10a4 Transport: Revert GeoIP changes that broke BundleRouterInfos 2019-05-10 11:46:25 +00:00
zzz
c7d052646e Transport: Start first GeoIP lookup when netdb is ready 2019-05-09 20:11:03 +00:00
zzz
de8a079cb4 Console: Remove plugin install success message (ticket #2494) 2019-05-09 17:30:46 +00:00
zzz
fc8b55df27 Wrapper: Update to wrapper 3.5.39
All binaries from Tanuki Delta Pack Community Edition,
except for armhf (armv6), compiled on Raspberry Pi:
  ant 1.8.2
  javac 1.7.0_151
  gcc 4.6.3-14+rpi1

Added linux-armv7 and linux64-armv8

Windows binaries remain unchanged as we must recompile them ourselves
(32 bit just to change the icon; 64 bit is not provided by Tanuki)
2019-05-09 14:19:50 +00:00
zzz
be6b200945 remove Java 9 warning 2019-05-09 12:01:50 +00:00
zzz
cbeaca66a2 rename method 2019-05-09 11:31:06 +00:00
zzz
585778cddc Console: Delay plugin update check until router is ready 2019-05-09 10:10:24 +00:00
zzz
cb0235bb5d Utils: su3file fix for extract -x w/o filename 2019-05-09 09:14:04 +00:00
zzz
558592a87f Utils: Auto-generate su3 output file for extract if not specified 2019-05-08 13:50:26 +00:00
zzz
41e8b6dfbb 0.9.40 debian files 2019-05-08 12:10:00 +00:00
5aae625788 Mac OSX Launcher: Version bump etc. 0.9.40, launcher version 0.1.5 2019-05-07 22:47:01 +00:00
zzz
16d2bdc1db 0.9.40 2019-05-07 11:54:18 +00:00
zzz
edb352b9d0 replace news cert 2019-05-07 11:44:11 +00:00
zzz
ffbf3d2023 javadocs after review 2019-05-07 11:42:31 +00:00
zzz
0147f003c4 Star icons update 2019-05-03 13:20:50 +00:00
zzz
50d93b1993 regenerate tr man pages 2019-05-03 12:57:12 +00:00
zzz
a39549a3d9 pull translations from transifex 2019-05-03 12:53:03 +00:00
9adabadeb9 Mac OSX Launcher: shell script for downloading and building Sparkle. 2019-05-02 23:12:54 +00:00
61303bfd0b Mac OSX Launcher: The podfile, which describes which 3rdparty libraries to pull at compile time. 2019-05-02 23:01:32 +00:00
e45963dbcb Mac OSX Launcher: main.mm updated to use the new swift main class name. 2019-05-02 23:00:44 +00:00
5f689ccbd4 Mac OSX Launcher: project file, workspace file and entittlements file updates. 2019-05-02 23:00:02 +00:00
17bb36deee Mac OSX Launcher: Info.plist update, adding Sparkle pubkey. 2019-05-02 22:59:01 +00:00
0b50c36c8a Mac OSX Launcher: xib UI updates. 2019-05-02 22:56:53 +00:00
feaa82181f Mac OSX Launcher: Router / Java wrapper. 2019-05-02 22:55:55 +00:00
803447b4c3 Mac OSX Launcher: Swift - ObjC/C++ bridge header update. 2019-05-02 22:55:04 +00:00
e93fb5c084 Mac OSX Launcher: Reduce amount of compiler warnings under build. 2019-05-02 22:54:02 +00:00
6a418ebcab Mac OSX Launcher: Swift 4.2 update in subprocess class. 2019-05-02 22:53:00 +00:00
67ca6e6552 Mac OSX Launcher: Identifiers file to hold Bundle ID and other static domain data. 2019-05-02 22:52:16 +00:00
540e7c37e0 Mac OSX Launcher: Cleanup and update in UI classes. Swift 4.2 2019-05-02 22:51:35 +00:00
7cb0c9bbb4 Mac OSX Launcher: Router management/healthcheck code updates. 2019-05-02 22:50:55 +00:00
66deb5dc7e Mac OSX Launcher: Cleaned, updated and renamed main swift class. 2019-05-02 22:50:12 +00:00
3e10745717 Mac OSX Launcher: Storyboard and NIB updates. Also moved to resources which they belong. 2019-05-02 22:48:16 +00:00
84419bbf0b Mac OSX Launcher: Common code for browser communication/control. 2019-05-02 22:47:01 +00:00
d81f993f81 Mac OSX Launcher: (feature disabled, WIP) new pretty userinterface. 2019-05-02 22:45:41 +00:00
8453c5cce0 merge of '4347aa09448af24e7796c3282763d4a1bfc5c07f'
and '648083ff7dde91e5aa4416e1a9f85989acca9fb6'
2019-05-02 22:43:41 +00:00
b2b047b4aa Mac OSX Launcher: Licenses for frameworks/libraries pulled from cocoapods under compile time. 2019-05-02 22:43:34 +00:00
7aa68c0a2b merge of '884fdac5153dc99fad97b61b1ef1172d8f0c09a9'
and 'c88b4076c5928a0e87d073abc0c0c94a341c921e'
2019-05-02 22:41:50 +00:00
811d1ccf9d Mac OSX Launcher: Moving utils classes to common directory between sub-projects + Swift 4.2 update. 2019-05-02 22:41:25 +00:00
2af1f68d84 Mac OSX Launcher: Misc metadata updates for the StartupItemApp sub-bundle. 2019-05-02 22:40:18 +00:00
56eb11bc17 Mac OSX Launcher: Adding Swift 4.2 support to the preferences UI classes. 2019-05-02 22:39:11 +00:00
214efb8ef9 Mac OSX Launcher: Moved Objective-C & C++ files to a better location. 2019-05-02 19:30:56 +00:00
d1631643a5 Mac OSX Launcher: Misc updates related to router management. 2019-05-02 19:26:52 +00:00
315d7728d8 Mac OSX Launcher: Sparkle License 2019-05-02 19:10:19 +00:00
647f9e728f merge of '89268c439b2c0098fe4dd039cb032f5c5717a2e5'
and 'de08714d459702cd7ba8c86570c747dca157ed26'
2019-05-02 16:16:16 +00:00
fa2897d2f8 Mac OSX Launcher: Delay extension for the DispatchQueue Cocoa/OSX class. 2019-05-02 16:16:11 +00:00
539f880f9b merge of '4ae3e891f8510b146feae122bacc862468db060e'
and '666d27bab7047baeaa2c753159098eda75635c5e'
2019-05-02 16:14:46 +00:00
9caa7a61b0 Mac OSX Launcher: EditorTableView for the 2019 redesign/UI improvements. 2019-05-02 16:14:38 +00:00
zzz
52b14142bb Android: Catch ISE from PRNG at shutdown (ticket #2077) 2019-05-02 14:59:16 +00:00
zzz
7f60ee9f8b Console: NTCP2 check 2019-05-02 14:25:43 +00:00
zzz
b9726a0af8 UPnP: Remove finalize() in HTTPSocket (ticket #2490) 2019-05-02 14:08:25 +00:00
zzz
bb86c56e77 NTCP: Tweak previous fix to prevent leak (ticket #2476) 2019-05-02 12:25:18 +00:00
zzz
8cdeff74c7 GeoIP Maxmind 2019-04-29 2019-05-02 12:17:59 +00:00
zzz
acf5c314de NTCP: Rare EventPumper 100% CPU fix (ticket #2476) 2019-05-02 11:55:04 +00:00
zzz
20413f00c0 Build: Fix installers broken by removal of apparmor file 2019-04-28 14:44:28 +00:00
zzz
aa551acec4 Console: Remove metadata from new icons 2019-04-27 12:17:08 +00:00
zzz
f088ea1263 Build: Fix Precise build 2019-04-26 12:33:15 +00:00
zzz
46e31746b4 Build: Drop unmaintained sample apparmor script (ticket #2319)
We support apparmor for Debian package installs only.
2019-04-25 16:35:19 +00:00
zzz
981737f8ed i2ptunnel: Force connect delay and bulk profile for most
client tunnel types, and hide from UI
Reduce delay
Set IRC to bulk
2019-04-25 16:16:32 +00:00
5f01796bae Travis CI: Run tests against OpenJDK 12 2019-04-25 15:36:07 +00:00
zzz
b2575643a8 Transport: Disable NTCP 1 by default 2019-04-25 13:29:14 +00:00
zzz
baeaa65829 update po source for tx 2019-04-24 14:25:43 +00:00
zzz
5afa32a393 Crypto: Catch ProviderException in KeyStoreUtil (ticket #2479) 2019-04-24 12:23:35 +00:00
zzz
ca0f12782b New backup news server 2019-04-23 18:33:57 +00:00
zzz
148ed1e3a0 rh.bat fix 2019-04-23 17:25:44 +00:00
zzz
6f86522c2b Build: Add script to edit windows installer resources 2019-04-23 16:26:17 +00:00
zzz
5db67f13e1 Util: Dump system properties in SystemVersion 2019-04-23 13:24:03 +00:00
zzz
21504f1539 Build:
- Switch to IzPack 5.1.3 for building releases (ticket #1864)
 - Use izpack2exe for Windows installer (ticket #2403)
2019-04-22 18:01:47 +00:00
fd311c7e1a Gradle: Fix getBuiltBy() to work when override.properties does not exist 2019-04-21 22:31:45 +00:00
7c71ff106b Tests: Fix ministreaming tests after access filtering changes 2019-04-21 22:27:00 +00:00
d13bf0b72a Gradle: Use tested version of Mockito
The Ant JUnit tests have been tested previously with 2.5.0 as working.
2.11.0 is causing issues that are manifesting as Gradle-specific test
failures. We can upgrade this explicitly when we also upgrade the
dependency in the Ant-based CI system.
2019-04-21 22:08:34 +00:00
9e0934f958 Build: Fix titles in ministreaming and streaming JAR manifests 2019-04-21 21:03:39 +00:00
1cc330ba66 Gradle: Generate attributes for JAR manifests 2019-04-21 21:01:28 +00:00
967dde4395 Gradle: Generate reproducible archives 2019-04-21 18:09:20 +00:00
278870606b Gradle: Fix deprecations 2019-04-21 16:38:09 +00:00
e70a2c765b Update Jetty and Tomcat versions in Gradle build scripts 2019-04-21 16:37:28 +00:00
zzz
31856e8895 Router: Update NTCP checks for NTCP2
Remove old check for 0.6.1.32 and earlier routers
2019-04-20 18:36:43 +00:00
zzz
22aefa2042 Console, SusiDNS: New icons from Sadie
Source: https://github.com/feathericons/feather
Feather is licensed under the MIT License.
https://raw.githubusercontent.com/feathericons/feather/master/LICENSE
All icons converted from SVG to PNG, brightness adjusted, colourized with #848484 and resized
Some are combined and modified
2019-04-20 14:23:52 +00:00
aeded8c495 Add the blue outproxy to the default proxy list 2019-04-20 08:34:08 +00:00
zzz
3248a15d59 Debian: Update Bionic/Cosmic to include patch for Jetty 9.4 2019-04-19 13:55:38 +00:00
zzz
5c81c00a18 Utils: CoDel minor speedup (ticket #2398) 2019-04-18 13:53:27 +00:00
zzz
ea7ddaf6d5 Console: Improve error message when graphs disabled (ticket #2452) 2019-04-18 13:17:45 +00:00
zzz
a8ad30b335 PeerManager API cleanup (ticket #2456) 2019-04-18 12:46:51 +00:00
zzz
67570db664 Transport: More fixes for NTCP when SSU disabled (ticket #1417) 2019-04-17 17:45:49 +00:00
zzz
87d8d69a20 Console: New icons from Sadie
Source: https://github.com/feathericons/feather
Feather is licensed under the MIT License.
https://raw.githubusercontent.com/feathericons/feather/master/LICENSE
All icons converted from SVG to PNG, brightness adjusted, colourized with #848484 and resized
Some are combined and modified
2019-04-16 11:10:29 +00:00
e967b26f5a update javadoc 2019-04-16 02:30:56 +00:00
e5540d051f proper fix for memory bug 2019-04-16 00:37:29 +00:00
7ce81db9a8 forget the known destinations when reloading 2019-04-15 23:40:02 +00:00
zzz
e42e04c0f0 Console: Don't display I2CP error during soft restart (ticket #2468) 2019-04-15 12:49:07 +00:00
zzz
d32d5b5f29 NamingService: Fix class selection in app context (ticket #2469) 2019-04-15 12:34:41 +00:00
zzz
8d00774b5e Tomcat 8.5.40 2019-04-15 11:45:52 +00:00
89b38f4fff add my certificate for plugins 2019-04-13 19:41:40 +00:00
zzz
0dbc809111 i2ptunnel: Fix saving encrypted LS config
Disable registration authentication when encrypted
2019-04-13 19:02:35 +00:00
zzz
64c7625524 i2ptunnel: Hide blinded-with-password config 2019-04-12 12:08:09 +00:00
zzz
071e702e56 i2ptunnel: Hide I2CP config in router context 2019-04-11 20:16:44 +00:00
zzz
363317fc26 i2ptunnel: Disallow any encrypted LS for offline keys 2019-04-11 15:59:11 +00:00
zzz
f4d7a6d0d4 i2ptunnel: Disallow encrypted LS for offline keys 2019-04-11 15:38:03 +00:00
zzz
b5a4f1626f whitespace 2019-04-11 15:13:58 +00:00
zzz
73790e2353 i2ptunnel: Fix NPE creating server tunnel
Add Red25519 sigtype option for servers
Fix if clause in editClient
2019-04-11 14:33:38 +00:00
zzz
dd5f8b45ef i2ptunnel: jsp whitespace removal 2019-04-11 14:00:42 +00:00
zzz
2960156b33 Blinding: Missed PKF file from last checkin
Add to CLI
2019-04-11 11:44:57 +00:00
zzz
9a72c4b2d1 encrypt mode checks 2019-04-10 19:56:59 +00:00
zzz
7d4acb62d0 i2ptunnel: Display encrypted b32
Blinding: Allow secret flag without attached secret
2019-04-10 19:52:03 +00:00
zzz
cddace2a1d log tweak 2019-04-10 18:31:24 +00:00
zzz
859584c2b3 NTCP2: Allow longer padding in msg 1 if NTCP1 disabled 2019-04-10 18:28:51 +00:00
zzz
6237fc89ad Jetty: Hide sizes and dates of directories in listings 2019-04-10 18:25:20 +00:00
zzz
cde53537af i2ptunnel: Config UI for encrypted ls2 2019-04-08 20:37:58 +00:00
zzz
5490de1d61 Router: Replace GarlicConfig setters with constructor args 2019-04-08 16:12:14 +00:00
488e89a0b4 merge of '42afa0510b2e7c8b0db05507c44b689084606ba9'
and '8109f9041b31355f5e1f788378f43f20a4ef22b3'
2019-04-08 15:46:40 +00:00
4774cf6c37 Order recorded destinations pt2 2019-04-08 15:46:23 +00:00
zzz
7c7b0cb7fd Util: Fix memory leak in compressor (ticket #2471) 2019-04-08 15:37:20 +00:00
6aeb89ccd0 Order recorded destinations 2019-04-08 08:48:40 +00:00
zzz
6cc39a2672 Build: Fix up javadoc targets in sub-build.xml files for maven central 2019-04-07 18:09:04 +00:00
cca68f9b79 bump -4 for acces filter fix 2019-04-06 15:35:31 +00:00
904bf2a90b Only inspect the last threshold.seconds when determining if there is a breach. Otherwise older breaches would be counted as current 2019-04-06 15:35:20 +00:00
8a001adf59 Move all disk i/o to a single thread to prevent very rare errors when running multiple tunnels 2019-04-06 15:25:37 +00:00
2c602fa46b access list cannot be defined from ui 2019-04-05 18:20:59 +00:00
1c90985f93 recorder -> record 2019-04-04 09:29:54 +00:00
3498ab05f4 define thresholds in seconds, not minutes 2019-04-04 07:31:54 +00:00
d809b592c9 display filter definition parsing errors in the UI message box 2019-04-03 15:14:39 +00:00
zzz
c3aa459872 merge of 'cbd8a21f0033ee2af8c73bd2a312059869142c83'
and 'debf8ccdb50ef7789027ba5588aa534a1195f3a9'
2019-04-03 13:27:35 +00:00
zzz
d389b3b57c I2PTunnel: Start/stop POST throttle timer 2019-04-03 13:21:41 +00:00
76ee5774c4 make filter definition text field longer 2019-04-03 12:31:44 +00:00
b7d980df06 bump -3 for access filter 2019-04-02 17:39:32 +00:00
491cd0aa46 propagate from branch 'i2p.i2p.zab.2464' (head 47c50de0eaf4a41d0c0b2df3505ff3b885163791)
to branch 'i2p.i2p' (head a34db176d9f6313db1b8fd16926c8c2ca7e12e09)
2019-04-02 17:32:39 +00:00
e380b26798 Say that it's an absolute file 2019-04-02 16:51:26 +00:00
4790a14542 change UI to allow same filter definition to be used in multiple tunnels 2019-04-02 16:04:33 +00:00
194df9d88c link to format spec 2019-04-01 15:46:49 +00:00
zzz
567bccb51c Debian: Fixes for precise/trusty/jessie (ticket #2470) 2019-03-31 12:29:26 +00:00
zzz
0e8e3688f7 Data: Implement Destroyable for private keys (ticket #2462) 2019-03-31 12:23:19 +00:00
zzz
d3170de74a SAM prep for b33 2019-03-31 12:20:13 +00:00
zzz
908bf26151 javadoc fix 2019-03-31 12:18:44 +00:00
e55702b219 stop the filter in destroy method 2019-03-30 15:08:28 +00:00
c0c95827ef add logic to start and stop filter timers 2019-03-29 16:27:10 +00:00
fc9ad32878 Make the config format consistent (threshold rule [target]) 2019-03-29 15:36:03 +00:00
zzz
7d40dfe1e5 CLI tweak 2019-03-29 12:55:17 +00:00
2304e9b558 prettier html 2019-03-29 12:54:44 +00:00
zzz
944fe4794e Crypto: new SigContext (WIP) (proposal #148) 2019-03-29 12:54:12 +00:00
zzz
7501e3feea javadoc fix 2019-03-29 12:51:19 +00:00
zzz
eb0920e2c7 NetDB: Persistence for blinding cache 2019-03-29 12:50:41 +00:00
956a714d6e package.html 2019-03-29 12:44:44 +00:00
3f990b0bc8 html in javadoc 2019-03-29 12:42:45 +00:00
3dbe8f2003 document format 2019-03-28 19:47:08 +00:00
d90fc421fd javadoc 2019-03-28 18:57:42 +00:00
85db853d74 use curly braces around one-line for and while loops 2019-03-28 17:25:12 +00:00
440d5571fa Clear all state if the tunnel is closed 2019-03-28 17:22:08 +00:00
910a0d859d fix b32 parsing 2019-03-28 17:10:07 +00:00
c5f9aea557 do not use equalsIgnoreCase 2019-03-28 16:59:56 +00:00
84ea533b11 use DataHelper.split instead of String.split 2019-03-28 16:58:34 +00:00
fd2819c754 Use Hash objects instead of Strings representing b32s 2019-03-28 16:44:55 +00:00
fd6cb07e5d use SecureFileOutputStream 2019-03-28 16:25:36 +00:00
6d2270a1ed Cancel timers if tunnel is stopped 2019-03-28 15:32:49 +00:00
94bde1d821 Exception to be thrown in case of invalid filter definition 2019-03-28 14:46:19 +00:00
zzz
ba801be24f Debconf translation update from
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=925515
2019-03-28 13:49:21 +00:00
e919271247 revert accidental commit 2019-03-28 13:37:51 +00:00
d2bdbcd27d correct io pattern 2019-03-28 13:31:39 +00:00
97eb5a56ab add the UI bits of the access rules 2019-03-28 02:04:21 +00:00
473ced4d4a disable splitting by tabs for now 2019-03-27 15:19:45 +00:00
c7771095d3 hook up loading of filter definitions for server tunnels 2019-03-27 15:04:04 +00:00
zzz
ea127d3fd4 NetDB: Fix b33 lookup looping after failure 2019-03-27 13:58:56 +00:00
b35762b4bb factory to rule them all 2019-03-27 13:24:55 +00:00
3f6fc7c0fb wip on parser of filter definitions 2019-03-27 13:05:31 +00:00
zzz
82eea0a8f9 NetDB: Cache blinding data for lookups and decryption (proposal #123) 2019-03-27 12:51:10 +00:00
670016e79c wip on parser of filter definitions 2019-03-27 12:45:26 +00:00
zzz
14492d7269 log fix 2019-03-27 12:38:40 +00:00
zzz
de9d968b76 DatabaseEntry: Change from volatile to synched 2019-03-27 12:32:23 +00:00
zzz
7bb7677604 SelfSignedGenerator: improve previous fix 2019-03-27 12:26:05 +00:00
841b16ef72 Access list may not exist 2019-03-27 11:39:17 +00:00
0d0dd1e241 hook up periodic events to ST2 2019-03-27 11:16:50 +00:00
62f7b2cece Skeleton architecture of access filter 2019-03-27 10:06:49 +00:00
a5e568ffa1 Hooks into streaming for filtering of incoming connections 2019-03-26 15:34:15 +00:00
zzz
64039ee3c2 button style 2019-03-23 17:43:57 +00:00
zzz
ce043943d9 SusiDNS: Add import feature (ticket #2447)
Box overlap issue remains todo, see ticket #2419
2019-03-23 16:42:37 +00:00
zzz
fea5bd4ada SelfSignedGenerator:
- Fix generation with Ed25519ph keys (ticket #2465)
- Increase serial number from 63 to 71 bits
2019-03-23 14:26:29 +00:00
zzz
00d4525325 Data: Initial work on b32 format for blinded leasesets (proposal 149, WIP) 2019-03-23 13:39:47 +00:00
zzz
f17776ec54 i2ptunnel: Escape {} in URLs (ticket #2130) 2019-03-22 15:41:16 +00:00
zzz
05845481d1 Debian files for 0.9.39 2019-03-22 15:28:48 +00:00
zzz
bb5a89219a 0.9.39 2019-03-21 12:11:48 +00:00
zzz
c3ebc00a86 bump for review 2019-03-17 15:56:49 +00:00
zzz
a57c277af0 Pull translations 2019-03-17 15:51:16 +00:00
zzz
2b00bfa58b Fix Debian builds with Jetty 9.4.15 (ticket #2457) 2019-03-16 16:54:36 +00:00
zzz
8962ea058f Doc updates, BuildTime update 2019-03-15 11:34:41 +00:00
zzz
7511de68a4 Router: Remove unused test support for AES disabled 2019-03-14 15:19:23 +00:00
zzz
0b5a36d5eb GeoIP update 2019-03-11 2019-03-14 13:23:15 +00:00
zzz
1f861c14a9 javadoc fix 2019-03-13 11:23:37 +00:00
zzz
d7d1dcb539 Crypto: Ed25519 check for S < L as in RFC 8032 2019-03-12 12:55:58 +00:00
zzz
91c59dfb6b Crypto: Fix Ed25519ph conversion 2019-03-12 12:37:28 +00:00
9d17066175 Update hyperlinks for forum to point to i2pforum.i2p 2019-03-12 06:22:49 +00:00
7db602d959 Make I2pTunnel wait for router to reach RUNNING state (ticket #2377) 2019-03-11 20:00:04 +00:00
zzz
7e6fd01eef New home page icons from Sadie
Source: https://github.com/feathericons/feather#license Feather is licensed under the MIT License.
License: https://raw.githubusercontent.com/feathericons/feather/master/LICENSE
All icons converted from SVG to PNG, brightness adjusted, colourized with #848484 and resized to 32x32
modifications:
group_gear - feather icon code layered with message - square. Message- square icon resized. 
plugin_link - feather icon coffee layered with square. Coffee icon cropped to leave" prongs" 
plugin. - feather icon coffee layered with plus square. Coffee icon cropped to create "prongs"
i2psnark - feather icon underline - layer added, "U" rotated , line cut and copied over, them cut out to create "magnet.
2019-03-11 15:56:25 +00:00
zzz
365f5a8c7b UPnP redundant casts 2019-03-10 12:58:23 +00:00
zzz
30dbe24777 LS2: Allow UTF-8 for blinding secret 2019-03-10 12:11:13 +00:00
e36a3b318a Mac OSX Launcher:
* Fixed startup option so the launcher can start at OSX login/bootup.
* Added I2P Browser to the list of "firefox" browsers to detect.
* Changed hardcoded path lookup to native "registry" lookup for firefox application.
* Made the advanced preferences table editable by the user.
* Cleanup of old and/or unused code.
* Bugfixes.
2019-03-10 11:16:56 +00:00
zzz
5d389c8855 I2CP: Add support for blinding secret 2019-03-09 16:40:15 +00:00
zzz
d6a53cc3a6 Data: Consolidate offline key check
i2ptunnel: Prevent registration auth if key offline
2019-03-09 11:47:03 +00:00
zzz
409207e02d more selectors 2019-03-07 15:01:10 +00:00
zzz
95366c06ce NetDB: Minor performance improvement in selectors
log tweaks
2019-03-07 14:46:20 +00:00
zzz
5b1b4acd2c NetDB: Fix flood version check, add version check for RedDSA 2019-03-06 15:28:47 +00:00
zzz
10bae6a07b Data: Update Encrypted LS2 blinding and encryption to match current proposal 123
Hide b32 in console for encrypted LS2
2019-03-05 15:43:23 +00:00
zzz
bfafdd34be NetDB: Fix tunnel selection for verify of encrypted ls2 store
Fix NPE handling lookup of encrypted ls2
2019-03-04 19:04:42 +00:00
zzz
0b2896516e Console: Fix NPEs displaying encrypted LS2 2019-03-04 18:37:01 +00:00
zzz
268a3ee5f5 NetDB: Fix finding tunnels to publish encrypted LS2
log tweaks
2019-03-04 17:38:26 +00:00
zzz
ad1600eb51 log tweaks 2019-03-04 17:37:29 +00:00
zzz
f1ed870a4a Data: Fix NPE in debug logging 2019-03-04 17:17:44 +00:00
zzz
5d3b7c1c53 NetDB: Call fail callback when lookup is negative cached (thx zab) 2019-03-04 17:07:45 +00:00
zzz
cd97718682 I2CP, NetDB: More encrypted LS2 fixes (WIP)
Marked encrypted LS hash as local
Fix isCurrent() on encrypted LS
Fix unpublish of encrypted LS
2019-03-04 17:06:01 +00:00
zzz
54d9a29855 I2CP, NetDB, Console: Encrypted LS2 handling fixes (WIP)
log tweaks
2019-03-02 21:52:12 +00:00
zzz
7cbb43ab75 I2CP: Encrypted LS2 handling fixes, log tweaks (WIP)
Add number of privkeys field to CreateLeaseSet2 message
Check all privkeys, not just the first, on router side
2019-03-02 19:53:16 +00:00
335736b2b7 Fix log strings 2019-03-02 18:13:55 +00:00
zzz
f0b9986e67 Enc LS2 debug logging changes 2019-03-02 16:00:56 +00:00
zzz
82d187438f Streaming: Fix sending messages with expired times (ticket #2451) 2019-03-01 18:00:54 +00:00
zzz
d1617dd0b6 Console: Fix router logs not shown if first msg is a dup 2019-02-28 16:55:16 +00:00
zzz
21c7a341fb Console: Change fallback client names to use b32
instead of truncated b64. Anchors remain b64.
2019-02-28 16:07:58 +00:00
zzz
302adc2d16 Console: Drop icons for deleted /home items 2019-02-27 15:15:55 +00:00
zzz
c8b7e829db Console: Handle zero SSU RTT on /peers (ticket #2443)
PeerState minor cleanups
2019-02-26 17:38:34 +00:00
zzz
cf1c0cb3ed SSU: Fix RTT/RTO calculations (ticket #2443) 2019-02-26 17:17:00 +00:00
zzz
566df1c275 SSU: Fix scheduling of peer test at startup (ticket #2441) 2019-02-26 16:19:36 +00:00
zzz
16421fa0b6 NTCP: Fix number of SendFinisher threads (ticket #2438) 2019-02-25 15:58:29 +00:00
zzz
3c911ee298 I2CP: Strip i2p.reseedURL from session options take 2 2019-02-25 15:10:34 +00:00
zzz
a12058db3a I2CP: Strip i2p.reseedURL from session options 2019-02-25 15:05:14 +00:00
zzz
7ce539a815 NetDB: Fix dup publish of RI at startup
Improve locking for checking address change
Publish RI after netdb is ready
log tweaks
2019-02-25 14:40:59 +00:00
zzz
b76b2ef206 Console: Flip order of router logs 2019-02-23 18:02:00 +00:00
zzz
32797dd415 NTCP: Loop in pumper if more to write (ticket #2440) 2019-02-23 17:06:01 +00:00
zzz
e1385a71e2 minor speedup 2019-02-23 17:03:52 +00:00
zzz
9cd90b0530 NetDB: Use published date, not earliest lease expiration, for LS2 comparisons
Fix earliest LS expiration adjustment when publishing for LS2,
so .38 routers won't reject as not newer
Don't start new store after verify fail if we've already done so
Increase flood candidates for LS2
Version checks for encrypted LS2
FVSJ cleanups
log tweaks, javadocs
2019-02-23 17:03:04 +00:00
zzz
5440a3402f I2CP: Force i2cp.leaseSetType option for offline keys 2019-02-21 16:16:27 +00:00
zzz
9fafc253b7 Data: Always set unpublished flag for inner LS (Enc LS2)
Fix setDestination()
2019-02-21 14:58:58 +00:00
zzz
b37160fa8d Crypto: Keygen for RedDSA, allow RedDSA for unblinded keys (Enc LS2) 2019-02-21 14:19:38 +00:00
zzz
7fbe1ced5a Crypto: Sign/verify/encrypt/decrypt for Encrypted LS2
generateAlpha() method for arbitrary date
2019-02-20 22:49:14 +00:00
zzz
17270b1502 Crypto: RedDSAEngine and generateAlpha() for Encrypted LS2 2019-02-20 15:00:54 +00:00
zzz
e34b646231 Crypto: New ChaCha20 wrapper around ChaChaCore, for use with Encrypted LS2 2019-02-19 19:11:34 +00:00
zzz
14ac8fe545 Crypto: Move ChaChaCore from router to core, in prep for use with Encrypted LS2 2019-02-19 16:00:47 +00:00
zzz
b3c5974693 Crypto: Implement blinding (proposal 123)
Add sig type 11 for blinded keys
2019-02-19 13:12:26 +00:00
af46e48563 Fix i2psnark-standalone.zip build which broke after themes were removed 2019-02-19 06:33:16 +00:00
zzz
2aa093754d Tomcat 8.5.38 2019-02-18 18:44:37 +00:00
zzz
ab7f61d220 Console: Drop midnight and classic themes (ticket #2272) 2019-02-18 18:14:28 +00:00
zzz
2d67d11537 Transport: Fixes for NTCP when SSU disabled (ticket #1417)
Delay port forwarding until after UPnP rescan complete
WIP
2019-02-18 17:55:17 +00:00
d244d17363 Gradle: Optionally include jbigi at runtime for core
This enables running the benchmarks with jbigi present:

./gradlew -Pwith.jbigi jmh --no-daemon
2019-02-17 15:42:15 +00:00
e662f09838 Gradle: Create jbigi configuration 2019-02-17 15:41:17 +00:00
ad5301ae10 Gradle: Integrate JMH benchmarks
Run with ./gradlew jmh --no-daemon
2019-02-17 09:49:03 +00:00
def939284c Gradle: Disable ScalaTests when TARGET_JAVA_HOME is set
Previously, ScalaTests were only disabled when running Gradle with JDK 7.
Gradle 5+ only runs on JDK 8+, so when cross-compiling and testing JDK 7
we need to check for this state and disable ScalaTests.
2019-02-17 09:30:53 +00:00
f9c13968a8 Travis CI: Test against JDK 9+ 2019-02-17 09:23:12 +00:00
4f6b58e5af Gradle: Configure --release compiler flag after project evaluation 2019-02-17 02:35:26 +00:00
2556c7755b Travis CI: Update config to handle cross-compilation 2019-02-17 02:33:19 +00:00
9731c203bd Gradle: Improve cross-compilation support
JDK 9+ have a --release flag that correctly configures the bootClasspath.
For JDK 8 we now enforce manual configuration.
2019-02-17 02:13:32 +00:00
a1b67e3720 Gradle: Parse router version from Java source 2019-02-17 01:56:24 +00:00
56c1739d54 Gradle: Use plugins DSL where possible 2019-02-17 01:27:05 +00:00
1ae987927b Upgrade Gradle wrapper to 5.2.1 2019-02-17 01:16:20 +00:00
zzz
51b27bbf0c Console: Hide disabled transports on /peers 2019-02-08 13:58:38 +00:00
zzz
5b78b53fe8 SSU: EstablishmentManager fixes (ticket #2397) 2019-02-08 13:24:42 +00:00
zzz
3ba0fcf6da SAM: Support offline keys 2019-02-07 20:27:42 +00:00
zzz
7544d0a590 Streaming: Fix exception after sig verify fail
log tweaks
2019-02-07 18:14:18 +00:00
zzz
636016d107 NTCP: Add option to disable NTCP1 (ticket #2328)
Don't bid for outbound-only NTCP2 addresses
Fix NTCP2 cost when transitioning to inbound
2019-02-07 14:54:56 +00:00
zzz
b310c60188 Javadoc fixes 2019-02-06 12:48:33 +00:00
zzz
19cb85a74d i2pcontrol: Javadoc fixes 2019-02-06 12:45:21 +00:00
zzz
490b81c1a1 Crypto: Shortcut GroupElement representation conversion 2019-02-06 12:35:27 +00:00
zzz
3a30f07483 I2CP: Prevent use of repliable datagrams with offline keys 2019-02-06 11:54:29 +00:00
zzz
61c62424c2 Build: Add targets for alternate debian distros (ticket #2410) 2019-02-06 11:48:48 +00:00
zzz
16ccc1bea5 remove exchanged.i2p 2019-02-06 11:46:23 +00:00
zzz
b82702393f NTCP: Speed up allowConnection() (ticket #2381) 2019-02-05 16:44:09 +00:00
zzz
8a77db15d5 Transport: Clean up unreachable() methods (ticket #2382) 2019-02-05 15:39:00 +00:00
zzz
beb0879f24 Router: OutNetMessage cleanup (ticket #2386) 2019-02-05 15:19:29 +00:00
zzz
6f75680a7e SSU: PacketHandler cleanup (ticket #2383) 2019-02-05 14:57:10 +00:00
zzz
a756c12432 I2CP: Change format and message type of CreateLeaseSet2 message
to match spec changes
2019-02-04 21:58:27 +00:00
zzz
ead49256c7 Data: Represent blinding secret as a SigningPrivateKey 2019-02-04 16:58:41 +00:00
zzz
0e029f84b0 I2CP: Fix LS2 NPE 2019-02-03 19:03:28 +00:00
zzz
bd6cf53d53 i2ptunnel: Fix HTTP websockets by passing through
Connection headers containing "upgrade" (ticket #2422)
Server-side change only. Client-side in previous commit.
2019-02-03 17:29:16 +00:00
zzz
e20a6a9685 i2ptunnel: Fix HTTP websockets by passing through
Connection headers containing "upgrade" (ticket #2422)
Client-side change only. Server-side todo.
2019-02-03 16:31:26 +00:00
zzz
0e710f8785 Streaming: Support offline signatures (proposal 123)
Don't send FROM in RESET, not required since 0.9.20
Send RESET when SYN signature verification fails
Use cached buffers for signature verification
Move setOptionalFrom() from Packet to PacketLocal
Always verify packets with signatures, even if not required
AIOOBE checks
cleanups, log tweaks
2019-02-03 13:41:42 +00:00
zzz
7d11fb269e I2CP: Remove revocation private key from CreateLeaseset2 message
Use correct key to sign SessionConfig with offline keys
LeaseSetKeys cleanups
2019-02-03 12:59:53 +00:00
zzz
d7808cd16d Data: Fix length for offline sig verification 2019-02-03 12:49:56 +00:00
zzz
f288682436 Test: Disable NTP in LocalClientManager 2019-02-03 12:47:33 +00:00
zzz
19defbe05d Debian: Fix build of i2pcontrol 2019-02-02 13:28:59 +00:00
zzz
175ea0f0c2 i2ptunnel: Update clearnet UA to match current TBB 2019-02-01 19:07:22 +00:00
zzz
30015c1933 i2ptunnel: Handle PUT like POST 2019-02-01 13:49:13 +00:00
zzz
4f8455040e i2ptunnel: Caching of outproxy selection, avoid last-failed outproxy 2019-02-01 13:39:57 +00:00
zzz
428fb269f0 Debian: AppArmor fix for Oracle JVM (ticket #2319)
Allow any JRE or JDK to work
2019-02-01 13:11:12 +00:00
zzz
ec5e2dba94 i2ptunnel: More localhost checks 2019-02-01 13:03:40 +00:00
zzz
316011e047 Debian: Fix version detection of Tomcat 9 required for reproducible builds 2019-01-31 11:55:43 +00:00
zzz
68567cb531 Build: Fix javac.classpath in junit.compileTest targets (ticket #2333) 2019-01-30 20:51:17 +00:00
zzz
4eb9368830 I2CP: Fixes for CreateLeaseset2 message with multiple keys 2019-01-30 20:23:09 +00:00
zzz
c555bb6c93 i2cp.leaseSetEncType param:
Support comma-separated values,
check param in session config,
support stored EncTypes in private keys.
Show types and multiple keys on LS debug page
2019-01-30 19:33:15 +00:00
zzz
1bb57c4103 EdDSA minor cleanup 2019-01-29 13:51:42 +00:00
zzz
a51a6d57f9 rename class 2019-01-29 13:28:11 +00:00
zzz
8465fe7717 fix build warnings 2019-01-28 15:22:17 +00:00
zzz
0801d20fd1 EdDSA: Make more classes serializable (Github PR #68) 2019-01-28 15:21:15 +00:00
zzz
9055982cf0 bump after prop 2019-01-28 15:17:51 +00:00
zzz
8c9ce56837 propagate from branch 'i2p.i2p.zzz.i2pcontrol' (head 1334d424003d201aa352cf57a6ba2f61241ef363)
to branch 'i2p.i2p' (head fe8a90fdbdd491e16040e3ed91a35faa72fd78f2)
2019-01-28 15:10:30 +00:00
zzz
0a8ab44139 I2PControl: Add manifest for jar build
Stub out socketJar build
2019-01-28 14:14:29 +00:00
zzz
24fd48815a I2PControl:
Disable webapp by default
Add link in Services section of sidebar
Add definition in PortMapper
Add stub controller for socket implementation, WIP
Javadocs
2019-01-28 13:31:54 +00:00
zzz
3fca0f6f99 LS2: Honor unpublished flag 2019-01-27 16:13:05 +00:00
zzz
3cd12ecefc LS2: Select first supported encryption key from leaseset
OCMOSJ: Fail if unsupported crypto or bad ls type
2019-01-27 15:59:34 +00:00
zzz
0889a751db NDT:
Catch exception on DNS lookup failure (ticket #2399)
Add support for specifying server in CLI (ticket #2413)
Finals and javadocs
2019-01-27 14:25:48 +00:00
zzz
efb1b7c24a Debian: Fix PPA builds for precise and trusty (ticket #2408)
Reverts fix for #2329 for these distros
2019-01-26 18:34:10 +00:00
zzz
3527f251c8 Debian: Add build option for libtomcat9 (ticket #2364) 2019-01-24 14:15:04 +00:00
zzz
6cdc515cfd Fix Debian control files (ticket #2401) 2019-01-24 12:43:02 +00:00
zzz
57de4b1805 Debian files for 0.9.38 2019-01-24 12:29:22 +00:00
609d5944bb Mac OSX Launcher: 0.1.3 Release commit. 2019-01-22 19:25:33 +00:00
zzz
88d9f1d509 0.9.38 2019-01-22 11:54:19 +00:00
zzz
5c0aab4190 Minor fixes after review 2019-01-21 21:57:14 +00:00
zzz
33e96d7841 Reseed: Update SSL cert 2019-01-21 21:56:34 +00:00
zzz
d00e3c77ab Debian: Add source param to javadoc target, fixes build on sid 2019-01-20 13:28:22 +00:00
zzz
318ebb3fc5 Debian: Replace ttf-dejavu with fonts-dejavu (ticket #2395) 2019-01-20 13:24:01 +00:00
zzz
f224a770f0 bump for review 2019-01-18 20:47:08 +00:00
zzz
ebcf187df6 Pull translations 2019-01-18 20:41:44 +00:00
zzz
b3cfc89fa2 remove old file from test script 2019-01-18 20:34:09 +00:00
e57606a9f6 Mac OSX Launcher: Added Carthage file + shell script bumpInfoPlist.sh 2019-01-18 16:30:46 +00:00
a36777882e Mac OSX Launcher: Misc changes + xcode project file update 2019-01-18 16:30:03 +00:00
605f9872cd Mac OSX Launcher: UI code updates, integration of firefox manager. 2019-01-18 16:29:12 +00:00
52125917b4 Mac OSX Launcher: Storyboard updates, added firefox button, preferences changes etc. 2019-01-18 16:28:17 +00:00
ba853a8c97 Mac OSX Launcher: The firefox manager code 2019-01-18 16:26:08 +00:00
6ad64d5b44 Mac OSX Launcher: Adding the "launcher launcher" for startup functionality. 2019-01-18 16:25:01 +00:00
zzz
272588d820 Debian: Add Disco files, refresh patch for Jetty 9.4 2019-01-18 14:32:28 +00:00
zzz
344c812666 NTCP: Stop X25519KeyFactory on shutdown (ticket #2388) 2019-01-18 12:15:43 +00:00
zzz
b4e2619c3b Plugins: Fix loading of webapp configuration classes
on Jetty 9.4 by whitelisting them as allowed server classes
(ticket #2385)
2019-01-18 11:35:36 +00:00
zzz
6ca383071b Debian: AppArmor updates (ticket #2319) 2019-01-16 20:10:36 +00:00
zzz
d851631494 SusiMail: Fix sending mail with attachments (ticket #2373)
Fix deleting attachments from drafts
Fix dup attachments after clicking add attachment without browsing first
Fix update of draft folder after saving as draft
Change text of add attachment button for clarity
Debug logging
2019-01-15 17:18:59 +00:00
zzz
16f4f04092 change firefox profile installer link 2019-01-15 16:05:40 +00:00
zzz
ca86bbe4f7 EncType javadoc update 2019-01-14 15:58:40 +00:00
cf27938983 fix compilation with Gradle to account for GeoIP2 and systray changes 2019-01-13 14:04:03 +00:00
zzz
4283d71b92 I2CP: Set LS2 unpublished bit, show in debug output 2019-01-13 13:14:58 +00:00
zzz
10f2d838c9 SSU: More consolidation of clock().now() calls 2019-01-12 13:45:38 +00:00
zzz
f5ca17c844 NetDB: Use isSlow() in floodfill criteria 2019-01-12 13:43:09 +00:00
zzz
b62732b5b3 Console: More LS2 debug output
I2CP: Bump min LS2 router version for release
2019-01-11 14:44:33 +00:00
zzz
47beb8250e propagate from branch 'i2p.i2p' (head ff155397f79c33f8f6767c2c120e57cb7dd30d88)
to branch 'i2p.i2p.zzz.i2pcontrol' (head 9e68613e29f1a3bd5a4e2b3d8c5637b48f499e5e)
2019-01-11 13:51:41 +00:00
zzz
17228def91 I2CP: Remove client-side-only options from those sent to router 2019-01-10 17:08:35 +00:00
zzz
5ca98022ab I2CP: Router-side stub for enc. ls2; throw for now 2019-01-10 16:21:48 +00:00
zzz
0c15936b5d I2CP: Router-side fix for meta LS2 2019-01-10 15:37:11 +00:00
zzz
e02a0dfc5b NTCP: Avoid Java 8/9 bootclasspath issue 2019-01-10 14:17:18 +00:00
zzz
0d330caf9a I2CP: Basic router-side handling of meta LS2
Improve error handling of LS2 params client-side
Methods to remember blinded key in LS2
2019-01-10 13:39:18 +00:00
zzz
8cd7e7de65 poupdate-source for 0.9.38
Fix poupdate script to not pick up tags in 3rd party libs
2019-01-09 19:03:41 +00:00
zzz
671e9dd711 I2CP: Stub out client-side creation of meta and enc. LS2 2019-01-09 18:41:36 +00:00
zzz
4ff9092bd9 Wrapper: Increase default heap to 256 MB 2019-01-09 13:29:36 +00:00
zzz
fb8665b9bd Console: Fix broken image link on /configui 2019-01-09 13:09:49 +00:00
zzz
2c7033001e Console: Remove firefox anchor in link 2019-01-09 13:08:45 +00:00
zzz
30ea6f3ffa Console: Remove test code that forces wizard run on dev builds 2019-01-09 13:07:59 +00:00
zzz
5634055d4b Crypto: Stub out EdDSA blinding (proposal 123) 2019-01-05 14:22:46 +00:00
zzz
3b7284c9cd I2CP: Add support for multiple private keys in CreateLS2Message 2019-01-04 14:30:38 +00:00
zzz
74ed974145 NetDb: Prevent ISJ deadlock (ticket #2366) 2019-01-04 13:48:38 +00:00
zzz
4786081026 Build: Check cert validity
Reseed updates
2019-01-04 12:15:58 +00:00
zzz
150cee9a08 Data: Add type byte to MetaLease,
add EmptyProperties to reduce object churn,
undeprecate getSigningKey(),
reduce loadProps() buffer size
2019-01-02 14:29:10 +00:00
zzz
941a994482 remove temp wizard text 2019-01-02 13:23:30 +00:00
zzz
d10d722763 Wizard: Styling, fix links, change button icons
back.png: Arrow flipped from go.png in Gimp, same license
2019-01-02 13:19:12 +00:00
zzz
9951e3467e Data: More work on Encrypted LS2 (proposal 123) 2019-01-02 11:50:05 +00:00
zzz
62fd0497f8 Debian: Split up conffiles into subpackages 2019-01-01 21:01:40 +00:00
zzz
a0d2288ded Debian: Remove obsolete systray.config 2019-01-01 20:20:35 +00:00
zzz
149359fdc3 Data: Fix LS2 size(), fix Meta LS2, fix date rouding 2019-01-01 20:17:56 +00:00
zzz
4ae57f4f01 Data: Fix LS2 support for unknown enc. types (proposal 123) 2019-01-01 17:48:31 +00:00
zzz
d95d81aea7 Data: Add support for LS2 multiple encryption keys (proposal 123) 2019-01-01 17:14:37 +00:00
zzz
92ad4d1ce3 NBI: Add lookup tables for ARMv8 2019-01-01 15:41:11 +00:00
zzz
3c0ba5ce9c Console: Add warning for OpenJDK Zero VM 2019-01-01 15:01:22 +00:00
zzz
f221e724b9 Console: New light background (ticket #738) thx Alex 2019-01-01 14:43:19 +00:00
0fdede8657 Fix _isArm 2018-12-30 13:17:19 +00:00
zzz
47629bf2cf Console: Update ARM warning (ticket #2368), remove Java 11 warning 2018-12-24 13:24:58 +00:00
zzz
0474876b58 NDT: Fix deprecation 2018-12-24 13:21:05 +00:00
zzz
edae8e3e0b Sybil: Translate strings that we already have tagged elsewhere 2018-12-23 15:02:45 +00:00
zzz
1411d0cff3 Sybil: Change persistence format to prevent errors in some locales 2018-12-23 14:40:13 +00:00
zzz
aad80eb2a3 Console: _action cannot be null in processForm()
GraphHelper minor cleanup
2018-12-23 13:38:54 +00:00
zzz
af49a90303 Sybil: Add background run form 2018-12-23 13:21:27 +00:00
zzz
fa6a4ca1d1 Console: Convert NetDbHelper to a FormHandler,
change SybilRenderer forms to POST,
only collect RIs on required Sybil tabs
2018-12-23 12:19:32 +00:00
zzz
e122393914 FormHandler: move things around 2018-12-23 11:08:50 +00:00
zzz
2d026d5ae7 Console: isAdvanced() cleanup 2018-12-23 10:17:46 +00:00
zzz
367e5ac679 javadoc fix 2018-12-21 12:15:07 +00:00
zzz
f3a4b115f3 Console: More links on sybil page 2018-12-21 11:37:09 +00:00
zzz
9f64cc7c60 TLSv1.3 notes 2018-12-21 11:35:15 +00:00
zzz
03651292fb thread name change 2018-12-21 11:33:55 +00:00
zzz
94fd60db10 Transports: Improve banning of routers from wrong network 2018-12-21 11:32:17 +00:00
zzz
18b7d97584 new reseed 2018-12-20 11:02:20 +00:00
zzz
021375b5d5 NTCP: More now() calls out of loops 2018-12-20 10:58:30 +00:00
8a0602732d Get call to system timer out of tight loop when counting connections 2018-12-19 10:51:53 +00:00
zzz
20876ff307 Sybil page date formatting 2018-12-17 14:43:02 +00:00
zzz
bf3a7d6ef7 Data: More work on Encrypted LS2 (proposal 123) 2018-12-17 13:59:49 +00:00
zzz
35a771c764 NTCP2: Use new HKDF class 2018-12-17 13:16:54 +00:00
zzz
eb8178ea3b Sybil: Linkify IP reasons
Adjust IP points
2018-12-17 11:46:14 +00:00
zzz
3867beb198 GeoIP: Fix NPE (thx parg) 2018-12-17 11:24:27 +00:00
zzz
cae5dcd69c Sybil: Refactoring part 6
Make Analysis class a JobImpl, run on configured frequency
Bug fixes and cleanups
2018-12-17 11:23:08 +00:00
zzz
2a805dddf5 Sybil: Refactoring part 5
Make Analysis class singleton, hang off ClientAppManager
prep for offline scheduling
2018-12-16 14:44:37 +00:00
zzz
fa0d63f40f Sybil: Refactoring to separate analysis and display, part 4
Load/store offline analysis
Split up sections into separate tabs
2018-12-16 13:20:59 +00:00
zzz
9437e2cb79 Sybil: Refactoring to separate analysis and display, part 3 2018-12-15 17:49:52 +00:00
zzz
3054a240bb Sybil: More refactoring to separate analysis and display 2018-12-15 16:54:01 +00:00
zzz
5d06de8608 Sybil: Class for persisting results, related refactoring 2018-12-14 16:54:10 +00:00
zzz
468871f21e Crypto: Add HKDF class for LS2 and NTCP2 (proposal 123)
Minor speedup in HMAC256
2018-12-13 14:39:08 +00:00
zzz
6c3c227c1b Debian: Add alt files for sid (ticket #2098)
Fixes compatibility with Jetty 9.4
Patch from Emmanuel Bourg, see
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=916177
Briefly tested by mhatta
2018-12-13 14:30:22 +00:00
zzz
9738db7254 UrlLauncher:
- Use arrays for exec
- Randomize temp file name
- Require quotes around args containing spaces in routerconsole.browser property
- Add debug logging
- Add chromium-browser to the default list
- Parse and use full command line from Windows registry
- Replace %1 with url in registry line and routerconsole.browser property
ShellCommand:
- Switch to i2p logging
2018-12-12 20:12:07 +00:00
zzz
51bf23a34c DTG: Use UrlLauncher to launch browser 2018-12-12 15:17:51 +00:00
zzz
5eda30644f Util: Add another ShellCommand String[] method
to be used by UrlLauncher
2018-12-12 13:59:27 +00:00
zzz
2746ed5ce2 Installer: Drop unused systray.config 2018-12-12 13:56:47 +00:00
zzz
fd23b23e56 Crypto: HMAC-SHA256 cleanup
Add byte[] key method to reduce object churn in NTCP2
Un-deprecate in context
2018-12-11 12:19:46 +00:00
zzz
a63d2dccb2 Transports: Log tweaks 2018-12-11 11:35:45 +00:00
zzz
0f6f8f90c9 Utils: Code to simulate IPv6-only 2018-12-11 11:32:52 +00:00
zzz
87c97b2a0a Debian: Add conffiles list
Users shouldn't be editing these, they are the site templates
that are copied to the config dir on first run, but if they are changed,
the user will have the chance to save the changes on upgrade.
2018-12-11 11:28:00 +00:00
zzz
6f4d76e871 editorconfig update 2018-12-11 11:22:43 +00:00
zzz
c1850cc4f3 Utils: Enable TLSv1.3 for SSL sockets
(available in Java 11)
2018-12-11 11:19:36 +00:00
zzz
399899e7e7 NetDb: Allow longer expiration for Meta LS2 2018-12-08 18:24:14 +00:00
zzz
bdc4d82eb2 Transport: Don't set status to disconnected if IPv6-only but not configured IPv6-only 2018-12-08 17:35:29 +00:00
zzz
2200cf6627 Transport: Don't repeatedly publish RI if IPv6-only but not configured IPv6-only 2018-12-08 17:28:54 +00:00
d382f1214e merge of 'a2e8a7d9b157e9a7d5ab0e4356b7b046715a4243'
and 'c3ae5fc1d281c2f9c6357dd72bfc2147bae71877'
2018-12-08 14:38:18 +00:00
36a5790b87 Mac OS X Launcher: Misc minor updates to Preferences 2018-12-08 14:37:59 +00:00
zzz
5d100417c4 Console: Hide I2CP config if disabled 2018-12-08 14:30:04 +00:00
b946bb0679 Mac OS X Launcher: Webkit header + I2P version inside Info.plist 2018-12-08 09:17:09 +00:00
c3b8317edb Mac OS X Launcher: Adding optional Dock Icon functionality 2018-12-08 09:16:28 +00:00
f90e2ee659 Mac OS X Launcher: Xcode metadata project file update 2018-12-08 09:15:33 +00:00
3bad8f33c4 Mac OS X Launcher: Remove unneeded entitlement 2018-12-08 09:15:04 +00:00
dfcc616cb3 Mac OS X Launcher: Misc changes in ObjC, forwarding sendUserNotification to Swift. 2018-12-08 09:14:33 +00:00
a0d356bc56 Mac OS X Launcher: Changes in path lookups (many via Preferences), launchd template changes and java arguments for the router itself. 2018-12-08 09:12:24 +00:00
f4496a0c4c Mac OS X Launcher: Unfinished experimental code, adding so other people can compile the xcode project. 2018-12-08 09:10:43 +00:00
8841fed1f1 Mac OS X Launcher: Updated version.h template file to embedd i2p version as NSString in build time. 2018-12-08 09:09:37 +00:00
eca5805195 Mac OS X Launcher: Adding selectors for Preferences window launch, and for view of experimental console webview. 2018-12-08 09:08:22 +00:00
b8681ddf9d Mac OS X Launcher: Misc updates to the Launchd code, also moved it to a own directory for cleaner source view. 2018-12-08 09:07:03 +00:00
68ad4eec14 Mac OS X Launcher: Adding user interface classes for the different Preferences views so far. 2018-12-08 09:05:55 +00:00
a192679638 Mac OS X Launcher: Adding Preferences class which works as an interface towards apple's "defaults" preferences system 2018-12-08 09:04:54 +00:00
7058bd85fa Mac OS X Launcher: Adding Preferences button to existing storyboard view 2018-12-08 09:03:42 +00:00
92c42db787 Mac OS X Launcher: Adding Preference storyboard 2018-12-08 09:03:13 +00:00
zzz
926bce78a7 I2CP: Set and validate offline sig in SessionConfig 2018-12-05 15:27:36 +00:00
zzz
d054c6bc04 I2CP: Set offline keys in generated LS2
(router side to follow)
Propagate error from disconnect message to session listener
Refactor RLSMH options
2018-12-05 13:50:07 +00:00
zzz
2876da2565 I2CP, Data: Initial support for LS2 offline keys in I2PSession and PrivateKeyFile 2018-12-04 20:59:38 +00:00
zzz
177f595f33 Javadoc fixes
NDT log tweaks
2018-12-04 20:34:51 +00:00
zzz
7c5162e155 I2CP: Move the port 7654 definition 2018-12-03 16:17:30 +00:00
zzz
5e7a277e98 I2CP: Consolidate all the port 7654 definitions 2018-12-03 15:22:36 +00:00
zzz
af2eea5916 NetDb: Don't send our RI in response to DSM when shutting down
reverts change from 2015
2018-12-03 12:23:57 +00:00
zzz
633a75e286 Wizard: Update text 2018-12-03 12:03:27 +00:00
zzz
6e053689b9 Transport: Add methods to force-disconnect a peer 2018-12-02 19:14:36 +00:00
zzz
ee722b7688 Router: Allow LS2 DSM down a tunnel 2018-12-02 18:53:13 +00:00
zzz
e6912453e0 DataHelper: Minor efficiency improvements in Properties methods 2018-12-02 15:21:30 +00:00
zzz
7c928f99ea Router: Only flood LS2 to router that supports it
Use same version check in StoreJob for flooding
2018-12-01 18:31:58 +00:00
zzz
9efa0eaa40 Router: Only send/verify LS2 with router that supports it
Remove old commented-out code
2018-12-01 18:18:59 +00:00
zzz
700d4d3b48 Console: Don't output tunnel IDs for meta LS
Router: Don't try to send to a meta LS in OCMOSJ
2018-12-01 16:27:53 +00:00
zzz
026ddb3278 Router: Add preliminary support for more LS2 types (proposal 123)
I2CP: Don't require privkeys for meta in CLS2 message
2018-12-01 13:13:51 +00:00
zzz
79440f84eb I2CP: Add preliminary support for LS2 (proposal 123) 2018-12-01 11:40:10 +00:00
zzz
922515dfe4 Crypto: Add X25519 keygen support 2018-11-30 17:29:08 +00:00
zzz
f1689187a4 Data: Check data length in typed constructors
Check for type match in KeyPair
Mark placeholder EncTypes 1-3 as unavailable
2018-11-30 15:56:27 +00:00
zzz
2487bca47c Crypto: Change X25519 key classes from Java keys to I2P keys,
in prep for new crypto (Proposal 144)
Add EncType
Fix PrivateKey constructor w/ EncType
Add support to KeyGenerator
2018-11-30 15:15:31 +00:00
zzz
cc4da1b4da Crypto: Move Curve25519 from router to core,
in prep for new crypto
2018-11-30 13:51:50 +00:00
zzz
a8bacd8727 Data: Change LS2 sign/verify to match proposal changes 2018-11-27 12:34:41 +00:00
zzz
b93be8bb4a Crypto: Define ElG length constants 2018-11-25 15:23:17 +00:00
zzz
9badfd07bf Utils: Catch ProviderException in SelfSignedGenerator (ticket #2344) 2018-11-25 15:17:27 +00:00
zzz
dc8a822b0e GeoIP: Reduce object churn, add test to command line tools 2018-11-25 15:16:18 +00:00
zzz
43e0d4f910 Reseed: Drop manas.ca reseeds as requested 2018-11-25 15:13:12 +00:00
zzz
d4caafb592 Bundle I2PControl 0.12, as a console webapp
Includes mods to use org.json.simple package.
See licenses/LICENSE-Apache2.0.txt
Includes jBCrypt:
Copyright (c) 2006 Damien Miller <djm@mindrot.org>
See licenses/LICENSE-jBCrypt.txt
Includes jsonrpc2 libs:
See licenses/LICENSE-Apache2.0.txt
http://software.dzhuvinov.com/json-rpc-2.0-server.html
Jars from maven central:
jsonrpc2-base-1.38.1-sources.jar  22-Oct-2017
jsonrpc2-server-1.11-sources.jar  16-Mar-2015
2018-11-25 13:26:43 +00:00
zzz
d6e350184c Test: Move ElGamalTest from core to router to follow tested class 2018-11-23 14:22:08 +00:00
zzz
535f2daab0 Router: Move ElGamalAESEngine from core to router
Client end-to-end crypto removed 13 years ago
Not used by any client, app, or plugin.
2018-11-23 13:04:28 +00:00
zzz
5c0c69c654 GeoIP: Add MaxMind GeoLite2-Country database 2018113, gzipped
Database and Contents Copyright (c) 2018 MaxMind, Inc.
This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/.
This database incorporates GeoNames [http://www.geonames.org] geographical data,
which is made available under the Creative Commons Attribution 3.0 License.
To view a copy of this license, visit http://www.creativecommons.org/licenses/by/3.0/us/.
- Drop old ipv4 and ipv6 data files and build scripts
- Build changes for new file
2018-11-20 14:25:49 +00:00
zzz
ef44c36f0c GeoIP: Hook maxmind geoip2 code into transport lookup. 2018-11-20 14:14:34 +00:00
zzz
f1297e7c62 GeoIP2: License and javadocs 2018-11-20 11:07:33 +00:00
zzz
21ca75da14 Modify GeoIP2-java
to remove the dependency on the large com.fasterxml.jackson.databind JSON package,
and use POJOs instead.
Add main() for testing
2018-11-20 11:05:46 +00:00
zzz
3923db0677 Modify MaxMind-DB-Reader-java
to remove the dependency on the large com.fasterxml.jackson.databind JSON package,
and use POJOs instead.
2018-11-20 11:03:47 +00:00
zzz
98de1ae404 This is GeoIP2-java release 2.12.0 2018-04-11
retrieved from <a href="https://github.com/maxmind/GeoIP2-java">github</a>.
For reading MaxMind GeoLite2 database files.
Contains only the DatabaseReader class from that package.
Unmodified as a baseline for future merges.
Does not compile.
To be heavily modified to remove the dependency on the large
com.fasterxml.jackson.databind JSON package,
and use POJOs instead, see following revs.
Apache 2.0 license.
2018-11-20 10:59:43 +00:00
zzz
76921b1e3e This is MaxMind-DB-Reader-java release 1.2.2 2017-02-17
retrieved from <a href="https://github.com/maxmind/MaxMind-DB-Reader-java">github</a>.
For reading MaxMind GeoLite2 database files.
Unmodified as a baseline for future merges.
Does not compile.
To be heavily modified to remove the dependency on the large
com.fasterxml.jackson.databind JSON package,
and use POJOs instead, see following revs.
Apache 2.0 license.
2018-11-20 10:57:33 +00:00
zzz
97e7a98aed JSON javadoc fixes 2018-11-19 14:59:14 +00:00
zzz
d263e42e1e Debian: Add libjson-simple-java dependency 2018-11-19 14:58:20 +00:00
zzz
54184f2889 Util: Switch users of net.minidev.json to com.json.simple
Tested with bundled 1.1.1 and Debian/Ubuntu 2.3.0
2018-11-19 14:48:21 +00:00
zzz
af9ce6d173 Change json lib from net.minidev.json to com.json.simple
because libjson-simple-java is in Debian (jessie+) and Ubuntu (trusty+).
Version 1.1.1 (Feb. 2012) from:
https://github.com/cliftonlabs/json-simple
https://github.com/fangyidong/json-simple/releases
License: Apache 2 (same as minidev)
Release info:
https://cliftonlabs.github.io/json-simple/
Current version 2.3.0 (in buster/sid/bionic+) is compatible.
The 3.x branch is incompatible.

No known external users of minidev (JSON_SMART) which was added in April 2018
(0.9.35) for DoH and the eventual bundling of i2pcontrol.
The i2pcontrol plugin was switched from json-simple to minidev in early 2018,
but it bundles the minidev source. When we bundle, we can switch it back.

Does not compile; see checkins to follow.
2018-11-19 14:44:31 +00:00
zzz
a1baf856f9 Wizard: Fix cancel test button 2018-11-18 16:13:47 +00:00
zzz
13d80e604d Wizard: Ajax fixes for IE (thx zlatinb) (summary bar also)
Form notices on results panel
Hide results if skipped
2018-11-18 13:43:18 +00:00
zzz
09ea40ce8e bump -5 2018-11-17 12:33:00 +00:00
zzz
bbccb476c0 NTCP2 unused code 2018-11-17 10:26:59 +00:00
zzz
0526d6fd15 add bw test to commandline 2018-11-17 10:25:20 +00:00
zzz
c5bd0bd079 NDT: Add support for test over SSL
error handling
log tweaks
2018-11-17 10:19:55 +00:00
zzz
6963d1f746 NDT: Fix NPE caused by last checkin 2018-11-16 21:36:46 +00:00
zzz
a5c38ba6e3 NDT: Remove Swing call 2018-11-16 19:47:36 +00:00
zzz
bfb6eba90c NDT: Thread tweaks 2018-11-16 19:43:11 +00:00
zzz
c07f68e622 NDT: Fix locale, spoof OS, fix log init 2018-11-16 19:27:57 +00:00
zzz
9b9810ea1e MLab: Switch to name server that supports SSL
swingemu cleanups
2018-11-16 17:12:32 +00:00
zzz
9a254aec55 NDT: Restore logging removed in last rev 2018-11-16 15:08:20 +00:00
zzz
aa11211e5e Wizard: Improve ajax
Drop unused test wrapper
Enable first run detection
Spelling fix
2018-11-16 14:34:11 +00:00
zzz
f1e9bf8222 bump -4 2018-11-15 19:45:21 +00:00
zzz
812baf8bd9 NDT log tweaks 2018-11-15 19:39:08 +00:00
zzz
5fe2019897 basic XHR 2018-11-15 19:05:40 +00:00
zzz
aebf7735fe NDT: remove unused user-agent code 2018-11-15 18:04:18 +00:00
zzz
bdbadcd8af Wizard: Warn if trying to start NDT twice 2018-11-15 17:53:50 +00:00
zzz
54a1609760 Wizard: Signal bwlimiter after config change
Remove debug log in form handler
2018-11-15 17:41:57 +00:00
zzz
0369d321d3 Wizard: Hook test results to form
More fixes and cleanups
2018-11-15 16:45:21 +00:00
zzz
62c712c462 Wizard: More test results 2018-11-15 15:07:17 +00:00
zzz
dc343b05a2 MLab/NDT: Hook test to wizard
Make helper the session scope, not handler
Reduce whitespace in formhandler.jsi
Notes on why FormHandler can't be session scope
Ajax still TODO
2018-11-15 14:24:46 +00:00
zzz
6462e2a292 MLab/NDT: Prep for connecting to wizard, fixes, cleanups 2018-11-14 14:48:10 +00:00
zzz
a35ad5fc57 javadocs 2018-11-13 19:37:38 +00:00
zzz
d95c284d3e MLab/NDT: static instance, log fixes, cleanups 2018-11-13 19:20:10 +00:00
zzz
84c0aa4072 javadoc 2018-11-13 19:18:42 +00:00
zzz
cec94e934a Console: Remove some config items from home page 2018-11-13 18:01:26 +00:00
zzz
b695242daf Router: LS2 handling for proposal 123 2018-11-13 18:00:05 +00:00
zzz
ddfc7c05ef Data: support non-string values in DataHelper.toString(Map) 2018-11-13 17:53:33 +00:00
zzz
9377b57c9e ElG minor cleanup 2018-11-13 17:51:52 +00:00
zzz
2bfbcf1ae9 jsi whitespace removal 2018-11-13 17:48:58 +00:00
zzz
f8f6375738 New install setup wizard
Work in progress, run on first install disabled.
Language and bw settings should work,
other panes todo.
2018-11-13 17:46:18 +00:00
zzz
c074467163 MLabRunner, adapted from Vuze/BiglyBT MLabPlugin.java
Github rev e927dca, Aug. 18, 2018.
From: https://github.com/BiglySoftware/BiglyBT-plugin-mlab
License: GPLv2
Work in progress, command line test works,
not hooked up to console yet, awaiting wizard
Build changes to copy in translation files,
and put the javadocs in the right place.
2018-11-13 17:26:38 +00:00
zzz
92787f8fcc swingemu fix to compile Tcpbw100 from 3.7.0.2 2018-11-13 17:21:54 +00:00
zzz
71d8f0e4d4 Vuze/BiglyBT Swing emulation layer for NDT Applet.
This is a simple shim to allow running the NDT Applet code
with minimal modifications.
From BiglyBT MLab plugin:
Github rev e927dca, Aug. 18, 2018.
From https://github.com/BiglySoftware/BiglyBT-plugin-mlab
This is for Tcpbw100 from NDT 3.6.2b;
not sufficient to compile Tcpbw100 from 3.7.0.2,
changes to follow.
License: GPLv2.
2018-11-13 17:20:33 +00:00
zzz
e20401373c NDT changes adapted from Vuze/BiglyBT, and changes for I2P.
Vuze/Bigly is based on NDT 3.6.2b, so their changes are
manually merged here.
This rev does not compile, requires swingemu package to follow.
Changes:
- Add external start hook to Tcpbw100 from BiglyBT
- Replace all Swing/AWT classes with emulations from BiglyBT
  (included in next checkin)
- Leave classes in edu.internet2.ndt package rather than
  moving to com.vuze.plugins.mlab heirarchy as Vuze/BiglyBT did
- Change IPv6 support setting to use I2P class for detection
- Change in-progress field to an AtomicBoolean
- Change from System to I2P logging
- Change JSON library package
- Comment out some applet code
- Javadoc fixes
2018-11-13 17:08:56 +00:00
zzz
6f7881c7ea Web100 Network Diagnostic Tool (NDT) Java Applet
Version 3.7.0.2 (May 20, 2015)
From: https://github.com/ndt-project/ndt/releases
Unmodified, as baseline for future merges.
Will not compile, changes adapted from BiglyBT to follow.
Copyright 2003 University of Chicago.
3-clause license with requirement that:
  Modified copies and works based on the Software must carry prominent
  notices stating that you changed specified portions of the Software.
See LICENSE.txt and licenses/LICENSE-NDT.txt
2018-11-13 16:58:05 +00:00
e326011a93 merge of '917225cb79561b9c536091f9c0790633ebbca610'
and 'c9243853a4211ebe92d964f7aa6ba57e624d6ab8'
2018-10-14 01:46:17 +00:00
zzz
e9ec043bf4 Data: Encrypted LS2, other LS2 changes 2018-10-13 14:36:39 +00:00
zzz
e391992251 Data: MetaLeaseSet2 data structure, LS2 test enhancements 2018-10-13 12:46:45 +00:00
zzz
02f5733eee Data: Prop 123 Meta Lease 2018-10-13 11:40:14 +00:00
zzz
a9f957504e Data: Lease2 and LeaseSet2 data structures, prop. 123 store types 2018-10-13 10:49:50 +00:00
zzz
f0b3815767 Data: Prep Lease and LeaseSet for subclassing 2018-10-13 10:41:16 +00:00
zzz
ee57bd7363 Data: Add encryption types for PublicKey, PrivateKey 2018-10-13 10:39:20 +00:00
zzz
4c970fa0aa Data: SPK log tweaks 2018-10-13 10:35:30 +00:00
zzz
0a99784221 Build: Add javac.classpath to junit.compileTest targets (ticket #2333) 2018-10-13 09:32:51 +00:00
eed8011725 OSX Launcher: dmg create script update 2018-10-13 04:06:44 +00:00
f8fb4a66dd OSX Launcher: Remove restart button 2018-10-13 04:06:02 +00:00
4f8af55378 OSX Launcher: Storyboard update 2018-10-13 04:05:38 +00:00
530470972f OSX Launcher: general cleanup, responsibility delegation, and fixes 2018-10-13 03:54:01 +00:00
a9bf9e0657 OSX Launcher: make deployer an property so it's not deleted in mid-extract by GC. 2018-10-13 03:52:40 +00:00
e2d22645e1 OSX Launcher:
* UI Bugfixes/features
    * restart might work
    * open console button should work
    * cleanup
2018-10-13 03:51:22 +00:00
5f077891ae OSX Launcher: Storyboard update 2018-10-13 03:47:28 +00:00
1a00f73191 OSX Launcher: Extended start/stop/load/unload to be able to set terminationHandler for more reliable execution. 2018-10-12 20:52:24 +00:00
d8cfe21e92 OSX Launcher: make some string functions inline 2018-10-12 20:07:59 +00:00
ee9976c288 OSX Launcher: Xcode UI elements update. 2018-10-12 20:07:36 +00:00
10707c6d71 merge of '1f8e31dab7ed66ddd8f332fca5784b4934d0c9b0'
and '4197dba37e7c738c7b1125b3e407a7bc0b2c972a'
2018-10-11 17:04:49 +00:00
8e988c39e9 OSX Launcher: Updated build instructions in readme 2018-10-11 17:03:11 +00:00
e3ab9f8e91 OSX Launcher: Swift GUI code updates, most related to the new launch method. 2018-10-11 17:02:42 +00:00
96d31995e1 OSX Launcher: cleanup and restructuring the main swift file 2018-10-11 17:01:21 +00:00
3988a8645d OSX Launcher: major updates to the glue between 'backend' and GUI. Implemented the use of the new LaunchAgent classes 2018-10-11 16:59:59 +00:00
b25dec12d1 OSX Launcher: some changes to the Swift<->Objective-C bridge 2018-10-11 16:58:20 +00:00
f57f8c6083 Some more xcode metadata files 2018-10-11 16:56:26 +00:00
2862be564e XCode metadata files update 2018-10-11 16:55:36 +00:00
45b4f426a8 OSX Launcher: Big rewrite of swift code where it now has the capability of creating services.
The router management has been much easier with this approach as it uses launchd to do the dirty work.
This code also uses java_home as a wrapper instead of locating the java binary by itself. This also contribute to the improvements.
2018-10-11 16:55:07 +00:00
51cbd8ef87 Dropping unused swift class 2018-10-11 16:49:51 +00:00
8b2c3de795 OSX Launcher: Cleaning up DetectJava.swift 2018-10-11 16:49:19 +00:00
969bc2dee3 OSX Launcher: String extensions update 2018-10-11 16:48:10 +00:00
zzz
77e539a73c Docs: Add maven doc from str4d via mattermost
Update dependencies doc
2018-10-11 14:33:23 +00:00
zzz
2de36ee343 Console: Remove static Server ref, hang off RCR 2018-10-11 13:10:33 +00:00
7dbf568212 OSX Launcher: Refactor deployment code to own file, + code cleanups. 2018-10-11 11:55:05 +00:00
7e9d1939b1 OSX Launcher: Storyboard update 2018-10-11 11:51:55 +00:00
48877079ca OSX Launcher: Log all events for debugging 2018-10-11 11:50:00 +00:00
zzz
e68182a157 Build: Provide option to prevent Class-Path in manifests (ticket #2317) 2018-10-10 12:30:34 +00:00
zzz
06914f9fd4 Sybil: Take HTML out of reason string for easier parsing and storage 2018-10-09 16:56:50 +00:00
zzz
8332385f05 Sybil: More prep and refactor for background analysis
Put dest name in too-close reasons
2018-10-09 16:37:29 +00:00
zzz
19b1b3cec4 Sybil: Prep for background analysis
sort threat points
consolidate strings
2018-10-09 14:55:13 +00:00
zzz
bdd7c35ab3 Console: Remove static StatSummarizer ref, hang off ClientAppManager 2018-10-08 19:31:54 +00:00
zzz
184b6179e5 i2psnark: Sync field access (findbugs) 2018-10-08 14:24:46 +00:00
zzz
6fccfc990a Use Double.compare() in comparators (findbugs) 2018-10-08 13:34:15 +00:00
zzz
524c375944 Data: Drop long-deprecated and unused boolean methods and related tests 2018-10-08 12:43:58 +00:00
zzz
5041bb8531 netdb class cleanup 2018-10-08 12:13:24 +00:00
zzz
7dfee5f0ab NTCP2 log tweak 2018-10-07 19:50:59 +00:00
zzz
e3d456c733 Debian: Don't override dh_builddeb (ticket #2329) 2018-10-07 15:54:12 +00:00
zzz
e2a41b7748 Console: Sort RAs in Sybil tool 2018-10-07 14:52:24 +00:00
zzz
477fa9ef3a Build: Fix build config with-libtomcat8-java but not with-libjetty9-java,
by copying required jetty jar to jetty-apache-jsp.jar
2018-10-07 14:29:47 +00:00
zzz
0cd67acd19 Console: /netdb fixes (ticket #2326):
- 'O' cap search won't include P/X
- Fix highlighted tab for transport search
- Use POST instead of GET
2018-10-06 22:59:58 +00:00
zzz
aafccc0132 Console: Fix SSU sort links broken in last checkin 2018-10-06 17:40:05 +00:00
zzz
ff1e53a0e3 Console: Fix bw cap display for P/X on /tunnels 2018-10-06 17:09:14 +00:00
zzz
b8d33f7426 Console: Tab /peers, fix html errors 2018-10-06 16:50:32 +00:00
zzz
8dc3163c73 flip sections on /confighome 2018-10-06 13:33:19 +00:00
zzz
960636c6bf Console: Sort addresses in RIs, remove note about O cap 2018-10-06 13:25:22 +00:00
zzz
e528775768 debian changelogs 2018-10-05 18:41:48 +00:00
zzz
52739165a1 0.9.37 2018-10-04 10:01:44 +00:00
zzz
eb1d848372 bump for review 2018-10-01 17:41:20 +00:00
zzz
2a9c39ca6e missed one 2018-10-01 17:04:26 +00:00
zzz
b84b298ec8 pull translations from tx 2018-10-01 16:55:26 +00:00
e59dd3bcec Mac OSX Launcher: LICENSE file for the sbt bash script. 2018-09-30 13:55:06 +00:00
d6fc0adb56 Mac OSX Launcher: Removed dmgconfig.py, added public domain to sharedqueue.h and updated xcode for the dmgconfig.py removal. 2018-09-30 13:42:32 +00:00
5041883d5a Mac OSX Launcher: Update readme regarding Oracle's downlad url. 2018-09-30 11:37:12 +00:00
5ed701dff3 Mac OSX Launcher: updates in logging, remove timestamp from Objc's MLog 2018-09-30 11:34:20 +00:00
410f9df4e4 Mac OSX Launcher: The launcher will now write the pid of the router to a file like the old wrapper did. 2018-09-30 11:29:21 +00:00
b5497ef72e Mac OSX Launcher: Cancel stream that can cause high cpu load on router stop. 2018-09-30 11:02:28 +00:00
2233f7f47b Mac OSX Launcher:
* Update readme about event manager
  * RouterTask can now detect a running router by scanning processes&arguments for i2p.jar
  * The logger will log to OSX's default: ~/Library/Logs/I2P/[whatever].log
2018-09-30 09:40:43 +00:00
36b758f2c0 Mac OSX Launcher: Removing unused/change-in-plans files 2018-09-30 09:37:51 +00:00
ae0d420f5f Mac OSX Launcher:
* Added script to check for latest java via xcode
  * Updated xcode project metadata files
  * Update dmg create script
  * Make xcode write version.h under build
  * Added template for version.h
2018-09-30 09:35:28 +00:00
b40b987c0f Mac OSX Launcher:
* Fixed issue with >> and compilers in C++ in subprocess.hpp
  * Added queue for logger
  * Misc
2018-09-30 09:32:49 +00:00
e8d371ed9b Mac OSX Launcher: C api of the logger to become available for Swift/Objective-C 2018-09-30 09:31:29 +00:00
5a0017a8fe Mac OSX Launcher: Adding a logger library I wrote a good while ago, refactored it to work with the launcher. 2018-09-30 09:30:39 +00:00
751f15c1b1 Update .mtn-ignore for osx stuff 2018-09-30 09:28:52 +00:00
zzz
d1b2a4e51c apparmor update 2018-09-29 19:44:23 +00:00
zzz
6ef6b3b705 new geoipv6 data, bump builddate 2018-09-29 17:20:57 +00:00
c069f76324 Add "clearer" div to Hidden Services Of Interest section in /home so that nested floating divs are displayed properly 2018-09-29 08:48:31 +00:00
9a11165bfc propagate from branch 'i2p.i2p' (head effa099b40ff593227c59707a33922176dc775b1)
to branch 'i2p.i2p.slumlord' (head 5ddcc0dd19779b78356459bd074f75943d5d42d1)
2018-09-29 08:40:20 +00:00
zzz
3a5f020dac SSL Wizard: Don't put public IP in SAN 2018-09-27 15:05:57 +00:00
zzz
d67d501b28 Data: Don't corrupt hidden RI with addresses 2018-09-27 14:38:18 +00:00
zzz
a69aa15acd drop zerobin 2018-09-27 14:12:30 +00:00
zzz
c391dacf7d sybil tweaks 2018-09-27 14:07:38 +00:00
zzz
69f380f4a1 flip /home sections 2018-09-26 22:59:55 +00:00
22a0f396e6 Mac OS X Launcher:
* Enabled Apple's "Hardened Runtime", however unsecure memory had to be allowed to spawn java etc.
  * Updated docs about Event Manager code
  * Make the launcher handle cases where extract is incomplete or invalid
  * Bugfixes as always
2018-09-26 20:42:58 +00:00
zzz
d27000ec07 Crypto: Avoid java-to-i2p ECDSA privkey conversion when generating CRL,
failing on Android for unknown reasons (ticket #2296)
2018-09-26 15:19:14 +00:00
zzz
b82ace8a84 Router: Don't add 'O' cap for P/X anymore 2018-09-26 14:20:11 +00:00
zzz
b7ff82eb82 IRC: Make inbound whitelist static 2018-09-26 14:16:05 +00:00
zzz
f7ae675201 cleanup 2018-09-26 14:12:05 +00:00
zzz
39aa2c597e Utils: Enhance exception message for ticket #2296 2018-09-26 14:04:36 +00:00
zzz
34f0d7d7b3 Build: Compile jsps in-order for reproducibility (ticket #2279) 2018-09-24 15:52:42 +00:00
zzz
e59d7a821b Plugins: Blacklist neodatis and seedless for Java 9+ (ticket #2295) 2018-09-23 15:11:16 +00:00
7a72049e28 Mac OS X Launcher:
* Bugfixes as always
  * Added Sparkle (native updater, https://sparkle-project.org/ )
  * The launcher will now extract and overwrite older versions if found
  * Rewrite of the java extraction part (to enable overwrite)
  * Move more functionality to use EventManager as it works quite well
  * Added check for updates menu item
2018-09-23 03:33:29 +00:00
3b38f5a161 Mac OS X Launcher:
* In general bugfixes
  * Introduced event manager for better control flow
  * Splitted RouterStatusView to own file
  * Added shell script to setup and produce dmg file
2018-09-22 22:13:40 +00:00
zzz
829eb665e9 NTCP: Fix handling of multiple connections,
change termination code for expired RI, log tweaks
2018-09-22 12:13:51 +00:00
zzz
4369b7d122 merge of 'dba1ad61c390f95055923ae1fb35e60552f617c6'
and 'f84ff8b356783cf12619b83a8104e55fe76a7411'
2018-09-22 12:11:43 +00:00
70fa2dae0a Mac OS X Launcher: Let version detection etc happen even a router is already started. 2018-09-20 03:27:37 +00:00
85ebb2f847 Mac OS X Launcher: Removed unused header file. 2018-09-20 03:22:41 +00:00
e8decff5cd Mac OS X Launcher: more cleanup and some bugfixes. 2018-09-20 03:20:39 +00:00
3c0a8cf4ab Mac OSX Launcher: A lot of bugfixes, refactoring and cleanup. 2018-09-20 02:38:44 +00:00
eb81cadac0 OSX Launcher: Removing script for old build system 2018-09-19 19:12:26 +00:00
0f8a61803f Remove license for now unused library. 2018-09-19 17:01:12 +00:00
e046418f8f Cleaning up the code base, remove dead code and failed attempts. 2018-09-19 17:00:17 +00:00
802115e813 Updating .mtn-ignore file 2018-09-19 16:13:05 +00:00
9b958e4427 Moving replace function to strutil.hpp 2018-09-19 16:03:39 +00:00
46ac008775 #2298 - Improve formatting to make translation-related activity easier; More details on trac 2018-09-19 10:37:37 +00:00
281c5f579f Bugfixes, improvements, more error handling and stability to the osx launcher. 2018-09-19 00:37:16 +00:00
01a05f7600 Adding license for forked subprocess code in swift.
MIT, ref. https://github.com/marcoconti83/morione
2018-09-19 00:14:25 +00:00
f76874ac19 Adding XCode workspace & Xcode project, and some files missing from last commit.
Please note that Xcode project embedds the packing script (meaning it runs "ant" - zip files, and moves it to bundle)
2018-09-18 15:39:32 +00:00
7615b9236b Adding all new code, removed a lot obsolete code and fixed import paths etc.
Mac OS X launcher:
* UI built on Swift
  * Why?
    * Apple seems to on purpose make it harder to get into Objective-C these days
    * Swift is compiled to native code, but has easiness of Javascript in programming
    * Perfect for the OS X UI, many guides & tutorials as well
* "Backend" in Objective-C++ / C++14
  * Why?
    * Originally written in Objective-C / C++14 with C++17 backports
    * Only for backend because of the time the development takes
    *

Short summary of features:

* Java
  * It can detect java from:
    * JAVA_HOME environment variable
    * "Internet Plug-Ins" Apple stuff
    * By the /usr/libexec/java_home binary helper
  * It can unpack a new version of I2P
    * Unpacks to ~/Library/I2P
    * Can check currently unpacked version in ~/Library/I2P via i2p.jar's "net.i2p.CoreVersion"

  * User Interface (a popover, see https://youtu.be/k8L3lQ5rUq0 for example of this concept)
    * Router control tab view
      * It can start the router
      * It can stop the router
      * It can detect already running router, then avoid fireing up one
      * It can show basic information about the router state & version
    * Log view tab (not yet done)
  * While left-click triggers popover, right-click draws a minimal context menu
2018-09-18 15:36:38 +00:00
1bddf5527a Commiting XCode's image/resources library alone since it's massive with blobs. 2018-09-18 15:20:21 +00:00
beede9505e Preparing for XCode project. Removing now obsolete files. 2018-09-18 15:19:23 +00:00
zzz
b74abbe4de Tomcat 8.5.34 2018-09-16 20:37:47 +00:00
zzz
6b53a4fac4 Build: Fix hang with Tomcat 8.5.33+ (ticket #2307) 2018-09-16 11:29:03 +00:00
be4c1afe13 propagate from branch 'i2p.i2p' (head 056bc63e77d33f38fb1644b84f9071693ff754a3)
to branch 'i2p.i2p.slumlord' (head 95a150a83187020444206ec94d48c4e4789b7174)
2018-08-31 01:56:37 +00:00
4ead982831 Fix port forwarding line in readme.html 2018-08-31 01:54:30 +00:00
4011680fad propagate from branch 'i2p.i2p' (head f7b28892c564f2b360f9f9dc8a8ad11c760b347a)
to branch 'i2p.i2p.slumlord' (head 0eab0dc27f9269e2791700882ad4b289d566348a)
2018-08-27 13:13:42 +00:00
zzz
48c787ba8d Debian: Prevent dup version (ticket #2300) 2018-08-27 11:34:48 +00:00
c9002b327b #2293 - Use CachedIteratorCollection in PeerState 2018-08-27 06:36:49 +00:00
873087441a Use CachedIteratorCollection in PeerState 2018-08-27 06:36:05 +00:00
f6c45355a4 propagate from branch 'i2p.i2p' (head fea8e3400c114ad820bf3f0eb7d18336b85027cb)
to branch 'i2p.i2p.slumlord' (head 472429fc9d4d273e0d05de5ae0c075c5ebfca45f)
2018-08-27 06:30:31 +00:00
92cc66ecb2 Update RouterVersion.java to match i2p.i2p to allow for propagation from i2p.i2p 2018-08-27 06:25:51 +00:00
773676075c Revert PeerState.java temporarily to allow for propagation from i2p.i2p 2018-08-27 06:20:40 +00:00
zzz
e64ad7ce57 More findbugs all over 2018-08-26 15:13:49 +00:00
zzz
1f92232253 Findbugs all over 2018-08-26 13:50:40 +00:00
zzz
db54edc36d NTCP2: Publish outbound address after transition to firewalled
Fix exception thrower
2018-08-26 12:05:49 +00:00
zzz
3adbea9c76 Better message on su3 certificate errors 2018-08-25 22:26:47 +00:00
zzz
483f043d3c Bettor error message on covariant fail 2018-08-25 18:22:55 +00:00
zzz
819985f3b4 lint 2018-08-25 17:56:30 +00:00
zzz
21fbcb8749 NTCP2: Enable by default 2018-08-25 17:35:29 +00:00
zzz
4a03b6fcb0 i2psnark: Better comment deduping, fixes rating average 2018-08-25 16:35:41 +00:00
zzz
57ddc8ea4f conversion cleanup 2018-08-25 14:29:32 +00:00
zzz
c3881a811b fix deprecations 2018-08-25 13:26:28 +00:00
zzz
ff551b19fb debian doc update 2018-08-23 22:16:50 +00:00
zzz
a45f5374e4 Ubuntu 0.9.36 2018-08-23 22:10:04 +00:00
zzz
1453527382 NTCP2 remove unused code 2018-08-23 15:27:05 +00:00
zzz
cc2056d4cf NTCP2 code consolidation, minor changes 2018-08-23 15:25:45 +00:00
zzz
6cf84ac5a3 log tweak 2018-08-23 15:22:30 +00:00
zzz
e243e0ddba streaming minor tweaks 2018-08-23 15:20:29 +00:00
zzz
fddaa47ded whitespace fix 2018-08-23 15:18:54 +00:00
zzz
658faf9dcf 0.9.36 2018-08-22 20:07:41 +00:00
zzz
68feb080e7 Jetty 9.2.25.v20180606 2018-08-20 13:18:29 +00:00
zzz
f4cab090cd man fixes 2018-08-19 21:41:05 +00:00
zzz
d69f078d8d new man translations 2018-08-19 21:37:19 +00:00
zzz
f2e00ca130 More translation updates
GeoIPv6 update 2018-08-16 from Maxmind
2018-08-19 21:25:46 +00:00
zzz
ea3ce805e4 log typo 2018-08-19 21:02:20 +00:00
zzz
96f7c15e6e pull from tx 2018-08-19 21:00:22 +00:00
zzz
a846271cd4 NTCP2: Catch bad IV exception 2018-08-19 18:56:59 +00:00
da476be75e Fixed neither's license with including LoopPerfect's
license line.
2018-08-19 17:17:42 +00:00
a5830f0203 propagate from branch 'i2p.i2p' (head ac85a7ea91b76b247e7987f5baed14167c5a0661)
to branch 'i2p.i2p.slumlord' (head 5ee52fb5eff362cca2a2bb3a6130aecc2543e734)
2018-08-19 13:51:36 +00:00
zzz
a01bfff974 merge of '412307149f63744814cd43d5df85bc227b8e4667'
and 'cd23f58885590026a755c32f8f2c2f513e22e21c'
2018-08-18 16:18:42 +00:00
8b9e5de9a7 merge of '3985486d761603f3e27f0f9e50fe3ae6d6a022be'
and '7acf152f554c78474ef071ac74ceb6a4889c600b'
2018-08-18 15:49:10 +00:00
aef68eb93e Remove duplicated file. 2018-08-18 15:49:05 +00:00
4a5708ab78 merge of 'e44534030f8f27481da60564e03f4b097f032c89'
and 'eea0aed1232ed304fa6ffeaeee28d9399bf3efdc'
2018-08-18 15:48:16 +00:00
7cf79a3a20 Adding LICENSE file for Boost and MIT.
This licenses the files lying under the path
launchers/macosx/obj-cpp/include in this repository.

launchers/macosx/obj-cpp/include/neither is MIT, while the
rest unless spesified in the header, is Boost.

C++17 variant, eggs implementation is licensed under Boost,
original source can be found at http://eggs-cpp.github.io/variant/
forked at: f801e971d054341430cb91d79aa0bb4d0bf24330

C++ Neither is licensed under MIT, original source can be found at
https://github.com/LoopPerfect/neither
forked at: a2bbaa25d62c538fb044a6eda5254e7a068e4ff7

C++ Optional implementation is licensed under Boost, original source
found at https://github.com/akrzemi1/Optional
forked at: f6249e7fdcb80131c390a083f1621d96023e72e9
2018-08-18 15:47:48 +00:00
8bebda2e35 Remove duplicated file. 2018-08-18 15:47:35 +00:00
42fd4c645c Revert changes checked-in in revision ec64be9e9faf415091bda0fe3567c6460310f7ad as they were not intended for this branch 2018-08-17 11:16:19 +00:00
211533f554 Update PeerState to use CachedIteratorCollection as propagation from i2p.i2p appears to have wiped out changes 2018-08-17 10:05:17 +00:00
11945c823e propagate from branch 'i2p.i2p' (head ec664ddfcb1f460b67cfcb0a5be1d162bb361b5a)
to branch 'i2p.i2p.slumlord' (head c521652f676d8c99cc31916977229cca561dc31b)
2018-08-17 09:23:45 +00:00
26189704f3 Re-add file 2018-08-17 08:37:41 +00:00
5b114f4bf3 Removing files temporarily to allow for propagation from i2p.i2p branch 2018-08-17 08:37:03 +00:00
zzz
c455f15b2a i2ptunnel: Change read timeout defaults now that streaming read timeout works 2018-08-16 18:39:07 +00:00
zzz
30fefa44ec Console: Format part. tunnel rate
Make table headers consistent
2018-08-13 17:38:57 +00:00
e310a6ab31 Add CachedIteratorCollectionTest 2018-08-13 08:38:24 +00:00
a40ff5f528 Add CachedIteratorCollectionTest - junit tests for CachedIteratorCollection 2018-08-13 08:33:45 +00:00
a7e31f1f2b propagate from branch 'i2p.i2p' (head 28e7fe42a73f3806f0d5f805801039e9b6ba66d3)
to branch 'i2p.i2p.slumlord' (head d33d35ee38f522ea71205b041f00420405684dbf)
2018-08-11 06:34:30 +00:00
zzz
1c73be515a move return inside sync 2018-08-10 16:36:33 +00:00
zzz
8dbc11566b log level tweaks 2018-08-10 16:35:03 +00:00
8408e9fe22 propagate from branch 'i2p.i2p' (head e6dfc137396019d82f0f6f08216b5b2496366f1c)
to branch 'i2p.i2p.slumlord' (head 8944540a640826823268268cfcc018be8aa1bc3d)
2018-08-09 09:15:21 +00:00
zzz
62151ef525 poupdate-source 2018-08-08 18:55:22 +00:00
zzz
f855421901 tx resource for readme 2018-08-08 18:46:43 +00:00
61d2e3c208 propagate from branch 'i2p.i2p' (head 9ad2c13f2722c6d9b6387b333e803df6f58a02c8)
to branch 'i2p.i2p.slumlord' (head ec6542c798755f65bc61caf00100a9d49b7d61a0)
2018-08-08 12:01:54 +00:00
zzz
9e237b5086 new hosts 2018-08-07 20:58:57 +00:00
f97ec8820c CachedIteratorCollection - Fix add() function 2018-08-07 12:04:49 +00:00
f9d5d48a4d Clean up code 2018-08-07 12:04:31 +00:00
733d3496a9 Append "-sl" to version string 2018-08-07 10:15:27 +00:00
5a6ee17f3c CachedIteratorCollection - Fix bug in add() function
Add comments for remove() function
2018-08-07 08:28:16 +00:00
177ef573ee Update javadocs for CachedIteratorCollection 2018-08-06 15:14:15 +00:00
57fee62557 Fix PeerState 2018-08-06 15:13:41 +00:00
7084c86e76 Update CachedIteratorCollection javadocs 2018-08-06 15:08:41 +00:00
68482cab43 propagate from branch 'i2p.i2p' (head 561efd6f3e61619f76be7effbd775178a116007b)
to branch 'i2p.i2p.slumlord' (head 11d4aac5f949cac61aaf08c22e0c2a862f09c91a)
2018-08-06 14:52:03 +00:00
fc22d0fcbc merge of '5ceba68eb23bd6229800383e7f9e917bff86b83f'
and '9b8562d09e23badb58dadcedb61bb9a6fa446e6a'
2018-08-06 12:07:25 +00:00
da5c922c40 Rename CachedIteratorAbstractCollection.java to CachedIteratorCollection.java 2018-08-06 12:05:51 +00:00
zzz
aaebbdedcc Debian: Remove old flags dir so symlink gets created 2018-08-06 11:33:59 +00:00
d2b32bc754 PeerState patched for CachedIteratorAbstractCollection; With branch 'i2p.i2p.slumlord' this time 2018-08-06 10:08:44 +00:00
4aff615687 Revert changes to PeerState and .idea/ folder in previous commit 2018-08-06 09:47:32 +00:00
0b3abb3b63 Add CachedIteratorAbstractCollection
Update PeerState.java to use CachedIteratorAbstract
Add some debugging lines to determine cause(s) of higher udp.sendFailed/sendAggressiveFailed stats
2018-08-06 08:54:44 +00:00
zzz
775188a36c I2NP: Fix DI test 2018-08-04 16:31:10 +00:00
zzz
21fe962abd I2NP: Remove unused OutputStream methods 2018-08-04 15:23:36 +00:00
zzz
9b3eb8d2c3 I2NP: Change DeliveryInstructions internal flags storage from long to int 2018-08-04 15:16:21 +00:00
zzz
a5a5f7dbde I2NP: Don't call toLong() for 1 byte 2018-08-04 14:50:33 +00:00
zzz
30f25de49b I2NP: Remove unused InputStream parsing methods 2018-08-04 14:35:00 +00:00
zzz
2cc362ca7b javadoc fix 2018-08-04 14:33:57 +00:00
zzz
f1df49606d Data: Check sooner for unknown sig type;
minor efficiency improvements in parsing
2018-08-04 13:41:01 +00:00
zzz
c0be83fe08 readme edits 2018-08-03 23:10:38 +00:00
zzz
0b2ef3da13 NTCP2: Fix termination handling
log tweaks
2018-08-03 20:14:46 +00:00
zzz
526aadb559 NTCP2: Fix padding calculation for small frames 2018-08-02 21:08:20 +00:00
zzz
8d629de23d readme edits 2018-08-02 20:50:18 +00:00
zzz
8fb7bd264f NTCP2: Remove debug code 2018-08-02 11:48:55 +00:00
zzz
2e85c2387c merge of '2854c97dc4c2cef6d9bd92f80032b60ad86ab030'
and 'df5322d83c1545129c9ed8f3e2dc5378ffb1b4a3'
2018-08-02 10:56:39 +00:00
zzz
1b6c002883 NTCP2: Send termination on idle timeout
Use timer to delay close after sending termination
Prevent sending more data after termination
2018-08-02 10:56:14 +00:00
7121e3e52e #2239 - Updating readme.html, work in progress. 2018-08-01 11:44:33 +00:00
zzz
726d2f4752 ngettext 2018-07-31 14:27:18 +00:00
zzz
75d86727ec SSU: Pull call out of loop for efficiency 2018-07-31 14:26:03 +00:00
zzz
5c3e408772 i2psnark: Don't disconnect seeds immediately if comments enabled (ticket #2288)
Implement variable timeout
Hardcode handshake bytes
Log tweaks
2018-07-31 14:13:33 +00:00
zzz
a51d260a78 Streaming: More efficient copying in MessageInputStream
Log tweaks
2018-07-29 13:30:02 +00:00
zzz
b5ed39f10d Streaming: Throw exception on read timeout (ticket #2292)
Log tweaks
2018-07-28 21:44:56 +00:00
zzz
f12dbba3d6 SusiMail: Catch ISE in get/setAttribute() (ticket #1529) 2018-07-28 19:48:22 +00:00
zzz
9b9f96daf8 i2psnark: Tweak 1st column sort order 2018-07-28 19:34:16 +00:00
zzz
b8437cd247 Console: Catch ISE in get/setAttribute() (ticket #1529) 2018-07-28 19:03:01 +00:00
zzz
63f0355680 Console: Prep for removing themes (ticket #2272) 2018-07-28 13:47:08 +00:00
zzz
2586db91c0 Router: Implement router.rejectStartupTime config (ticket #2285) 2018-07-27 15:58:14 +00:00
zzz
fc817b0ec0 NTCP2: Defer NTCP 1/2 classifiation until receiving 64 bytes 2018-07-26 12:17:50 +00:00
zzz
2f2ff4f181 Console: Split netdb output into pages 2018-07-26 12:15:42 +00:00
zzz
68e8e597e8 i2psnark: Disable gzip for KRPC
it's already disabled at the session level, but in case we change it later
2018-07-25 15:49:32 +00:00
zzz
e7202e0ee6 javadoc html fix 2018-07-25 15:46:20 +00:00
zzz
a700747595 warning tweak 2018-07-25 15:44:06 +00:00
zzz
0bcf9caf7a doc typo fix 2018-07-25 15:43:40 +00:00
zzz
41e20ae707 Utils: Don't truncate at a ZWJ 2018-07-25 15:34:23 +00:00
zzz
a6c506a176 Utils: Debug code to find double-frees 2018-07-25 12:51:40 +00:00
zzz
7338282bbe merge of '00fccb01d49a6b94638c648438bc4059e5ee0796'
and 'a6dc0bea5ee5569b71fa349be025d6a027d46a09'
2018-07-25 12:49:50 +00:00
f9fbc76dd0 Code changes:
* Port check to see if i2p is already running.
* All buttons in the menu should work now.
* Rewrote some C++ to Objective-C, which fits better with the integration.
* Misc cleanup.
* Made the launch of router repeatable.
2018-07-24 16:26:40 +00:00
2ee1a212c8 Added BufferedOutputStream to BaseExtractor for better performance. 2018-07-24 16:23:08 +00:00
fe41dec699 Adding OSX graphics. 2018-07-24 16:21:53 +00:00
2893cbb2e6 Fix typos pointed out by yahoe.001 on transifex 2018-07-24 08:18:26 +00:00
zzz
18e24edce5 NTCP2: Fix double-free of buffers after msg3 p2 fails
Fix sending termination after msg3 p2 fails
2018-07-23 20:50:42 +00:00
zzz
f554ca3493 Console: Add support for IPv6 prefix lookup 2018-07-22 12:56:04 +00:00
03e10835fb Fix Gradle build 2018-07-21 15:19:46 +00:00
zzz
1470ea2d72 reduce more log levels 2018-07-21 13:27:28 +00:00
zzz
292b7e6dc1 NTCP2 (ticket #2286):
Fix error sending large message
Fix NPE after handshake failure
2018-07-21 13:11:41 +00:00
zzz
2800791f00 Test: Backport EdDSA junit changes from github; fixes NPE in 2 tests 2018-07-20 15:25:15 +00:00
zzz
c35d1583d4 NTCP2: Reduce log levels 2018-07-19 14:17:37 +00:00
zzz
412fcfb578 Console: Add netdb search by transport 2018-07-19 14:15:43 +00:00
zzz
80973ca21a Build: Add check for libtaglibs package in debian builds 2018-07-18 13:15:36 +00:00
zzz
1b0102bd1c i2psnark: Enable sequential order option for single-file torrents (ticket #2234) 2018-07-18 12:08:40 +00:00
zzz
2a68a01a35 Console: Fix HTML errors on /configservice w/o wrapper 2018-07-16 18:09:54 +00:00
zzz
63f4e04624 Router: Add CLI tool to generate family keys 2018-07-15 14:39:02 +00:00
zzz
6c3cf9bf77 I2CP: Add option for forcing gzip on/off per-message
Use option in streaming SYN and CLOSE packets
2018-07-15 13:50:31 +00:00
zzz
4ff62c291e NTCP: Increase failsafe sleep threshold for busy routers (ticket #2251)
Hardcode useDirectBuffers config
2018-07-15 11:39:30 +00:00
zzz
d4992936b1 i2psnark: Recreate deleted files on recheck/reopen (ticket #2125) 2018-07-14 17:09:51 +00:00
zzz
2a0b927022 i2psnark: CSS for in-order form (ticket #2234) 2018-07-13 16:58:55 +00:00
17c2a2a580 merge of '639a99d15ec0e7cbf0b44fd44564a6ae304b8673'
and '6b24962b7b3513e22153068b62922cabebb2dee4'
2018-07-13 10:10:14 +00:00
a92993e05b Added some more header files, and fixed much of the build system. 2018-07-13 10:10:04 +00:00
3fcef90cc2 merge of '3307710b35da5de0073b4b3e26fb33d180591563'
and '7532ae57e808a03a2c4500c861e320848729cb27'
2018-07-13 10:09:14 +00:00
8c78d4f83e A functional programming "library" (some headers with some magic love found in scala) 2018-07-13 10:09:08 +00:00
2daeb6d1a1 merge of '54817017a7af30d5a701bb76ce4c5f18479d525c'
and 'b90d952c362ac02ebfadf0049cfdca61e870cd87'
2018-07-13 09:12:25 +00:00
c8490a3140 Starting to get stable and usable. Basically everything is based on callbacks. 2018-07-13 09:11:46 +00:00
818e70d3a7 merge of 'aca699a4227d198b550c8579ebe091a1f5a2578e'
and 'e24559aa0df77c42ee3705237fe35ca3436a1bd5'
2018-07-13 06:30:22 +00:00
6d0f80fa1e Fixed a load of issues related to my "sync" approach, and Mac OSX's "async" API. 2018-07-13 06:30:16 +00:00
zzz
5fd1b69532 i2psnark: Sequential piece priority within each file (ticket #2234) 2018-07-12 15:34:13 +00:00
zzz
e24ebf4bda i2psnark: UI config for sequential download (ticket #2234)
Sort with Collator
CSS TODO
2018-07-12 13:41:44 +00:00
zzz
d34087f4d0 i2psnark: Stub out support for sequential download (ticket #2234) 2018-07-12 11:19:56 +00:00
zzz
b78870de54 NTCP2: Remove dup getHash() method 2018-07-11 14:25:43 +00:00
zzz
9d2f684ac7 Streaming: Change enforce protocol default to true 2018-07-11 13:04:13 +00:00
zzz
6ad1de8d85 Util: Convert more caches to TryCache (ticket #2263) 2018-07-10 21:21:32 +00:00
zzz
f6da5f43aa CPUID: Recognize Hygon processors 2018-07-10 20:33:23 +00:00
zzz
02669fafde SSU: Sync/notify improvements (ticket #2260) 2018-07-10 17:14:14 +00:00
zzz
30fc9544fe Installer: Fix Windows 10 64-bit install for IzPack 4/5 (ticket #1864)
Add more IzPack 5 build targets
2018-07-10 12:19:29 +00:00
zzz
307a68aa5a Installer: Add support for IzPack 5 (ticket #1864)
fix typo in postinstall.sh
2018-07-10 11:19:41 +00:00
2664c417e3 merge of '5a7bb5cbf6a37b5e282620eeb893459dc3ebe4af'
and 'b11d43f037fd0eb4248f7388e26af31209aaf0a2'
2018-07-08 13:16:16 +00:00
21b3864dfd Moved some logic to C++, which will extract i2p if it's not already,
and then secondly fire up the router in a second java process when 
extraction is completed. Gonna use "optional" type in C++ to make
global variables a bit less painful to use.
2018-07-08 13:16:07 +00:00
7a0f384dbf merge of '6b3a264a4dddd9667ce22ed517fbfccd5d676f9f'
and '95e2b9f35eac4e0ca2160d2f554bb4cdba5c074d'
2018-07-08 13:13:21 +00:00
27a0d4e51e Removing some Scala classes for the Mac OSX laucher,
since the C++ code replaces it's functionallity.
2018-07-08 13:12:51 +00:00
dfa1470c17 reinstate cache capacity calculation 2018-07-08 12:38:53 +00:00
zzz
d992dbf92a i2psnark: Add comment icon (ticket #2278) 2018-07-08 12:01:16 +00:00
zzz
1c28495fc3 propagate from branch 'i2p.i2p.zab.2263' (head 5d4d46ea16b13a188d27ff31c81a5362f20b6d68)
to branch 'i2p.i2p' (head 3ba7c5b2e24e950c83d6370df3c814fd025add81)
2018-07-08 11:36:53 +00:00
zzz
950ca71a34 NTCP2: Refactor padding size calculation
Avoid possible NPEs (ticket #2286)
Bundle up to 5 tunnel messages
Use read buffer to send RI and termination
Temp buf doesn't need 2 bytes for length
RI size check
Log tweaks
2018-07-08 11:00:54 +00:00
zzz
fcf82ea580 revert imports too 2018-07-08 11:00:02 +00:00
381f390938 Reverted change related to fatjar. We're using "real" base path in any case. 2018-07-07 12:27:07 +00:00
ab4a8ef16c reinstate capacity check 2018-07-06 17:13:48 +00:00
998931ffde propagate from branch 'i2p.i2p' (head 566b1eeda884669d179397966db673e71775debb)
to branch 'i2p.i2p.zab.2263' (head be0f0d7318f30334dcdbe7d2ef728d9611aff5f7)
2018-07-06 17:02:40 +00:00
67b7febf72 propagate from branch 'i2p.i2p' (head 6c6a7520cad38845cee83103c323782b426b3ff5)
to branch 'i2p.i2p.zab.2263' (head 727b9053d85f58811d1f5e05ccc697bfd9a454a2)
2018-07-06 16:59:14 +00:00
zzz
a916c1a22a NTCP: Read all available data when able (ticket #2243) 2018-07-06 13:31:46 +00:00
zzz
1460bec8cf SSU: Change remaining acks from List to Set (ticket #2258) 2018-07-06 13:27:38 +00:00
zzz
7aca1e4006 i2psnark: Fix comments wrapping (ticket #2284) 2018-07-05 15:07:05 +00:00
zzz
25e567a125 NTCP2: Increase max message size
OutNetMessage: Change size from long to int
2018-07-05 14:31:54 +00:00
zzz
43c2018177 i2psnark: Fix IOOBE when stopping torrent that is allocating (ticket #2273)
more sync in PartialPiece
2018-07-05 12:57:01 +00:00
zzz
7d9207dc81 NTCP: Don't advertise interface addresses when configured for force-firewalled
log tweaks
2018-07-04 16:22:56 +00:00
f9c3f82bb1 clear context reference when clearing cache 2018-07-04 16:13:36 +00:00
40b30979cd clear buf before releasing 2018-07-04 16:11:07 +00:00
11e00ba9cb move TryCache to core 2018-07-04 16:09:11 +00:00
zzz
9ac31573b4 Build: Move Jetty/Tomcat version properties to top-level build.xml 2018-07-01 14:16:56 +00:00
zzz
a895bcc91e NTCP2: Adjust padding defaults and size calculation
Rekey static after 30 days downtime
2018-07-01 13:42:59 +00:00
zzz
eff0cac30b EdDSA: Backport versions 0.2/0.3 from github:
- Change key encoding to match curdle draft
- Support key decoding based on curdle draft
- Implement true constant-time cmov()
- Add handling of X509Key-wrapped EdDSA keys (GitHub PR #47)
- Clarify that KeyPairGenerator takes a key size, not strength
- Javadocs
GitHub PR #58:
- Make GroupElement immutable by moving the pre-computed logic to the constructors,
  allowing the synchronized checking of whether the pre-computed logic had executed or not
  to be removed since it always has when it is used because those code paths
  are modified to request it at construction time.
- This allows getNegativeA() to be lazy, and doesn't need volatile due to the immutability
  (and final fields - this is important part of the contract with the JVM memory model).
- Remove synchronized contention from the named curve table get method.
- Generally remove use of the named curve table get method with a constant curve name
  in hot code paths in favour of using a new static constant for the curve spec.
Overall performance changes:
- Keygen 46% faster
- Signing 39% slower (due to cmov)
- Verify 2% faster
2018-07-01 11:10:06 +00:00
zzz
c65ce1d3f9 Router: Reselect jbigi lib when processor changes (ticket #2277) 2018-06-30 14:13:34 +00:00
zzz
201ef3b062 private field 2018-06-30 14:07:41 +00:00
zzz
3b34581065 Console: Fix reading flags when symlinked (ticket #2270) 2018-06-30 14:06:52 +00:00
d4dd0ea982 Adjustments in Scala code to adopt to work with the Obj-C++ code. 2018-06-30 13:11:17 +00:00
0b01cc5070 Adding codebase for the Objective-C++ part of the Mac OS X launcher/wrapper. 2018-06-30 13:10:06 +00:00
3de1fa2295 Minor change in routerconsole and core code for making I2P work great
in "portable" mode.
2018-06-30 13:07:41 +00:00
zzz
d8cc2a3560 Debian: Add build option for reproducible builds;
remove timestamp from manifests and javadocs (ticket #2279)
2018-06-28 18:47:45 +00:00
d42a467c00 forgot to set context 2018-06-28 17:40:14 +00:00
bc4ee0fc38 Implement tryLock-based object cache and make ntcp and ssu code use it 2018-06-28 17:33:34 +00:00
zzz
9b17b52b39 Debian: Add dependency for famfamfam-flag-png (ticket #2270) 2018-06-27 16:16:08 +00:00
zzz
c02f685307 Deb updates for 35 2018-06-27 14:52:55 +00:00
zzz
ef7b3e0c8b Core: misc. minor changes 2018-06-26 20:29:19 +00:00
zzz
baa11d8146 Console: Move modified flags to new directory,
in prep for symlinking original flags dir to package
for package installs (ticket #2270)
2018-06-26 19:11:53 +00:00
zzz
2d24f21327 Streaming: Enforce valid port in setters 2018-06-26 18:48:04 +00:00
zzz
96c565d486 Router: Misc. javadocs and debug 2018-06-26 18:45:11 +00:00
zzz
3c53dfe628 NTCP2: Remove static config on router rekey 2018-06-26 18:43:19 +00:00
zzz
761affc94d Console: Move servlet to new package (ticket #2265) 2018-06-26 18:39:39 +00:00
zzz
f0f62527d7 NTCP2: Show version on /peers 2018-06-26 16:57:29 +00:00
zzz
c826efd3a1 NTCP: Move runDelayedEvents() after the selector (ticket #2237) 2018-06-26 16:53:07 +00:00
zzz
ae8779e004 NTCP2: Establishment and data phase
- Address generation and validation fixes to match proposal changes
- Fixes for persistence of static s and iv
- Add methods for keygen and getters for static s and iv
- Add OutboundNTCP2State for outbound establishment
- Add support to InboundEstablishState
- Add data phase support to NTCPConnection
- Refactor NTCPConnection for multiple protocols
- Support concurrent pending outbound messages in NTCPConnection
NTCP1: Cleanups and performance improvements
- EventPumper tweaks and logging
- Eliminate extra data copy in NTCPConnection message sending
- Remove _meta field in NTCPConnection
- Locking changes in NTCPConnection and EstablishState classes
- Zero out DH keys when done
- Fix read when buffer position nonzero in NTCPConnection
- NTCPConnection make more methods package private
- Do AES decryption in data phase all at once when possible
- Drop expired outbound messages in NTCPConnection before sending
- Pass extra data from EstablishState directly to NTCPConnection
  to avoid race, remove getExtraBytes() method
- Remove getException, getError, getFailedBySkew methods and calls from Reader
2018-06-26 16:47:53 +00:00
zzz
49221add97 NTCP2: Noise library license, javadoc, .editorconfig 2018-06-26 16:11:46 +00:00
zzz
da810467b3 NTCP2: Noise library changes:
Use key factory for key pair generation
Hardcode Noise name and compute first hash in advance
Expose mixHash method so we can process message 1 and 2 padding
Add method to get chaining key and hash for siphash key generation
Remove unused patterns, methods, code
Debug and speed test code
Finals
2018-06-26 16:06:18 +00:00
zzz
70f018eb87 NTCP2: Noise lib from:
https://github.com/rweather/noise-java
Revision db4855c on Oct 8, 2016
Copyright (C) 2016 Southern Storm Software, Pty Ltd.
MIT license
Unmodified, as base for future merges
Only classes we need, this rev will not compile
2018-06-26 16:01:35 +00:00
zzz
55a8878a64 NTCP2: Key factory 2018-06-26 15:57:09 +00:00
zzz
0f048a7aa6 NTCP2: New FNDF method 2018-06-26 15:39:08 +00:00
zzz
435bf81945 NTCP2: Payload and options classes 2018-06-26 15:29:08 +00:00
zzz
1a56d5ab37 NTCP2: I2NP support, fixes, cleanups 2018-06-26 15:23:55 +00:00
zzz
3d21ad0df9 0.9.35 2018-06-26 11:09:29 +00:00
zzz
f6a4b0b709 Pull translation updates from Transifex
New Azerbaijani translations
2018-06-23 11:57:39 +00:00
zzz
199788495e Update HTML file list for test
Fix HTML error in Chinese eepsite help page
2018-06-23 11:08:42 +00:00
zzz
fecd0a9f5c GeoIPv6 from MaxMind 2018-06-04
No more updates for v4 legacy format, see ticket #2268
2018-06-23 10:44:22 +00:00
zzz
1e24523df2 volatile 2018-06-22 10:40:36 +00:00
zzz
93c6df7e89 SusiMail: Fix NPE on logout (ticket #2266) 2018-06-21 18:41:21 +00:00
zzz
e33bb2ac1e Console: Add Azerbaijani, add translated eepsite help pages
48x48 az.png converted from:
https://upload.wikimedia.org/wikipedia/commons/d/dd/Flag_of_Azerbaijan.svg
Public domain as specified on:
https://en.wikipedia.org/wiki/File:Flag_of_Azerbaijan.svg
2018-06-21 16:25:30 +00:00
zzz
07f7f2be50 i2psnark: Unstick the navbar (ticket #1996) 2018-06-21 12:31:22 +00:00
zzz
7ddeb0c945 i2psnark: Remove tracker links unless non-default 2018-06-21 11:13:29 +00:00
zzz
00c1fc6ed4 /logs version section tweaks (ticket #1996) 2018-06-21 10:38:31 +00:00
zzz
4a211f1bf4 Console: Don't display individual tx/rx graphs if displaying combined graph (ticket #2106) 2018-06-19 17:42:46 +00:00
zzz
776c7aeb83 Console: Restore line breaks in copy/pasted log entries (ticket #2078) 2018-06-19 14:28:37 +00:00
zzz
c143a0e807 i2psnark: Combine strings 2018-06-19 13:58:55 +00:00
zzz
6ea0b05300 /configui: Fix HTML, combine strings 2018-06-19 13:18:24 +00:00
zzz
39dfdad0d2 Add imagegen to standard webapps list 2018-06-19 12:57:21 +00:00
zzz
4cd9fe725d fix build 2018-06-19 11:32:19 +00:00
zzz
03d430ba7c SSU: Catch ISE 2018-06-19 10:31:02 +00:00
zzz
5592992b73 SSU: Add volatile (ticket #2260) 2018-06-19 10:26:57 +00:00
zzz
d500f61738 NTCP: Log and fail messages on outbound queue overflow 2018-06-17 16:00:17 +00:00
zzz
8eb6dc0aef GeoIP: Don't log error message when hitting the end
of the geoipv6.dat file
2018-06-16 17:23:57 +00:00
zzz
dd5c4af6fb Console: Less hats and cats 2018-06-15 22:38:13 +00:00
zzz
0756306e54 SusiMail: CSS fixes (ticket #2242) 2018-06-15 22:05:43 +00:00
zzz
5e24daafc6 disable NTCP2 code 2018-06-15 19:16:06 +00:00
zzz
37bb09ffc7 new irc server 2018-06-15 13:46:50 +00:00
zzz
89c9a6d0bb Push strings to transifex 2018-06-13 18:33:56 +00:00
zzz
04bf5157bb build time debug tweak 2018-06-13 14:15:05 +00:00
zzz
790db3735f update build time 2018-06-13 14:12:34 +00:00
zzz
78b2d24001 Jetty: Add TX config for eepsite help page (ticket #2214)
and for testing readme.html for .36
2018-06-13 12:15:59 +00:00
zzz
14e4cba7cd SSL Wizard tweaks 2018-06-13 11:57:50 +00:00
zzz
b1541dbf11 Eepsite help: more edits 2018-06-13 11:43:23 +00:00
zzz
da5de2fd4a NTCP: Fix clearing of write interest ops at
inbound establishment, causing latency on first message
(ticket #2237)
2018-06-13 10:42:53 +00:00
zzz
aa98e540e0 Catch RuntimeException in BuildRequestor 2018-06-11 12:11:03 +00:00
zzz
253c157ba8 Don't exclusively use explicitPeers when specified for testing 2018-06-11 12:10:04 +00:00
zzz
9c35a55969 enforce max family name length 2018-06-11 12:06:34 +00:00
zzz
a1bf2b8653 console changelog disable horizontal scroll 2018-06-11 12:02:29 +00:00
zzz
3361d14f3c UPnP: Change port names 2018-06-11 11:56:22 +00:00
e687e1d4d5 #2242 - CSS changes for dark theme so that Folder button and drop-down menu have visible text. Could cause problems elsewhere, still testing 2018-06-11 09:23:51 +00:00
zzz
56bf844540 eepsite: More help page updates (ticket #2214)
Rename help page background image file, it's not Bulgaria
Delete all help page country flag files, we already copy them in build.xml
2018-06-10 13:16:55 +00:00
ee5012311e #2214 - Update instructions for adding a key/hostname on stats.i2p; Remove external links, add search suggestion and specific warning about apache modules 2018-06-09 18:18:47 +00:00
zzz
3f92d92ce4 eepsite: More help page fixes (ticket #2214)
Re-enable dir listings, required for help page links
2018-06-09 16:48:57 +00:00
zzz
20145333f4 i2psnark: Fix torrent ignoring priority settings when autostart is enabled (ticket #2229) 2018-06-09 13:42:12 +00:00
zzz
7b3791627c Eepsite Help: Updates for translation (ticket #2224)
Remove dead links and commented-out text
Put each sentence on separate line
Clarify and simplify language
2018-06-09 11:54:03 +00:00
98019bb998 Updates to eepsite help page 2018-06-08 11:32:35 +00:00
zzz
5c3f264295 NTCP: More efficient copying of inbound establish state data
More prep for NTCP2
2018-06-03 13:12:21 +00:00
zzz
02855a0d97 NTCP: Fix state lock, should not have been static
javadocs
2018-06-02 17:03:26 +00:00
zzz
b5117eafc5 NTCP2: Data phase payload generation and parsing 2018-06-02 15:53:06 +00:00
zzz
05ffa63dc0 NTCP: Start NTCP2 implementation, all disabled for now 2018-06-02 15:05:24 +00:00
zzz
06106c75dc NTCP: Refactor EstablishState into interface/base/inbound/outbound,
in prep for NTCP2
2018-06-02 12:35:11 +00:00
zzz
363aaadb1a Console: Sort tunnels within pools by expiration (ticket #2232) 2018-06-02 12:28:50 +00:00
zzz
7713284e64 SusiDNS: Fix deleting notes (ticket #1433)
Hide advanced fields in published entries
2018-06-01 12:25:08 +00:00
zzz
cee45e3031 SusiDNS: Add notes form (ticket #1433) 2018-05-31 20:33:31 +00:00
zzz
24a1cf713e Console: Change Java 10 warning to Java 11,
since bionic uses 10
2018-05-31 17:16:00 +00:00
zzz
481e28750b Console: Fix CSS preventing ordered lists (ticket #2075) 2018-05-31 15:34:37 +00:00
zzz
8b029dbae5 SusiMail: Message button tweaks 2018-05-31 00:37:45 +00:00
zzz
484d4e226c SusiMail: Don't require confirmation to delete from Trash,
Clear reallydelete flag when clicking cancel or change folder
2018-05-30 23:51:14 +00:00
zzz
a7db82a1fa SusiMail: Fix dup ConnectWaiter run, no failure message 2018-05-30 19:46:51 +00:00
zzz
3f2fe39515 SusiMail: Don't store loading/fetching/refresh messages in session object,
so they go away when done
2018-05-30 15:55:19 +00:00
zzz
04a9f5612b Javadoc fixes 2018-05-30 13:11:50 +00:00
zzz
884a42b814 Build: Remove more files from Debian source tarballs
Don't need to both delete and exclude for tarballs
Restore commons-logging.jar to build classpath where needed for deb builds
Add classpath entries to fix Debian javadoc build
2018-05-30 12:52:30 +00:00
zzz
278a8142b8 NTCP: Cleanup, remove commented-out code in prep for NTCP2
Increase max RI size
2018-05-29 17:23:08 +00:00
zzz
277a1619e4 Console: Tagged string fixes (ticket #2017)
CSS tweaks
2018-05-28 17:49:47 +00:00
zzz
d128bab2fa SusiMail: Send deletions after connect so emails don't come back after a move (ticket #2087)
Refactor/consolidate pop3 deletion code
Fix loading mails in checker
Fix checker thread name
Return to inbox, not drafts, after sending draft
CSS for select
2018-05-28 14:18:23 +00:00
zzz
550ef2ae9c SusiMail: Remove disk null checks, always non-null 2018-05-27 13:46:13 +00:00
zzz
5feeffa550 ministreaming: Add classpath to jar (ticket #2228) 2018-05-26 22:03:16 +00:00
zzz
36c279f23d i2psnark: Hide peers button if no peers on that page (ticket #2152) 2018-05-26 21:47:30 +00:00
zzz
f3207464bb i2psnark: Hide column 1 icon for peers (ticket #1996) 2018-05-26 21:07:42 +00:00
zzz
00acac4b61 i2psnark: Hide "0 Bps" if no peers (ticket #2152) 2018-05-26 20:59:09 +00:00
zzz
e67c750fab i2ptunnel: Retry accept after server socket closed (ticket #2003) 2018-05-26 20:00:10 +00:00
zzz
2d7f0d35ce i2ptunnel CLI help tweak 2018-05-26 19:52:41 +00:00
zzz
3701f71fc6 Jetty: Skip files with [] in default servlet to avoid throwing exception 2018-05-26 19:31:40 +00:00
zzz
3f64825436 SSL Wizard: Cleanups 2018-05-26 17:38:33 +00:00
zzz
5ca319e4bd /confignet: Reorganize (ticket #2217) 2018-05-26 16:05:28 +00:00
zzz
f11104e7bc Summary Bar: Change header from "I2P Updates" to "Update Status" (ticket #2137)
/configsidebar: Tag sections for translation; translate unselected sections;
sort unselected sections by translated name
2018-05-26 13:56:06 +00:00
zzz
39c0f558c1 Utils: Disable DNSoverHTTPS by default (ticket #2201)
Reenable with eepget.useDNSOverHTTPS=true and time.useDNSOverHTTPS=true
2018-05-26 12:24:50 +00:00
zzz
c1b9aa9665 Router: Fix wrapper.config path in OOM message when installed as
Debian package, but not running as a service (ticket #2223)
2018-05-26 11:46:59 +00:00
zzz
9eb3cc5916 i2ptunnel: Fix dup tunnels clicking generate on new tunnel (ticket #2225)
remove dup call to processAction()
2018-05-25 19:39:22 +00:00
zzz
2fab97fb20 Console: Fix changes to wrong tunnel on /configtunnels (ticket #2227) 2018-05-25 17:35:29 +00:00
zzz
195a2d0473 LICENSE.txt clarifications and updates 2018-05-06 15:50:28 +00:00
zzz
288a6b0670 SSL Wiz: Use RSA if EC not available 2018-05-06 13:25:40 +00:00
zzz
df7c1c6104 Certs: Change default from RSA to EC for CA certs 2018-05-06 13:21:22 +00:00
598a177e5e Removed a "ant-" which wheren't supposed to be commited :) 2018-05-06 03:58:08 +00:00
0a1191aa3f Small patch to make ant use the SBT wrapper script. 2018-05-06 00:20:54 +00:00
5f81a8de59 Mac OS X Launcher - reborn - ALPHA!
TLDR;
Howto? ant osxLauncher
Privacy Notes? If you don't got SBT, a bash script will trigger
               download of SBT for you with task osxLauncher.
Results? open ./launchers/output
"Binary" App Bundle name: I2P.app
Runtime base directory? ~/Library/I2P
Runtime config directory? untouched.

After talk on IRC with zzz, I rewrote the logic since we could
start with a simple deploy, for a faster alpha version ready :)

SBT will build a zip file from the content of pkg-temp, which
CompleteDeployment.scala will again unzip in runtime. Right now
it's quite basic, but the plan is to add version detection, so
it's capable of upgrading a already deployed I2P base directory.

OSXDeployment.scala is renamed to PartialDeployment.scala for usage
in the browser bundle launcher, since it's going to be a subset of
the files found in pkg-temp.

A Info.plist is added to the launchers/macosx which is added to the
application bundle under building. Note that this differ from the one
in Start i2p router.app that's been here for years now.
2018-05-05 23:34:35 +00:00
zzz
f6273a1662 SSL Wizard: Link fixes
Fix lost autostart config
Separate messages for bad SSL config vs. no SSL config
2018-05-05 22:32:43 +00:00
zzz
e14a4f0111 HTTP Client: Allow SSL to i2p hosts by default 2018-05-05 22:25:13 +00:00
zzz
543e5bd218 Preliminary .editorconfig 2018-05-05 22:22:40 +00:00
zzz
d3c28a6b44 Streaming: Don't send HTTP response to HTTPS request 2018-05-05 22:21:01 +00:00
zzz
d851686272 SSL Wizard: Add links 2018-05-05 14:09:47 +00:00
zzz
87329bc32c SSL Wizard: Page cleanup, message box 2018-05-05 12:59:01 +00:00
zzz
c734b84b28 doc update 2018-05-03 20:40:26 +00:00
zzz
6c88eb5211 BOB: Register with port mapper 2018-05-03 20:00:03 +00:00
zzz
7b2355a888 SSL Wizard: Implement Jetty SSL disable 2018-05-03 19:43:22 +00:00
zzz
b31ebfe368 SSL Wizard: Stop and restart Jetty if running
Make JettyStart restartable
RouterAppManager workaround for JettyStart becoming untracked after stop
2018-05-03 19:29:13 +00:00
zzz
9a7b58259f CLI: Add KeyGenerator 2018-05-03 13:13:29 +00:00
zzz
9c52d454f8 Debug: Case-insensitive sort of PortMapper and AppManager tables 2018-05-03 13:08:56 +00:00
zzz
a548c307bc Console: Make Java 10 warning a 10/11 warning 2018-05-03 13:01:16 +00:00
zzz
2efd544713 Tests: Add scala files to UTF-8 tests
Make tests less noisy
2018-05-03 13:00:08 +00:00
zzz
c9a6fab638 SSL Wizard: Implement disable-SSL 2018-05-02 13:39:49 +00:00
zzz
1c677cd99b SSL Wizard: Fixes, checks, form improvements 2018-05-02 13:10:06 +00:00
70e994fcf3 Some changes, after much testing I find it best to spawn an sub java
process for I2P rather than trying to load Router via reflection or
anything runtime fancy stuff. Shell script is implemented in SBT now,
and can now link to download JRE script and so on.
2018-05-02 03:39:14 +00:00
c326bb7c6d Added scala license snippet to LICENSE.txt 2018-05-01 13:30:55 +00:00
f6c8e44329 Jar deployment, SBT hacking, and more related to launcher code.
Some refactoring, bugfixing, and self awareness of launcher jar.
2018-05-01 11:15:11 +00:00
345e7414e6 Change current directory to base directory before starting the router. 2018-05-01 03:43:41 +00:00
3488db38bc Moved a function to a more logic place. 2018-05-01 03:40:07 +00:00
8957c85486 Disable debug messages. 2018-05-01 03:36:59 +00:00
6b0a102c1b Updating code to handle multiple(no limit) recursive levels. 2018-05-01 03:35:09 +00:00
975d8a069a Cleaned up in SBT build file. Sorted assignments, task definitions and such. 2018-05-01 03:21:04 +00:00
2d15f8e16e Improved code documentation and readableness in form of syntax cleanup. 2018-05-01 03:15:44 +00:00
a3a8ee1329 Major update for the OSX Launcher code. Now it will bundle
installer resources with the fat jar (we add an exclusion list later)
which the base directory will be built(or updated if lacking files) upon
startup of the I2P router. This is done by the OSXDeployment class which
is an extension for the DeployProfile class written for Mac OS X.

Since the app bundle itself should be R/O, we use ~/Library/I2P as base path,
and continue using ~/Library/Application Support/i2p as config path. The BB
code will have other paths.
2018-05-01 02:54:36 +00:00
zzz
4e5a2d00aa SSL Wizard: Move old keystore before rewriting
Fix password setting in XML
Add DTD to rewritten XML
2018-04-30 16:45:01 +00:00
zzz
ab039b8023 SSL Wizard: Update and save tunnel config 2018-04-30 13:59:23 +00:00
zzz
8ed1b96f3a Console: Fix NPE on /configsidebar (ticket #2220)
Don't throw NPE translating null
Add note about split()
Fix form inside table
2018-04-29 20:57:47 +00:00
c73b5b9edb merge of '4d8cced5819f256dd03cd1a845bcb08fe8de9319'
and '76cdc242b9b68e5fef39dfe67cf27baf29872f2f'
2018-04-29 18:51:38 +00:00
e308804cb7 Removing some resources. 2018-04-29 18:51:31 +00:00
zzz
cdd58f168a SSL Wizard: Change cert type, export cert, show in cert helper,
relay keystore password via POST
2018-04-29 15:46:30 +00:00
zzz
4d09e507fb SSL Wizard: Move some things to make the classloader happy
Rewrite clients.config
2018-04-29 14:32:01 +00:00
zzz
d600a2df12 Build: Remove references to now-empty commons-logging.jar 2018-04-28 22:17:19 +00:00
zzz
e310588273 SSL wizard: Start of POST handling
Work around Jetty XML bug
classpath fixes to follow
2018-04-28 22:07:14 +00:00
zzz
a0fabe5f92 i2ptunnel: Fix startup deadlock in TCG 2018-04-28 21:58:13 +00:00
zzz
780fdfe4f6 Console: Add POST support to the error handler so it doesn't error itself 2018-04-28 18:37:59 +00:00
zzz
145730f5b8 SSL wizard: Add missing file, fix form params 2018-04-28 15:25:05 +00:00
zzz
624a672213 i2ptunnel: Initial SSL setup wizard
Includes Jetty XML configuration parser
Work in progress, doesn't work, not linked from anywhere
2018-04-28 13:21:42 +00:00
zzz
16c5252c43 Jetty: Dir listing time format tweak 2018-04-28 11:32:36 +00:00
zzz
50710f8066 Tunnels: Fix and consolidate allow-zero-hop logic,
prevent zero-hop client tunnels even when no active peers
Remove buildRequestZeroHopTime stat
2018-04-27 17:41:47 +00:00
zzz
10c6c428a3 SusiMail: Don't zip encrypted.asc PGP attachment 2018-04-26 13:43:20 +00:00
zzz
c34fd76a78 Proxy: Don't generate footer hidden by CSS 2018-04-25 14:27:40 +00:00
zzz
ab9dac8827 Migrate webapp detection calls to PortMapper.isRegistered() 2018-04-25 14:21:23 +00:00
49ba58cb8d Updated history.txt again. 2018-04-24 05:04:11 +00:00
4f47fab139 Removed unused resources directory hopefully,
And aslo added an IconHelper autoplugin which
will generate Mac OS X valid ICNS images.
2018-04-24 05:01:25 +00:00
832e55ddf9 Updated history.txt for today. 2018-04-24 04:28:37 +00:00
8adf55a568 Still WIP, but I've added a new sbt plugin named
sbt-native-packager for future rpm/deb/windows and 
maybe even OSX packages. Also, the macosx sbt project 
now has a task named buildAppBundleTask and which will 
produce an I2P.app and copy over needed directories/jars/wars
which later needs to be extracted to an writeable area which
would be i2p base directory in runtime.

The MacOSXRouterLauncherApp contains more information about how 
the executable in the OS X bundle will locate our R/O i2pbase so 
it can copy it to a writable area. The R/O is also to ensure valid
signature on the bundle.

At last, this approach is done casue letting an Mach-O binary load
libjvm.dylib was proved unstable, so MacOSXRouterLauncherApp will 
rather use an JNI module to load the needed glue with the 
Mac OS X system.
2018-04-24 04:18:21 +00:00
9307b27655 Update in the install_i2p_service_osx.command script. 2018-04-24 04:09:20 +00:00
345d078370 Updating ignore file to ignore sbt build directories. 2018-04-24 04:08:25 +00:00
a4ef4e594a Update history.txt of yesterdays work. 2018-04-24 00:49:22 +00:00
18b11d2a32 Reducing the amount of "items" in the root of the repo
by moving documents into a own docs directory.
2018-04-24 00:48:08 +00:00
zzz
75d681a93c Clock: Fix early NPE via DoH 2018-04-23 15:48:44 +00:00
zzz
0500bbb186 EepGet: Handle HTTP response line with no status text 2018-04-23 15:46:35 +00:00
a047b91deb Added a section "SBT Behind proxy" 2018-04-23 00:26:53 +00:00
e941e79830 Doing it the right way and add license for Scala (BSD-3) 2018-04-23 00:19:32 +00:00
b98254b2be Updating README.md making contribution/hacking guide/docs more available,
this is specially important for our GitHub impression which I suspect most 
coders will have their first meeting with I2P on. The documentation is far from
done but it should make value for any new developer by this time so I've decided 
to push them. It losly describes our build systems, and has a monotone cheat sheet 
which always has an "git equalent" so it's easier to handle for people used to git.
2018-04-23 00:14:23 +00:00
e8ac24bedd Added some missing files from earlier commits caused by -R stuff in mtn. 2018-04-22 23:48:44 +00:00
38e109db2b Added new ant targets to the overview of targets. 2018-04-22 23:16:04 +00:00
8c10ec9db3 Realised a better way to handle the build process of both the
Browser Bundle i2p launcher, as well as the upcoming Mac OS X
i2p launcher. They share some few properties and how code has
to be managed for both system's update managers and so on.
More details will be documentated in README.md files as well as
in those commit messages I now write :)
2018-04-22 23:13:32 +00:00
b9a2459315 Adding missing files since shitty monotone needs an -R in add. :) 2018-04-22 20:37:39 +00:00
86f8d63a69 WIP: Adding most of the launcher code now to the repo, the one for the browser bundle.
Not 100% completely done but ready for commenting/review.
2018-04-22 19:56:42 +00:00
zzz
1a27fe185c SusiMail: Include attachments when forwarding (ticket #2087) 2018-04-22 15:17:38 +00:00
zzz
0573123460 SusiMail: Remove draft fields from session object 2018-04-22 13:59:10 +00:00
zzz
1e33dac2d7 SusiMail: Reply/fwd immediately saves as draft rather than
passing data through session; re-enable P-R-G
New StringBuilderWriter util
2018-04-22 12:34:49 +00:00
zzz
98663feaa3 SusiMail: Refactor draft compose/save in prep for fixes 2018-04-21 11:58:26 +00:00
zzz
ceeacf6a07 SusiMail: Remove Bcc-to-self feature,
replace with copy-to-sent config (ticket #2087)
2018-04-21 11:18:58 +00:00
zzz
f040421848 SusiMail: Fix reply/forward filling in compose form
Better formatting of addresses in forwarded mail
2018-04-19 21:20:58 +00:00
zzz
9fcddbb6bf SusiMail: Initial CSS for new buttons 2018-04-18 16:42:44 +00:00
zzz
75c20c9b1a SusiMail: Fix unhandled decoding exception
Trim leading whitespace from charset
2018-04-18 15:45:43 +00:00
zzz
ea9a3320a3 DNSoverHTTPS for SSLEepGet and NTP (ticket #2201) 2018-04-17 17:16:51 +00:00
zzz
d621e19349 json-smart-v1 lib for DoH and i2pcontrol
Copied from i2p.plugins.i2pcontrol.
Does not include JSON-RPC2, that stays in the plugin.
i2pcontrol checkin notes:
Smart Mini files (net.minidev.json) from:
https://github.com/netplex/json-smart-v1
commit 51e1641 on Oct 23, 2015
Essentially version 1.3.2 (1.3.1+)
Licensed Apache 2.0.
Removed as unneeded: JSONNavi.java, JSONStyleIdent.java
Not in Debian/Ubuntu
Version in Maven Central (1.0.8) is too old
2018-04-17 17:01:24 +00:00
zzz
1ba7fb9621 BuildTime: Update, add to cmd line tools 2018-04-17 13:28:47 +00:00
zzz
d02b71a39e SusiMail: Fix error message on login page 2018-04-17 13:21:44 +00:00
zzz
f0e0c01518 Console: Fix sidebar status when updating plugin (ticket #2137) 2018-04-17 12:37:54 +00:00
zzz
76999ccb6f Console: Cleanups when no leases/tunnels 2018-04-16 14:44:42 +00:00
zzz
d189c3912c Console: Add links to bandwidth graphs on /tunnels 2018-04-16 14:34:41 +00:00
zzz
b9bc254fd3 SusiMail: Move logging to router logs (ticket #2191) 2018-04-16 11:06:18 +00:00
zzz
8c0e82d4f3 i2ptunnel build restructuring:
Move Messages class from web to ui package, and from jar to war.
Build web package in a separate pass (prep for ssl helper)
API notes in javadocs
Hopefully doesn't break Android build
2018-04-14 18:54:17 +00:00
zzz
844977cca3 SusiMail: Add folders, drafts, background sending (ticket #2087)
Use with caution; cleanups and CSS to follow
2018-04-14 15:50:07 +00:00
zzz
ffad52e48c LoadClientAppsJob.parseArgs() minor cleanup 2018-04-14 14:35:53 +00:00
zzz
d12b531c54 Jetty: Fix quote in header line tripping XSS filter (ticket #2215) 2018-04-14 13:25:25 +00:00
zzz
941db3aeeb Console: Add built-by to /logs (ticket #2204) 2018-04-14 13:12:40 +00:00
zzz
98aafee53a CPUID: Fix TBM detection (ticket #2211) 2018-04-14 12:55:50 +00:00
zzz
abec6ad64c Debian Buster updates (ticket #2027)
As pulled out of http://http.debian.net/debian/pool/main/i/i2p/i2p_0.9.34-1.debian.tar.xz
License file update
2018-04-14 12:38:39 +00:00
zzz
2f53f25580 Debian updates (ticket #2027, PR #15) 2018-04-14 12:15:28 +00:00
zzz
b374b1136e Jetty 9.2.24-v201801015, Tomcat 8.5.30 2018-04-11 18:24:37 +00:00
zzz
57e21e906f Debian updates for 0.9.34 2018-04-11 16:10:08 +00:00
a474bd46d6 merge of '3acb036bb44bfe12916742877b1b2298ef6a156a'
and '674ef573b3a8e4620f0e06397e062d86fc87a5a9'
2018-04-10 15:23:41 +00:00
7ae8381465 Fixed mistake + added @since 2018-04-10 15:22:21 +00:00
zzz
f00ac6ad14 merge of '13e60de3d602be3958686f91b450707dda0767b9'
and '7d04d994f5d52eb6e483ee8654f9314ec9997387'
2018-04-10 14:30:00 +00:00
5bef86f456 Adding initial support to the router for a more slim/portable runtime environment. 2018-04-10 13:52:46 +00:00
4d23e1d38f Corrected a wrong path, and extended info about i2ptunnel. 2018-04-10 13:51:14 +00:00
zzz
c0308526a9 0.9.34 2018-04-10 12:46:30 +00:00
zzz
3c7898160e Updates after review:
Fix logic error in snark warning
Change Java 9 log warning to Java 10
Fix fallback tunnel pool stat name
Don't include geoip in this release
Update Russian translations
2018-04-10 12:42:44 +00:00
4ac505959f merge of 'b1fd7a753b83b73c005bf281fcd7e1e7046d81f6'
and 'c3b63d8b51f340bd41f9f1b8d64b78bec7a7c0c0'
2018-04-07 00:54:18 +00:00
683e0f42bc Too quick to push, fixed descriptions :) 2018-04-06 23:48:08 +00:00
d67cee5e45 Added a partially done directory structure cheatsheet thingy. 2018-04-06 23:39:23 +00:00
zzz
db72f87b34 Pull from tx 2018-04-06 23:14:40 +00:00
zzz
eb175f5542 sybil: hide families with only one member 2018-04-05 14:22:28 +00:00
zzz
43e6bb7569 GeoIP 2018-03-27, GeoIPv6 2018-04-03 2018-04-05 12:16:30 +00:00
zzz
4fbfc5d83d EepGet: Increase max header length
SSLEepGet: Set default CLI proxy type to none
2018-04-05 12:03:57 +00:00
zzz
8ea3aa8592 Console: Remove home page links as agreed in 2018-04-03 meeting 2018-04-04 18:55:52 +00:00
zzz
94c7d840c2 Reseed: Move ReseedBundler from console to router (ticket #2203) 2018-04-04 16:37:32 +00:00
zzz
d11c01cc82 Stats: Clean up per-tunnel bandwidth stat name 2018-04-03 16:21:01 +00:00
zzz
1a7e71c5ca Stats: Enable per-tunnel bandwidth stats by default (tickets #2106, #2145) 2018-04-03 15:25:28 +00:00
zzz
4ca12d141c KeyStore: Fix ConncurrentModificationException (ticket #2196) 2018-04-02 18:04:32 +00:00
zzz
9c2994cf3e build.xml: Dup and typo (ticket #2198) 2018-04-02 17:41:59 +00:00
zzz
2550b2c557 poupdate-source 2018-03-28 23:46:37 +00:00
5435a6584e merge of 'b68ae0177d4f3bd3ac8cedcb6fbf7aa9e3db6cb8'
and 'cf9e5b3c6634546f3b46b25e53ac47dcedde73b4'
2018-03-27 00:41:56 +00:00
9f11188e8f Started on scalatests for SU3File and CertUtil. 2018-03-26 21:48:31 +00:00
zzz
241ee71745 i2ptunnel: Fix display of 'tunnels not initialized' message 2018-03-24 13:26:30 +00:00
zzz
a1ccd5a209 i2psnark: Change default sort order for some columns (ticket #2152) 2018-03-24 12:45:15 +00:00
zzz
2a30bfedca Console: Hide links to i2ptunnel if disabled
/configwebapps changes don't require restart
2018-03-19 17:19:21 +00:00
zzz
129188f3cc PortMapper: Add convenience methods 2018-03-19 17:00:44 +00:00
zzz
bdff474d94 i2ptunnel: Rewrite or pass through Accept: header
Needed for zeronet
2018-03-19 16:56:53 +00:00
zzz
6908616a74 i2ptunnel: Don't set content-encoding and compress if already set,
no matter what the encoding was, can't have two
2018-03-19 13:47:56 +00:00
zzz
841bb75554 Build: Add target to show revs since last release 2018-03-18 12:35:54 +00:00
zzz
ca312f5bbc SusiMail: Move sorters to own class 2018-03-17 13:43:49 +00:00
zzz
ef692efc83 i2psnark: Don't use static field for sort language 2018-03-17 12:34:37 +00:00
zzz
e7e5ee1abe Console: Hide identicons if disabled on sybil page 2018-03-15 23:30:13 +00:00
zzz
f124404dc3 use portmapper 2018-03-15 23:24:16 +00:00
zzz
9332d1347d Console: Add translated descriptions for webapps 2018-03-15 23:12:13 +00:00
zzz
afe34c6b75 Console: Fix logic for when to linkify webapp 2018-03-15 22:55:12 +00:00
zzz
24cb0934c7 susidns: Hide identicons if imagegen disabled
Fix div ordering on /details
2018-03-15 22:27:00 +00:00
zzz
e139710352 i2psnark: Hide remove/delete buttons if data dir is readonly 2018-03-15 21:22:53 +00:00
zzz
144147d854 Certs: Sort alt names in generated certs 2018-03-15 15:58:40 +00:00
zzz
cfd84bdcdd i2psnark: Don't fail to start if data directory not found (ticket #2166)
Try to create dir if doesn't exist
Hide add and create sections if dir not writable
Remove 403 handler, don't want it for standalone hostname check
2018-03-15 15:50:33 +00:00
zzz
1de82a6801 reformat message 2018-03-15 15:46:40 +00:00
zzz
1050fc7786 i2ptunnel: Fix controls broken in last commit (ticket #2184) 2018-03-14 21:04:24 +00:00
zzz
00dc1ed213 SusiMail: Change URL from /susimail/susimail to /susimail
Remove susi.i2p links on help pages
2018-03-14 19:12:17 +00:00
zzz
2aceca5f93 Console: Add error handler to all webapps (ticket #2155)
Fix up default servlet handling in i2ptunnel and susidns
2018-03-14 18:33:14 +00:00
zzz
b9d5cdf2be Console: Hide links to eepsite if not running (ticket #2161)
Show https eepsite link if available (ticket #2159)
Use port mapper instead of webapp starter for webapp detection, much faster
2018-03-14 15:47:55 +00:00
zzz
948bbae661 Jetty: Register HTTPS eepsite with port mapper (ticket #2159) 2018-03-14 15:25:05 +00:00
zzz
6eb09bd0c8 i2ptunnel: Check port mapper for webapp presence (ticket #2161) 2018-03-14 14:09:41 +00:00
zzz
66ee7b563a Util: Add replace() method for StringBuilders 2018-03-14 13:33:43 +00:00
zzz
9b3082be06 Console: Register all webapps with port mapper (ticket #1749) 2018-03-14 12:23:37 +00:00
zzz
74ea45901a Susimail: Minor string replace fix 2018-03-14 11:47:25 +00:00
zzz
030beacf11 Console: Don't gzip svg files
Unused import
2018-03-14 11:41:18 +00:00
zzz
b4f3d961e6 SusDNS: Translate svg image text (ticket #1749) 2018-03-14 11:38:00 +00:00
zzz
a077245b3a Console: Hide links to webapps that are not running (ticket #2161)
Hide link to /configplugins if disabled
2018-03-14 11:17:05 +00:00
zzz
5a13070a58 Console: More checking in error handlers 2018-03-12 19:36:45 +00:00
zzz
4f5e3226de Router: Put FULL_VERSION in router.version property 2018-03-12 19:34:36 +00:00
zzz
df075ca4f5 SusiDNS: Ampersand escaping 2018-03-12 19:33:15 +00:00
zzz
ffc0bcc3a0 Susimail: Fix up compose.js (ticket #2176)
Enable for configuration page
Version the js
2018-03-12 11:42:52 +00:00
zzz
81808d4a60 Crypto: Add utils for renewing a cert in a keystore 2018-03-11 22:17:06 +00:00
zzz
63a8b4668c UPnP: Detect pegged counter
Make public again for CLI
2018-03-11 17:52:42 +00:00
zzz
50268de894 Router: More peer selection fixes for hidden mode
Fix excludes after calling SANFP
Pick connected OBEP when hidden and paired tunnel is zero-hop
2018-03-11 17:27:05 +00:00
zzz
96d7c73644 Router: Fix state transition to RUNNING in vmCommSystem 2018-03-11 15:57:37 +00:00
zzz
2deed13484 /tunnels: Right-justify zero-hop IB
minor cleanups
2018-03-11 15:14:08 +00:00
zzz
eb321445d9 Router: Fix rekey after hidden config change 2018-03-10 18:30:08 +00:00
zzz
39039b89a4 Console: Fix translated (es) plural
Warnings for special cases on /configtunnels
2018-03-10 17:19:38 +00:00
zzz
e7c2162874 i2ptunnel: Strip server Date header
More efficient header checks
Jetty config tweaks
2018-03-10 16:56:59 +00:00
zzz
fe808a8800 Console: Fix gzip enable logic
Don't compress js
Set charset for war resources
2018-03-10 14:53:57 +00:00
zzz
fa85c0c50b NetDB: Wake up FloodfillMonitor when ff setting changes,
so it will take effect immediately, and log in event log.
Don't queue multiple FloodJobs after changes
2018-03-10 12:30:17 +00:00
zzz
4bcb1d27e4 Servlets: Close output stream on redirect,
instead of flushing buffer, to force commitment
2018-03-09 21:02:00 +00:00
zzz
a2dbb21853 viewhistory set content-length 2018-03-09 19:41:55 +00:00
zzz
44c38dffad Console: Enable compression (ticket #2157) 2018-03-09 19:31:15 +00:00
zzz
a845d4f225 Servlets: Add Accept-Ranges headers 2018-03-09 16:02:00 +00:00
zzz
9dcf48ea81 Router: EnumSet for state checking 2018-03-09 11:52:59 +00:00
zzz
33b2d834c7 Log: Default level is ERROR if no match 2018-03-08 21:41:24 +00:00
zzz
fac4f6c28f Router: Check for transport compatibility before direct store of RI;
send through tunnel if incompatible
Fix repeated store of RI when IPv6-only
Move connect checker to own class for use by netdb
Log tweaks
2018-03-08 21:38:39 +00:00
zzz
69aadaa46a Router: Improve tunnel peer selection of closest hop
for routers that are hidden, IPv6-only, or have disabled transports.
Don't try to build tunnel if adjacent peers don't have compatible transports.
Don't select IPv6-only routers for IBGW or OBEP.
Remove old version check in peer selectors
Peer selector cleanups
Extend peer selection startup time for Android
2018-03-08 14:30:26 +00:00
zzz
1412dbd16b Crypto: Generate non-CA cert for family 2018-03-08 14:22:37 +00:00
zzz
c626bb64bd log flush tweak 2018-03-08 14:11:40 +00:00
zzz
c5b6a4ee17 NetDB: More floodfill checks 2018-03-07 21:24:54 +00:00
zzz
7433eeb5c0 Router: Validate tunnel ID in requests
Fix max ID
2018-03-07 18:06:46 +00:00
zzz
ceac733b66 log tweaks 2018-03-07 16:19:38 +00:00
zzz
665f58d62a Router: Remove ancient version check in BuildRequestor
Add method to get all connected peers from transports, for efficiency
Don't try to build non-zero-hop tunnels in VMCommSystem
2018-03-07 13:29:11 +00:00
zzz
0eb04facec Util: Consolidate FileFilters 2018-03-05 13:16:04 +00:00
zzz
28923825d9 clarify there are two f-droid repos 2018-03-04 16:40:46 +00:00
zzz
195d7dc653 Console: Show SAM cert on /certs
Stub for jetty cert
2018-03-04 16:11:29 +00:00
zzz
471fc8ee12 Console: Fix more forms inside tables 2018-03-04 14:38:33 +00:00
zzz
419d411b1b i2ptunnel: Fix multipart config for /register
Fix CSP for /register
2018-03-04 13:31:35 +00:00
zzz
c6e401a64f PortMapper: HTTPS console fallback to HTTP
Console port constants
2018-03-04 12:30:36 +00:00
zzz
3bc9053a86 KeyStore: Log expiration of self-signed certs 2018-03-04 12:14:05 +00:00
zzz
5a639260cd Address utils: Skip IPs of down interfaces on Windows
Improve identification of temporary IPv6 addresses
CLI improvements
2018-03-03 12:52:07 +00:00
zzz
67e07d21ef Console: Use consolidated default keystore password 2018-03-02 12:02:39 +00:00
zzz
f0b9894e48 Util: Warn on dubious split() regex 2018-03-01 16:26:31 +00:00
zzz
74dc427320 Transport: Rescan addresses and UPnP after network reconnection
Log network disconnect/reconnect
Don't even try to start UPnP if network disconnected
Fix UPnP repeatedly decrementing listen ports on failure
Make more classes and methods package private
Log and javadoc tweaks
2018-02-28 20:26:31 +00:00
zzz
d167b5eafb LogManager: Don't register runtime shutdown hook in router context.
This was causing shutdown() to be called twice, resulting
in lost log messages when stopped from i2prouter.
2018-02-28 20:04:40 +00:00
zzz
5cd1419897 Util: Add methods to validate IP addresses 2018-02-28 17:58:28 +00:00
zzz
f129426eed UPnP: CLI fixes
Check that Location IP matches
Display UDN in HTML output
2018-02-28 15:07:19 +00:00
zzz
f3ec5f7956 i2psnark: CSS tweak 2018-02-28 12:58:50 +00:00
zzz
2c17fef161 Addresses: CLI improvements 2018-02-28 12:26:53 +00:00
zzz
ab182d08f3 UPnP: Recognize IGD2 schemas
Don't use IGD on same host
Output last error
Preliminary work for IPv6
2018-02-27 21:26:53 +00:00
zzz
f869b8a133 UPnP: Fix event listening, prep for using events 2018-02-27 15:09:49 +00:00
zzz
7035db2bcd UPnP: Improve diagnostics
try PPP 2nd
other cleanups
2018-02-27 13:05:03 +00:00
zzz
27042f9930 i2ptunnel: Add alt names in standard and irc client tunnel certs 2018-02-25 16:31:48 +00:00
zzz
4c02c1f58b JettyStart: Cleanup, replace Resource with File 2018-02-25 14:20:44 +00:00
zzz
79baf70f9a Crypto: Add support for more alt names in certs (tickets #2159, #2160)
Set alt names for console cert
Use utils to validate console IP addresses
2018-02-25 14:17:01 +00:00
zzz
622c6801ae SusiMail: Set no-cache headers 2018-02-24 17:10:56 +00:00
zzz
005f73729e Console: More validation on URL when installing plugin 2018-02-24 16:58:18 +00:00
zzz
5b0680b29e i2psnark standalone: Add DNS rebinding protection
Add context config file to turn it off
Console: Mark request handled when rejecting in HostCheckHandler
XSSFilter: Catch cascaded ISE
2018-02-24 16:43:15 +00:00
zzz
9d989c6a67 Console: Fix HTML error, forms can't be in tables
split table up into two, put forms outside, fixup CSS to match
2018-02-24 12:43:58 +00:00
zzz
fa740e8271 Console: Fix HTML error 2018-02-24 12:42:16 +00:00
zzz
0ba0f1bded SusiMail: Check mail fixes (ticket #2174)
Fix overlapping error and info boxes
Fix checking mail when apparently connected already
Set soTimeout when fetching mail, now that InternalSocket supports it
Error message and formatting fixes
Debug log tweaks
2018-02-23 20:10:32 +00:00
zzz
4321f13453 i2psnark: Number formatting tweaks (ticket #1913) 2018-02-23 19:57:40 +00:00
zzz
e71d1d38ad Getopt: Add new translations
Add instructions in .tx/config for conversion
Fix checkutf8.sh for getopt translations
2018-02-23 16:35:16 +00:00
zzz
6fe25cda9e I2CP: Use setSoTimeout() when reading first byte
We originally looped because we used InternalSockets,
but we don't anymore.
2018-02-22 16:59:14 +00:00
zzz
01962754b0 Util: Support setSoTimeout() for InternalSockets
to keep susimail server connections from hanging too long
2018-02-22 14:54:57 +00:00
zzz
237447180c cleanup 2018-02-21 21:34:29 +00:00
zzz
4b1a357ee7 Certs: Add policy extension 2018-02-21 20:10:14 +00:00
zzz
56c17300d5 SusiMail: Add Date header to sent messages, as required
Make Loader static
2018-02-21 15:05:15 +00:00
zzz
61ae0a597a Util: Add RFC822Date to CLI 2018-02-21 13:41:09 +00:00
zzz
3159c519b1 Console: Hide options on /configupdate if a package (ticket #2172)
or if not advanced
2018-02-21 12:54:56 +00:00
zzz
f00bf7d2cb Console: Redirect to HTTPS if available (ticket #2160)
Show console links as HTTPS if available
Extend blacklisted ports to cover HTTPS console and eepsite
2018-02-20 20:19:34 +00:00
zzz
33ea4cf571 Console: Change sendError() to setStatus() for 3xx responses
to avoid unnecessary output
2018-02-20 19:45:49 +00:00
zzz
86b3b13d6f Console: Change all 302s to 303 or 307
Eepget: Handle 308
2018-02-20 16:53:31 +00:00
zzz
b77524cfc7 Crypto: Backdate selfsigned cert to allow for clock skew 2018-02-20 12:27:30 +00:00
zzz
12c7871640 i2ptunnel, systray: Replace hardcoded console URL in more places (ticket #2160) 2018-02-19 23:12:06 +00:00
zzz
88c7abedde javadoc note 2018-02-19 22:26:32 +00:00
zzz
ad4eef9757 i2ptunnel, I2CP, SAM: Change selfsigned cert cname to localhost (ticket #2160) 2018-02-19 22:14:50 +00:00
zzz
935ba77da7 Console: Change selfsigned cert cname to localhost (ticket #2160) 2018-02-19 19:40:04 +00:00
zzz
673d765ed6 Crypto: Add IP addresses to selfsigned cert SAN (ticket #2160) 2018-02-19 19:36:30 +00:00
zzz
c719410dfa Console: Change trac links (ticket #2014) 2018-02-19 16:08:24 +00:00
zzz
ff81b4246a Console: Number formatting tweaks (ticket #1913) 2018-02-19 14:39:21 +00:00
zzz
646fe20726 Streaming: Don't exceed configured tag settings when overriding 2018-02-19 14:31:51 +00:00
zzz
a5ca9364ef more NTP response sanity checks 2018-02-19 14:25:57 +00:00
zzz
826d8ca07f i2ptunnel: Retry accept after router soft restart (ticket #2003)
This sends the router restart indication from I2CP router side
to client side to streaming to I2PTunnelServer via
a new streaming exception.
2018-02-18 13:53:50 +00:00
acebd2ea68 Cleanups: Close resources via try-finally 2018-02-17 19:53:30 +00:00
fb6eea2484 NPE fixes 2018-02-17 18:41:30 +00:00
zzz
cd3515923e i2ptunnel: Close sockets in finally{} 2018-02-17 16:04:09 +00:00
zzz
509e39b592 Console: Number format tweaks (ticket #1913) 2018-02-17 15:34:17 +00:00
zzz
dd575316bb Console: Restore:
CSS h1 letter spacing tweak
	Revision: d5b621df7264ac5c0ceb4cbede6779cef043ca4b
	Date:     10/20/2016

Inadvertently? reverted by:
	NedDb advanced lookup layout and theme improvements
	Revision: 058008f4847fe88db6b8236795b55db869e44a13
	Date:     01/15/2017
2018-02-17 15:09:31 +00:00
zzz
cf7d492e8d SusiMail: Change size from int to long
Fix mail save truncation
Don't fetch mail from folder display
Version all css
2018-02-17 13:37:40 +00:00
zzz
48027fe6ff i2psnark: folder.js cleanup (ticket #2168, PR #14)
(thx Pimp Trizkit)
2018-02-17 12:31:53 +00:00
zzz
cabf1aa3c5 Streaming: configurable response when over connection limits (ticket #2145)
Drop when way over limits.
Default to HTTP 429 for HTTP Server tunnels
Increase recently-closed cache size
2018-02-16 19:49:49 +00:00
zzz
a1ed4cf3b0 debug tweak 2018-02-16 16:15:24 +00:00
zzz
624c382652 i2psnark: Fix NPE on torrent not found (ticket #2167) 2018-02-14 17:35:23 +00:00
zzz
a62c6a8b96 Add i2pforum.i2p 2018-02-14 13:03:12 +00:00
zzz
167839b267 i2ptunnel, eepget: Capitalize Cache-Control
Change POST throttle response to 429
2018-02-14 12:54:16 +00:00
zzz
c48796c0f4 change clearnet UA again (ticket #2163) 2018-02-14 12:48:35 +00:00
zzz
507c1d55da Util: Drop deprecated BigPipedInputStream 2018-02-12 19:32:45 +00:00
zzz
6193e487c8 Util: Add sort methods that catch IAE 2018-02-12 18:49:01 +00:00
zzz
1826fcee0c i2ptunnel: Close sockets on error 2018-02-12 17:25:35 +00:00
zzz
2999638255 Proxy: Update clearnet user-agent (ticket #2163) 2018-02-12 17:20:23 +00:00
zzz
012fb4cacf SusiMail: Thread the cache loading and email checking (ticket #2087)
Set Cache-Control header for attachments
Fix rotated attached images
Fix excess debug info in message view
2018-02-12 14:26:19 +00:00
zzz
f13f4fcb6e Util: Number formatting tweaks (ticket #1913) 2018-02-11 20:59:58 +00:00
zzz
31719d30cf SusiMail: Improve speed of subject sorter
Use ID instead of hashcode for mailparts, so attachments are bookmarkable
Recognize fw:
2018-02-09 22:53:25 +00:00
zzz
afad22a8cb SusiMail: Better handling of no subject
Better spacing display in text
Recognize more re: and fwd:
CSS wrap fix
2018-02-09 19:41:03 +00:00
zzz
daf7e86b2f SusiMail: Thread the loading from disk 2018-02-09 17:05:32 +00:00
zzz
768921b361 SusiMail: Handle lower case in q-p and filename decode 2018-02-09 16:09:42 +00:00
zzz
ddf7fba039 SusiMail:
- Don't show the 'no charset' warning
Filename encoding fixes:
- Fix encoding to be hex upper case
- Move encoding to new util class
- Encode in sent mail
- Implement decoding in received mail
Error message and debug tweaks
Output remainder of header line after decode fail
2018-02-09 15:17:04 +00:00
zzz
3d25a9fd66 SusiMail: Fix case where getHeaderLineAttribute() was fooled
Time format tweak in message view
Debug tweak
2018-02-08 15:58:15 +00:00
zzz
8161f099d2 SusiMail: Error handling fixes
More tolerant parsing of Date headers
Set a date if we don't get a valid Date header
Fix parsing long Base64 encoded headers
Fix page count after changing page size
Make attribute name parsing case-insensitive
Import mail method for debugging
Debug and log tweaks
2018-02-08 14:46:41 +00:00
zzz
7da3de20aa Util: Move RFC822Date from router to core for SusiMail 2018-02-08 13:22:01 +00:00
zzz
c5ca226ece Debian: Put quilt back into the rules for the debian-binary ant target 2018-02-07 19:01:33 +00:00
zzz
96185d015a Set default organization for self-signed certs 2018-02-07 18:52:26 +00:00
zzz
65484510c6 SusiMail: Use input streams for reading mail (ticket #2119)
Rewrite Base64, HeaderLine, and QuotedPrintable decoders
Rewrite and expansion of ReadBuffer class and utilities for streams
Rewrite Mail and MailPart to parse the headers only once
Rewrite MailPart parser
MailPart parser rewrite skips over the data without reading into memory or decoding
MailPart decoder rewrite to decode stream-to-stream
ReadBuffer becomes Buffer interface with multiple implementations
Logging and debugging tweaks
2018-02-07 12:27:40 +00:00
zzz
b013173c86 Util: Allow backslash in XSS filter on Windows 2018-02-06 21:52:02 +00:00
zzz
172f0c9d95 Console: Fix "UnreachableOK" on /profiles (ticket #2148) 2018-02-03 16:53:56 +00:00
zzz
a3d3eec709 log tweaks 2018-02-03 16:43:56 +00:00
zzz
8250a8e7f7 Add i2pcontrol service identifiers 2018-02-03 16:41:57 +00:00
zzz
e01234c6a4 Update the update URLs 2018-02-03 16:41:34 +00:00
zzz
ce484f2eb8 Console: Move LS debug display back to the bottom,
can't work at the top as we don't have the data.
2018-02-01 15:12:29 +00:00
zzz
38da5cd4e8 javadoc fix 2018-02-01 14:53:25 +00:00
zzz
42fa23017f NetDB: Increase min floodfill version 2018-02-01 14:51:49 +00:00
zzz
a021e0d31f Console: Fix number formatting (tickets #1912, #1913, #2126) 2018-02-01 14:37:11 +00:00
zzz
81713a0cab i2psnark: Escape chars not escaped by browsers 2018-02-01 14:17:57 +00:00
zzz
cccf76cc78 SusiMail: Don't duplicate Re: and Fwd:
final formatters
store Message-ID
2018-02-01 14:14:19 +00:00
zzz
e2afb72c16 i2ptunnel: Reset connection if out of threads 2018-02-01 13:47:43 +00:00
zzz
40e12b4fb1 Flip the snark erasers too 2018-02-01 13:44:36 +00:00
zzz
4a47bea5f1 Debian updates for 0.9.33 2018-02-01 13:43:48 +00:00
zzz
23aaefa986 0.9.33 2018-01-29 21:06:02 +00:00
zzz
99b028a4e7 bump for review 2018-01-26 18:39:48 +00:00
zzz
fbcaad51d7 translated man page update 2018-01-26 18:35:13 +00:00
zzz
64fe2f1b05 update from transifex 2018-01-26 18:32:55 +00:00
zzz
582bab7c0d minor cleanups 2018-01-26 18:04:58 +00:00
zzz
5f903cc7ca flip eraser business-side down 2018-01-26 17:59:54 +00:00
zzz
276d1c907e i2ptunnel: Fix duplicate tunnels on create
Fix null tunnel name
Javadoc fixes
2018-01-26 14:28:41 +00:00
zzz
c098e5602d SusiMail: Close POP3 socket on error
synch isConnected()
2018-01-25 15:56:28 +00:00
zzz
42f8b98b03 Resources: GeoIP 2018-01-05
blocklist update
gostcoin family cert
update license.readme.txt
Susimail: Don't break words in mail body
2018-01-25 14:10:22 +00:00
zzz
d364bba4c7 i2psnark: Prevent commenting without comment name (ticket #2138)
Trim name
2018-01-24 15:35:30 +00:00
zzz
2df32aa8e5 SusiMail: Fix header corruption (ticket #2139) 2018-01-24 13:27:28 +00:00
zzz
709657e2c6 log tweak 2018-01-21 14:40:26 +00:00
zzz
6176aaeb44 Util: Don't throw unsupported on setSoLinger() 2018-01-21 14:29:48 +00:00
zzz
d8c3f617aa Streaming: Consistent exception message on socket close 2018-01-20 11:34:16 +00:00
zzz
08dec0e00d log tweaks 2018-01-19 19:35:29 +00:00
zzz
1b25eaca8f Console: Fix tiers chart on /profiles to match that on /tunnels 2018-01-19 19:11:39 +00:00
zzz
2f4ea9c588 i2ptunnel: Prevent changing sigtype after dest creation (ticket #2128)
Fix HTML error in editClient
2018-01-19 12:58:41 +00:00
zzz
ae505995ac Util: Consolidate console URL generation in PortMapper 2018-01-18 13:25:21 +00:00
zzz
109ac5b61c Console: Fix corrupted string, and parameterize 2018-01-18 12:13:40 +00:00
zzz
79d8a0ed11 build: New poupdate-source target 2018-01-18 10:18:11 +00:00
zzz
7e4ff0ba85 poupdate 2018-01-18 09:08:46 +00:00
zzz
c4c45f708c tag fixups 2018-01-18 09:06:34 +00:00
zzz
953381ff5e i2ptunnel: Move more dup edit code to edit.jsp 2018-01-17 17:46:18 +00:00
zzz
cae1fe14f9 i2ptunnel: Change include style for edit jsps
Move dup edit code to edit.jsp
Add headers for register.jsp
Remove dup Content-Type
2018-01-17 16:51:55 +00:00
zzz
efe3696aa2 i2ptunnel: Set defaults for limits 2018-01-17 16:23:54 +00:00
zzz
889b5ae280 i2ptunnel: Fix NPE stopping TCG 2018-01-16 00:26:32 +00:00
zzz
c2bfb80233 Keyring: Separate local and remote dests on /configkeyring
Prohibit local changes on /configkeyring
Remove local keys from keyring on tunnel shutdown or encryption disable
Ensure subsession encryption setting matches primary session
(ticket #2108)
2018-01-14 18:48:47 +00:00
zzz
8ef042af6a Tags: Clean up sessions with excess tagsets
Move clearExcess() call to the cleaner task
Debug/log tweaks
2018-01-13 19:47:05 +00:00
zzz
fcb835da34 log tweaks for b32 2018-01-13 12:59:48 +00:00
zzz
7493134f25 unused import 2018-01-13 12:57:19 +00:00
zzz
c6c61c9e57 Summary bar: Bounds check on memory info 2018-01-10 20:36:15 +00:00
zzz
8d6d1bc751 i2psnark: Fix infinite loop stopping update torrent (ticket #2125) 2018-01-10 17:58:50 +00:00
zzz
541dae36d4 Util: New util to truncate a string that won't split across a surrogate pair 2018-01-10 17:39:58 +00:00
zzz
50eb93deec /netdb: Note encrypted leasesets 2018-01-10 16:44:37 +00:00
zzz
ecb8480b5c /confignet: Display IP even if firewalled (ticket #2133) 2018-01-10 16:23:25 +00:00
zzz
cfbcd54ba9 jrobin: Disable DeallocationHelper for Java 9 2018-01-10 15:39:05 +00:00
zzz
1c3fc2bbdb i2psnark: Fix double-escaping of '&' (ticket #2127) 2018-01-10 15:29:59 +00:00
zzz
d55a0c9c39 i2ptunnel: Additional user-agent check 2018-01-10 15:14:17 +00:00
zzz
57e2bb7bc9 Addressbook: Remove finalizers (ticket #2115)
Better resource cleanup
2018-01-10 15:11:10 +00:00
zzz
eeb2835ca1 fixup dependency list in ant help 2018-01-09 19:01:25 +00:00
zzz
823526ae9b Console: Remove trackers from home page 2018-01-09 19:00:57 +00:00
zzz
ce49c00454 SusiMail: Rewrite/fix subject line encoding 2018-01-09 18:59:01 +00:00
zzz
9f7ec398c1 Build: Add buildSusiMailJar target for testing
More test targets
2018-01-08 14:46:26 +00:00
zzz
25d16b13f5 i2ptunnel: Advanced config in/out tunnels separately 2018-01-06 20:19:55 +00:00
zzz
f32d3aaef5 Console: Show and set burst bandwidth on /config (ticket #2123)
Better error handling
Comment out some unused things, misc. cleanups
2018-01-06 16:15:15 +00:00
zzz
b8f17c7ac4 i2ptunnel: Escape chars unescaped by browsers (ticket #2130) 2018-01-06 11:23:47 +00:00
zzz
d82499f07c i2ptunnel, eepget: Better error message on invalid URLs (ticket #2130) 2018-01-06 10:31:41 +00:00
zzz
62210c8165 i2psnark: Fix overflow in ratio sorter (ticket #2129) 2018-01-04 11:28:49 +00:00
zzz
a827b2f964 SusiMail: Clean up/simplify HeaderLine encoder loop,
in prep for a rewrite for tokenizing
2017-12-23 19:36:13 +00:00
zzz
1e30efdb0d SusiMail: Limit quoted-words to max line length
Change HeaderLine encoder to work on chars, not bytes,
so multibyte chars aren't split across lines.
Fix places where lines were one or two chars too long.
More to do, as it isn't tokenizing.
2017-12-23 18:49:48 +00:00
zzz
bf193b3218 SusiMail: Don't convert underscore to space after base64 decoding 2017-12-23 18:36:13 +00:00
zzz
003d865cc3 SusiMail: Fix filenames for inline attachments
Support RFC 5987/6266 for attachment and save-as filenames
Add alt tags for images
2017-12-23 13:16:48 +00:00
zzz
4b95824644 SusiMail: Static DateFormatters 2017-12-23 13:08:16 +00:00
zzz
70b2dbec56 SusiMail: Separate recipients by commas 2017-12-22 23:02:29 +00:00
zzz
4ee6ae96a2 SusiMail: Use pattern matcher 2017-12-22 13:52:59 +00:00
zzz
7379645869 SusiMail: Fix bug sending CC recipients as a 2nd To line
- Workaround on receive side for CC bug
- Display To and CC lists on show page
- Case-insensitive handling of all mail headers
- Early return if state is AUTH
- Escape leading '-' in q-p encoding
2017-12-22 13:32:41 +00:00
zzz
8b8d32e496 Util: LookaheadInputStream speedups and cleanups 2017-12-18 22:23:42 +00:00
zzz
be004cd350 Util: Consolidate two copies of WriterOutputStream into jetty-i2p.jar 2017-12-18 12:45:04 +00:00
zzz
71640590bc SusiMail: Show result after server check (ticket #2087) 2017-12-16 16:12:34 +00:00
zzz
0430323d2a SusiMail: Sorting cleanups and fixes, only sort when required 2017-12-16 14:16:56 +00:00
zzz
c2a1d7956c SusiMail: Don't store state in session object (ticket #1373)
Change state to enum
Static redirect method
Put current state in form
2017-12-15 14:20:38 +00:00
zzz
aca2f5780b SusiMail: Fix interactions between single-delete and multi-delete,
P-R-G for single-delete, don't store single-delete in session,
add cancel button for single-delete (ticket #1373)
2017-12-14 23:48:14 +00:00
zzz
0ec39e5ea1 SusiMail: Rework search params and preserve across P-R-G (ticket #1373) 2017-12-14 21:20:42 +00:00
zzz
52f736a06e SusiMail: P-R-G to config page (ticket #1373) 2017-12-14 16:39:23 +00:00
zzz
0722fd8b19 SusiMail: P-R-G from login and compose pages (ticket #1373) 2017-12-14 16:11:54 +00:00
zzz
b33551d4b8 SusiMail: Put prev/next targets in form, not in session object,
and use P-R-G (ticket #1373)
2017-12-14 14:46:31 +00:00
zzz
e6251e7cb5 i2ptunnel: Add internal sockets for SMTP and POP3 (ticket #2118) 2017-12-13 23:23:02 +00:00
zzz
5f413efc08 InternalSocket: Implement more methods, add debug output, don't ignore interrupt on accept()
Close socket on InternalSocketRunner exception
2017-12-13 16:06:13 +00:00
zzz
bd341d4be3 Startup: Raise open files ulimit (ticket #1967)
Fixup deb patch to match
2017-12-11 14:14:46 +00:00
zzz
34d879a066 unused imports 2017-12-11 11:44:44 +00:00
zzz
789f15f1e4 Java 10 test 2017-12-11 11:41:19 +00:00
zzz
b04924d2b1 Jetty: Fix request log showing zero length for static content 2017-12-11 11:39:58 +00:00
zzz
ed4dc33105 Router: Change RI locking to a read/write lock (ticket #2096) 2017-12-10 13:06:49 +00:00
zzz
8e51ca7f39 javadoc tweaks 2017-12-09 17:37:02 +00:00
zzz
2e00cec408 deb doc updates 2017-12-09 17:35:34 +00:00
zzz
2a57f62e6b remove SSL cert for reseed now using CA 2017-12-09 17:33:54 +00:00
zzz
cd51c9b3c4 susimail tweaks 2017-12-09 17:32:17 +00:00
46a342180d Don't compile ScalaTests on Java 7 2017-12-09 12:42:52 +00:00
578656021e Don't run ScalaTests on Java 7 2017-12-09 02:28:01 +00:00
7dae4eb303 ScalaTest: Fix deprecation warnings 2017-12-09 01:47:24 +00:00
4512a940fb Gradle: Run ScalaTest tests in addition to the JUnit tests 2017-12-09 01:43:09 +00:00
a67ea4b2f2 Cleanups: Close resources via try-finally
We can't use try-with-resources until we bump the minimum-supported Android
version for the client library to API 19.
2017-12-09 01:02:17 +00:00
zzz
fe5e4a2c7a SusiMail: Add tooltips for icon-only buttons
- Fix NPE sorting by sender
- Make subject bold
- Minor prep for folders
2017-12-08 18:59:39 +00:00
zzz
5aef5e24e3 SusiMail: Fix handling of requests for unknown messages 2017-12-08 17:37:33 +00:00
zzz
4c18e2f057 SU3File: Flush and sync on extract (ticket #1941) 2017-12-08 16:08:17 +00:00
zzz
a3e42c435c SusiMail:
- Put UIDL in attachment links, remove session object UIDL (ticket #1373)
- Store UIDL in MailPart
- Fix download of attachments without a Content-Transfer-Encoding
- Fix escaping inside debug html comments
- Fix error return for attachment not found
2017-12-08 15:32:52 +00:00
zzz
2c4ecb7b7c SusiMail: Reference mails by UIDL, not index on page
- Add more safe mime types for downloading
- Put UIDL in show message form, in prep for removing session object UIDL
2017-12-08 02:27:29 +00:00
28f31ae4ec Fix .travis.yml syntax 2017-12-07 21:29:22 +00:00
zzz
f34b4678ba Util: Deprecate BigPipedInputStream 2017-12-07 19:53:06 +00:00
zzz
1f569b7359 i2psnark: Synch operations on BitField byte array 2017-12-07 19:44:56 +00:00
7f673bb254 Travis CI: Dynamically add SonarQube plugin to build.gradle 2017-12-07 19:31:30 +00:00
a02cccaa50 Only use SonarQube with Java 8
It fails on Java 7, and is unsupported on Java 9.
2017-12-07 16:54:02 +00:00
bcb07ff3c6 merge of '9aa4b7c5c2c7f8711ef82ceb28fe85ec3bc1e509'
and 'c08cb985b2e34268deff746d3849d707d1ed084f'
2017-12-07 16:08:15 +00:00
zzz
479120118d merge of '3587a0d669980fb559bea3c618bc6515c8133189'
and '8b9bf9d50ce636255f7c5ccb9625671d37697fa8'
2017-12-07 15:48:35 +00:00
zzz
0c4f945408 Console: Don't list aliased tunnels separately on /tunnels and /configtunnels 2017-12-07 15:47:12 +00:00
zzz
3291b761e8 SusiMail: Recheck max size if server reports less than default
- More javadocs and cleanups
2017-12-07 15:45:55 +00:00
b8d78ac779 Combine Travis CI Gradle tasks into a single step 2017-12-07 15:41:12 +00:00
e6d97308bc Only apply sonarcloud addon to the Travis CI job it is used in 2017-12-07 15:34:21 +00:00
71dbc0abe6 Only call SonarQube once per Travis CI build 2017-12-07 14:55:44 +00:00
ff911e37c4 Deduplicate the default Java Keystore password 2017-12-07 14:31:28 +00:00
f9eaf412b7 Enable SonarCloud in Travis CI 2017-12-07 14:04:48 +00:00
19016edcfc Gradle: Add code coverage reporting, upload from Travis CI to Codecov 2017-12-07 03:50:25 +00:00
zzz
75e6539f81 fix streaming test take 2 2017-12-06 14:41:05 +00:00
zzz
956c9607ff hopefully fix streaming test 2017-12-06 13:09:53 +00:00
zzz
a28ddedce7 Susimail: Move duplicated Encoding methods to the abstract class 2017-12-06 02:10:31 +00:00
e13ce467d8 Travis CI: Remove second IRC server after testing 2017-12-05 22:29:39 +00:00
34b204c44c Travis CI: Tweak IRC notification syntax, add second server for testing 2017-12-05 22:01:56 +00:00
zzz
f5dffb0726 Susimail, Console, Jetty:
- Adjust multipart size limits
- Better handling of errors when multipart limits are exceeded
- Fix multipart config for /configplugins
- Test for total size limit in susimail
2017-12-05 21:46:11 +00:00
d4bafaeee8 Don't check error messages for JRE-generated errors
They may change across Java versions.
2017-12-05 20:33:12 +00:00
2f8249bed5 Remove now-unnecessary Jetty Gradle dependency 2017-12-05 20:24:32 +00:00
5a458822ce Add IRC notifications for Travis CI builds 2017-12-05 20:12:37 +00:00
zzz
692790c4ed Router: Parameterize bandwidth classes, fix display on /tunnels 2017-12-05 15:53:05 +00:00
zzz
7f5f764aba SusiMail: Don't store attachments of composed email in-memory,
encode them on-the fly (ticket #1668)
- Fix bug corrupting sent text and text attachments
  larger than about 1000 chars (output line length was not limited)
- Fix bug corrupting some sent text and text attachments
  containing '.'
- Fix handling of unimplemented encoders
- Error message improvements
- Add test code for encoders
2017-12-05 15:02:23 +00:00
zzz
c299976165 Jetty: Refactor (rather than remove) RequestWrapper to use Servlet 3.0 API.
Remove old org.mortbay helper classes copied from Jetty 5, saving about 24 KB.
Large attachments will now be written to temp files. (ticket #2109)
2017-12-04 16:08:03 +00:00
zzz
14941d0dda Deprecate RequestWrapper (ticket #2109) 2017-12-03 23:09:22 +00:00
676e9c9320 merge of '17e445455139cbd0a4d4096e2f6bf673bdf0f868'
and '8c95a90070f2706b8b4d3eb9151e0c614d25663b'
2017-12-03 18:23:34 +00:00
bb38e07e2a Fix broken I2PSocketEepGet test, add additional case
Broken in 49d33fa03636041c4da35476539a3b6aa318da11 by the move from URL to URI.
If URI is passed a URL with a negative port, URI.getHost() returns null, which
bypasses the coercion-to-80. Zero, OTOH, is still coerced.
2017-12-03 18:17:44 +00:00
zzz
16282ec5c5 Util: New utility class for UI message queues, for use by i2psnark and i2ptunnel
i2psnark: Use new utility, prevent message loss on clear
i2ptunnel:
- Don't lose messages on refresh (ticket #2107)
- New clear messages button
- Hide message box if none
- javadoc clarifications
2017-12-03 17:33:20 +00:00
zzz
5912f7c259 fix swapped log msgs 2017-12-03 17:29:31 +00:00
zzz
89d7a594dd fix test on Java 9 2017-12-02 23:25:43 +00:00
zzz
100d307037 i2ptunnel: Propagate resets from streaming to Socket and vice versa (ticket #2071) 2017-12-02 23:12:19 +00:00
zzz
3d0e15aaed cleanup 2017-12-02 22:51:18 +00:00
zzz
e9de0a14b9 Streaming: Send reset when receiving more data after locally closed,
rather than acking (ticket #2071)
2017-12-02 22:32:03 +00:00
5a3f0163b9 Gradle: Ignore streaming integration tests 2017-12-02 20:58:58 +00:00
dd89c4a469 Exclude BuildMessageTestStandalone from Gradle test suite
Needs rewriting.
2017-12-02 20:54:13 +00:00
a65a498c86 Segment integration tests in router 2017-12-02 20:48:53 +00:00
10d5a17422 Migrate net.i2p.data tests in the router to JUnit 4 2017-12-02 20:08:44 +00:00
b6298dc091 Segment integration tests in core 2017-12-02 19:35:33 +00:00
11da21dd67 Remove AESInputStreamTest reference 2017-12-02 19:33:05 +00:00
a574fcb68d Drop historic unused AESInputStream and AESOutputStream 2017-12-02 19:29:36 +00:00
0f757489ff Migrate DummyNamingServiceTest to JUnit 4, comment out tests requiring a router 2017-12-02 18:22:59 +00:00
b8eeb72044 Fix net.i2p.data.*Key tests, remove dead code
Broken in 463f5347b682f23a159bdeb06ffc8f55c5c2cff7 by an underlying API change.
The dead code threw the previously-expected exception.
2017-12-02 17:42:59 +00:00
60efd0b426 Migrate net.i2p.data tests to JUnit 4 2017-12-02 17:25:09 +00:00
c36905a309 Travis CI: Use BouncyCastle as a SecurityProvider for OpenJDK 7
Workaround for travis-ci/travis-ci#8503, gradle/gradle#2421.
Solution taken from bugsnag/bugsnag-java#66.
2017-12-02 15:17:06 +00:00
1ff9e6eff1 Travis CI: Add Gradle cache configuration 2017-12-02 15:06:08 +00:00
zzz
2e888501d6 Core tests: Remove or suppress deprecation warnings
Remove unchecked warnings
Fix HMACSHA256Test and HMACSHA256Bench?
2017-12-02 14:28:03 +00:00
zzz
e6f17ec1ab Router tests: Remove or supporess deprecation warnings
Remove cast warnings
Fix RouterAddress.setExpiration() to match javadoc, used only by tests
2017-12-02 13:56:13 +00:00
2becaaa593 Add a basic Travis CI configuration 2017-12-02 10:25:00 +00:00
zzz
f8e871cea9 build dep fix 2017-12-01 16:08:03 +00:00
zzz
80e3c96f2d LeaseSet: Better error messages when decode fails (ticket #2108) 2017-12-01 15:57:54 +00:00
zzz
dc13ed6c19 Console: Move /configkeyring HTML to console,
don't truncate hashes, tag for translation,
display as b32, trim form data, better form errors,
fix removing entries, parameterize form messages (ticket #2108)
2017-12-01 15:53:16 +00:00
zzz
17b72dd549 Streaming: Double the RTO on congestion (ticket #1939)
This prevents being stuck at a window size of 1, retransmitting every packet,
never updating the RTT or RTO. See RFC 6298 section 5 item 5.5.
2017-12-01 14:10:57 +00:00
zzz
9b2a85df38 Console: Split net.i2p.router.web into two packages, and move the new .helper package to the war 2017-12-01 14:07:29 +00:00
zzz
6c56d679ab Debian: Exclude gradle, IntelliJ, Docker, .tx, gcj files from source tarballs 2017-11-27 23:59:05 +00:00
5c5f5bc682 Update history after prop 2017-11-27 15:47:49 +00:00
881ff77171 Remove unneeded dependency 2017-11-27 15:41:19 +00:00
9be53ecb43 Swap out getopt, gettext, and geoip code in Gradle libs for dependencies 2017-11-27 15:36:09 +00:00
646dbffe69 Add license details for Gradle wrapper 2017-11-27 14:44:48 +00:00
95f5244fd9 Add Eclipse and IDEA project files to ignores 2017-11-27 09:53:00 +00:00
694aab503d Drop old Eclipse and IDEA project files 2017-11-27 09:47:14 +00:00
36a313cc30 Don't make the apps/ dir itself a Gradle Java project 2017-11-27 01:34:15 +00:00
e011d60987 Add project file generation for IDEA 2017-11-27 01:27:55 +00:00
d76d68ea8d Update Jetty and Tomcat versions after prop 2017-11-27 00:54:07 +00:00
404fe4f127 propagate from branch 'i2p.i2p' (head d3ba02961713c42005f60442d7816cefa3dcf46a)
to branch 'i2p.i2p.str4d.test2' (head fbda38b84fe469dba05367115d2c26dee65fc5f4)
2017-11-27 00:34:41 +00:00
27d8b0ee3d Make settings.gradle more readable 2017-11-27 00:34:02 +00:00
89f2a76409 Update README 2017-11-26 23:27:59 +00:00
3acb7a5c28 Apply java-library plugin to published libraries 2017-11-26 23:20:24 +00:00
zzz
03588e7648 Console: Safer processing of changes on /configadvanced 2017-11-26 20:54:44 +00:00
zzz
6a48910935 Build: add xenial release target, it will be our 4th launchpad flavor.
build.xml cleanups
doc updates
2017-11-26 15:27:06 +00:00
zzz
fb4fb47ee3 Context: Hopefully fix rare NPE on Android (ticket #2092) 2017-11-26 14:16:16 +00:00
zzz
7a36b07cf7 Debian: Clean up the suggests list 2017-11-25 22:00:31 +00:00
zzz
4a59c19ac9 Console: Show full logger.config path on /configlogging
Don't say 'Plugin downloaded' when installing from file
2017-11-25 19:53:25 +00:00
zzz
51a6f298e2 Debian: Remove libecj-java dependency (ticket #2094)
Add taglibs-standard-* to apparmor list (ticket #2093)
2017-11-25 19:42:10 +00:00
zzz
752c17ca6c doc tweaks 2017-11-25 19:00:09 +00:00
zzz
a3a17a4f32 Debian: Replace glassfish-javaee with libtaglibs-standard-* (ticket #2093)
Only for stretch and later, zesty and later
Copy more files for previous stretch setup to xenial
2017-11-25 18:59:04 +00:00
7f6ba8cd15 Enable overriding of the gpg binary 2017-11-24 11:39:05 +00:00
zzz
6cd5f1d83b i2ptunnel: Add timeout to header reads for CONNECT, HTTP, and SOCKS client proxies
Clean up SOCKS exceptions
2017-11-23 17:44:03 +00:00
zzz
2a2795827a Wrapper: Update to wrapper 3.5.34
All binaries from Tanuki Delta Pack Community Edition,
except for armhf (armv6), compiled on Raspberry Pi:
  ant 1.8.2
  javac 1.7.0_151
  gcc 4.6.3-14+rpi1
Windows binaries remain unchanged as we must recompile them ourselves
(32 bit just to change the icon; 64 bit is not provided by Tanuki)
2017-11-23 15:33:59 +00:00
zzz
700c843b11 i2psnark: Fix nbsp in logs on config change (ticket #2082) 2017-11-22 15:55:19 +00:00
zzz
d28220cd04 Tomcat 8.5.23
Prior to Jetty 9, we used the Tomcat 6 distribution.
As of Jetty 9, we used Tomcat 8.0.33 that was included in the Jetty 9 distribution,
but that is old and doesn't get updated.
Now use the latest Tomcat 8 distribution, and pick the same packages
as Jetty 9 did in their distribution.
2017-11-22 14:49:22 +00:00
zzz
ad056bcef5 Streaming: Fix bug causing hangs on loopback and preventing desired ack behavior (ticket #1939) 2017-11-22 00:10:52 +00:00
zzz
b2dcf2069f Transport: Add checks for more Tor ports as invalid 2017-11-21 01:33:22 +00:00
zzz
8c7898de1e Reseed: Add support for reseeding via outproxy or Orchid (ticket #1841)
InternalSocket: Add support for some methods needed for reseed to work
2017-11-21 01:29:31 +00:00
zzz
07a83bf310 EepGet: Refuse attempted redirect to HTTPS, won't work 2017-11-21 00:58:44 +00:00
zzz
173823695f HTTP Proxy: Better HTTP status message when no outproxy configured 2017-11-21 00:06:32 +00:00
zzz
5000a266cb i2prouter: Fix echo -n on OSX 2017-11-20 23:06:06 +00:00
zzz
14e9315262 Streaming: log tweak to assist in fixing ticket #1939 2017-11-19 21:32:12 +00:00
zzz
3abc777062 Debian: Fix builds for x32 (ticket #2076)
Incorporate patches 2 and 3 into build scripts
2017-11-19 16:58:51 +00:00
zzz
3ba46f16d1 /configreseed help tweaks 2017-11-19 00:41:42 +00:00
zzz
85bb495754 DTG: On OSX, set dock icon, and enable by default 2017-11-19 00:40:50 +00:00
zzz
0ba207cb01 Reseed: Improve status feedback in logs, summary bar, and /configreseed
- Show proxy info, if applicable, in logs
- Show status in summary bar for manual reseed (previously hidden if more than 30 routers)
- Show status in summary bar after successul completion
- Show reseed button in summary bar if less than 50 known RIs (previously 30)
- Show current status on /configreseed if already running
- Consolidate proxy settings detection in ReseedRunner constructor
- Enhance help text on /configreseed (tickets #423, #1130)
2017-11-18 18:47:50 +00:00
zzz
33aac1b125 Reseed: Add SOCKS proxy support (ticket #1130) 2017-11-17 23:46:45 +00:00
zzz
d5cc1d83f3 SSLEepGet: Refactor proxy code to new method, in prep for adding more 2017-11-17 20:49:00 +00:00
zzz
92a26f6f7b Addressbook: Fix adding alternates after importing an empty book (ticket #2072) 2017-11-17 20:34:51 +00:00
zzz
d04050e6b0 SOCKS: Move constants and client code from i2ptunnel to
a new package in core, in prep for use by SSLEepGet (ticket #1130)
Make SOCKSException extend IOException, which allows some cleanups.
Untested.
2017-11-17 20:14:10 +00:00
zzz
80cb62b777 SSLEepGet, Reseed: Implement HTTPS proxy option (ticket #423) 2017-11-17 13:33:46 +00:00
zzz
570dea85f1 Console: Hide Reseed HTTP proxy options if no HTTP URLs (ticket #2007) 2017-11-16 16:17:03 +00:00
zzz
86a2e16ffb Fix pkg build for Jetty 9.2.22
Set next release to include GeoIP
2017-11-16 13:28:01 +00:00
zzz
ed39ea408f Utils: Consolidate user-agent detection code in a new utility class
Add some new checks for mobile
2017-11-16 12:58:59 +00:00
zzz
e9ff0c2882 i2psnark: Fix bad completion status after recheck (ticket #2046)
Only occurred if torrent had previously run, was previously incomplete,
and was now complete.
Also fixed changed-after-recheck logic to be precise.
2017-11-16 02:26:29 +00:00
zzz
e78081f33b Jetty 9.2.22
Remove patches for 9.2.21
2017-11-16 02:15:18 +00:00
eb04971d5a Fixed unicode character which fixes "ant javadoc". 2017-11-14 16:35:34 +00:00
zzz
43d496a93e Regenerate the Debian source po file with debconf-updatepo
i2p.templates file was changed in 986a85fec8c8fd8fd12a3748163fe80c4eb80b51 03/21/2016
but didn't do the po file at that time.
Dutch Debian translation update from https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=879135
2017-11-12 14:22:32 +00:00
zzz
8212d68c41 Summary Bar: Use Rate instead of instantaneous value for used memory 2017-11-09 17:39:14 +00:00
zzz
f060287df8 Summary Bar: Fix max memory value 2017-11-09 13:08:05 +00:00
zzz
1fbf188d61 debian updates 2017-11-08 22:09:53 +00:00
zzz
c1591983f9 langbox part 2 2017-11-07 01:09:51 +00:00
zzz
b726424a34 increase langbox 2017-11-06 23:57:49 +00:00
zzz
e4814a7d06 bump 2017-11-06 23:47:27 +00:00
zzz
2b8f14f709 Minor fixes and javadocs after review
Set 90 day default for event log
Format clock skew in summary bar
Constant time for password hash check
2017-11-06 23:45:57 +00:00
zzz
e281620063 0.9.32 2017-11-06 22:03:24 +00:00
zzz
7a6db4eda2 remove trailing newline 2017-11-06 22:00:12 +00:00
zzz
97ad909378 Update translations, add Indonesian
Add missing debian nb translation
2017-11-03 21:25:34 +00:00
zzz
718fff945e translated man page updates 2017-11-03 20:30:28 +00:00
zzz
622272758e translation updates from transifex 2017-11-03 20:02:40 +00:00
zzz
19b84aff9f GeoIP 2017-10-04 2017-11-03 19:07:13 +00:00
3f4daede8f switch to a single sourceSet. This fixes the last remaining problem with one-click import in eclipse 2017-11-03 18:23:49 +00:00
5d71fb0b44 Bump version 2017-11-03 07:58:58 +00:00
73ab3e834c propagate from branch 'i2p.i2p.str4d.ui' (head a782f0bce10ae47d857e9ebadf9b62b967f2c77e)
to branch 'i2p.i2p' (head 01ea5b14ea8f5e730d457eca5fd73aec05849902)
2017-11-03 06:28:12 +00:00
8901e3c34c Theme updates
Console:
- Fix scrolling latency issue light theme in Chrome/blink and older Firefox
  versions (ticket #2024)
- Various cosmetic tweaks, fixes and enhancements

I2PSnark:
- Reduce scrolling and hover latency
- Add sort direction hover indicators to .snarkTorrents header icons
  (dark/midnight)
- Various cosmetic tweaks, fixes and enhancements

Susimail/SusiDNS:
- Various cosmetic tweaks, fixes and enhancements
2017-11-03 06:22:27 +00:00
3b1a1fa027 Sidebar: limit event logs to last 7 days, to avoid page freezes 2017-11-03 02:49:24 +00:00
91977aabae /graphs:
- Reorganised config form
- Fixed "hide legends" option
2017-11-03 02:39:05 +00:00
49d970c5bc Fix compilation without bootstrap classpath set 2017-11-03 01:05:37 +00:00
e34ab0b7a8 Indentation 2017-11-03 00:53:36 +00:00
6cd560ff1b fix name 2017-11-03 00:33:09 +00:00
d3cdf3c7d7 switch to single source multiple jar approach 2017-11-03 00:11:51 +00:00
ab69fab3e4 add mini-streaming to testCompile dependencies as well 2017-11-02 20:23:32 +00:00
bf639478c7 add mockito to top level 2017-11-02 20:15:48 +00:00
69bd0571d4 add mockito 2017-11-02 19:57:21 +00:00
a3df4a399c eclipse users rejoice 2017-11-02 19:04:40 +00:00
a715d2b6d7 I2PSnark:
- Roll back target="_top" in config page to prevent embedded view from breaking
  out of iframe
- Add target="_blank" to relevant links to avoid display in iframe in embedded
  mode
- Enhance presentation of tracker links in TorrentInfo view
2017-11-02 10:11:14 +00:00
31a52d2acc Sidebar:
- Fix erratic display of sidebar graph
- Add id to memory bar so we can target it for Chrome/blink display issue
2017-11-02 10:09:10 +00:00
76629741f1 Add EdDSA test vectors to test resources 2017-10-31 12:50:30 +00:00
3eef793bda Add bootstrap classpath JARs if necessary 2017-10-31 08:35:04 +00:00
db17aa048d propagate from branch 'i2p.i2p' (head 01ea5b14ea8f5e730d457eca5fd73aec05849902)
to branch 'i2p.i2p.str4d.test2' (head 0cf1d8a3ab9cde1e942ea8043e64fcb2892a0872)
2017-10-31 08:25:05 +00:00
dc6ab70a69 I2PSnark: Use reflection to access ConfigUIHelper in standalone build
This fixes a "Class not found" error in some build systems
2017-10-31 08:24:34 +00:00
bf4cb419a1 Update i2psnark Gradle build script 2017-10-31 08:15:51 +00:00
a0b316e56d Update Jetty version after prop 2017-10-31 08:15:10 +00:00
62d34f51cb Addressbook has moved from war to jar 2017-10-31 08:14:21 +00:00
113f2c4d14 Gradle build script for JRobin 2017-10-31 07:16:07 +00:00
2ca658174a Set Java 7 build target for all projects 2017-10-31 07:14:39 +00:00
c78af828ac Add missing test dependency 2017-10-31 06:13:24 +00:00
041f5478a4 Use JCenter repository (which pulls from Maven Central) 2017-10-31 06:13:12 +00:00
72081a8647 Upgrade Gradle & wrapper to 4.3 2017-10-31 06:12:50 +00:00
7b221fa239 Update router version in build.gradle after prop 2017-10-31 04:32:08 +00:00
d95e730d94 propagate from branch 'i2p.i2p' (head 707603fcdd707b7521d213a82287d64520e18d37)
to branch 'i2p.i2p.str4d.test2' (head d44865c44b6a31ff2e3d5bf9a5e98a6f28d80e5b)
2017-10-31 04:29:54 +00:00
zzz
670e56ded2 poupdate 2017-10-25 16:46:36 +00:00
20a58a24bb Use correct shared bandwidth measure in TunnelRenderer 2017-10-25 10:18:18 +00:00
bf42cc1594 propagate from branch 'i2p.i2p.str4d.ui' (head 396ff40bde06334be0bd26509dc5e31b75f2c2f5)
to branch 'i2p.i2p' (head 9ba94555553a2d114c9c44022b0ff6e228972d33)
2017-10-25 10:00:12 +00:00
e44fb48ff0 Tag strings for translation 2017-10-25 09:49:48 +00:00
1c6ca5011d Theme updates
Console:
- light:
  - Lighten/tint buttons and dropdowns to better blend with reworked theme,
    vary text color for different button states
  - Increase vertical spacing for status/buttons in news section
  - Fix minor rendering issue with h1's (remove bottom border-radius)
  - Fix some mismatched heading coloring issues
  - Fix alignment issue on /configservice in Arabic/Chinese (ticket #2024)
  - Ensure spacing of sidebar elements is consistent in Chinese
- dark: Overhaul theme
- classic: Add fallback CSS to ensure browsers without CSS3 support can display
  icons on buttons (tested with Netsurf)

Proxy: Remove truncation of URLs in the error messages and handle with CSS to
  avoid UI breakage

I2PSnark
- Add button hoverstate for tracker details, torrent details and file icons
- light
  - Sync buttons in embedded mode with console theme
  - Fix non-functioning message log close icon
- dark: Overhaul theme and sync with console theme in embedded mode
- classic: refresh CSS

Susimail:
- Overhaul dark theme
- Sync theme to console theme by default, override if user sets theme
  (unless universal themeing is enabled)
2017-10-25 09:47:34 +00:00
cdd89df98d /tunnels:
- Indicate that no participating tunnels will be built when shared bw is too low
- Replace <a name> with id attribute for anchor links
2017-10-25 09:47:00 +00:00
ac833ec474 /help:
- Update sidebar help section (en)
- Remove redundant CSS class from all help section files (li.tidylist)
2017-10-25 09:39:09 +00:00
da9c06e663 /configui: Use larger flags for language selection 2017-10-25 09:38:12 +00:00
df95e29f4e I2PSnark UI bugfixes
- Fix broken collapsible panels issue for browsers that don't support the
  feature by conditionally loading override CSS to expand panels by default
  and disable hover/active states for panel headings (tickets #2002, #2026)
- Add UI option to configuration section to enable collapsible panels, and
  disable the option if a non-compliant browser is detected
- Fix multiple instances of snark refreshing to the homepage (ticket #2028)
  (patch supplied by mindless)
- Tentative fix for caching of images so ajax refresh doesn't reload all
  image resources
- Standardize 'Save Configuration' action to return to top of the page
  (so we can see message log entry)
2017-10-25 09:35:51 +00:00
47d354711e /configui: Add option to embed Susimail and I2PSnark in console 2017-10-25 09:33:20 +00:00
b54a5c592e SusiDNS:
- Reinstate filter removal on addressbook navigation links (ticket #1996)
- Reduce vertical padding for filter buttons section
- Migrate search section to div and reposition page elements to better
  integrate with host list and minimize whitespace
2017-10-25 09:32:38 +00:00
5ecae1a951 I2PTunnel: Add hostname / destination (b32) info to server section on index page
For parity with client tunnels section
2017-10-25 09:32:07 +00:00
0e5b46e7d8 Console sidebar improvements
Sidebar:
- Adjust vertical spacing of general section
- Rename 'General' section to 'Router Info' and move ident info to h3 tooltip
  (ticket #1996)
- Replace 'Short Router Info' with a new 'Advanced Router Info' section in
  default advanced sidebar (adds memory usage and clock skew)
- Add optional embedded bandwidth graph (experimental)
- Add optional memory usage bar
- Add optional Advanced Peers section (adds failing and banned peers)
- Add Help link to 'I2P Internals' section
- Add help page anchored links and troubleshooting to 'Help & FAQ' section
- Add download progress bar for router and plugin updates
- Add 'Advanced Minimal' sidebar configuration
- Add Jobs and Events links to Advanced section
- Add additional reachability states for clockskew and vmcomm (with icons)

Homepage: Add 'Customize Sidebar' link to signpost the feature now that there
  are more optional sections available (ticket #1996)
2017-10-25 09:31:13 +00:00
97267a4d5c /graphs:
- Add option to hide legends
- Adjust size of up/down bw graph to match other graphs (ticket #1996)
- Modify image font color to better blend with themes
- Tweak spacing of elements for non-Debian installs
2017-10-25 09:29:49 +00:00
zzz
9ae9abd888 NTCP: Convert configured NTCP hostname to IP address before publishing (proposal #141) 2017-10-24 23:18:22 +00:00
zzz
3f4df2317a UDP: Reduce log level on IP change (ticket #2053) 2017-10-21 13:57:43 +00:00
zzz
c7a3e271db Console: Validate host header (thx Kevin Froman) 2017-10-11 16:26:37 +00:00
zzz
37e0b2ceb1 Router: Honor IPv6 setting when converting configured hostnames
to IP addresses (proposal #141)
2017-10-11 16:23:13 +00:00
zzz
e3751b36ec checklist update 2017-10-11 16:21:46 +00:00
zzz
cd21cda42a BuildTime update 2017-10-11 16:21:33 +00:00
zzz
5fb6b2c79a Router: Convert configured hostnames to IP addresses
before publishing (proposal #141)
NTCP-only config still to do
2017-10-04 17:33:55 +00:00
zzz
c4a932b187 missing paren 2017-10-04 15:54:48 +00:00
zzz
30b9f063d3 Debian: Backport fixes from 0.9.30-4 package (ticket #2027)
and add buster files

* debian/NEWS: remove
* debian/README.Debian: update
* debian/compat: set compat level to 9.
* debian/control: added ${misc:Depends} to i2p & libjbigi-jni's Dep.
* debian/control: added bash-completion build dep
* debian/control: remove version on lsb-base dep
* debian/rules: fixed a typo (override_dh_dhlibdeps -> override_dh_shlibdeps).
* debian/rules: remove apps/susidns/src/lib/standard.jar symlink on clean.
* debian/i2p.postinst: Fixed a typo (missing ")" in /etc/default/i2p).
2017-09-29 18:27:15 +00:00
zzz
de487411b6 Router: Don't lookup hostnames in addresses (proposal #141) 2017-09-14 15:04:16 +00:00
bcd7b7e6ca Update history after prop 2017-09-12 10:08:32 +00:00
8f4f7b7b53 propagate from branch 'i2p.i2p.str4d.bench' (head 61fcef0f1004c55f7b15ba3982173050a952a08c)
to branch 'i2p.i2p' (head 8374318b8b49df7f47dfa0d2653413ceccab9b52)


Core: New benchmarking framework based on JMH (ticket #2036)
2017-09-12 10:08:09 +00:00
10cfa6eeab Add NativeBigInteger benchmarks 2017-09-08 16:25:38 +00:00
9e2bd4aacd Fix bench.jarUpToDate 2017-09-08 11:28:19 +00:00
1a493094bb Add usage info to benchmark script 2017-09-08 11:24:36 +00:00
3d24cc9e92 Move benchmarks into core 2017-09-08 11:16:40 +00:00
7346ce1c89 Enable benchmarks.sh to run with everything in one directory 2017-09-08 10:49:05 +00:00
d5e97d2392 Clean up benchmarks dir 2017-09-08 10:28:11 +00:00
zzz
2cd9b34427 Data: Prohibit excess key data in certs (ticket #2035) 2017-09-02 12:21:55 +00:00
zzz
94738c1396 new opentrackers 2017-09-02 12:18:01 +00:00
zzz
8d89d1eedb new reseed 2017-09-02 12:15:55 +00:00
zzz
8fd354eea6 Startup: Add property to disable output redirect (ticket #2037) 2017-09-02 12:12:08 +00:00
f611f4c965 Minor cosmetic issues in the default console and snark themes 2017-08-26 21:41:24 +00:00
40642c805c Remove old benchmarks 2017-08-26 20:46:33 +00:00
2bb0ca97d6 Use I2PAppContext for obtaining instances of AES and SHA256
This gives a more realistic benchmark of how the rest of the I2P codebase
experiences these calls.
2017-08-26 20:41:12 +00:00
d828ed4342 Shorten the benchmark names 2017-08-26 20:08:17 +00:00
a06c3fe043 Add a script for running the benchmarks with or without jbigi 2017-08-26 19:17:09 +00:00
zzz
d77cd04061 Transport: More invalid ports 2017-08-22 12:42:14 +00:00
zzz
1efc1677a3 i2ptunnel: Check for RFC 7239 Forwarded header 2017-08-22 12:39:12 +00:00
zzz
2071cf8596 more Skylakes 2017-08-22 12:36:23 +00:00
zzz
51d4827657 i2psnark: finals for Message class
recognize BiglyBT
cleanups
2017-08-22 12:34:38 +00:00
6615586a4e Add benchmarks for ElGamal 2017-08-20 21:13:57 +00:00
zzz
3d385228f0 findbugs all over 2017-08-09 21:24:02 +00:00
zzz
24414845d0 Package changelogs
Fix extra chars in patch 1
Fix javadoc causing build error on Trusty
Deb build doc updates
2017-08-09 19:53:41 +00:00
zzz
2c76b87fba 0.9.31 2017-08-06 21:45:05 +00:00
zzz
bbe3a71d2c bump for review 2017-07-31 21:05:41 +00:00
zzz
9d1097b467 merge of '11dcbebf6657486cbeae1d8bfe43ede3f4a5b314'
and '8e065cf86f719138e323815c38f249ed56941327'
2017-07-31 20:51:17 +00:00
zzz
8beb75be50 refresh deb patch 2017-07-31 20:49:50 +00:00
80c55c150f Console: fix router family page form (ticket #2022) 2017-07-31 20:43:29 +00:00
82806099a7 Console theme tweaks:
- Use plugin icon for unidentified sidebar plugins and ensure placement and
  coloring is consistent
- Mobile:
  - Fix misaligned elements in light theme
  - Enhance 'Summary Bar' link
2017-07-31 19:30:07 +00:00
zzz
903f46f3a8 man page translation updates 2017-07-31 19:02:24 +00:00
zzz
d99a699839 translation updates 2017-07-31 18:55:06 +00:00
9f15ae6e56 Add a0.png to update files 2017-07-30 12:13:03 +00:00
26bc83c51b Console theme fixes
- light theme:
  - Fix spacing issue with banned peers list 
  - Tweak font sizes for Arabic
- Shrink icons in sidepanel network status span
- Add single graph view buttons to classic theme
- Better separation of graphing controls in single graph view
- Enhance presentation of /oldconsole and /proof
2017-07-30 12:05:04 +00:00
5dd5a99de5 Theme fixes
Console:
- Enhance presentation of show/hide news links on home page
- Fix some issues with Arabic CSS (light/dark)
- Further tweaks to graphs display and fixes for borderless single graphs
  in midnight/dark themes
- Fix minor coloring issues with light theme post-rework
- Misc theme fixes

I2PSnark:
- Move </center> tag in fileinfo view that prevented sticky navbar from working
- ubergine:
  - Alternative panel tabs for embedded view
  - Tighten .snarkTorrents thead/tfoot spacing
  - Tweak embedded navbar coloring
  - Reduce height of download bars
2017-07-28 18:00:53 +00:00
ac75327a78 Refactor README.md 2017-07-28 00:45:08 +00:00
2f48af517e Bump -21-rc 2017-07-27 02:16:06 +00:00
e284675e5a UI fixes
'light' theme (console & apps):
- Rework to reduce contrast (ticket #1996)
- Add custom radio/checkbox icons for Chrome/Blink

Console:
- Fix reseed failure notice overlap when "check connection" message shown
- Enhance presentation of console "error 500" messages
- Cosmetic tweaks to welcome page presentation, arabic welcome page tidyup
- Migrate .smallhead th class to tr to simplify markup
- Sidebar:
  - Remove "Congestion" from default sidebar (still present in default
    advanced sidebar)
  - Fix label wrapping issue with translations
  - Migrate sidepanel news section to tables to permit better control over
    wrapping and placement (ticket #1996)
  - Move news item dates to tooltips to lessen chance of headlines wrapping
    and cleanup presentation
  - Increase maximum length of local tunnel links in the sidebar (and handle
    overflow with CSS) to minimize chance of default tunnels display
    truncating in translations
  - Add the power off icon to sidebar restart button on hover to clarify
    button function (ticket #1996)
- /configadvanced: Move floodfill status to row above to remove unnecessary
  whitespace and cleanup UI
- /debug: Add debug icon to h2 headers to aid navigation
- /graphs: Improve presentation of graph images by removing rendered border
  and setting background color to better integrate with themes
- /home: Widen div.app to lessen chance of truncation (classic/midnight)
- /jars:
  - Minimize table overflow with conditional scaling of content
  - One-click select for revision, sha256 & unsigned mods
- /logs:
  - Reduce line/entry spacing for router and critical logs (#ticket 1996)
  - Multi-column view for changelog at >=1400px to address horizontal
    whitespace issue
- /netdb:
  - Multi-column display of Leases in LeaseSet tables
  - Better alignment of Lease elements, iconify gateway
  - Placeholder flag for unknown/unresolved peers for [flag+dest] combos to
    improve presentation / fix deadspace issue
- Chinese:
  - Fix alignment of table contents in /tunnels (classic)
  - Fix sidebar content display width (midnight)
  - Cosmetic fixes (all themes)

I2PTunnel:
- Ensure message log font scales proportionately
- Fix overflow issue with dropdowns in Chrome/blink (dark/midnight)

SusiDNS
- Reduce width of filter buttons to lessen chance of wrapping (ticket #1996)
- Add non-selectable items to improve copy/paste of hosts in address books
- Make dest addresses in host list only display scrollbar on focus to reduce
  screen clutter
- Hide broken imagegen images

SusiMail: Enhance presentation of 'postman' links on login panel
2017-07-27 02:14:34 +00:00
674f523cba Add JavaScript snippet to reset dest address scroll position onblur
Fixes Chrome/Blink disappearing text bugs in i2ptunnel and susidns.
2017-07-27 01:23:06 +00:00
2bfe27d217 /jars:
- JARs, WARs & individual plugins separated with headers
- Filenames stripped of path info (path indicated on headers and tooltips)
- Add container divs and styling markup
2017-07-27 00:42:46 +00:00
fe2387e4f0 Missing from previous commit 2017-07-27 00:02:25 +00:00
30eb089623 /debug:
- Add container divs and styling markup
- Add top navigation menu
2017-07-26 23:14:30 +00:00
ee1112cca7 SusiMail: Dismiss notifications on click 2017-07-26 23:04:29 +00:00
a39fb3d7c2 I2PSnark:
- Mitigate truncation of ratings dropdown in comments section (translations)
- light: Reduce contrast of display text
- light/classic: Increase contrast of download bars
- Create Torrent trackers table: Replace "Tracker URL" with "Tracker Type"
  (ticket #1996)
- Add a persistent warning to the messagelog when JavaScript is disabled to
  indicate potential loss of form data upon refresh (ticket #1996)
- Migrate "view or change bandwidth" to [Configure] tooltip to standardize
  configuration links, allow for more space for option labels and lessen
  chance of option labels wrapping in translations
2017-07-26 22:03:08 +00:00
0feb16d57b history.txt: Tweak my older entries to fit 80 character per line limit
This ensures the routerconsole changelog multi-column view doesn't wrap
unnecessarily.
2017-07-26 20:46:54 +00:00
b8f5c956e6 Console: Move JRobin default color and font changes into SummaryRenderer
This ensures these changes are applied to Debian installs, where we get JRobin
from the package manager instead of our bundled source.

The padding and grid stroke changes to RrdGraphConstants have not been reverted,
because there is no API provided to alter those values. This will result in a
minor difference between Debian and non-Debian graphs, and if a user shares
those graphs, it will reveal the fact that they have installed the Debian
package. This is acceptable, given that the graphs themselves inherently reveal
significantly more private information than that.
2017-07-25 10:13:36 +00:00
f9b8a5ec11 JavaDoc fix 2017-07-25 03:43:49 +00:00
32968af39c Add benchmarks for AES and SHA-256 2017-07-25 03:43:04 +00:00
49ed17032c Add a benchmarks subproject 2017-07-25 03:41:55 +00:00
zzz
70393fd2d9 Console: Fixup /imagegen text 2017-07-19 14:43:51 +00:00
zzz
d4a139f215 Console: Fix compile error with Jetty 9.2.22 (ticket #2019) 2017-07-15 13:57:40 +00:00
zzz
0b85bffeff Crypto: Preserve CRT parameters for RSA private keys (ticket #2005) 2017-07-13 15:53:00 +00:00
zzz
5ddb4edd14 fixups after review 2017-07-13 15:46:37 +00:00
d2da262374 Theme fixes
Console:
- /tunnels: Fix display issue with inbound/outbound glyph display in table
  header (classic/light)
- light: Prevent routerlogs from causing horizontal page overflow 

I2PSnark:
- Reduce size of screenlog font at 1400-1600px viewport width to lessen
  chance of text-wrapping (ticket #1996)
- classic: Fix a linespacing issue in the config section (options:) that only
  triggers in foreign languages that force the options td to wrap
2017-07-11 03:35:49 +00:00
3c19bb4ec5 Console: Increase displayed changelog lines to show entire release cycle 2017-07-11 03:31:55 +00:00
123c0de700 Correct some history entries 2017-07-11 03:18:11 +00:00
19fcb9e5b9 Comments 2017-07-11 03:08:52 +00:00
281534b0b0 Fix HTML tags across non-default conditional branches 2017-07-11 02:15:17 +00:00
4fff74793b I2PSnark: Fix I2PSnarkUtil.getCommentsName() to match its JavaDoc 2017-07-11 02:13:32 +00:00
zzz
7d62c43209 bump -18-rc 2017-07-08 19:59:01 +00:00
zzz
00388675f1 new translations 2017-07-08 16:00:51 +00:00
zzz
4ddca951f2 translations update 2017-07-08 15:15:28 +00:00
zzz
2abaa4a39b fix html errors in help files 2017-07-08 13:26:29 +00:00
zzz
402a2af898 GeoIP 2017-07-04, blocklist update 2017-07-08 13:14:17 +00:00
4e8ed909e3 Bump -17-rc 2017-07-07 21:25:34 +00:00
5c670fc57f Show advanced sidebar links by default in advanced mode (ticket #1996) 2017-07-07 21:24:23 +00:00
e83d31f749 /logs: Correctly format unavailable crypto warnings (ticket #1996) 2017-07-07 18:40:10 +00:00
d8831151fe Console: Fix log file size config bug on /configlogging bug (ticket #1996) 2017-07-07 17:25:25 +00:00
87d6c302e6 Minor theme tweaks:
- Console:
  - Cosmetic changes to new firewalled network status in sidebar
  - Arabic: ensure the destinations correctly align on /tunnels
- I2PSnark: Ensure .snarkNoneLoaded background color remains constant on
  mouseover in dark theme
2017-07-02 14:17:59 +00:00
afec920bee Bump -16 2017-07-02 03:56:32 +00:00
873b0b0f19 SusiDNS: Default to the console theme 2017-07-02 03:42:35 +00:00
96c73e7fcb i2psnark: ubergine fix for hidpi 2017-07-02 03:29:03 +00:00
56f6a68ef3 Console: Show correct icon for "Firewalled" network status 2017-07-02 03:25:36 +00:00
7cd7f01db9 Console light theme: prevent identicon breaking out of its container 2017-07-02 03:07:54 +00:00
1650cbe8de Bump -15 2017-07-02 01:42:29 +00:00
dc46f00a35 merge of '95d429bc46db23b3e3181caf4e622b763cff51eb'
and 'ca23007c18cf5894a1b6b4efa92207aa025473d2'
2017-07-02 01:42:05 +00:00
d2edce845a I2PSnark:
- Standalone:
  - Better target the per-theme resources
  - List all available themes in config section
- Themes: tidyups & further optimizations to reduce lag
2017-07-01 19:55:19 +00:00
bd84ba2d5c SusiMail: set button widths 2017-07-01 19:47:15 +00:00
bd74b22b02 Console:
- /netdb:
  - All Routers/Leasesets/Sybil sections:
    - Each transport instance on own line
    - Better presentation of address characteristics
    - Place flag in table header
  - Container div for leasesets to allow 2 column display at wider viewport width
  - Increased spacing of lease information in leaseset tables
  - Add div for "not initialized" message
  - Reorganize content display in sybil database to reduce horizontal whitespace:
    - Conditional 2-column display of sybil families
    - Sybil router characteristics & threatpoints presented in multi-column view
    - Added empty (n/a) fields to maintain visual consistency in column view
- /tunnels: ensure our tunnel tables display correctly in Arabic
2017-07-01 19:44:02 +00:00
zzz
c768b8f8d7 DNS (ticket #1998):
- Data: Cache hostname lookups in RouterAddress
- Job Queue: Make search jobs droppable
- Router: Increase JVM DNS cache time
- Util: Add negative DNS lookup cache, increase cache size
2017-07-01 19:41:16 +00:00
56c0fbeebe Tag "local" strings on /tunnels (tagged for translation elsewhere pre-freeze) 2017-07-01 18:59:10 +00:00
5bc9d0af52 I2PSnark: Fix unclosed <label> 2017-07-01 08:08:38 +00:00
12cbbfbac7 Bump -13 2017-06-19 13:47:55 +00:00
4aa4ff738a Console:
- Add untagged strings for /tunnels tooltips and local tunnel indicator (to
  be tagged for translation post .31 release)
- classic: reduce color contrast of main display font
- classic/dark/midnight: alignment on /peers and /tunnels
- /tunnels:
  - Add bandwidth tiers definitions
  - Indicator for local tunnels
- /profiles:
  - Split capabilities and version
  - Minimize wrapping at narrow viewport width
  - Iconify view profile link
  - Add "OK" status indication for functional peers
- /peers: merge Dir and CWND rows in definitions table
- /events: when no events found, place result in table
- All themes: marginally increased width of sidebar to better accommodate
  extra long strings
- Chinese: ensure buttons do not deviate in height (ticket #1996)
- Arabic: fix alignment issues on /configui; presentational enhancements
- Misc: remove erroneous tags
2017-06-19 13:46:40 +00:00
3d535a2282 I2PSnark:
- Disable JavaScript td:onclick (handled by css)
- Fix minimode bug in vanilla/ubergine
- Minimode for dark/classic
- ubergine:
  - Further optimizations to reduce lag/cpu load
  - New hidpi details.png to bypass mix-blend mode in .snarkTorrents
- Usability:
  - Tab navigation now works for toggle panels
  - Touch target for configure button now extends entire length
- All themes: cleanups and optimizations
2017-06-19 13:00:50 +00:00
36030ae180 i2ptunnel: consistent tooltips and Destinations for editClient and editServer 2017-06-19 12:52:56 +00:00
e21479a164 Cleanup & formatting tidyups for welcome page readmes, remove unneeded classes 2017-06-19 11:29:29 +00:00
zzz
32efa2e509 DNS (ticket #1998):
- Data: Cache hostname lookups in RouterAddress
- Job Queue: Make search jobs droppable
- Router: Increase JVM DNS cache time
- Util: Add negative DNS lookup cache, increase cache size
2017-06-15 15:48:22 +00:00
8216b68ee1 bump -11 2017-06-12 13:11:53 +00:00
3e4318cca6 /netdb: Fix UI bug with unpublished LeaseSets 2017-06-12 13:04:27 +00:00
cf7a6041b3 UI updates
Console:
- /logs: fixed environment/running info table resize on focus (ticket #1996)
- Scale theme/language divs so we don't truncate language display
- Arabic (light) adjust font size for sidebar elements
- Sidebar network status display (ticket #1996)
- Usability:
  - Enhance presentation of tables on /peers (improve header/column alignment,
    center to separator for multi-value rows)
  - Enhance presentation of tables on /tunnels (reliable alignment of mixed
    content in rows, more prominence to bandwidth tiers)

I2PSnark:
- Usability: add tabindex="0" to screenlog
- Update navbar link classes to allow easier targetting of button type 
- Remove disabled cursor for known tracker radio icons (ticket #1996)
- Fix alignment issue for comments (ticket #1996)
- ubergine: further optimize theme to reduce scroll lag (ticket #1996)
- ubergine/vanilla:
  - Add mini-mode at <=800px
  - Small size reduction to navbar links (ticket #1996)

Imagegen:
- Theme tweaks
2017-06-12 12:45:51 +00:00
zzz
25c709afe2 Reseed updates 2017-06-11 16:30:12 +00:00
zzz
58b38b283f Remove forum.i2p links 2017-06-11 16:26:25 +00:00
zzz
931d7a95bd poupdate source 2017-06-05 23:08:28 +00:00
d771cc6e37 history 2017-06-05 07:58:41 +00:00
e21a57a1fc Switch light theme to the same top-nav style as the other themes 2017-06-05 07:58:04 +00:00
1ede0c8b2f Boost letter spacing and margins slightly 2017-06-05 07:29:53 +00:00
57f3b89eed Fix alignment of language flags 2017-06-05 07:14:15 +00:00
9eedb5c732 Add state classes to network status messages in sidebar 2017-06-05 00:42:54 +00:00
4964b1165f Hardcode language names in their native language for usability 2017-06-04 10:26:01 +00:00
bd1ccba960 SusiDNS: Update SVG image to use grouped objects for styling and hotlinks 2017-06-04 05:10:26 +00:00
3334d9f737 Fix regression in snark CSS 2017-06-04 05:04:02 +00:00
135920a9bb Updated history 2017-06-04 05:02:52 +00:00
c0742b5cf3 Remove capitalization of SusiDNS config options in light theme 2017-06-04 05:00:22 +00:00
163023ecc2 String tweaks 2017-06-04 04:59:46 +00:00
791bc9a84f String de-duplication 2017-06-04 04:59:26 +00:00
c91f942194 /netdb: Fix bug rendering the "Add to addressbook" link for local Destinations 2017-06-04 01:01:09 +00:00
66385c06ae Minor theme tweaks:
- Use theme-consistent colours for graphs (dark + midnight)
- Add slight visual feedback when clicking table header and i2psnark control
  buttons
- tr highlighting in i2ptunnel to match other info-dense tables
2017-06-04 00:43:16 +00:00
6fe55529d6 i2psnark: Fix bug in status tooltips 2017-06-04 00:33:29 +00:00
zzz
4c6af7cdca bump -10 2017-06-03 17:24:06 +00:00
5e8730a616 Console:
- (light, dark, midnight) Fix minor alignment issues with Arabic CSS
- JRobin (graphs):
  - Fix font size issue for non-title text on graphs
  - Optimise layout (tweaked padding, legend box size etc)
  - Tweak graph lines (now dotted, slightly less opaque)
2017-06-03 14:11:33 +00:00
6acca28969 i2psnark:
- (ubergine) Speed up tr:hover events by optimizing css (remove latency)
- (all) Remove fade activation delay for download bars, speed up fade-in /
  fade-out
- Fix i2psnark link in navbar overflow issue in Arabic (ubergine/vanilla)
- (ubergine) Change default font for screenlog from Noto Mono to Droid Sans Mono
  to soften text/slightly reduce text size
2017-06-03 14:10:54 +00:00
017f66a342 i2ptunnel:
- Remove redundant labels and spans for keyaccess
- Edit Server:
  - Shift Local Destination / Private Key file to share table row
    - Reduces spread of Local Destination textarea
  - Move "Use SSL to connect to target" to Target Port column
- Add translation tagging for title tags
- Remove redundant title tags and provide enhanced strings for features that
  benefit from clarification
- Move title tags to <label> where applicable
- Fixed Cancel button on registration so it now jumps back to the list page
- textareas for registration page and local destination on edit server page
  changed to divs
  - Scrollbars hidden until mouseover, 1 click to select content
  - Responsive width, tabindex="0"
    - Fixes text breaking out of textarea bounding box issue in chrome/blink
- Fix overflow issue on select dropdowns (edit server/client -> tunnel options)
  in Chrome / Blink
- More generous vertical padding for th (responsive)
- Larger h2/h3s (responsive)
- Increase spacing between panels in iframe mode
2017-06-03 14:10:08 +00:00
ff400c9448 UI feedback
Console:
- Increase contrast of table rows on profile/tunnels/peers tables
- Changed pink font to magenta in /logs to increase legibility
- Soften H3 headings in sidebar
- Single click to select I2P Version and Running Environment table text, with
  table:hover color change and text cursor to better reflect selection
  - Modify text above to indicate what exactly needs to be included in logs
- Reduce size of monospace dests in peers/profiles/tunnels, add additional
  spacing (responsive)
- Fix resizing of sidebar reseed button
- De-emphasise siderbar app icons with background-blend-mode: luminosity
- Change sidebar snark icon to match homepage icon
- Bump div.main text color from #222 to #333 (reduce contrast)

i2ptunnel: Increase vertical spacing of H2/H3's

SusiDNS: Change address helper icon to add book icon

i2psnark:
- Remove font-adjust-size (ubergine/vanilla)
  - Was probably causing the navbar links to display too large on some setups
- Add extra spacing to screenlogger bullets (ubergine)
2017-06-03 14:09:17 +00:00
b28cc94a4a Compress some of the larger image files
Space savings of 40-60%. All tested and passed for perceptual differences
(non-noticeable).
2017-06-03 14:08:17 +00:00
4da95af45a i2psnark:
- Reorder .snarkCommentInfo sections so my rating / average rating is located
  directly above posted comments/ratings in .snarkComments
  - Allows us to visually join the two tables and provide comment/rating
    continuity

- If author name for comments is configured, display it in .snarkCommentInfo
  table header

- Full status tooltips for status icons in .snarkTorrents
  - This ensures we still retain full info in mini-mode in light/midnight themes
    in addition to providing more descriptive text (for new users)

- Rework td/th classes for .snarkTorrents so each column (both th + td) now
  belongs to a given class
  - Removes the need to overuse nth-child qualifiers to target columns
  - Allows easier column-alignment/spacing/widths

- Stop .snarkTorrentStatus class being incorrectly applied to .peerinfo columns

- Spans for DHT peers / Dest in #totals
  - Ensures they don't break on narrower screens in Russian etc.

- Span for .snarkTorrentInfo info hash
  - So we can highlight and select with a single click

- Delete icon for delete comments td

- Overhaul .snarkTorrents column widths
  - Provides more predictable scaling experience, tidier layout

- CSS tidyups; deduplicate .snarkTorrents classes and move to their own
  commented section
2017-06-03 14:03:56 +00:00
a9bf1e2969 SusiDNS:
- Rework SVG image
  - Now features interactive feedback when mouseover objects and hotlinks
- Update fallback images for en and fr
- Update overview text
- added tabindex="0" to destination addresses, highlighted on :focus
2017-06-03 14:01:33 +00:00
d50c12dc7d Console:
- Add spans to /stats page to avoid summary info breaking mid-sentence, and to
  aid presentation
- Adjust /stats CSS so information isn't over-dense
- Set graph size for generated graphs on /stats to 600x200
- Fix netdb leaseset tables
  - Ensure we only iconify add to addressbook links and not b32 dests
- Individual icons for I2PSnark and I2P Plugins on /home
- Add div to upnpstatus on peers to comply with layout
- Fix various unclosed/erroneous tags
2017-06-03 13:59:20 +00:00
zzz
5361571c15 Crypto: Fix AES NPE on 4-core RPi 2nd try (ticket #1989) 2017-05-25 18:05:45 +00:00
zzz
13d9322d81 Debian: Update notes on dependencies 2017-05-24 12:49:55 +00:00
zzz
d35f260f15 Console: Don't show add-to-addressbook link for local unpublished clients 2017-05-24 12:47:24 +00:00
zzz
7338b79ef1 GeoIP: Fix NPE in Maxmind lookup (thx parg!) 2017-05-24 12:40:45 +00:00
edda87d53e Snark theme updates, hidpi rating images 2017-05-22 11:49:23 +00:00
zzz
de0a5c7094 i2psnark: Fix bencoded scrape response for zzzot (ticket #1994)
requires zzzot 0.16.0
2017-05-21 18:42:42 +00:00
008f421377 Fix a minor alignment issue on the address helper page 2017-05-21 03:01:59 +00:00
6821e13820 Add images for theme updates 2017-05-21 03:01:17 +00:00
fa73b481e6 i2psnark: Integrate ratings and comments into themes 2017-05-21 02:59:50 +00:00
63581d32de SusiMail light theme tweaks 2017-05-20 08:10:28 +00:00
0db637ed5a Clarify choices on address helper save page (ticket #1940) 2017-05-20 08:09:30 +00:00
62b3e19217 Add router.hideFloodfillParticipant to advanced settings help 2017-05-20 07:26:47 +00:00
2b82312b77 I2PSnark changes:
- Make DHT debug section collapsible
- Tooltips for downloading/finished torrents
- Download bars for torrents, torrent parts and peer downloads
- Friendlier date format (with completed: <date> tooltip for finished torrents)
2017-05-20 07:26:19 +00:00
zzz
81b8b18581 i2psnark: Add ut_comment UI and per-torrent configuration
Some UI cleanup still to do
2017-05-19 21:33:30 +00:00
zzz
769cb40b79 missed checkin 2017-05-19 19:25:18 +00:00
zzz
81026c2871 build fix 2017-05-19 19:23:47 +00:00
zzz
dc33ad101a Console: Move /peers page rendering from router to console (ticket #1879)
except UPnP still to do
compressed size: appx. 25 KB
2017-05-19 19:20:11 +00:00
b7baeddc7c Bump to -5 2017-05-18 13:52:35 +00:00
e6b968e48c History for prop 2017-05-18 13:49:56 +00:00
96bdfb3a63 propagate from branch 'i2p.i2p' (head 247ff5f9bcb20e4aa3ad4aa8702425c315d1d77b)
to branch 'i2p.i2p.str4d.ui' (head d4b5b96ff60f7d8b746c8fc5f0f9c533778a9eda)
2017-05-18 12:54:13 +00:00
7002c683ab Minor i2psnark style fixes 2017-05-18 12:52:10 +00:00
ae7c2f6e5f Use disabled drop-down in universal theming mode instead of plain text 2017-05-18 12:51:19 +00:00
zzz
b8c97a1d7a AES: More cleanups and javadocs 2017-05-17 15:54:37 +00:00
zzz
a5551c1be3 Debian: More fixes for lintian 2017-05-17 15:51:34 +00:00
zzz
7d129215cf Debian: Put the i2prouter-nowrapper man page with the binary 2017-05-17 13:31:07 +00:00
zzz
777d2fc0f0 javadoc fix 2017-05-17 13:26:39 +00:00
zzz
7f45e97335 Reseed: Remove expired SSL cert 2017-05-17 12:16:34 +00:00
feee22e389 Fix escaping of non-breaking space in time string 2017-05-15 04:53:58 +00:00
208372ed9e Prevent i2psnark DHT debug info breaking out of the table 2017-05-15 04:05:44 +00:00
6fd66c9396 Cleanups:
- Minor theme updates/fixes
- Added #jumplist div to proxy error to make styling easier
- "tabindex -1"s to ignore disabled radios in snark/tracker config
- Updates to eepsite css files.
2017-05-15 03:18:34 +00:00
e8c28ad42c Add tooltips to shutdown/restart buttons 2017-05-14 12:28:27 +00:00
5caefb5ea9 I2PSnark tweaks:
- Replace theme selector with a message when universal theming is enabled
- Move DHT debug info into its own <tr>
2017-05-14 12:26:17 +00:00
zzz
ac788d973f Router: New method to get bandwidth class, for efficiency 2017-05-14 12:16:25 +00:00
zzz
e973185be1 Crypto: Initialize array earlier (ticket #1989) 2017-05-14 11:57:48 +00:00
zzz
040af114e1 i2psnark: Fix HTML double-escape (ticket #1992) 2017-05-14 11:51:08 +00:00
6f60d642af propagate from branch 'i2p.i2p' (head 098e31ae6c0969990791077264bfd58d8ac3680c)
to branch 'i2p.i2p.str4d.ui' (head 0cfd439957ebce6c3a71f5b3e11f4e873388b03c)
2017-05-14 06:53:02 +00:00
8a5967f592 Additional <label>s 2017-05-14 06:35:23 +00:00
a929b5c683 Theme updates:
- Section title images in the tunnel manager + presentational tweaks
  - Separation of server/client tunnels for consistency in iframed/separate view
- More responsive layout tweaks specifically for narrow viewports
  - Lessens UI breakage, particularly for languages with long translated strings
    (ru, de etc)
- Susimail light theme enhancements
- Incremental theme tweaks including Arabic (light/dark) & Chinese
  (classic/dark/midnight)
- Fixed placement of "Welcome to I2P" h2 on /home for new users
- Fixed conflicting .home#home div on homepage (now #homepanel)
- Fixed double select dropdown icon in Internet Explorer/MS Edge
- Addressed minor rendering issues in IE 11 and MS Edge
2017-05-14 06:26:16 +00:00
e32d4b15e8 String tweaks 2017-05-14 05:41:21 +00:00
67b3c46758 Shortened button text on /configfamily
Helps to avoid overlong strings breaking layout in translation (specifically
Russian). The section subtitle already indicates full scope of action.
2017-05-14 05:40:45 +00:00
7de815bd90 CSS sort buttons on /peers
- New icons to avoid conflation of tunnel direction and sort direction
- Active sort columnn now indicated and focused button highlighted
2017-05-14 05:39:51 +00:00
0aae97162e Use new tabs for a couple of links 2017-05-14 05:38:56 +00:00
ac31a1319b /news updates:
- Updated presentation of news status & view/hide news text at the bottom of
  the homepage news section, so it behaves sensibly when wrapping (for German,
  Russian etc)
- <span>s for news title dates and author names
- Iconified author name for news entries
2017-05-14 05:38:31 +00:00
e453ea48e1 /help changes:
- Added topnav
- Added mini-FAQ
  - Linked to subscriptions section from SusiDNS subscriptions page
- Layout fixes for translated pages
- Reformatted help-legal.jsi, removed/replaced dead links
2017-05-14 05:37:35 +00:00
8f04aa70cb /home changes:
- Update some app icons
- Rationalise the markup
- Add tabindex ="-1" to icon links
  - This means they are skipped when using tab to navigate in the browser
2017-05-14 05:36:40 +00:00
d7d13d1a4f Whitespace 2017-05-14 05:30:42 +00:00
6b056ce6e0 Backend HTML changes:
- Labels for radio/checkbox icons to increase surface area for clicks, improving
  UI for touchscreen use
- Standardized configuration labels: bold text for leading options, standard
  weight for trailing descriptions
- Remove some hard-coded table layouts
- Additional ids and classes for theming
2017-05-14 05:30:13 +00:00
zzz
b340f4a17c i2psnark: Better handling of read-only i2psnark dir (ticket #1990)
Prevent add/create/remove/delete
More handling of RuntimeException via Snark.fatal() in SnarkManager
2017-05-12 17:16:25 +00:00
zzz
93cb2a0513 Debian: Fix apparmor profile (ticket #1986) 2017-05-10 16:53:36 +00:00
zzz
610af51e95 show suggested paths 2017-05-10 14:05:02 +00:00
zzz
efd7d651cc AES: Cleanups (ticket #1989) 2017-05-10 14:00:59 +00:00
zzz
d139892ae0 SusiDNS: Fix display of default subscription when no subscriptions.txt file present 2017-05-10 13:49:34 +00:00
zzz
45f3695f9d Debian: Restore systemd for trusty
Fix date in changelogs
doc update
2017-05-10 13:46:04 +00:00
zzz
3e354f2f1a Jetty: New default servlet for eepsite, with
locale-independent directory listing (ticket #1965)
2017-05-05 19:53:43 +00:00
zzz
b0514cc564 move BFNS test 2017-05-05 13:38:59 +00:00
zzz
3718c73341 Reseed: Fix messages about reseed disabled 2017-05-05 12:26:48 +00:00
zzz
cd76457128 i2psnark: Initial support for ut_comment, no UI yet 2017-05-05 12:08:49 +00:00
zzz
f3d931d090 Blockfile: Move from i2p.jar to addressbook.jar
http://zzz.i2p/topics/2274
2017-05-05 11:41:19 +00:00
zzz
ffb3e27c0f launchpad build fixes 2017-05-03 21:29:22 +00:00
zzz
8d6ca6431d fix build.xml XML error 2017-05-03 19:35:59 +00:00
zzz
920b14212f 0.9.30 2017-05-03 13:08:34 +00:00
zzz
1e9c68859e fix null check 2017-05-02 14:34:33 +00:00
e390e67aee Package I2P servlet classes for Maven Central
RequestWrapper and its dependencies are excluded to avoid classpath issues.
2017-05-02 13:05:31 +00:00
zzz
d27d060322 Jetty: Rollover log files at midnight, not noon
This is a separate Jetty 9.2.21 bug unrelated to the previous fix
2017-04-30 13:19:48 +00:00
zzz
baa314d71f pull translations 2017-04-29 15:20:42 +00:00
zzz
d98c3d8f71 fix another test 2017-04-29 15:01:42 +00:00
zzz
5e497f790d Tests: Temporarily change cert threshold so Vuze's old cert won't fail 2017-04-29 14:40:42 +00:00
zzz
3dbbc2943f Jetty: backport patch from 9.4.4 to 9.2.21
to fix Timer crash in RolloverFileOutputStream
1e46576bf4
https://github.com/eclipse/jetty.project/issues/1469
2017-04-29 14:28:30 +00:00
zzz
925caccb57 Jetty: Set up to add patch for RolloverFileOutputStream
checked in file is unmodified from 9.2.21 for reference
patch in next checkin
2017-04-29 14:24:10 +00:00
zzz
a21e027403 Console: Revert previous checkin, unrelated to the Jetty Timer bug 2017-04-29 13:52:05 +00:00
zzz
4dec3657b0 Console: Disable Jetty timer thread consolidation
causing log file rollover to stop (ticket #1068)
2017-04-27 13:43:24 +00:00
zzz
06f78d7cfe HTTP Proxy: Add delay before jump page 2017-04-26 14:00:50 +00:00
zzz
6901914640 remove reseed 2017-04-26 13:57:49 +00:00
zzz
75db7fa196 geoip 2017-04-06 2017-04-19 13:13:20 +00:00
zzz
f8ea882f99 SSU: Reuse previous introducer expiration if available,
so we don't force a republish
- Don't run peer test if configured to force firewalled
2017-04-14 13:34:33 +00:00
zzz
dd0153e29a SSU: Publish introducer expiration (proposal 133) 2017-04-13 15:58:52 +00:00
zzz
9dd146680d fix eepget man page formatting 2017-04-13 15:52:50 +00:00
zzz
5fa6583a4e Console: Fix detection of UPnP setting changing 2017-04-13 15:45:24 +00:00
48661361fa Minor theme tweaks 2017-04-09 08:49:09 +00:00
4747172059 Tweak placement of caps info 2017-04-09 08:48:45 +00:00
f541dbe042 Add link to /configplugins on /home 2017-04-09 08:28:37 +00:00
a3e146a814 propagate from branch 'i2p.i2p' (head 5d56a7eb371dddb9336e596bda69f99c91294b05)
to branch 'i2p.i2p.str4d.ui' (head 3aeafcdb5c0ffbc9c77f574558f8438d3e81133e)
2017-04-09 06:52:22 +00:00
fa6fc84bf8 Theme updates:
- Subtler, softer colors & shadows and cleaner lines in the light theme in the full suite of apps
- Seamless iframe integration for light susidns theme
- Enhanced Arabic support in the light theme
- Better presentation of options on /confignet
- Enhanced bullets for stats/logs presentation
- console_big improvements/fixes
- Incremental improvements
2017-04-09 06:28:47 +00:00
a0911a43dd I2PSnark: hidpi navbar images 2017-04-09 06:28:20 +00:00
b6c6a5d696 Whitespace 2017-04-09 06:28:00 +00:00
5353fd986e Tidy up /profiles, add definitions for capabilities 2017-04-09 06:27:41 +00:00
3f40af54d1 Add id for for sidebar help & faq h3 2017-04-09 06:27:22 +00:00
9e8d4fbe21 Reorder sidebar sections for new installs 2017-04-09 06:27:04 +00:00
cb3326fa42 Minor updates to imagegen page 2017-04-09 06:26:46 +00:00
123473439c Fix "Advanced" links on sidebar with leading / 2017-04-09 06:26:35 +00:00
c12312f523 i2psnark: Remove hard-coded topnav image 2017-04-09 06:24:43 +00:00
zzz
dd8f7638c5 add bash completion scripts 2017-04-06 13:05:47 +00:00
zzz
4edc4077f8 Gentoo: Fix config dir location
http://zzz.i2p/topics/2285
2017-04-04 14:07:49 +00:00
zzz
0d3b1fa490 hosts.txt and blocklist update 2017-04-04 14:05:14 +00:00
zzz
828b0954a3 add BuildTime note to checklist 2017-04-04 14:03:09 +00:00
zzz
ec82912085 instructions for adding RPC support to i2psnark-standalone 2017-04-04 14:01:58 +00:00
zzz
021067dab9 deprecate ZipFileComment 2017-04-04 14:01:04 +00:00
zzz
bfc04178a6 i2psnark: Fix standalone configuration for Jetty 9
Context: Fix ClientAppManagerImpl in AppContext,
required for transmission.war in standalone i2psnark
2017-04-02 18:48:03 +00:00
zzz
f390831835 Console: Fix stopping of webapps when console stops (ticket #1893)
i2psnark: Only rewrite torrent config file if changed (ticket #1893)
Util: Don't sync config writes on Android/ARM (ticket #1893)
2017-04-01 14:15:06 +00:00
zzz
5eefb8b222 KeyStoreUtil: Reduce log level of expired cert error 2017-04-01 12:50:31 +00:00
zzz
c06e320f99 SSU: When a IPv6 peer connects, trigger a IPv6 peer test, not a IPv4 one
Require two consecutive peer test results for some state transitions,
to prevent frequent transitions to firewalled and back
2017-03-31 12:28:31 +00:00
zzz
b810b79a44 New translated man pages: pl, pt_BR, ru, sv
updates: it, ko, zh
2017-03-29 14:16:45 +00:00
zzz
3cc0122af4 Throttle: Reduce threshold for probabalistic throttling on slow platforms (ticket #1964) 2017-03-29 12:32:36 +00:00
zzz
48fb12ebeb SSU: Refactor PeerTestEvent out of UDPTransport 2017-03-29 12:30:21 +00:00
zzz
82554b943e Build: Suppress JarScanner warning during Debian build (ticket #1975) 2017-03-27 16:48:25 +00:00
zzz
04e0cfe020 Debian: Add missing addressbook.jar to package (ticket #1973) 2017-03-27 14:52:50 +00:00
zzz
ed590cd6f5 SusiDNS: Add addressbook.jar to classpath, don't fail to start
if it's still not found (ticket #1973)
This fix covers:
1) Old wrapper.config without addressbook in the classpath
2) Java 9 together with 1)
3) Completely missing addressbook.jar
This does not fix addressbook.jar missing from Debian build.
2017-03-27 14:43:20 +00:00
zzz
c1991241e4 Time: Fix crashes on old Androids (ticket #1976) 2017-03-27 14:12:42 +00:00
zzz
b503f03bd6 Blockfile: Include authentication strings in exports 2017-03-27 14:10:01 +00:00
zzz
cff8eafc43 Blockfile: Upgrade to Blockfile format 4 on non-Android ARM 2017-03-25 11:32:05 +00:00
zzz
a0b2f5738a i2ptunnel: Allow alt priv key file to be added without restarting I2P
Display message requiring tunnel restart if tunnel is running
2017-03-25 11:29:14 +00:00
zzz
b335ded1d2 CPUID: Recognize Ryzen 2017-03-24 13:08:56 +00:00
zzz
0a2097a238 Addressbook: Remove static reference, hide implementation
Requires Android fix (ticket #1972)
2017-03-24 13:07:17 +00:00
zzz
1ab67de677 Plugins: Blacklist i2pbote and BwSchedule
Translate exceptions thrown from PluginStarter
2017-03-23 14:55:56 +00:00
zzz
47277063e4 Plugins: Add version number to console messages when downloading/starting,
and linkify plugin name
2017-03-23 13:54:02 +00:00
zzz
ca6ce37a0b context: New ClientAppManagerImpl in AppContext, so registration
works there (for i2psnark-rpc in standalone)
2017-03-21 19:26:48 +00:00
zzz
a00f11d5b7 i2psnark: Add another method to support RPC plugin 2017-03-21 11:57:52 +00:00
zzz
13ad5d72ae SSU: More work on introducer expiration (proposal 133) 2017-03-20 22:31:32 +00:00
zzz
b9a7a76174 dont replace app if a dup 2017-03-20 22:27:55 +00:00
zzz
a8ae2ce955 typo 2017-03-20 22:24:59 +00:00
zzz
de5661ef1b new reseed ssl cert 2017-03-20 22:18:21 +00:00
zzz
e4da3b0f3b dont allow non-GET requests to icon servlet 2017-03-20 22:12:33 +00:00
zzz
95b6bd36e5 i2psnark: Enhancements to support RPC plugin 2017-03-20 16:41:04 +00:00
zzz
05aef9bd59 Move "isSlow" detection to SystemVersion 2017-03-18 14:38:59 +00:00
zzz
fda673038f Addressbook build changes (ticket #1966):
- Build as jar, not war
 - Put empty war in updater
 - Move Servlet starter to SusiDNS
 - Skip war in RouterConsoleRunner
2017-03-18 14:34:59 +00:00
zzz
24801553d6 i2psnark: Recognize XD client 2017-03-15 15:10:23 +00:00
zzz
43c3a14745 javadoc typo 2017-03-14 14:17:10 +00:00
zzz
4b722c9b7f i2ptunnel: New form to enter private key file for alternate destination
- Use alt destination for registration if set
   - Another dup check for alt destination
SusiDNS: New button for adding alternate destination
   - Fix nonces on details page with multiple destinations
   - Fix single dest deletion on details page with multiple destinations
   - Set book in all forms to ensure correct book
Blockfile: Fix specified-destination deletion from the correct book
2017-03-14 14:15:54 +00:00
zzz
1150b4cd73 NBI: Adjust logging during extraction to use standard format 2017-03-14 13:33:39 +00:00
zzz
e7cfb2d6fe Streaming: Add reset() to I2PSocket API
i2ptunnel: Reset I2P socket on TCP socket errors, in standard servers
that don't have protocol responses
SAM: Reset I2P socket on handler errors
2017-03-13 14:09:27 +00:00
zzz
ad810de747 i2ptunnel: Add subsession support to servers, no UI yet
Update subsession javadocs
2017-03-13 13:48:36 +00:00
zzz
b57d7c699f Javadoc: Update Jetty URL and package-list 2017-03-13 13:28:16 +00:00
zzz
ba825e61d5 New reseed, delete unused reseed SSL certs 2017-03-13 13:26:01 +00:00
zzz
aea20a552e Fix HashSessionScavenger, class changed in Jetty 9
History for prop, -4
2017-03-11 16:27:37 +00:00
zzz
0703a29562 propagate from branch 'i2p.i2p.zzz.jetty9' (head 80022f6ef552acd1382d45103969aa7c17b1d794)
to branch 'i2p.i2p' (head 3b4b418ae8be95d52228fc7c325fc52e0223e4fe)
2017-03-11 15:24:23 +00:00
zzz
db0381d6b1 Add required jetty-9.2.21.v20170120 jars
Includes two Tomcat 8.0.33 jars from that, which are:
"A rebundling of Apache Tomcat Jasper to remove the tomcat server dependencies, so that the JSP engine can be used by the Eclipse Jetty project."
2017-03-11 15:24:04 +00:00
zzz
a9be26d2bc unneeded casts 2017-03-11 14:43:37 +00:00
zzz
db5ab0b9b8 Add commons-logging to list of empty jars 2017-03-11 14:37:37 +00:00
zzz
072d990279 reseed now using CA 2017-03-11 14:06:55 +00:00
zzz
6b4f665f34 Add more markers and protection for xml file migration
Add error message for jetty-jmx.xml migration, don't migrate
Update non-default files jetty-rewrite.xml and jetty-jmx.xml
2017-03-10 18:48:48 +00:00
zzz
48a055d462 Streaming: Don't change buffer size when max message size is adjusted
Only change max message size when buffer is empty
2017-03-09 19:40:17 +00:00
zzz
9146f3c7e1 i2psnark: Prevent RuntimeException caused by corrupt i2psnark.dht.dat file
http://forum.i2p/viewtopic.php?t=12751
2017-03-09 19:34:30 +00:00
zzz
1fe9acefe2 Router: Set default sig type to EdDSA for non-Android ARM 2017-03-09 15:25:25 +00:00
zzz
359b4570e4 hide destination box on registration page 2017-03-09 15:24:10 +00:00
zzz
1c720a0fda finals 2017-03-09 15:23:28 +00:00
zzz
d1fdf14911 unnecessary parameter 2017-03-08 16:27:48 +00:00
zzz
6fbeef5f8c remove old ssl cert 2017-03-08 16:26:04 +00:00
zzz
6ef6106336 Random: Don't need extra bits if power of two 2017-03-08 16:25:27 +00:00
zzz
23ee40d990 stray semicolon 2017-03-08 16:24:13 +00:00
zzz
4e236fc5ab Put Jetty 9 files in eepsite-jetty9/ directory in updater 2017-03-08 13:48:28 +00:00
zzz
d573910b7a CPUID: Fix saving of libjcpuid.jnifile on Macs,
was incorrectly saving as libjcpuid.so (tickets #1865, #1900)
 - Try to load libjcpuid-x86_64-osx.jnilib for 32-bit Macs,
   because as of 0.9.26 it's a 'fat binary' with 32-bit in it also.
   This was broken in the 0.9.26 changes.
 - Improve error logging
 - Add library search path logging to main()
NBI:
 - Try to load the "none" architecture for x86, even if
   CPUID loading fails (tickets #1865, #1900)
   This was broken in the 0.9.26 changes.
 - Add library search path logging to main()
 - Comment out unused method
2017-03-06 20:44:16 +00:00
zzz
da00b95599 doc updates 2017-03-06 20:41:43 +00:00
zzz
e20310d257 Throttle: Fix disable of probabalistic throttling (ticket #1963)
Fixes this checkin:
  Revision: c52409bf5d7b422c23a62eecfa50b98d7c74f8df
  Date:     01/16/2012
  Branch:   i2p.i2p
  Don't throttle tunnel creation if using a higher than default router.maxParticipatingTunnels setting.
2017-03-06 20:38:38 +00:00
74151b06ef propagate from branch 'i2p.i2p' (head 600cd73c4b46b7ba8c421149785f6245afa47487)
to branch 'i2p.i2p.str4d.ui' (head d5b54214bfe1bf5203f614600b916346a10f26dd)
2017-03-06 04:59:59 +00:00
de7a4ba55c Whitespace cleanups 2017-03-06 04:56:58 +00:00
5ddeeec9ea I2PSnark theme updates 2017-03-06 04:55:09 +00:00
1f7042a68e I2PSnark fallbacks when JS is unavailable:
- Use meta-refresh
- Hide JavaScript-dependent buttons
2017-03-06 04:52:42 +00:00
a65722f3e8 I2PSnark: clean up RNF/RDNE errors 2017-03-06 04:51:55 +00:00
964dacd907 I2PSnark:
- More tooltips
- Remove "if checked" from checkbox strings
- Checkbox layout tweaks
2017-03-06 04:47:51 +00:00
25b03979d5 I2PSnark backend layout/style tweaks 2017-03-06 04:43:19 +00:00
6151480ee6 SusiDNS theme updates 2017-03-06 04:43:02 +00:00
97fa5d9921 SusiMail theme updates 2017-03-06 04:42:43 +00:00
83c9dc7437 Console theme updates 2017-03-06 04:41:22 +00:00
4bf0147198 Update I2P logos for console themes 2017-03-06 03:49:43 +00:00
d7e5aaf919 Replace &nbsp; with thin non-breaking space &#8239; for byte sizes
The latter has more consistent/predictable width between fonts & point sizes.
2017-03-06 03:46:56 +00:00
10a021f5fc Re-layout "Banned IPs" section of /configpeer 2017-03-06 03:43:38 +00:00
20df511401 "Mark for deletion" tooltip in SusiMail folder list 2017-03-06 03:42:56 +00:00
73708041e8 Spacing tweaks for legibility/consistency 2017-03-06 03:38:30 +00:00
zzz
b71aafbb28 Debian: Add files for jessie with libtomcat8-java
Fix missing glassfish dependency in trusty/control
2017-03-04 15:02:08 +00:00
zzz
319ce9b065 Debian: Revert previous checkin for precise, it does not have libtomcat8-java 2017-03-04 14:44:09 +00:00
zzz
87cff00b99 Debian: Revert previous checkin for trusty, it does not have libtomcat8-java 2017-03-04 14:41:21 +00:00
zzz
f38ee48ca3 Move setting of InstanceManager to WebAppConfiguration to avoid race
Fix up LICENSES.txt
Build.xml cleanup
Debian:
- Add support for with-libtomcat8-java but not with-libjetty9-java for wheezy/jessie
- Fix wheezy/precise/trusty build files to use tomcat8 but not jetty9 packages
- Remove build dependency on ant-optional, not required
- Remove some remaining eclipse-ecj dependencies
- Add short README files for wheezy and jessie
2017-03-04 14:24:48 +00:00
zzz
ec6c24429a Debian build fixes 2017-03-03 19:44:39 +00:00
zzz
15915afeb8 Remove dup DTDs in javax.servlet.jar
Set InstanceManager for webapps
Remove InstanceManager log message
Resolves ticket #1818
2017-03-03 17:56:47 +00:00
zzz
b72085bcf3 Debian builds:
- Remove with-libtomcat6-java and with-libtomcat7-java
- Replace with-libjetty8-java with-libjetty9-java
- Add libtomcat8-java dependency in debian builds
- Change libservlet-3.0-java implicit dependency to libservlet-3.1-java
- Initial mods for trusty build files, as it does not have jetty 9
- Initial xenial build files
- Add link to jetty9-apache-jsp.jar
- Add necessary util jars to jsp classpath
Non-Debian builds:
- Move tomcat runtime from javax.servlet.jar to jasper-runtime.jar,
  to be consistent with Jetty 8
- Switch from jetty (glassfish) to apache (tomcat) jsp implementation,
  to be consistent with Debian builds
- Drop checked-in Tomcat 6 and Jetty 8 jars
Code:
- Force Jasper initialization in RouterConsoleRunner since we
  don't use the Jetty annotation scanner
2017-03-03 15:48:10 +00:00
zzz
5f96067c22 merge of 'bd4c9889786a280f8797cbdc6ca9cddb8c7260a2'
and 'fe4b2b6942b6c0dbe1efda4e2fa555289e74cbef'
2017-03-03 14:00:47 +00:00
zzz
61e4e2a052 Util: Don't depend on DataHelper in FileUtil.copy(),
causes Windows installer to fail because DataHelper is not in install.jar.
tag i2p-0.9.29-win1
2017-03-03 13:59:54 +00:00
zzz
f7cdf221eb UDPAddress: Add method to get introducer expiration (proposal 133) 2017-03-02 14:24:27 +00:00
zzz
69ad95710a UDPAddress: Fix bug in "Error handling for failed intro packets"
cur variable wasn't being incremented.
from Revision: 0f0232b342477486c38b51afa3d298285cc8fbcf
from Date:     09/15/2005
Simplify error handling code
javadocs
2017-03-02 14:14:28 +00:00
zzz
920572d3bc UDPAddress: Make most fields final 2017-03-02 13:27:30 +00:00
zzz
d3abbe86e9 Fix eepsite jetty.xml and jetty-ssl.xml files
Migration script for eepsite jetty.xml and jetty-ssl.xml files
Add exclude protocols
2017-03-01 16:42:57 +00:00
zzz
3631efa567 Fixup for PathMap generics
Remove dup returns
2017-03-01 16:41:19 +00:00
zzz
a6e62afc1f Servlet: Catch OOM in MultiPartRequest 2017-03-01 12:58:16 +00:00
zzz
8bfb3649dd Fix webapps and plugins not starting, because the
default configurations were not being run.
Revert adding JettyJspServlet class, maybe we don't need it after all.
2017-02-28 03:52:32 +00:00
zzz
45abf6575c add missing JettyJspServlet class 2017-02-27 22:26:39 +00:00
zzz
7fb82da7ff Partially revert previous checkin, which was missing some DTDs.
Delete previously checked-in DTDs, and in the build,
copy all the DTDs out of jetty-schemas-3.1.jar to javax.servlet.jar.
Update to Jetty 9.2.21.
2017-02-27 21:31:44 +00:00
zzz
e995a4cf92 i2psnark: Fix disappearing start button 2017-02-27 19:51:38 +00:00
zzz
2de25ca453 addressbook: Add date parameter to authentication strings 2017-02-27 19:50:21 +00:00
zzz
8d928eadba minor fixes after review 2017-02-27 19:49:05 +00:00
zzz
e03c25e397 debian files update 2017-02-27 19:48:28 +00:00
zzz
b695293070 0.9.29 2017-02-27 14:11:44 +00:00
zzz
c09bfa0a26 i2ptunnel: Fix generation of advanced authentication strings 2017-02-27 14:09:46 +00:00
zzz
f420a99b6f Update translations 2017-02-24 23:54:31 +00:00
zzz
33b1851317 PrivateKeyFile: Add option to generate addressbook authentication string
fix inadvertent fallthru
HostTxtParser: Add -q command line option, enhance return codes
2017-02-23 19:45:33 +00:00
zzz
3c735eaf96 more man pages 2017-02-20 18:31:25 +00:00
zzz
3f452c5acb GeoIP, blocklist, checklist update
GeoIP from Maxmind 2017-02-07
2017-02-20 18:20:38 +00:00
zzz
380f55a0e8 I2CP: Return null on decompression failure instead of
throwing exception, to reduce the impact, for example
in iMule which is apparently closing the session (ticket #1915)
2017-02-15 17:48:47 +00:00
zzz
8a89b3da29 Fix calls to Class.newInstance() deprecated in Java 9 2017-02-15 17:01:02 +00:00
zzz
f2ae1bfe09 Utils: Disable caching of ResettableGZIPOutputStreams,
add more checks for compression failure,
fix output for zero-length input (ticket #1915)
2017-02-15 16:45:06 +00:00
zzz
17b781c1b4 Translations: Update source
Fix dependencies for poupdate target
2017-02-15 16:27:43 +00:00
zzz
68fb3f42a8 New SSL cert for reseed.i2p-projekt.de 2017-02-11 20:31:21 +00:00
zzz
fc8c193f37 strip more system properties in I2CP 2017-02-11 15:12:53 +00:00
zzz
c949d776be I2PTunnel CLI: Set connectDelay default for HTTP client
tweak clientoptions help messages
2017-02-11 13:44:57 +00:00
zzz
e29e3e2fd3 Test: Prevent NPE in LocalClientManager test on client shutdown 2017-02-11 13:26:26 +00:00
zzz
e01c443fa2 Test: Add random delay and drop options to LocalClientManager
Return failure codes from LCM to client (ticket #1939)
2017-02-10 19:17:43 +00:00
50450ecba6 propagate from branch 'i2p.i2p' (head bd037c8b542fe0f6125aa16fb3bff5d257b4e955)
to branch 'i2p.i2p.str4d.ui' (head 9bd4080121d8ef662d6a2e4dfe7fae1079b32646)
2017-02-10 16:43:25 +00:00
44c0d9357b Update snark tile2.png 2017-02-10 16:42:50 +00:00
42ba5fa509 Fix typo 2017-02-10 16:42:06 +00:00
24b2bb8e3f I2PTunnel theme tweaks 2017-02-10 16:41:49 +00:00
026a9cf026 Smooth out heading backgrounds on I2PTunnel edit pages 2017-02-10 16:40:49 +00:00
87c8031e5a SusiMail theme tweaks 2017-02-10 16:40:21 +00:00
bff3f0436c Router console theme tweaks 2017-02-10 16:39:56 +00:00
bfe8c65628 SusiDNS changes:
- Additional column on hostname list page for helper address with icon, and
  iconfication of b32 addresses
- Added minified identicon to hostname column
- Changed destination address display on list/details from textarea to div to
  accomodate automatic height adjustment (no need to manually specify height and
  hope for the best)
  - Also allows us to display the full Destination on the details page
- Tooltips for eraser icon + new address helper icon & minified identicons
- Consolidation of Hostname/host name/name referenced: now all "Hostname"
- Theme tweaks and whitespace removal
2017-02-10 16:37:15 +00:00
a22bf6b4a4 I2PSnark changes:
- Add spacing between File Info/ Directory Listing for all themes
- Tooltip for tracker removal eraser icon
- Theme tweaks and whitespace removal
2017-02-10 16:34:33 +00:00
c4e7b1a799 Open log files in a new tab 2017-02-10 16:31:49 +00:00
232d0b5e77 More tooltips 2017-02-10 16:31:21 +00:00
82095d9786 Add "NetDB Search" to Advanced sidebar section 2017-02-10 16:31:08 +00:00
f68967c5f2 Alphabetical sorting of sidebar links under "I2P Internals" 2017-02-10 16:30:47 +00:00
9898a4a930 Min width for config tabs on light theme 2017-02-10 12:36:40 +00:00
092881acc4 Padding for text-dense tables 2017-02-10 12:36:20 +00:00
b1ed295e26 Rename /configclient button classes 2017-02-10 12:13:05 +00:00
zzz
2d8f0c2956 Streaming: Fix optional delay and choking (tickets #1046, 1939)
- Don't always send optional delay
- Don't overwrite choking delay with non-choking delay
- Don't send optional delay of 0 every 8 packets
- Don't set options both in CDR.buildPacket() and Conn.sendPacket()
- Set or clear optional delay in packet when retransmitting
- Move choking state variables from ConnectionOptions to Connection
- Move updateAcks() call from PacketLocal to PacketQueue
- Fully implement choking and un-choking
- Reduce periods for some stats
- Comment out some debug logging
- Cleanups
- Fix javadoc HTML broken in previous checkin
2017-02-09 17:24:03 +00:00
zzz
f0241d4a1c Util: Change logCloseLoop level to DEBUG 2017-02-08 15:27:25 +00:00
zzz
a11bd7cbe7 I2CP: Return local delivery failure on queue overflow (ticket #1939) 2017-02-08 15:22:41 +00:00
zzz
36ec4de9c7 Console: Consolidate timer threads (ticket #1068)
Clear correct property if no users are set
2017-02-05 20:56:40 +00:00
zzz
843b66d61e Streaming: Don't hard fail on expired message error (ticket #1748) 2017-02-05 19:39:15 +00:00
zzz
afb87cd75c NTCP: Don't write to an inbound connection before established, causing NPE (ticket #996) 2017-02-05 19:09:12 +00:00
zzz
aa098ac800 dont log deletion of deletelist.txt 2017-02-05 14:58:47 +00:00
zzz
bbbbfe2417 reduce concurrent graph generation for ARM 2017-02-05 14:57:57 +00:00
zzz
9ab55ec368 checklist update 2017-02-05 14:56:51 +00:00
zzz
a85546534e Streaming: Don't always send optional delay (ticket #1046)
javadocs
2017-02-05 14:55:13 +00:00
zzz
83c786a5fd more man page translations 2017-02-05 14:16:33 +00:00
zzz
50d735b126 new reseed 2017-02-05 13:03:55 +00:00
zzz
da893452ea HTTP proxies: Pass through relative referer URIs, convert same-origin
absolute referer URIs to relative (ticket #1862)
2017-02-04 21:18:00 +00:00
zzz
6306799a4b single-char indexof() 2017-02-04 19:46:04 +00:00
zzz
82d812c25c NTP: Enable IPv6 support (ticket #1896) 2017-02-04 15:38:49 +00:00
zzz
890ad257e1 Router: Run shutdown tasks in parallel,
increase max time for shutdown tasks (ticket #1893)
i2psnark: Remove most delay between announces at shutdown
2017-01-30 22:05:43 +00:00
zzz
7cb5dab67f i2ptunnel: Add support for outproxy plugin to CONNECT proxy (tickets #1364, #1895)
Add support for ports to CONNECT proxy
2017-01-30 00:33:43 +00:00
zzz
1cf6030646 Utils: Catch Java 9 error in SSLEepGet 2017-01-28 15:41:48 +00:00
zzz
36fd93da0d Utils: Comment out debug logging in SSLEepGet 2017-01-28 14:00:11 +00:00
zzz
5483306d21 Utils: Detect when running as service on Gentoo 2017-01-28 13:57:31 +00:00
zzz
1f228a3f85 Build: Rename translated man pages to be compatible
with dh_installman for debian.
Add i2prouter-nowrapper man page.
Misc. man page fixups (man man-pages for the standard)
No ant targets or deb packaging yet.
2017-01-27 19:15:32 +00:00
zzz
12cc7b3a3b bump -4 2017-01-27 16:11:14 +00:00
zzz
61fd242938 Build: Translated man pages for es and zh,
and a script to build them.
es complete, zh partial, just for testing.
No ant targets or deb packaging yet.
2017-01-27 16:10:00 +00:00
zzz
78da3b9785 javadoc fixes part 15 (ticket #1894) 2017-01-27 16:00:58 +00:00
zzz
e0e06d73eb javadoc fixes part 14 (ticket #1894) 2017-01-27 03:14:34 +00:00
zzz
112fa503e6 javadoc fixes part 13 (ticket #1894) 2017-01-27 03:03:34 +00:00
zzz
9dab3b0dfe javadoc fixes part 12 (ticket #1894) 2017-01-27 02:27:53 +00:00
zzz
82064760d5 javadoc fixes part 11 (ticket #1894) 2017-01-27 02:19:47 +00:00
zzz
bd1354f95b javadoc fixes part 10 (ticket #1894) 2017-01-27 01:49:19 +00:00
zzz
fb74f41692 javadoc fixes part 9 (ticket #1894) 2017-01-27 01:41:06 +00:00
zzz
5db89d8743 javadoc fixes part 8 (ticket #1894) 2017-01-27 01:36:26 +00:00
zzz
b970912cc1 javadoc fixes part 7 (ticket #1894) 2017-01-26 21:55:04 +00:00
zzz
d196047382 javadoc fixes part 6 (ticket #1894) 2017-01-26 21:45:47 +00:00
zzz
eefb36cb99 javadoc fixes part 5 (ticket #1894) 2017-01-26 21:37:23 +00:00
zzz
dc5bfb224d javadoc fixes part 4 (ticket #1894) 2017-01-26 20:59:26 +00:00
zzz
e461e8fb4f javadoc fixes part 3 (ticket #1894) 2017-01-26 20:51:05 +00:00
zzz
8bb114e9c4 javadoc fixes part 2 (ticket #1894) 2017-01-26 20:45:58 +00:00
zzz
f77fc52ca7 javadoc fixes part 1 (ticket #1894) 2017-01-26 20:37:44 +00:00
zzz
1a28a2af23 Use the EL API and compiler from Jetty, not old Tomcat
Bundle the DTDs, as extracted from jetty-schemas-3.1.jar
These were in lib/jsp/javax.servlet.jsp-2.2.0.v201112011158.jar in Jetty 8
but are not in any lib/jsp/*.jar in Jetty 9.
  GPL v2:
  Copyright 2003-2009 Sun Microsystems, Inc. All rights reserved.
  Copyright 2004 The Apache Software Foundation
  Copyright (c) 2009-2013 Oracle and/or its affiliates. All rights reserved.
2017-01-26 17:30:33 +00:00
zzz
d9c6360e0a Build: Set up man pages for translation.
No ant targets yet.
2017-01-26 15:47:42 +00:00
zzz
8137661751 i2prouter: Add root check to restart and condrestart commands (ticket #1770) 2017-01-24 14:44:17 +00:00
zzz
c66559ff84 propagate from branch 'i2p.i2p' (head d2e954c054d89a425c9791067ac7998433e95a23)
to branch 'i2p.i2p.zzz.jetty9' (head adcba23cab31b88e430ee09bf45fd1b6789a1719)
2017-01-19 17:19:00 +00:00
zzz
e47c628891 jbigi: Update GMP version (ticket #1840) 2017-01-19 16:18:30 +00:00
zzz
7b0a5bcd5a debian doc update 2017-01-19 13:33:10 +00:00
zzz
6e7dedba81 javadoc clarification 2017-01-19 13:32:15 +00:00
zzz
83e356140d i2ptunnel: Change eepsite sigtype to EdDSA for new installs 2017-01-19 13:31:10 +00:00
zzz
b66c7802e7 Add new reseed reseed.onion.im 2017-01-19 13:28:40 +00:00
zzz
7311cf33b7 Utils: Gzip test code refresh 2017-01-19 13:25:56 +00:00
zzz
60c93f1e1c Client: Don't log error on datagram dissector fail (ticket #1915),
let the client do the logging.
Throw early if data too short
2017-01-17 15:34:38 +00:00
zzz
a36083ab18 Utils: Java 9 yakkety workarounds 2017-01-17 14:08:47 +00:00
6308038a08 "Cables? Where we're going, we don't need cables." 2017-01-15 14:17:20 +00:00
e141abb5de susimail and susidns theme tweaks
- Responsive layout
- "background: none" for radio/checkbox icons (Edge/IE fix)
- Address dropdown display issue in MS Edge by making customized dropdown menus inclusive (-webkit-appearance: none);
2017-01-15 14:15:26 +00:00
94c6496f9d Tooltips for /configclients and reseed button 2017-01-15 14:13:30 +00:00
d360ba4817 NedDb advanced lookup layout and theme improvements 2017-01-15 14:08:29 +00:00
cca3f57373 Presentation tweak on /help 2017-01-15 14:06:23 +00:00
57e51ab8c5 I2PSnark theme tweaks 2017-01-15 14:04:24 +00:00
93511c0e61 HTML tag validity bugfixes 2017-01-13 17:34:20 +00:00
zzz
7cae467b59 DTG: Don't try to start if headless (ticket #1924) 2017-01-12 15:54:06 +00:00
zzz
2df64cd098 Copy README.txt contents to README.md
so the github page is restored.
2017-01-09 13:54:49 +00:00
0a0757a69f Add 10px border between torrent info and content on details page
Only on ubergine theme currently; extend to other themes if this works
2017-01-08 17:23:18 +00:00
14bacc272e propagate from branch 'i2p.i2p' (head 439bb8be3133559026640ebd22fdf93d10ba2cb9)
to branch 'i2p.i2p.str4d.ui' (head 83c1a136effdf092093e9af799a138e86da7ec43)
2017-01-08 01:37:15 +00:00
2bc5630832 Final CSS updates
- Responsive layout tested on HiDef+ setup, tweaked where necessary
- Extended glyphs that don't appear to be universally available replaced
- /graphs styling
- Various smaller improvements
2017-01-07 18:51:58 +00:00
ecb9726ba4 Help: more advanced settings 2017-01-07 18:31:10 +00:00
894186e975 Updates to /graph
- Graph image updates
  - Custom fonts with fallback
  - Left-align legend
  - Thinner restart and graph lines for clarity
  - Separate legend and display period date
  - Text tidyups
- Tweak layout and text of configuration options
- Default width to 400px to avoid info truncation
- 15s and 30s refresh options
2017-01-07 18:28:55 +00:00
053ebd7079 Disable anti-aliasing and hinting on QR codes to improve quality of display text 2017-01-07 17:52:09 +00:00
fabc57b57a Second draft of CSS updates
- More responsive layout
- Accessibility tweaks
- Further consolidation of look & feel between console and webapps
2017-01-07 17:47:01 +00:00
04b9b202e5 Routerconsole CSS hooks 2017-01-07 17:42:07 +00:00
acec99ff43 Move console links above hidden service links on /home
UX motivation:
- Console links are a small group of likely-useful actions and apps, thus makes
  sense to keep them at closer reach
- Ensures that if more hidden services links are added, the console links
  remain visible
2017-01-07 17:41:32 +00:00
e81a01d3e8 Typo fix 2017-01-07 17:36:08 +00:00
7101fb0997 Move /configclients sub-links into header 2017-01-07 17:33:09 +00:00
6b7ac9fba6 Move susidns export button to top of UI 2017-01-07 17:29:12 +00:00
0badcf63aa Theme and forms for imagegen app 2017-01-07 17:09:34 +00:00
bd69499f8f Add more filetypes to eepsite jetty-dir.css 2017-01-07 16:47:32 +00:00
23f835781c I2PTunnel CSS hooks 2017-01-07 16:24:34 +00:00
5dd6f2d06b merge of 'a84cabd267418e1cf436c975915ed5b91e39ae86'
and 'aafd3b9469e494f4f106a5c60c2139947c150679'
2017-01-07 15:48:44 +00:00
7f9a211242 Adding Dockerfile with support files to build a minimal docker image running i2p. 2017-01-07 13:59:26 +00:00
zzz
ca440a50fe i2ptunnel: Fix NPE on proxy.i2p/add when no params 2017-01-07 13:55:36 +00:00
zzz
994b51b5b1 update to Jetty 9.2.20 2017-01-06 13:57:41 +00:00
zzz
fc0ddb0193 eepget: recognize more status codes 2017-01-06 12:24:29 +00:00
zzz
f0e6baad27 add package dependency document 2017-01-05 15:46:33 +00:00
zzz
6ad4cb0928 Data: No longer sort addresses in an RI by SHA256,
it's undocumented, the other router implementations don't do it,
and unnecessary since we store addresses in a List, not a Set,
as of 0.8.14 2012-05
2017-01-04 14:47:52 +00:00
zzz
91163948b5 Router: Replace random tunnel keys when rekeying 2017-01-04 14:29:37 +00:00
zzz
e16cf2ce51 javadoc 2017-01-04 13:31:55 +00:00
zzz
307a03f0ed RouterAppManager: Logging 2017-01-04 13:31:21 +00:00
zzz
b63d44b226 Sybil: Start analysis 3 days before 2017-01-04 13:30:35 +00:00
zzz
57be0df858 Webapps: Remove classpath system log 2017-01-04 13:28:34 +00:00
zzz
6843950bdc DataHelper: Release resources in finally block 2017-01-04 13:25:49 +00:00
zzz
134cbd46e4 Crypto: Enforce correct seed and hash lengths in EdDSAPrivateKeySpec
From github PR #22
747df9f9aa
2017-01-04 13:00:31 +00:00
91007735a1 Update tests to use ScalaTest 3.0.1 2016-12-29 18:54:23 +00:00
14ca463499 Add Maven Central upload to release checklist 2016-12-29 12:12:22 +00:00
zzz
a7492269fb RKG command line tool multiple args 2016-12-24 14:24:30 +00:00
zzz
074c630ac6 Utils: Add RKG command line tool 2016-12-24 13:46:51 +00:00
zzz
f902a63144 Console: Add Referrer-Policy header 2016-12-23 12:35:41 +00:00
zzz
ffcd2d4517 Clock: Fix duplicate notification of clock shift listeners 2016-12-22 15:16:51 +00:00
zzz
dd400bb14b Update: Fix JVM crash and i2p.jar corruption when updating from -1 2016-12-22 14:13:39 +00:00
zzz
63a2a6da08 Router: Check blocklist when loading RIs
Ensure blocklist is initialized before netdb
2016-12-22 14:08:44 +00:00
zzz
3846e08e68 Router: More efficiently check blocklist when receiving new RI 2016-12-22 12:46:38 +00:00
zzz
e625e67b5d Console: Limit age of news entries displayed 2016-12-22 12:03:28 +00:00
zzz
0819857b86 add toopie 2016-12-22 11:25:54 +00:00
zzz
fbbfd8acf0 NTP:
- Verify source address and port
 - Add to command line
 - main() test improvements
 - Add KoD support (ticket #1896)
 - Add initial IPv6 support (ticket #1897)
 - Make some methods private
 - Add year 2036 warning
2016-12-21 17:48:47 +00:00
zzz
95fb2df609 Tools: Fix installer compile fail 2016-12-20 14:01:36 +00:00
zzz
c1baee64d3 reseed updates 2016-12-18 15:06:48 +00:00
zzz
ce47d4ea68 Profiles: length check on file names 2016-12-16 18:06:38 +00:00
zzz
14a839ebba synch graceful exit code 2016-12-16 18:01:30 +00:00
zzz
636badcec2 reduce buffer size 2016-12-16 17:59:00 +00:00
zzz
6093f26fb6 minor cleanup 2016-12-16 17:58:16 +00:00
zzz
4615fce28e Update: Register blocklist version with update manager 2016-12-16 17:56:18 +00:00
zzz
328f544de1 minor optimization 2016-12-16 17:50:26 +00:00
zzz
0c76201bd9 propagate from branch 'i2p.i2p.zzz.test2' (head 2447f30ec8d46502041197c3ca0ce85d4da070b0)
to branch 'i2p.i2p' (head 763f037865b6bc798d2db144dc39faa02a09219a)
2016-12-16 17:45:54 +00:00
zzz
0a1cd20585 Debian: Updates
- Fix jetty version in build.xml
- Make javadoc package priority 'extra'
- Beginning of xenial files, Java 8 only, untested
- Build doc updates
- Add zesty, remove wily in docs
2016-12-15 13:56:52 +00:00
zzz
26a9e8bd89 0.9.28 2016-12-12 16:08:35 +00:00
zzz
f5e8220c8b add java version to manifest 2016-12-12 15:59:10 +00:00
zzz
b7c7e02518 remove reseed serving old files 2016-12-12 15:58:33 +00:00
zzz
7eadc3df6f restore two sites up again 2016-12-12 15:57:58 +00:00
zzz
2f3f01c5c7 remove git.repo.i2p 2016-12-09 20:13:36 +00:00
zzz
5d7546598e remove zerobin 2016-12-09 16:01:23 +00:00
zzz
434e3badd6 translation updates 2016-12-09 15:58:22 +00:00
zzz
541e9e6dc0 Remove DOS line endings in cert (fails ant testscripts) 2016-12-09 15:52:37 +00:00
zzz
8a3a725730 GeoIP: Update from Maxmind 2016-12-06 2016-12-06 19:10:25 +00:00
zzz
74cd5cee20 Router: Revert default family sig type back to ECDSA,
as the OIDs are changing, to be deferred to next release.
Update blocklist
2016-12-05 13:41:51 +00:00
zzz
b78b3cb942 configpeer: Remove hr at bottom 2016-12-04 15:49:53 +00:00
zzz
62b5b49b02 Console: Sort banlist and floodfills in true binary order, not by base64 string 2016-12-04 15:25:38 +00:00
zzz
7734d3dd65 Consolidate base64 alphabet string 2016-12-04 14:10:07 +00:00
zzz
27724a809f BOB:
- Change NamedDB implementation to HashMap
  - Change NamedDB locks to ReentrantReadWriteLock
  - All unlocks in finally blocks, remove redundant unlocking
  - Remove throw declaration from methods that don't
  - Read under write lock when that's simpler
  - Use Boolean fields rather than valueOf()
  - Fix unlock order inversion in I2PtoTCP and MUXlisten
  - Remove unused locking in TCPtoI2P
  - Add missing locking in status command
  - Remove redundant locking
  - Remove unnecessary catch-and-rethrows
  - Spelling fix in error message
  - Set some methods static
  - Blank line removal
2016-12-03 23:10:53 +00:00
zzz
1d6fc40d59 BOB finals 2016-12-03 16:24:00 +00:00
zzz
176ecaa9f1 use new copy 2016-12-03 16:18:56 +00:00
zzz
42efed578a Clean up single char indexOf() 2016-12-03 16:00:09 +00:00
zzz
f461d4881d javadoc fixes 2016-12-03 14:27:50 +00:00
zzz
5be077e25d Clean up single char indexOf() 2016-12-02 18:52:37 +00:00
zzz
5b31540fe8 Console: Version the css links 2016-12-02 17:23:02 +00:00
zzz
ec94a6eca3 NetDb: Peer selection tweaks 2016-12-01 14:33:26 +00:00
zzz
04321e6af3 remove jump server 2016-12-01 14:29:02 +00:00
zzz
25fd488db0 Blocklist: Read feed file before user-specified file 2016-11-27 15:58:57 +00:00
zzz
850f1504f7 NetDb: Add MTU, SSU caps, IPv6 prefix, and cost lookups 2016-11-27 15:46:07 +00:00
zzz
2318a2b319 NetDb: Add same-port check in peer selector
Convert FloodfillPeerSelector MaskedIPSet to use the one now in util
2016-11-27 14:58:34 +00:00
zzz
8d494ad162 Lookup by port and sig type 2016-11-26 17:43:18 +00:00
zzz
5a87c232ea NetDb: Add advanced lookup form
Fix /16 and /8 lookup
Fix tab highlighted for all lookups
Add sybil points for banlist
2016-11-26 15:11:06 +00:00
zzz
f6778c573a SU3File: Add types for blocklist (proposal #130) 2016-11-25 14:53:42 +00:00
zzz
ffb3a75813 add converttohash to commandline 2016-11-25 14:06:23 +00:00
zzz
e3435dce10 sybil tweaks 2016-11-25 13:54:17 +00:00
zzz
497d08845c add links 2016-11-24 18:12:18 +00:00
zzz
cc6cd9e402 Sybil tool enhancements 2016-11-24 18:04:40 +00:00
zzz
64f5fed05a blocklist feed tweaks 2016-11-24 13:54:54 +00:00
zzz
1d280156a2 Console: Lookup RI by IP with netmask 2016-11-23 18:08:15 +00:00
zzz
08f7e5d6a8 ip links 2016-11-23 17:08:13 +00:00
zzz
b72b768945 Console: Lookup RI by IP 2016-11-23 16:13:07 +00:00
zzz
89733251d4 Console: Lookup RI by caps
stub out lookup by IP
2016-11-23 16:00:36 +00:00
zzz
8146f6fdb6 FFPeerSelector: Penalize new and slow peers 2016-11-23 14:21:57 +00:00
zzz
625e992c91 News: Add command line support 2016-11-23 14:06:33 +00:00
zzz
62064da081 News: Support blocklist in the news feed (proposal 129) 2016-11-23 13:54:05 +00:00
zzz
86c0fe327b NetDB: Fix detection of bandwidth class when multiple values are specified 2016-11-21 21:03:37 +00:00
zzz
bbb921806e NetDB: When doing lookups, don't use floodfills too close 2016-11-20 22:25:00 +00:00
zzz
fdff5ecd43 Router: Change default family sig type to EdDSA 2016-11-20 16:32:38 +00:00
zzz
97af7d0622 margins on /configlogging 2016-11-20 15:43:16 +00:00
11579b9818 merge of '8bf9850eb3fe4fcfb63053838a188969b7ba9c5b'
and 'a40ea9b5f7545281195f00a80e31ae879197e76b'
2016-11-20 06:08:40 +00:00
01cfb7b241 merge of '348832602d6528cc162d427742d0910df3db76ef'
and 'd51aa134c2f1b0fe533f79663f1e79dade41bde1'
2016-11-20 06:07:00 +00:00
zzz
b0bba18f33 Build: Add manifest attributes for java version to all jars and wars 2016-11-17 15:14:50 +00:00
zzz
70902bd279 Tomcat 6.0.48 2016-11-17 14:56:52 +00:00
zzz
cd4d5a39bf Console: Add netdb lookup by family 2016-11-17 14:33:33 +00:00
zzz
7a1a1d5b93 NetDB: When verifying store, don't use floodfills too close
to the store
2016-11-17 14:27:55 +00:00
zzz
66c2664b91 Blocklist: Add support for IPv6 in blocklist.txt
fixup main() test, minor cleanups
2016-11-17 13:45:36 +00:00
zzz
68e5fd6d08 Profiles: Pull same-IP detection into a utility class, for use by netdb 2016-11-16 18:05:40 +00:00
zzz
37d3204e43 Router: Add methods to verify and track members of our family;
use on sybil page
2016-11-16 18:01:24 +00:00
zzz
784566a7cb eddsa findbugs 2016-11-16 15:27:28 +00:00
zzz
126850626c socks findbugs 2016-11-16 15:26:19 +00:00
zzz
42cbc1e9ac Console: Remove dead home page links 2016-11-16 12:34:24 +00:00
zzz
1a46d9373d Certs: Add Let's Encrypt ISRG Root X1 cert 2016-11-15 20:17:32 +00:00
zzz
cd5d5ee23d Logs: Fix output of dup message after 30 minutes 2016-11-14 13:15:36 +00:00
zzz
16a551f7ce UPnP: Prevent NPE on socket creation fail (ticket #1681) 2016-11-13 16:30:51 +00:00
zzz
75d599e061 Handle case where it was an emptyList 2016-11-13 16:11:19 +00:00
zzz
efd953f3d4 Console: Add initial news to bottom of news page so it doesn't disappear (ticket #1153) 2016-11-13 15:56:47 +00:00
zzz
3ac8e5f54f UPnP: Prevent exception on bad HTTP header (ticket #1480) 2016-11-13 15:11:59 +00:00
zzz
0108c1c290 i2psnark: Periodically DHT nodes (ticket #1328) 2016-11-13 13:48:38 +00:00
zzz
a8976d25e3 Profiles: Delete old ones after saving (ticket #1328) 2016-11-12 23:10:55 +00:00
zzz
6a72c2957b Profiles: Periodically save (ticket #1328) 2016-11-12 22:27:34 +00:00
zzz
f69c0998ea Susimail: Fix nonce error on login after logout
Fix internal error after cancel button on settings form when not logged in
2016-11-12 20:10:58 +00:00
zzz
35548ff9be Susimail: Add logout button to more pages (ticket #1374) 2016-11-12 19:43:00 +00:00
zzz
6ed329db78 I2CP: Reduce log level of error when session closed
while signing leaseset (ticket #1606)
2016-11-12 18:07:20 +00:00
zzz
2c65173bec Console: Add IPv6 firewalled setting on /confignet 2016-11-12 15:14:43 +00:00
zzz
6acc23af00 Console: Fix inadvertent config save when clicking restart or shutdown
on /configstats
2016-11-12 14:54:56 +00:00
zzz
d7a84c88cd JRobin: Move DeallocationHelper logging from wrapper log to router log
Fix redundant cast
2016-11-12 12:29:30 +00:00
zzz
aeeee0e5c4 Build: Truncate history.txt in installers 2016-11-11 18:23:58 +00:00
zzz
c3181d8561 Transport: Use NTCP for some outbound connections even before
SSU minimums are met (ticket #1835)
2016-11-10 15:09:39 +00:00
zzz
24ecc858f1 Tunnels: Reduce default VTBM records from 5 to 4 2016-11-09 21:32:19 +00:00
zzz
e5bcfe4207 Transport: Add stats for inbound v4/v6 connections (ticket #1854) 2016-11-09 21:08:21 +00:00
zzz
e614b0996d Router: Fix low-memory log messages for non-wrapper (ticket #1795)
Install: Add max memory option to runplain.sh
Build: Fix minimum Java version for Windows
2016-11-08 15:42:22 +00:00
zzz
b559b412aa Crypto: Change serial number in selfsigned certs from int to long
Add CertUtil to command line
2016-11-08 14:09:56 +00:00
zzz
cd775fa38d Transport: Improve IPv6 selection logic
to skip temporary addresses on linux
2016-11-08 03:24:30 +00:00
zzz
ab064fd31e add upnp to command line 2016-11-08 00:15:37 +00:00
zzz
08062aaf64 service cant be android 2016-11-07 14:31:53 +00:00
e74479317d Add router.jar to Maven Central target 2016-11-07 03:11:32 +00:00
zzz
c9c29520b4 Consistently log authentication failures for all interfaces 2016-11-06 17:20:35 +00:00
zzz
81bbf554e8 sort 2016-11-06 15:31:43 +00:00
zzz
26a24a98ed add java 9 log warning 2016-11-06 15:31:01 +00:00
zzz
e8de1daf65 Util: Consolidate linux service detection code 2016-11-06 00:49:34 +00:00
zzz
11e86110e7 Build: Add support for using libtomcat8-java package, untested 2016-11-05 18:50:22 +00:00
zzz
f42d76b4b4 Console: Add message to ignore InstanceManager warning (ticket #1818) 2016-11-05 17:52:21 +00:00
zzz
e379ca6c54 SusiDNS: Fix jsp EL syntax error with EL 3.0 (Tomcat 8) (ticket #1870) 2016-11-05 15:31:07 +00:00
zzz
5d0b35d53a Console: Improve handling and logging of webapps that fail to start 2016-11-04 17:02:15 +00:00
zzz
8c71b883bb Transports: New config options i2np.udp.minpeers and i2np.udp.minv6peers,
for testing (ticket #1876)
2016-11-04 14:20:56 +00:00
zzz
843351956e build fix 2016-11-04 14:02:06 +00:00
zzz
7197d22f2a Transports: New config option i2np.allowLocal,
replaces i2np.udp.allowLocal and i2np.ntcp.allowLocal,
fixes test networks (ticket #1875)
2016-11-04 13:44:24 +00:00
zzz
b77c4c67a1 i2psnark: Add launch-i2psnark.bat (ticket #1871)
author is MXPLRS|Kirill, adapted from launch-i2psnark,
same license
2016-11-04 13:19:02 +00:00
zzz
62bc616ada Crypto: Certificate tweaks for email subjects 2016-11-01 13:27:12 +00:00
zzz
9e8251fb9f spelling take 2 2016-10-30 17:56:41 +00:00
zzz
6ff9483e07 Console: Java 9 fixes for classloader (ticket #1870)
May not be sufficient for plugins
Unlinkify viewmtn links on /jars, site is down
2016-10-29 16:21:02 +00:00
zzz
484a3903ca Build: Fix typo in jcpuid build.sh for Mac (ticket #1865)
Doc updates for Mac copied from that ticket
2016-10-28 17:10:22 +00:00
zzz
916fc96654 opus mime type 2016-10-28 16:15:16 +00:00
zzz
75345f4da1 Utils: Add Addresses methods for getting multiple results from DNS
ticket #1050, work in progress
2016-10-28 16:14:44 +00:00
zzz
e603437500 drop empty wily dir 2016-10-28 16:01:12 +00:00
zzz
d49a778b68 javadoc typo 2016-10-28 16:00:25 +00:00
zzz
95ae86d962 Jrobin: Fix for error in DeallocationHelper on Java version 9-internal 2016-10-28 15:18:08 +00:00
zzz
51e35eb572 Utils: Handle Java version detection for internal or ea versions 2016-10-28 15:08:13 +00:00
zzz
4f0cae59c2 Crypto: Remove deprecated Sha256Standalone as scheduled
This will break Syndie 1.105 and earlier, users must upgrade to 1.107
2016-10-28 01:52:07 +00:00
zzz
886dbf1172 Crypto: Generate more-conforming selfsigned certs (ticket #1853) 2016-10-28 01:39:01 +00:00
zzz
04392069a6 JRobin: Fix for Java 9 to remove dependency on Sun private classes
https://github.com/OpenNMS/jrobin/issues/3
http://stackoverflow.com/questions/1854398/how-to-garbage-collect-a-direct-buffer-java
Code from http://sourceforge.net/p/tuer/code/HEAD/tree/pre_beta/src/main/java/engine/misc/DeallocationHelper.java
unmodified, GPLv2
2016-10-26 19:31:40 +00:00
zzz
78acf707dc JRobin: 1.6.0-1, 2014-10-28, checked in as source
from https://github.com/OpenNMS/jrobin/releases
Replaces 1.5.9.1 from 2008-09-05
Needed for Java 9 to remove dependency on Sun private classes.
No modifications, but includes only core, data, and graph;
cmd, convertor, inspector, and tests are not included.
Using source instead of jar because:
 - Release jar not available
 - Additional change will be needed for Java 9
   to remove dependency on Sun private classes, see:
   https://github.com/OpenNMS/jrobin/issues/3
2016-10-26 17:45:34 +00:00
zzz
08d1ea89bf Build: Set Java 7 build target for all jars;
embedders (esp. Android) targetting 1.6 must
set javac.version=1.6 in override.properties and set
both bootclasspath variables.
2016-10-26 16:56:13 +00:00
zzz
2b6fd49a53 Update GettextResource.java from GNU gettext 0.19.8
Only change is in comment block.
Previous checkin didn't have gettext version, so do this
just so we know what version we are on.
2016-10-26 14:54:59 +00:00
zzz
3063e37cbd Systray: Remove old 32-bit Windows implementation, replaced by DTG 2016-10-25 23:59:20 +00:00
zzz
d2569fa446 i2psnark: Don't count unchoked but uninterested peers as uploaders
when calculating global uploader limit, to allow more upload slots,
especially when some torrents are stalled.
Convert some shared fields to atomics for concurrency.
2016-10-25 22:30:55 +00:00
zzz
8a8452290c Zxing 3.3.0 2016-10-25 15:04:55 +00:00
zzz
d2f7b65282 SSU: Increase max IPv6 MTU (proposal #127) 2016-10-25 13:39:33 +00:00
zzz
80966d60c1 Crypto: Create keystore directory when making SSL keys (ticket #1866)
When we switched to new way of making keys in 0.9.25,
we omitted the mkdir step, which broke it.
2016-10-23 16:38:26 +00:00
zzz
85223303f2 Jetty 8.1.21.v20160908 2016-10-22 16:22:08 +00:00
zzz
0860bd3736 one more gl translation 2016-10-22 15:24:51 +00:00
zzz
b53bf7844b New Chinese (Taiwan) translations for susidns, susimail, debian 2016-10-22 14:19:17 +00:00
zzz
75514ddd87 New Korean translation 2016-10-22 13:51:25 +00:00
zzz
35642e2661 New initial news translations: Czech, Galician, Greek 2016-10-22 13:20:20 +00:00
zzz
c24ddf5deb Build: Fix jbigi build for Arch Linux and others when using Java 8 (ticket #1863) 2016-10-22 12:58:50 +00:00
zzz
f436fd08ed Add MTU to command line utils 2016-10-21 22:23:48 +00:00
zzz
dc523b78d4 CSS fix for more flags 2016-10-21 22:05:54 +00:00
zzz
06a599b4e7 Add Galician language
Flag converted from:
https://en.wikipedia.org/wiki/File:Flag_of_Galicia.svg
Public Domain
2016-10-21 22:00:51 +00:00
zzz
27cd1a6a6e Console: Remove calls to deprecated two-arg setStatus() 2016-10-21 21:38:55 +00:00
zzz
b6521ed884 Wrapper: Update to wrapper 3.5.30
All binaries from Tanuki delta pack,
except for armhf (armv6), compiled on Raspberry Pi:
  ant 1.8.2
  javac 1.6.0_38
  gcc 4.6.3-14+rpi1
Windows binaries remain unchanged as we must recompile them ourselves
(32 bit just to change the icon; 64 bit is not provided by Tanuki)
2016-10-21 21:01:36 +00:00
zzz
71f7c712cd NetDB: Disallow RSA for RI or LS 2016-10-21 18:21:12 +00:00
zzz
f5f411b62f Data: Cache serialized leasesets on floodfills 2016-10-21 18:08:31 +00:00
zzz
d367149048 Tomcat 6.0.47 2016-10-21 17:42:50 +00:00
zzz
1bd5ebd8ec Crypto: Actually use a random nonzero byte in ElGamal,
as our specification says
2016-10-21 17:19:44 +00:00
zzz
534609e83a unused import 2016-10-21 17:13:58 +00:00
zzz
082a5d3c0f move siphash test from util to crypto 2016-10-21 15:21:24 +00:00
zzz
cee3ebbb23 less wtf 2016-10-21 15:20:35 +00:00
zzz
9b27251473 SSU: Fix minimum version check for IPv6 peer test (ticket #1861) 2016-10-20 18:31:32 +00:00
zzz
022479aff9 Build: Don't include jbigi.jar in next release update 2016-10-20 18:23:31 +00:00
zzz
adcee462e3 Build: Add library jars to i2p.jar classpath for Debian builds 2016-10-20 18:20:24 +00:00
zzz
7d070e6caf i2psnark: Add ids to rows, add to per-torrent show peers link 2016-10-20 18:04:56 +00:00
zzz
dcdf3e197c CSS h1 letter spacing tweak 2016-10-20 17:27:24 +00:00
zzz
6b5b3617d4 Debian: Update package descriptions, allow Java 9 2016-10-20 17:23:42 +00:00
zzz
be9f7dbf6e Fix HTML error on /configservice 2016-10-20 17:15:51 +00:00
zzz
38c9cb98a9 Updates for Debian builds 2016-10-18 14:50:06 +00:00
zzz
d8d0414ec4 Updates for launchpad builds 2016-10-17 22:16:35 +00:00
zzz
a7870bbd5a Fix so installers get the right jbigi 2016-10-17 00:49:57 +00:00
zzz
19370a36a2 0.9.27 2016-10-16 23:14:05 +00:00
zzz
5998587c52 Fix test for IPv6 firewalled configuration, javadocs 2016-10-16 16:57:33 +00:00
zzz
778ce71ea4 Translations: Update from Transifex 2016-10-14 12:07:26 +00:00
zzz
72105e218d SSU: Set min version for IPv6 peer testing 2016-10-11 13:24:56 +00:00
zzz
1af23a4106 Debian: Don't use glassfish-javaee.jar for jstl.jar (ticket #1793) 2016-10-10 12:31:28 +00:00
zzz
6b7d22c211 GeoIP update from Maxmind 2016-10-04
Add geoip to checklist
2016-10-06 14:58:46 +00:00
zzz
40b41b0dc5 Add geoipv6 file generation to command line util 2016-10-06 14:55:44 +00:00
zzz
db8a3d5b90 Susimail: Add console translate method so strings don't get tagged in susimail bundle 2016-10-06 14:04:02 +00:00
zzz
011d08b172 poupdate source 2016-10-06 14:02:23 +00:00
zzz
124c2b5ce3 i2psnark: Add standalone shutdown method 2016-10-02 15:44:49 +00:00
zzz
1e375c6de9 Crypto: EdDSA add private key spec constructor for hash
javadocs
2016-10-02 15:42:07 +00:00
zzz
cc4f63be12 SusiMail:
- Show settings button on list page even if no messages
 - Add nonce to forms
2016-10-02 15:39:37 +00:00
zzz
597231bed9 i2ptunnel registration page layout fixes 2016-10-02 14:47:22 +00:00
zzz
98e3ca47e6 Utils: Move SipHashInline from util to crypto 2016-09-24 16:00:56 +00:00
zzz
a46a0b1b32 i2ptunnel: Don't accept default 'mysite.i2p' as a valid spoof host 2016-09-24 15:46:57 +00:00
zzz
d4f786c902 i2ptunnel: Don't wrap destination in status message box
for easier readability / copypaste
2016-09-24 15:30:35 +00:00
zzz
b123720fa3 DTG: Enable by default on Windows 2016-09-24 14:54:30 +00:00
zzz
1376237e08 Reseed: remove user.mx24.eu as requested 2016-09-24 14:13:41 +00:00
zzz
78b7385281 i2ptunnel: Whitelist IRC AWAY inbound 2016-09-22 17:15:33 +00:00
zzz
4ab727acbd SSU: addRateData() cleanup 2016-09-22 17:13:42 +00:00
zzz
32e1c9617e EdDSA: throw IllegalStateException instead of NPE if field not set 2016-09-22 17:10:50 +00:00
zzz
fb323cef69 SipHashInline: Make public for external use with a supplied key (for obfs4) 2016-09-22 17:06:53 +00:00
zzz
cc179b488d DataHelper: Fix read() for nonzero offset, broken since the
beginning (2004) but unused by this repo;
Throw EOFException on short read rather than returning a smaller value,
since the whole point is to guarantee a complete read
2016-09-22 17:01:32 +00:00
zzz
2fd0ed1e74 spelling 2016-09-10 16:26:29 +00:00
zzz
afa5a193a7 Console: Add jsps to view entire router.log and wrapper.log files
Add links to /logs
Add some headers to the history.txt jsp
javadocs
2016-08-21 20:21:50 +00:00
zzz
b0789d45f3 HostTxtParser: Comment out tests, beginning of a command-line tool 2016-08-19 17:20:46 +00:00
zzz
be5fdea5e1 Enable tunnel testing when in hidden mode (ticket #1192)
Enable tunnel testing when without addresses (ticket #1835)
Use fast peers for inbound tunnels when without addresses (ticket #1835)
2016-08-19 17:13:12 +00:00
zzz
268953e19f CPUID: Add IDs for Kaby Lake (unverified/untested) 2016-08-19 16:09:21 +00:00
zzz
8cc03c265f JettyStart: Fix (now unused) main() 2016-08-19 16:06:04 +00:00
zzz
47a0df769e Router: Fix return code in getShutdownTimeRemaining()
when no participating tunnels remain
2016-08-19 16:02:17 +00:00
zzz
ff2d5badc9 ReadConfigJob minor optimization 2016-08-19 15:56:31 +00:00
zzz
bcaf837da8 i2ptunnel:
Register actual listen host with port mapper
Register POP and SMTP ports with port mapper
2016-08-14 17:44:08 +00:00
zzz
0d46c06843 Add new 'atomike' reseed 2016-08-14 15:20:33 +00:00
zzz
cdab6f8b76 i2ptunnel: Add outproxy plugin support to SOCKS (ticket #1824)
Make some classes package private
Move some fields to SocksServer superclass
2016-08-12 16:41:42 +00:00
zzz
b21b953ef2 i2ptunnel: Use preferred sigtype for new SOCKS tunnels 2016-08-12 16:34:44 +00:00
zzz
0d5cf46625 Console: Fix UPnP NPE on /peers (ticket #1830) 2016-08-09 17:27:54 +00:00
f7db737c1f Update i2psnark filetype icons 2016-08-08 08:00:01 +00:00
6512a9eb11 propagate from branch 'i2p.i2p' (head c62904685f0153a5b8cd032e8b3f1c4f64c5bec9)
to branch 'i2p.i2p.str4d.ui' (head 2a82ccb644906256af7bd0827725dc83e4c76be2)
2016-08-08 02:29:14 +00:00
zzz
9c0ae14609 Streaming: Fix debug NPE (ticket #1821) 2016-08-02 14:56:03 +00:00
zzz
5fcafb6434 i2psnark: Fix SIOOBE on bad announce URL (ticket #1823) 2016-08-02 14:28:34 +00:00
zzz
5763d73dda SSU: Fix peer test stuck when IPv6-only (ticket #1819) 2016-08-02 14:24:48 +00:00
zzz
cd4218e523 javadoc 2016-08-01 13:40:11 +00:00
zzz
f592f2234b build: include jbigi in next release update 2016-07-30 22:10:12 +00:00
zzz
c73a4a7983 i2psnark: Don't warn on failure to delete file if it's already gone 2016-07-30 18:47:03 +00:00
3e96a24fb8 Update default eepsite, add new section about running alternative webservers 2016-07-24 12:37:07 +00:00
01902de200 Hide JS links on proxy pages when JS disabled 2016-07-24 11:45:07 +00:00
e8e42a0b9d First draft of theme updates
- CSS changes to match backend changes
- Routerconsole themes applied across all plugins
- Move i2ptunnel CSS to a single file
- Image cleanups
- New icons
- Drop unused images
2016-07-24 11:25:32 +00:00
5368da2632 propagate from branch 'i2p.i2p' (head 57f8904e34e39111f13c427cb9fc92eeeb71afcd)
to branch 'i2p.i2p.str4d.ui' (head c4a8676261c7bbfa420927d931398c52f38ed03f)
2016-07-24 09:21:14 +00:00
zzz
a1fd8f49d7 SSU: Increase minimum peers if we have a IPv6 address
Check for 'B' cap for peer test
Fix peer test ip length check logic
2016-07-20 14:45:29 +00:00
zzz
a213799dac bump -6 2016-07-18 16:00:02 +00:00
zzz
b925f517d2 i2ptunnel: Block 'Proxy' header 2016-07-18 15:23:52 +00:00
zzz
767476ea51 SU3File: Also look in config dir for signer certificate 2016-07-18 14:39:35 +00:00
zzz
37ebf04bb5 Streaming: Kill accept() when session disconnects 2016-07-16 16:59:07 +00:00
zzz
7f2bd164db Plugins: Add exception for HSQLDB Timer in thread check 2016-07-16 16:08:34 +00:00
zzz
77014843fb I2CP Client: Break out of wait for LS in connect() if disconnect message received first 2016-07-16 16:07:14 +00:00
ddf332e779 susidns: rework top nav, consolidate filter section, misc markup 2016-07-11 07:08:55 +00:00
e01fe689d0 Encase susimail message nav in div 2016-07-11 07:08:13 +00:00
c586970128 Migrate i2ptunnel UI to tables, drop duplicate ids 2016-07-11 06:54:26 +00:00
f1d56a488a propagate from branch 'i2p.i2p' (head 67b5bc86a038a01b09ce3118cb12ffc5a63a7465)
to branch 'i2p.i2p.str4d.ui' (head e6ed70b649e8c498444b47918e2396a9602b8fd2)
2016-07-11 06:52:57 +00:00
5f62bf3e62 Missing i2ptunnel dependency in IDEA 2016-07-11 06:52:50 +00:00
12ced03aa5 propagate from branch 'i2p.i2p' (head e820709c391eb47dd85c43b4ec76d3731e2d653f)
to branch 'i2p.i2p.str4d.test2' (head 72c043901a0d9bbff44db975a12f38d6c4127845)
2016-07-10 14:41:27 +00:00
3471950f6f propagate from branch 'i2p.i2p' (head e820709c391eb47dd85c43b4ec76d3731e2d653f)
to branch 'i2p.i2p.str4d.ui' (head d58f7672f47913b858ab8651f9f460ac4a911898)
2016-07-10 14:41:03 +00:00
0333fb6e22 Add a couple of missing dependencies to IDEA 2016-07-10 14:40:54 +00:00
6d55f5bacf Update Jetty version after prop 2016-07-10 14:34:16 +00:00
6468e9e317 Update router version in build.gradle after prop 2016-07-10 14:32:53 +00:00
2270c4744c propagate from branch 'i2p.i2p' (head 34802d93f1d32368153a6769608d8e1046d0d117)
to branch 'i2p.i2p.str4d.test2' (head 0981aa4b9874c1752456cbf381aadc2fe829d57b)
2016-07-10 14:31:03 +00:00
e34eaa351e propagate from branch 'i2p.i2p' (head 34802d93f1d32368153a6769608d8e1046d0d117)
to branch 'i2p.i2p.str4d.ui' (head cc830bf1431a74c1944324a7b90349cc9319bd92)
2016-07-10 00:24:52 +00:00
03de374b07 Project files for IntelliJ IDEA 2016-07-10 00:24:40 +00:00
6d4f8fd471 Fixes after merge
Also found several duplicate ids that were split up; these will be replaced with
classes later.
2016-07-09 23:53:51 +00:00
b38f3b56f8 propagate from branch 'i2p.i2p' (head 2c491226853de4521d10d68da3a0a8e4db33293d)
to branch 'i2p.i2p.str4d.ui' (head bbdfdd2b3941cfa3c2c5cab8f3c78069c865c54d)
2016-07-09 23:20:31 +00:00
zzz
3baa08a3bb Utils: Improve random seed initialization
Fallback to Random rather than try SecureRandom twice
Fetch from SecureRandom incrementally
Remove log warning
correction, this is just a simple javadoc fix, original changelog was a dup
2016-07-09 21:07:31 +00:00
zzz
896af2c5d2 Utils: Improve random seed initialization
Fallback to Random rather than try SecureRandom twice
Fetch from SecureRandom incrementally
Remove log warning
2016-06-25 22:20:27 +00:00
zzz
2c3311b471 SSU: Add support for IPv6 SSU Peer Testing
(ticket #1752; proposal #126)
In PeerTestManager, this is simply the removal of v6 restrictions,
and the tracking of whether we are testing v4 or v6.
In UDPTransport, track v4 and v6 peer tests separately.
2016-06-25 21:25:12 +00:00
zzz
2506f6b143 spacing 2016-06-25 18:28:02 +00:00
zzz
c9b4ab5a13 Prep for IPv6 SSU Peer Testing 2016-06-22 17:28:55 +00:00
zzz
08fad38782 minor speedup 2016-06-22 17:26:25 +00:00
zzz
ba8b2df473 SSU peer test:
Only fire a peer test on connection if address has changed
Reverts inadvertent change in ccb0029690e8a5921f34289dfc86fe37ef9344c6 2009?
2016-06-22 15:20:33 +00:00
zzz
b819c0334a SSU peer test:
Forget the test and don't keep retransmitting to Charlie if we receive
the Bob reply after the 2nd Charlie reply.
2016-06-22 14:20:19 +00:00
zzz
009f6cce6e add links from old config page to new pages 2016-06-22 13:02:47 +00:00
zzz
4ee66c8218 Back out previous checkin adding override fields to Translate;
we can set language and country with System properties in app context.
Back out previous checkin bundling countries translations in
i2psnark standalone; use Locale to translate country names.
2016-06-18 17:49:28 +00:00
zzz
e6f111c5fc Split up /configclients, add /configi2cp, /configplugins, /configwebappsx
(ticket #1804)
2016-06-16 15:24:24 +00:00
zzz
e146480401 More manifest attributes in streaming jars 2016-06-15 18:34:44 +00:00
zzz
e7f82c88f1 i2psnark standalone:
- hide router link
- change javascript down message
2016-06-15 15:29:09 +00:00
zzz
9ba8f53ec7 Translate: Add method to set language in standalone app context
i2psnark:
- add form to set language in standalone context
- add Ukrainian and Japanese translations
2016-06-15 15:03:17 +00:00
47f0bbb93a merge of '65027e70ec9585f6013d97ec88d4f251869e47fd'
and 'c26f9208a0245c8b4b421076479271214ff1d660'
2016-06-13 06:03:03 +00:00
9a9144321d Add build target for Maven Central
Requires the Maven Ant Tasks to be installed. On Debian:

sudo apt-get install libmaven-ant-tasks-java
2016-06-13 06:02:48 +00:00
zzz
2113946ed0 add snark standalone context and redirect files
fix snark standalone build
2016-06-11 17:03:10 +00:00
zzz
cad7953ef6 remove dup section 2016-06-11 16:54:06 +00:00
zzz
1fea327eff more jar manifest attributes 2016-06-11 16:39:27 +00:00
zzz
16a5295140 history for prop, -1 2016-06-11 14:19:04 +00:00
zzz
d84b0e4455 propagate from branch 'i2p.i2p.zzz.test2' (head ee7dbea07e8ad7e01cb8012a1540aca8346ee7d2)
to branch 'i2p.i2p' (head 2cb447c64ae706c6cead619c9428083fce6f1d46)
2016-06-11 13:47:12 +00:00
zzz
bb8e050434 i2psnark standalone:
- Add shutdown hook to delete temp dir
- Fix up CSS URL paths to use single quotes
- Don't attempt to register with update manager
2016-06-11 13:34:09 +00:00
zzz
e27af374b0 i2psnark standalone:
- Cherry-pick fixes from psi's github i2psnark_rpc branch
- Fix up Jetty XML file for Jetty 8
- Start with JettyStart
- Add UrlLauncher to launch browser
- Move RunStandalone to standalone/ directory
- Fix up paths in CSS files during build
- Force startup delay to 0 when in router context
- Fix theme selection when not in router context
- Adjust CSS and image paths when not in router context
- Add hosts.txt so announces work
2016-06-10 19:10:59 +00:00
zzz
471ff5b939 Fix distclean for deb builds
Deb build doc updates
Checklist updates
Deb 8 changelog
2016-06-08 16:41:01 +00:00
zzz
bfbd159706 Release tarball build fixes
Precise build tweaks
Precise and Trusty changelogs
2016-06-07 19:15:00 +00:00
zzz
aa8fd85d65 Fix eepget Deb classpath via patch 0001
Launchpad doc tweaks
2016-06-07 16:55:05 +00:00
zzz
bc6583fe57 merge of '0bf1803f4554f830aee970415fcd6c9b6c4d2747'
and '98a4dbd3af97e8892dafc24a4ebbcc6b2ff30afe'
2016-06-06 21:55:04 +00:00
zzz
249e6f0eea 0.9.26 2016-06-06 19:23:17 +00:00
zzz
7471d04526 Fix i2pwiki.i2p link (ticket #1803) 2016-06-06 12:55:56 +00:00
zzz
389eba23cb Drop empty file inadvertently checked in two years ago 2016-06-06 12:54:38 +00:00
zzz
63272d3cfc mbuild-all script fixes 2016-06-06 12:37:06 +00:00
78d0a54e96 Typo 2016-06-06 12:34:17 +00:00
zzz
280ca2cf2f CPUID: Add CLI output for new AMD tests
Add @since for new AMD methods
2016-06-06 12:12:16 +00:00
f564d4dc22 Fixes for a bunch of old unused code to make it compile 2016-06-05 12:57:32 +00:00
zzz
126a4d8443 jbigi: Fix GMP version reporting for shared library (ticket #1800) 2016-06-04 13:23:05 +00:00
zzz
38b930cd03 propagate from branch 'i2p.i2p' (head eb2151f9d804ec432bfe97214896ee62da08943e)
to branch 'i2p.i2p.zzz.test2' (head 2ea50c5f22fe1e24d37dff2f283b77feaa9190ee)
2016-06-04 13:00:36 +00:00
zzz
2eb89e938a i2ptunnel CLI: Don't set the listen host to the I2CP host 2016-06-04 12:50:24 +00:00
zzz
34c611d340 New translations all over 2016-06-03 15:04:04 +00:00
zzz
d4ea7dc416 Update translations
Fix i2psnark .pt_BR file name
Add i2ptunnel .zh_TW
Fix getopt .fi which is coming in from tx non-UTF-8
2016-06-03 14:05:30 +00:00
zzz
1583f35fe4 i2psnark: Add psi's open tracker 2016-06-03 12:42:38 +00:00
zzz
d7e1f62db4 Build: Fix Debian build on ARM (ticket #1801)
- Fix other jbigi/jcpuid build script errors and typos
- Nonzero exit code missing on some jbigi/jcpuid build script failures
- Refresh patch
2016-06-01 17:45:27 +00:00
e86092b3e0 Consistent back-linking 2016-05-30 04:56:20 +00:00
ed3120956c Position routerconsole.advanced warning so it is more clearly associated 2016-05-30 04:56:08 +00:00
zzz
dbd1ae0dfb toString() for timer debugging 2016-05-29 15:03:51 +00:00
zzz
6f0fde092b more keys to cache 2016-05-29 15:03:04 +00:00
zzz
7213be43b2 'volatile' family cert
run by 'weekend'
2016-05-29 14:58:19 +00:00
zzz
d0594ebc77 javadoc 2016-05-29 14:56:46 +00:00
zzz
faebe8ab7e Console: Fix /configfamily form (ticket #1797) 2016-05-29 14:35:39 +00:00
5cb285b034 Bump 2016-05-29 12:09:34 +00:00
e16760d4d0 propagate from branch 'i2p.i2p' (head 31a9e968da3ecdf8475137e498ed0145bfd48c5a)
to branch 'i2p.i2p.str4d.ui' (head b1b8350768db1eccf4b5939a5add1c5c94410ec3)
2016-05-29 11:53:02 +00:00
3266907346 Dynamically load javax.naming classes to avoid VerifyErrors on some Androids 2016-05-29 11:47:59 +00:00
5439ff2195 Update history 2016-05-29 05:06:10 +00:00
7249b643ac Differentiate between constructor invocation failure and connection failure 2016-05-29 05:03:32 +00:00
efcf294670 Require that AndroidLogWriter is a subclass of LogWriter 2016-05-29 05:02:47 +00:00
147a7e4468 propagate from branch 'i2p.i2p' (head fc46f2d84625265a3899b5ad50af5e91d396ba01)
to branch 'i2p.i2p.str4d.ui' (head f8d5c7b37f4813b669d8a10f9ff82d0ed2a33282)
2016-05-29 02:04:34 +00:00
e969213451 Dynamically load Android LogWriter 2016-05-28 23:39:13 +00:00
03e188b57a Rename LogWriter -> FileLogWriter, LogWriterBase -> LogWriter 2016-05-28 22:51:44 +00:00
zzz
8807787b10 remove alert character output from build script printfs 2016-05-26 20:24:08 +00:00
zzz
f653b03288 Ubuntu: Launchpad precise build fixes
- Mods to the trusty debian files for precise
- New precise-tarball build target
2016-05-26 18:29:24 +00:00
zzz
498280b56d Ubuntu: Launchpad build fixes
- Set BITS in rules to target architecture bits
- Remove dh --with quilt as dh clean will unpatch with quilt
2016-05-26 14:22:18 +00:00
zzz
6b8cb54466 Debian: Refresh patch, update docs 2016-05-26 11:42:24 +00:00
zzz
0e941625cf Streaming: Return I2PSocketAddress from StandardSocket methods (ticket #1321) 2016-05-25 14:55:30 +00:00
zzz
2a739f593f Reseed: Require two sources minimum (ticket #1794) 2016-05-25 13:53:21 +00:00
zzz
d48f70c2fe poupdate english po files 2016-05-25 12:43:33 +00:00
zzz
f4d4ca0adf remove i2psnark message 2016-05-24 15:07:48 +00:00
zzz
bb8b3ebe8c add reseeds requiring SNI 2016-05-24 15:06:55 +00:00
zzz
e518e670f2 DTG: Add tray icons for Windows and Mac
White icon copied from Android drawable-mdpi/ic_stat_router_active.png for Windows
Converted to black in Gimp for Mac
2016-05-23 18:26:41 +00:00
6b7db094a9 Add toggles to i2psnark in preparation for CSS3 collapsible sections 2016-05-23 13:25:18 +00:00
9d3dec8577 Another style tweak 2016-05-23 13:20:22 +00:00
797ee21024 First pass at tidying up the favourites and services
This will change again once the new IA and UX for /home has been defined.
2016-05-23 12:50:07 +00:00
e485752546 Add help section for advanced settings 2016-05-23 12:46:18 +00:00
c9728fe2ef Add an optional Advanced section to the summary bar 2016-05-23 12:27:42 +00:00
206718f1e8 Text tweaks 2016-05-23 11:37:49 +00:00
31b480a68e Tweak /configstats toggle layout, hide if JS disabled 2016-05-23 11:33:42 +00:00
1a335321b2 Limit file inputs to accepted extensions 2016-05-23 11:29:10 +00:00
96fc02de5c Layout tweaks 2016-05-23 11:26:44 +00:00
804011d18d Note about language name length 2016-05-23 11:19:44 +00:00
f95100a1ff Update links, add tooltips etc. 2016-05-23 11:02:10 +00:00
bbc2454f36 Remove \n from inside empty <ol>s
When there are no list items, the <ol>s are now rendered as <ol></ol>, which
means they can be selected in CSS with ol:empty (to e.g. display: none), because
:empty only ignores comments inside HTML tags. This will be unnecessary once
browsers support the :blank selector, which will build on :empty to also ignore
whitespace.
2016-05-23 06:21:24 +00:00
62437acf66 More ids and classes 2016-05-23 05:41:24 +00:00
9cbcf5baa7 Fix repeated ids that should be classes 2016-05-23 05:31:42 +00:00
63260aac59 propagate from branch 'i2p.i2p' (head 198dad192e830f3eaf568af10f308bc98795470e)
to branch 'i2p.i2p.str4d.ui' (head 24039fce2eef425a63521138774a182aa07fec9f)
2016-05-23 04:55:57 +00:00
c5432a2098 Dynamically load domain socket code 2016-05-22 01:18:16 +00:00
zzz
3afe04d5e9 change tracker URL as requested 2016-05-20 21:31:20 +00:00
zzz
101d0691f0 DTG: Fix systray menu redraw on Mac;
Switch to AWT by default on Mac;
Hide DTG enable form on Mac until we fix headless override in i2prouter
2016-05-20 14:43:15 +00:00
zzz
18b61e7036 Config files, eepsite help: Add path information for OS X
and Windows as a service. (ticket #1495)
2016-05-19 19:03:53 +00:00
zzz
86a35f1a13 SSU: If configured with a hostname, bind to all v4/v6
addresses found for that hostname.
Fix binding if more than one IP or host was configured.
Log tweaks
2016-05-12 21:37:07 +00:00
zzz
d6638f3e00 NTP:
Don't put random data in zeroed fields
Increase random data in originate timestamp from 1 byte to 2 bytes
Verify originate timestamp to prevent injection
Verify received packet size
Log tweaks, javadocs, cleanups
2016-05-12 13:48:44 +00:00
zzz
f9bd4952f4 release checklist more info on translations 2016-05-09 15:18:01 +00:00
zzz
edbeac9c7b DTG: Add 9 new translations 2016-05-09 15:09:08 +00:00
zzz
97fca96861 DTG: Can't do first-time startup from /configservice,
restart required
2016-05-09 14:26:07 +00:00
zzz
702e1c5a78 Console: Fix escaping of search URLs on /confighome 2016-05-09 13:26:18 +00:00
zzz
ea38672159 Console: Fix HTML error on /configui 2016-05-09 13:09:38 +00:00
zzz
2d08889977 DTG swing event handling tweaks 2016-05-09 12:45:29 +00:00
b316315c61 Use subtable for mail header 2016-05-09 12:01:23 +00:00
zzz
ab3dbd5880 I2PSnark: Limit cases when we display tracker errors;
include host name of tracker when we do
2016-05-09 11:32:56 +00:00
61be475044 propagate from branch 'i2p.i2p' (head 6706bab853107973d7d0ff28212aae65bd098591)
to branch 'i2p.i2p.str4d.ui' (head 645f60a4d23af4116ae660b09dfff32d19a65c32)
2016-05-08 21:47:30 +00:00
29befb44cc Missing files from revision f253b24b4a6d5c841605792653ed57344dade6c4 2016-05-08 21:31:08 +00:00
zzz
6b578dfd8c Console: Fix UTF-8 passwords
Partial fix for UTF-8 usernames
Better input checking and help messages
2016-05-08 19:49:14 +00:00
zzz
8bb6922e80 Reseed: Reformat reseed list as requested by 'backup'
Remove unused certificates
2016-05-08 13:40:56 +00:00
zzz
99a5b10ea6 DTG: Add basic network status
Hide disabled items in Swing menu
2016-05-07 17:39:02 +00:00
zzz
bf1fa061e3 DTG: Use actual console URL
Hide browse menu item if not supported
2016-05-07 15:16:38 +00:00
zzz
16cee2ad56 Build: Update javadoc links to Java 7
Refresh package-lists
2016-05-07 13:49:03 +00:00
zzz
bb468ad38f javadoc fix for deb builds 2016-05-07 13:25:23 +00:00
zzz
05012a91ed refresh deb patches 2016-05-07 13:07:25 +00:00
zzz
5d93ca19f8 Build: Add back the old, slow way to build bundles
for gettext < 0.19
2016-05-07 12:57:49 +00:00
zzz
7d11ec2f08 merge of '52c56a56e3e6addc350299c0f86142760a6fc7cb'
and 'a8e6813e94cbc0bdccb063d140214db36af7ac1f'
2016-05-07 12:51:50 +00:00
dev
0f6336052a core/buildscripts: Added ARM support to BITS detection.
Added support for armv6/armv7/aarch32/aarch64 BITS detection
to build scripts.
2016-05-07 01:34:38 +00:00
zzz
62296222e9 Console:
- Show systray controls for all OSes on /configservice
  - Implement backend for systray control
2016-05-06 17:54:27 +00:00
zzz
70f9cb1b19 Build:
- Add DTG to updater
  - Fix and bundle DTG license info
  - Remove jstl.jar and standard.jar from updater,
    last changed in 0.9
  - Fix bundling of Tomcat license info
Console:
  - Change to new DTG constructor
  - Don't attempt to start systray or DTG when running as a service
2016-05-06 15:56:54 +00:00
zzz
ecafcddddb merge of '1ec1784c6eed4da97d0f3236f9fb46dea17d158b'
and '602d5ca1a488f10859327e19709700a7e1837c7c'
2016-05-06 15:43:38 +00:00
zzz
dd50b1487b DTG: Implement second TrayManager menu implementation in Swing.
Use Swing for non-Windows menus because AWT looks terrible on Linux
and the button handling there is almost impossible to fix
TODO: test on Mac
2016-05-06 13:45:30 +00:00
dev
c2f35c0d29 core/buildscripts: Added proper uname based BITS detection.
Added automatic detection for the BITS variable.
2016-05-05 22:32:20 +00:00
dev
4fd0261efa jcpuid/build_jbigi: Default BITS to 64 if unset.
To make sure that our debian build scripts work,
set BITS to 64 if unassigned.
2016-05-05 22:03:27 +00:00
zzz
390b2d409c DTG: Hide restart menu items if no wrapper
Add graceful restart and shutdown menu items
Add basic adjustment of menu based on shutdown state
Disable wrapper notification for now
2016-05-05 20:36:02 +00:00
zzz
196cf48372 DTG: Remove Swing DesktopguiConfigurationFrame as it's
completely inconsistent with the AWT SystemTray menus;
move to the AWT menu as a submenu.
This was the last of the Swing UI elements,
mathias ripped out the all of them in Nov. 2010, but
then added this one in Feb. 2011.
Remove LookAndFeel setting, only works for Swing.
2016-05-05 16:39:41 +00:00
zzz
8c1f7a4a39 DTG: Fix NPE and disable logging in config frame 2016-05-05 15:51:02 +00:00
zzz
75d6df7789 DesktopGui:
- Remove all static log, context, and instance fields
- Make Main class a RouterApp
- Remove unused ConfigurationManager class
- Translate tooltip, disable tooltip on linux
- Use safer exec call to start i2p
- Remove all images, use itoopie
- Don't start spinner thread in router context
- Handle various startup errors better
- Synchs, finals, javadocs, cleanups
2016-05-05 13:13:44 +00:00
zzz
16ff3e3def Debian: Refresh patch after i2prouter change 2016-05-05 11:41:05 +00:00
zzz
0839b46c8d i2prouter: Set JAVA_HOME correctly on Mac OS X 10.5 and later (ticket #1783) 2016-05-04 16:05:30 +00:00
zzz
cdafab2734 Wrapper: Update to wrapper 3.5.29
All binaries from Tanuki delta pack,
except for armhf, compiled on Raspberry Pi:
  ant 1.8.2
  javac 1.6.0_38
  gcc 4.6.3-14+rpi1
Windows binaries remain unchanged as we must recompile them ourselves
(32 bit just to change the icon; 64 bit is not provided by Tanuki)
Old 3.5.25 wrapper.jar moved to win-all, use it in windows-only installer
so it will be consistent with the old binaries.
Fixes wrapper failure on FreeBSD 10 (ticket #1118)
Minor i2prouter script fixes for FreeBSD 10, from anonimal (ticket #1118)
2016-05-04 13:40:50 +00:00
zzz
13685484f6 Utils: Fix bug in periodic timers triggered by
a backwards clock shift, caused graphs to be blank
and various router, streaming, and i2ptunnel
degradations over time (ticket #1776)
Log tweaks
2016-05-04 11:43:47 +00:00
zzz
cb2790bc62 another deb fix 2016-05-02 12:17:02 +00:00
zzz
17542400b9 Debian: Back out libhttpclient-java dependency,
requires 4.4 which is too recent for most distros
2016-05-01 21:22:38 +00:00
zzz
7a49b09b97 Build: Fix to not clean in imagegen on every build
Clarify some release prompts
2016-05-01 20:32:14 +00:00
zzz
33629d0744 Build: Compile resource bundles from ant, not msgfmt,
speeding up builds with translations by 20x
2016-05-01 20:19:56 +00:00
6bfd39d5c0 propagate from branch 'i2p.i2p' (head 8e9786b74b0ffb821179c5c60954ab3c00a71250)
to branch 'i2p.i2p.str4d.ui' (head 94e11eaba6bb17c14f4d9ca58547867f34949847)
2016-05-01 11:45:22 +00:00
8e391444b4 Fix mail table layout 2016-05-01 05:26:50 +00:00
a945cabf11 Ensure users know they are logging into I2PMail 2016-05-01 05:21:00 +00:00
4634debe21 Adjust truncation limits 2016-05-01 05:19:19 +00:00
d0456098e2 susimail layout tweaks 2016-05-01 05:18:29 +00:00
a3c9887fe5 Add a bunch of ids and classes to susimail HTML for styling 2016-05-01 05:04:43 +00:00
327f36d022 Disable spellcheck on SusiDNS config editor 2016-05-01 04:28:05 +00:00
8eeb902467 Rework "Create Torrent" table 2016-05-01 04:22:45 +00:00
61e54cf52e Rename i2psnark paging control images 2016-05-01 04:20:46 +00:00
50291233a1 Various small i2psnark HTML tweaks 2016-05-01 04:18:00 +00:00
edb3ffcf45 Rework /configui forms for theming 2016-05-01 04:06:28 +00:00
e34f0443bc Include bandwidth in minimal sidebar 2016-05-01 03:26:36 +00:00
cb0147a798 Collate help topics under /help 2016-05-01 03:24:25 +00:00
a7f789f069 Collate /configtunnels infostrings 2016-05-01 02:20:23 +00:00
66544f41f2 Tweak /stats for theming 2016-05-01 02:16:46 +00:00
82c55e6008 Remove hard-coded styling that will be moved to CSS 2016-05-01 01:28:49 +00:00
1ad69e7127 Improve contrast of graphs 2016-05-01 01:17:01 +00:00
6470f2d983 Wrap /profiles and /viewprofile info in tables for theming 2016-05-01 01:10:04 +00:00
709ccf6c22 Use tables for /netdb 2016-05-01 01:02:17 +00:00
zzz
2fe1f97ee0 Debian: Add runtime dependency on libhttpclient-java,
link to /usr/share/java/httpclient.jar and httpcore.jar.
This is 2 MB of dependencies to replace 20 KB of copied code,
so may not be worth it, esp. for Tails.
2016-04-30 18:08:50 +00:00
zzz
30ecdedf1f Drop old release checklist doc, current one is in checklist.md 2016-04-30 15:42:29 +00:00
zzz
efdb296468 SAM: Log tweaks (ticket #1778) 2016-04-30 15:02:04 +00:00
zzz
43f7897027 Data: Fix NPE calculating the hash of a RI of unknown sig type 2016-04-30 13:58:36 +00:00
zzz
d8e15dbbc5 Blocklist: Add RFC 6598 addresses 2016-04-30 13:25:09 +00:00
zzz
f3610bc285 reduce log level of RI sig failure 2016-04-30 13:23:24 +00:00
zzz
6bdf25bc3d Console: Only display cpuid information on x86 2016-04-30 13:22:22 +00:00
zzz
a2b2c19cbf Eepsite: comment out gzip filtering in cgi context,
causes hung threads, root cause unknown
2016-04-30 13:20:36 +00:00
zzz
3e09413e0a Console: Readme page link fixes (tickets #1789, #1790) 2016-04-30 13:16:18 +00:00
zzz
139f386fb8 Update: Enable libjbigi update for ARM 2016-04-29 22:34:55 +00:00
zzz
9128c79e05 one more deb build fix 2016-04-29 19:32:25 +00:00
zzz
7ae1483cb3 Fixes for building with libgetopt-java 2016-04-29 19:15:41 +00:00
zzz
c3f5c04bea typo 2016-04-29 18:41:06 +00:00
zzz
2e154881ef Debian: Add runtime dependency on libgetopt-java,
link to /usr/share/java/gnu-getopt.jar,
don't build gnu/getopt source
2016-04-29 18:40:02 +00:00
zzz
f2239ba7d1 Debian: Add runtime dependency on gettext-base,
link to /usr/share/java/libintl.java,
don't build GettextResource.java
2016-04-29 16:39:16 +00:00
zzz
5067b00058 javadoc fixes 2016-04-29 15:35:49 +00:00
zzz
c2e486f72c Debian: Refresh patches after jbigi/jcpuid build script changes 2016-04-29 15:30:55 +00:00
zzz
fbeca5ed80 SysTray: Remove systray4j.jar from linux installers
Move SysTray.java to SysTrayImpl.java
New SysTray.java that instantiates SysTrayImpl
by reflection, so the SysTrayImpl.java source is optional
Remove systray4j.jar, systray4j.dll, and SysTrayImpl.java
from Debian source packages
Remove systray4j.jar from Debian binary packages
2016-04-29 14:57:29 +00:00
zzz
d885e00c64 News: Verify received CRL before saving 2016-04-28 22:17:27 +00:00
zzz
52c9bf6d80 News: Parse and store CRLs in news feed 2016-04-28 21:55:17 +00:00
zzz
03adda3bde CPUID: Add version to /logs 2016-04-28 11:43:11 +00:00
zzz
da62a1114c History for prop, -6 2016-04-28 11:05:20 +00:00
zzz
13d3730fd9 Build: Add updaterWithJbigi and updater200WithJbigi targets 2016-04-28 10:54:40 +00:00
zzz
fb5ef83009 fixup jbigi version display 2016-04-28 02:39:32 +00:00
zzz
94056f68e9 fixup @since after prop 2016-04-28 01:49:45 +00:00
zzz
9f31b1fe97 propagate from branch 'i2p.i2p.zzz.gmp6-prop' (head 416ef26df4b91fb9de3e27623551c7f87ec2bfe0)
to branch 'i2p.i2p' (head 9466fdeae338d6b0bf049d86975db9b6ddbd3064)
2016-04-28 01:34:48 +00:00
dev
414522f8be Added jbigi files ignored from previous commit due to not using --no-respect-ignore 2016-04-27 22:26:34 +00:00
dev
91c8e5cf7f Updated jbigi/jcpuid binaries.
Files changed
-------------

  jcpuid:
      - Rebuilt for OSX/Windows/FreeBSD/Linux

  jbigi:
      - Moved to GMP 6.0.0a
      - Removed NetBSD binaries
      - Removed kFreeBSD binaries
      - Removed Solaris binaries
      - Removed OpenBSD binaries
      - Added coreihwl jbigi support
      - Added coreisbr jbigi support
      - Added bulldozer jbigi support
      - Added steamroller jbigi support
      - Added cortex a9 suppot support
      - Added cortex a15 jbigi support
      - Rebuilt _all_ unmentioned binaries


Build notes jbigi:
------------------
Windows: Cross-compile, linux hosts. Compiler: GCC
Linux: Native build. Compiler: GCC
FreeBSD: Native build, VM. Compiler: GCC
OSX: Native build. Compiler: GCC


Build notes jcpuid:
-------------------
Windows-x64: Native build. Compiler: MSVC
Windows-x86: Cygwin on Windows. Compiler: mingw on Cygwin
Linux: Native build. Compiler: GCC
FreeBSD: Native build. Compiler: GCC
OSX: Native build. Compiler: GCC
2016-04-27 21:35:05 +00:00
zzz
a2873c42bc i2ptunnel: Fix can't connect error message for servers when
in router context, like we did for clients earlier
2016-04-27 15:48:42 +00:00
zzz
967074c2d6 Wrapper: Increase default wrapper.log max size,
so a thread dump is more likely to fit in a single file
2016-04-27 15:46:24 +00:00
zzz
f35eaaf194 i2psnark: Add CommandLine to jar 2016-04-27 14:27:38 +00:00
zzz
6a71c23fd4 Addressbook: Check inner sig even if old name not found
More logging cleanup
2016-04-26 13:50:34 +00:00
zzz
fc8b72768a NamingService, BFNS: Add API methods to lookup all reverse entries
Addressbook: Use new API methods to simplify delete-all code
i2ptunnel: Output full authentication line
HostTxtEntry: More tweaks for i2ptunnel
2016-04-25 19:25:30 +00:00
03887826e8 Use table for transport legend 2016-04-25 12:03:38 +00:00
zzz
0ac83bd7c1 i2ptunnel: Enhance registration authentication page
- Enable form
- Switch to multipart form for getting old private key file
- Add advanced authentications
PrivateKeyFile: Add InputStream constructor for i2ptunnel
2016-04-24 21:03:10 +00:00
zzz
2a34d1c44a HostTxtEntry: Fixups for use by i2ptunnel
i2ptunnel: Add new registration authentication page
- Remove old, unused hostname signature generation
PrivateKeyFile: Ensure initialization before returning private keys
2016-04-24 18:10:10 +00:00
zzz
799d90e1b5 Addressbook: Move HostTxtEntry to net.i2p.client.naming,
in prep for use by i2ptunnel
2016-04-23 18:07:35 +00:00
zzz
f72753f3eb Addressbook: Store last-modified date
SusiDNS: Display signature validation on details page
2016-04-23 17:11:50 +00:00
zzz
d97908b430 SusiDNS: Add support for multiple dests per hostname 2016-04-23 16:52:15 +00:00
zzz
2fb8faa166 Addressbook:
- Enable parsing and handling of 'remove' actions
- Logging improvements
BFNS: Limit max dests per host
HostTxtEntry: Test improvements
2016-04-23 15:53:02 +00:00
zzz
e016c87fba add routerinfo to command line 2016-04-22 23:47:39 +00:00
zzz
75dd22510b Addressbook: Fix changedest action
- Implement adddest action
- Logging improvements
BFNS: Fix lookupAll() NPE
- Fix addDestination() UOE
- Support long property values
DataHelper: Properties methods cleanup
HostTxtEntry: Test improvements
2016-04-22 23:37:55 +00:00
zzz
55de82bb50 Addressbook: Add tests for Daemon to read local subscription file
More HostTxtEntry 'remove' methods and tests
2016-04-22 12:58:27 +00:00
zzz
4f262f6140 Addressbook: Use new NamingService API methods in action handling
- Refactor HostTxtEntry to consolidate properties writing
- More HostTxtEntry tests
- Start of 'remove' entry handling
Blockfile: Cleanup unused code
- Add Iterable interface to SkipList
2016-04-21 14:37:38 +00:00
zzz
34e390909e Build: Add some config checks before signed-updater tasks 2016-04-20 21:51:44 +00:00
zzz
9b726a8963 BlockfileNamingService: Implement new NamingService API
methods for multiple destinations per hostname
2016-04-20 21:04:30 +00:00
zzz
a0ba623061 Drop kytv's router and news certs 2016-04-20 17:48:19 +00:00
zzz
9ca8a7752a drop unused Blockfile classes 2016-04-20 17:36:13 +00:00
zzz
a4265a23ba BlockfileNamingService: Don't upgrade Android/ARM to version 4 for now,
too slow
2016-04-20 15:23:12 +00:00
zzz
b57b43247d Blockfile: Fixes for finishing interrupted database migration
by tracking version of each list, and catching some exceptions
2016-04-20 15:06:38 +00:00
zzz
436fee9200 Blockfile: Add generics, part 4 2016-04-20 13:08:42 +00:00
zzz
0067c8d1bd Blockfile: Add generics, part 3 2016-04-20 12:59:24 +00:00
zzz
0d19fe44c2 Blockfile: Add generics, part 2 2016-04-20 12:49:03 +00:00
zzz
4d2c227b0d Blockfile: Add generics, part 1 2016-04-20 12:40:28 +00:00
zzz
1a8847d177 Blockfile: Add method to change serialization schema for a skiplist
Fix delIndex() method, broken and previously unused
Improve javadocs
BlockfileNamingService: New database version 4, allows for
multiple destinations per hostname
Disallow database version higher than supported
2016-04-20 00:41:45 +00:00
zzz
e9cf4c21b7 NamingService: Add new API methods for multiple Destinations per hostname
Improve javadocs
2016-04-19 15:11:37 +00:00
zzz
25bce1031b Addressbook: Add sign/verify methods for inner signature
Add preliminary handling of incoming actions
2016-04-19 00:11:46 +00:00
zzz
909622fbd7 Addressbook: Rename ConfigIterator to HostTxtIterator 2016-04-18 13:17:57 +00:00
zzz
2d3d6f73b5 GeoIP: Disable Debian-style files on Android 2016-04-18 13:02:30 +00:00
44a27008dd Convert various config pages to table layouts 2016-04-18 12:11:05 +00:00
33229a31ee Use tables for /logs 2016-04-18 05:46:58 +00:00
653047146a Put /events controls on a single line 2016-04-18 05:36:33 +00:00
423167fdd3 Make /jobs HTML consistent with other pages 2016-04-18 04:55:57 +00:00
4547d5887d Move name title above name column on /confighome 2016-04-18 04:45:22 +00:00
3790129b30 Fix bug in /configui lang selector when not in advanced mode 2016-04-18 04:32:55 +00:00
aa95750e1f Make /configclients plugin links consistent with other details 2016-04-18 04:29:57 +00:00
ac6cd7e4c6 Add a bunch of ids and classes to routerconsole HTML for styling 2016-04-18 04:12:15 +00:00
zzz
b69677b709 Addressbook: Add initial support for signatures in subscriptions
More cleanups
SingleFileNamingService: Store signature properties on write
2016-04-17 20:20:10 +00:00
zzz
0ceb9576b9 PrivateKeyFile: Add method to specify sig type on creation 2016-04-17 15:55:41 +00:00
zzz
193ad4306e Util: Minor optimization in OrderedProperties 2016-04-17 15:29:18 +00:00
zzz
4290b1e795 Addressbook build:
- Fix main-class in addressbook.jar
- Fix corrupted manifest in addressbook.jar
2016-04-17 15:28:10 +00:00
zzz
3428995906 Build: Fix broken build from scratch in jetty build.xml 2016-04-17 12:43:43 +00:00
zzz
ca3f9963c6 Addressbook: More cleanups 2016-04-16 21:01:05 +00:00
zzz
ebbf7f23ac Addressbook: Cleanups
in advance of new subscription protocol work:
- finals
- Add Iterable interfaces
- Comment out unused methods
- public->private methods
- Close resources in finally blocks
- Javadocs, spelling fixes
- Increase max subscription size
- LinkedList -> ArrayList
- Improve while loops for reading lines
2016-04-16 18:35:46 +00:00
zzz
696c2152b3 Tunnel build stat tweak (commented out) 2016-04-16 16:21:28 +00:00
zzz
b66bc39db3 log tweak 2016-04-16 16:14:30 +00:00
zzz
df16ce6f77 javadoc note 2016-04-16 16:11:57 +00:00
zzz
a438722eed TunnelId: Add max value check 2016-04-16 16:10:56 +00:00
zzz
4e635aa485 Console: Add JSTL version to /logs 2016-04-16 16:05:19 +00:00
zzz
25fe886e72 Update version warnings
Add OpenJDK check for ARM
Uncomment SystemVersion.main()
2016-04-16 15:53:34 +00:00
zzz
5a2975ba65 SOCKS: Fix NPE on lookup failure in SOCKS 4a
Remove duplicate lookups in SOCKS 5
Log tweaks
Streaming, i2ptunnel: Catch null destination in connect() calls
Synchronize Connection.setRemotePeer(); remove _remotePeerSet field
2016-04-13 13:40:46 +00:00
zzz
094cf14d4a Debian:
Prep for dependency on libtomcat7
Doesn't work yet, breaks susidns.
glassfish-javaee for jstl.jar and standard.jar version 1.2 won't work with tomcat7,
it's ancient and not compatible with recent el libs.
Add back option to depend on libjakarta-taglibs-standard and libjstl1.1-java which are version 1.1.2,
but not clear if they will work with tomcat7 either, even though they are
dependencies of libjetty8-extra-java.
We switched from JSTL 1.1.2 to JSTL 1.2 when we went from Jetty 5 to Jetty 6 in 2012.
1.2 libs are not available anywhere except for Glassfish, and
Debian only has the ancient Java EE 5 Glassfish 2.1.
Not clear there's any way to get susidns (and bote) to work with both Tomcat 6 and 7.
- Fix wrong jsp-api version
- Fix other minor errors in install and links files.
- Log stack trace for Jetty warnings if log level is WARN
- SusiDNS: Move standard.jar and jstl.jar out of WEB-INF/lib, where Tomcat 7 build refuses to find them
2016-04-07 14:38:30 +00:00
zzz
5c8eab9dfb Debian: Add dependency on glassfish-javaee for jstl.jar and standard.jar version 1.2
don't echo comments in debian/rules
2016-04-04 18:07:43 +00:00
zzz
ae5828fdb1 history for prop, -1 2016-04-03 15:20:28 +00:00
zzz
b79471e0ca propagate from branch 'i2p.i2p.zzz.debian' (head c630b2a47f63476018a63783a9ae2a8a58503d87)
to branch 'i2p.i2p' (head 700a07a64359e4f328d1002e559f4585c6f02f19)
2016-04-03 15:16:52 +00:00
zzz
18391ac7db another fix 2016-04-03 14:19:20 +00:00
zzz
c3a1f153c1 another fix 2016-04-03 13:53:03 +00:00
zzz
d940aa5a44 typo 2016-04-03 13:35:12 +00:00
zzz
d6b1f813a8 Debian: Fixes for with-libjetty8-java builds 2016-04-03 13:04:23 +00:00
zzz
f867a9d4ce Debian: Update launchpad instructions
Add debian build instructions
2016-04-02 13:30:15 +00:00
zzz
e2f048b2ac Debian:
Add dependency on libjetty8-java and libservlet3.0-java packages
Remove those binaries in debian builds
Prep for dependency on libservlet2.5-java package
Prep for dependency on libtomcat6-java package
Prep for dependency on libtomcat7-java package
Prep for dependency on libjakarta-taglibs-standard-java package
Prep for dependency on libjstl1.1-java package
Add build properties for building with packages
Rework of apps/jetty/build.xml for building with packages
Redefine debian/ as the files for the jessie build
Make debian-alt directories for ubuntu builds
Move debian/changelog to debian-alt/trusty/changelog
Move debian-alt/jessie/changelog to debian/changelog
Add apps/jetty/jettylib/jsp-api.jar to classpath for jsp builds
2016-04-01 18:19:06 +00:00
a834cef1f4 added devscripts to list of needed debian packages 2016-04-01 16:24:57 +00:00
zzz
a493a2842a propagate from branch 'i2p.i2p' (head 809274054ef446273ea312a631fe7482fa53c030)
to branch 'i2p.i2p.zzz.debian' (head 437e22ee74e32e103bb8475007b1d1a2f995ef28)
2016-03-31 22:42:52 +00:00
zzz
f3c679e615 Debian: Update debian-alt files based on 0.9.25 released packages.
Delete files in debian-alt if the current package version
is now the same as what's in debian/
debian-alt/precise/ contains fixes for precise builds.
2016-03-31 21:14:46 +00:00
zzz
e69f39f6e3 Debian:
Add build property to prevent bundling of geoip.txt and geoipv6.dat.gz
2016-03-31 14:51:42 +00:00
zzz
b95f30b7d6 build: add missing distclean targets 2016-03-29 22:35:38 +00:00
zzz
17b1d524de Debian: Delete debian-alt in debian-tarball target
Add debian-release-tarball target
2016-03-29 19:06:56 +00:00
zzz
66be14016b Debian: Add alternate debian files for other series 2016-03-29 12:51:38 +00:00
zzz
4be46d8299 Debian: Restore --with quilt in debian/rules,
inadvertently removed in previous checkin, which broke patch.
2016-03-28 10:43:41 +00:00
2fb0572e08 updated ant debianhowto to reflect the needed libwrapper package on debian 2016-03-27 21:00:34 +00:00
zzz
169fd56527 Transport:
Include Maxmind geoip-api-java library v1.3.1 (LGPL v2.1)
Use Maxmind database for geoip lookup if it exists
Debian:
Don't bundle geoip.txt and geoipv6.dat.gz, depend on geoip-database instead
2016-03-27 12:55:28 +00:00
zzz
97a6cbda3e Debian: Set bootclasspath in override.properties
Require openjdk-7-jdk to build hso we have the correct bootclasspath jars
2016-03-26 17:28:58 +00:00
zzz
51e04f7c6e Debian: Remove libcommons-logging-java build dependency
mtn-ignore tweak
2016-03-26 15:26:55 +00:00
zzz
ee138a2b36 Build:
Don't bundle launch4j licenses in non-windows builds
Clarify in LICENSES.txt that launch4j is not bundled in non-windows builds and packages
Debian:
Change maintainer
Remove Debian patch that drops the launch4j licenses
2016-03-26 14:44:37 +00:00
zzz
5405792fad Debian:
Add missing patch with update for .25
Add missing line to require wrapper
Add launchpad help document
Add .24 and .25 releases to changelog
2016-03-26 13:56:57 +00:00
zzz
1da9c21f13 drop kytv certs 2016-03-23 13:53:26 +00:00
zzz
7eed4fa97b build dependency tweak 2016-03-23 13:46:33 +00:00
zzz
49ff78cf0e 0.9.25 2016-03-21 23:47:02 +00:00
zzz
c1b6e1be87 BuildHandler: Fix for leaky counter of outstanding lookups 2016-03-21 23:37:24 +00:00
zzz
c84dd527b7 Debian: Updates from the 0.9.24 release, including patch refresh, not checked in at the time.
Cherry-picked out of
https://launchpad.net/~i2p.packages/+archive/ubuntu/i2p/+files/i2p_0.9.24-1ubuntu1.debian.tar.xz
The files in http://deb.i2p2.no/pool/main/i/i2p/i2p_0.9.24-1~deb8u+1.debian.tar.xz
are somewhat different.
Note that some files out of that tarball are apparently older than what is in our debian/
directory and were not copied over.
Some of the changes may be for Ubuntu and will not work for Debian.
Kytv may have had a local debian/ directory for Ubuntu builds that was not checked in anywhere.
Untested. Another patch refresh for 0.9.25 may be required.
To be fixed up after the 0.9.25 release.
2016-03-21 18:25:17 +00:00
zzz
b0aaf64cec Console: Use i2pwiki.i2p for plugins directory link 2016-03-21 14:33:13 +00:00
zzz
557f16b8d5 NetDB: Improve handling of deferred search result jobs 2016-03-20 13:41:26 +00:00
zzz
ed72847374 Add SystemVersion.isOpenJDK()
Add warning for OpenJDK + ARM
2016-03-20 13:21:40 +00:00
zzz
645bd3d383 propagate from branch 'i2p.i2p' (head 110585552852c1f9c61a3a2efb4f17d62b0c1b2e)
to branch 'i2p.i2p.zzz.test2' (head 558ec52091868b7fa66af462f84044df1bede8cb)
2016-03-19 15:18:17 +00:00
zzz
2e7a7f26f8 take out code for stats removed in .24 2016-03-19 15:18:07 +00:00
zzz
3474b827b0 add raw signing test 2016-03-19 15:16:38 +00:00
zzz
25514e9848 tx pull 2016-03-19 13:32:24 +00:00
zzz
d00c08dcd7 disable torontocrypto reseed, no ETA for restoration 2016-03-18 20:01:07 +00:00
zzz
d64e6bb17d new backup news url 2016-03-16 18:55:39 +00:00
zzz
855215e840 SU3File: fix bulksign of .xml and .xml.gz files 2016-03-15 20:42:53 +00:00
zzz
674a77baca SU3File: bulksign .xml.gz files 2016-03-15 19:55:05 +00:00
zzz
c9f025a44d GeoIP update 2006-03-02
add v4 script
2016-03-15 18:21:50 +00:00
zzz
a61c44ba42 remove update.killyourtv.i2p 2016-03-15 18:20:36 +00:00
zzz
c869d3adc4 jetty config to disable context listing 2016-03-15 14:08:28 +00:00
zzz
387dc98e11 remove dead kytv sites 2016-03-15 13:53:24 +00:00
zzz
319d40146d Router: Fix corner cases maintaining local leasesets (ticket #1768) 2016-03-14 15:13:26 +00:00
zzz
2e3f5d0de9 UPnP: Fix NPE in HTML output on /peers (ticket #1779) 2016-03-12 13:55:03 +00:00
zzz
dc36de667d Home page: Replace pastethis with zerobin 2016-03-12 13:44:40 +00:00
zzz
0904500398 Susimail: Fix NPE 2016-03-12 13:43:45 +00:00
zzz
74e8cf79bd Peer selection: Don't truncate data used for random slice 2016-03-11 01:53:21 +00:00
zzz
b7498b564a add reseed 2016-03-11 01:48:30 +00:00
zzz
6d40e87032 tweak for consistent tagging 2016-03-05 14:58:55 +00:00
zzz
1f088ff3e5 NetDb: Look in all SSU addresses for introducers in the expiration check 2016-03-01 13:42:03 +00:00
zzz
50d038af5d NetDb: Search for new leaseset before expiration
Reduce expiration for router infos with introducers
More negative cache checks
Log tweaks
SSU: Switch introducers less often
2016-03-01 13:30:30 +00:00
zzz
ffa4d6580d i2psnark: Fix handling of HAVE messages received before metainfo 2016-03-01 13:09:18 +00:00
zzz
bf2f3762af add missing reseed cert 2016-02-28 14:22:22 +00:00
zzz
35e4b3c859 javadoc typo 2016-02-28 14:04:40 +00:00
zzz
4910413482 fail javadoc task if it has errors 2016-02-28 13:54:28 +00:00
7ccca9ef3c EdDSAEngine: one-shot mode tests 2016-02-28 04:18:04 +00:00
6e7f015d4b Add tests to check that an EdDSAEngine object can be reused with the same key 2016-02-28 03:37:03 +00:00
zzz
80860232d7 i2ptunnel: Don't default to a private key file that exists (ticket #1628)
Fix build.xml war dependency tracking
2016-02-27 16:17:25 +00:00
zzz
d28f983c46 Utils: Add main classes to i2p.jar and router.jar
for simple command line access to utilities
2016-02-26 18:12:11 +00:00
zzz
0de1ca161c CPUID: Restore AES-NI diagnostic output, inadvertently removed 2016-02-26 15:36:00 +00:00
dev
9445690cb1 Fixed OSX include search path. 2016-03-12 19:36:21 +00:00
zzz
b3f37db33f i2ptunnel:
- Fix hostname signature not finding private key file
 - Hide hostname signature if not successful
 - Null check for hostname signature failure
 - Make add-to-addressbook link a button
 - Add QR code generation
2016-02-26 15:25:01 +00:00
zzz
5f7d636738 Console: Don't display error after clicking restart on /graph page (ticket #1582) 2016-02-25 17:27:47 +00:00
zzz
90a915b8b5 log message clarification 2016-02-25 14:59:20 +00:00
zzz
248deaecbb Console: Add X-Content-Type-Options header everywhere (ticket #1763) 2016-02-25 14:56:06 +00:00
zzz
a79b25d7b1 Router: Log full path to wrapper.log when dumping threads 2016-02-25 14:18:26 +00:00
zzz
d9a7dc0233 Transports: Increase connection limits for class N and higher 2016-02-25 13:58:16 +00:00
zzz
f34a05c35d i2ptunnel: Fix default shouldBundleReplyInfo setting for non-http servers 2016-02-25 13:52:00 +00:00
zzz
8e4b7e3847 News: Set initial news to current date 2016-02-22 16:19:42 +00:00
zzz
eb094ba0ef Console: Improve news CSS (ticket #1710) 2016-02-22 16:04:42 +00:00
zzz
87d7e10841 I2CP: Improve client error message when internal router connection fails 2016-02-22 13:04:57 +00:00
zzz
7d35a4e1b9 Transports: Increase default max inbound bandwidth
Increase minimum in/out bandwidths
2016-02-21 22:17:38 +00:00
zzz
fc1268dd5b Graphs: Increase font size 2016-02-21 22:11:48 +00:00
zzz
abb52331a5 /configfamily tweaks 2016-02-21 14:04:41 +00:00
zzz
fa44a952ed make renderers package private 2016-02-21 14:02:12 +00:00
zzz
a3cac88c91 h1 css tweak 2016-02-21 14:00:40 +00:00
zzz
04614ac6f8 add i2pd-dev family cert 2016-02-21 13:59:39 +00:00
zzz
bd49b1d4bd Crypto: Blacklist certificates by SHA1 hash,
not by serial/CN/OU
2016-02-20 01:41:23 +00:00
zzz
40894663c2 Clock: Add sanity checks to detect invalid system clock 2016-02-19 17:01:40 +00:00
zzz
7d6fe011db i2ptunnel: Change Content-encoding to Content-Encoding
(thx orignal)
2016-02-19 14:37:02 +00:00
zzz
451cb2573a log tweak 2016-02-19 02:51:11 +00:00
zzz
238ebc23e2 Crypto: Check for revocation when reading in certificates 2016-02-19 01:37:41 +00:00
zzz
910822ecf2 Add utilities for loading CRLs from disk and checking certs for revocation 2016-02-18 23:54:56 +00:00
zzz
9fba12519f Transport:
- Implement mayDisconnect() for outbound connections also
- Run UDP idle disconnect loop faster if floodfill or near connection limit
NetDB:
- Call mayDisconnect() after direct netdb store
- Fix check to publish RI faster, broken in .24,
  we were publishing at every check,
  causing increased load on floodfills
2016-02-18 22:27:17 +00:00
zzz
3a28680162 /confignet: Clean up display and form handling
for specifying a fixed host name or IP
2016-02-18 16:10:14 +00:00
zzz
fa12967873 Add qr icon, to be used in buttons
created by me, public domain
2016-02-17 14:21:51 +00:00
zzz
9f0640ca2d log tweak 2016-02-17 14:17:37 +00:00
zzz
c385ad8f1d OCMOSJ: Don't wait until lease grace period has expired
to switch to a different lease
2016-02-17 14:16:53 +00:00
zzz
8faafc00b0 set request encoding 2016-02-17 14:13:58 +00:00
zzz
8498d7d128 i2psnark: Increase max files per torrent to 2000 2016-02-17 14:13:00 +00:00
zzz
455f32faa7 SAM: Don't log an error on datagram send success!
set i2cp.fastReceive=true
log tweaks
2016-02-17 14:11:18 +00:00
zzz
27d0a81bcb i2ptunnel: Improve layout of blacklist radio buttons on editServer.jsp 2016-02-17 14:06:12 +00:00
zzz
52a37d170f Imagegen: Add text to QR codes 2016-02-13 20:13:12 +00:00
zzz
236155791d Console: Add translation debug option 2016-02-13 16:29:49 +00:00
zzz
8ef593fe98 Data: New Hash.toBase32() method 2016-02-13 15:35:57 +00:00
zzz
e65bd26ad5 I2PTunnel:
- Add options to block by referer and user-agent
- Increase size of access list field in form
- Log blocked destinations in b32, not b64
- Strip X-Runtime header
Streaming;
- Log blocked destinations in b32, not b64
2016-02-13 15:31:38 +00:00
zzz
071769679d Javadoc fixes in imagegen, sam, crypto
package.html files for imagegen
2016-02-13 15:17:41 +00:00
zzz
6ab5b84979 Crypto: EdDSA precedence fix 2016-02-10 16:36:40 +00:00
zzz
981b708230 Crypto: Use new internal key generation instead of calling
out to keytool; save CRL for new su3 amd family keys
Allow su3 bulksign for xml files (news)
2016-02-09 20:48:23 +00:00
zzz
651c1b6545 Crypto: Fix raw (su3) signing, broken in test2 prop (-2) 2016-02-09 16:39:09 +00:00
zzz
e402bfaa81 history for prop, -3 2016-02-08 21:33:36 +00:00
zzz
241bb3812c propagate from branch 'i2p.i2p.zzz.sam' (head d5c193915251826fe4f5dcd58c36f74714495fd4)
to branch 'i2p.i2p' (head 5ad07e5b5ef68fddeec919c04c6c49178b6a6b31)
2016-02-08 21:24:06 +00:00
zzz
55addfc739 Fix bug receiving datagrams on v3 sessions with UTF-8 IDs
Add test for tag options
2016-02-08 17:30:01 +00:00
zzz
84b94368a9 BOB: Fix invalid output after getnick (ticket #1204) 2016-02-08 13:22:38 +00:00
zzz
8f667a0463 Use I2CP option names, not SAM option names, for setting tag options in SESSION CREATE/ADD 2016-02-07 20:53:09 +00:00
zzz
d962be9d7e SAM v3.3:
- More master session option checks
- Add support for SEND_TAGS, TAG_THRESHOLD, EXPIRES, and SEND_LEASESET
  (untested)
- Consolidate dup code in SAMv1Handler
- Change Session to extend SAMMessageSess
- Pass options down to v1 handlers in case we need it later
2016-02-07 18:45:26 +00:00
691e274ca7 Linting dep-ann: Added @Deprecated annotations in i2psnark, i2ptunnel, ministreaming, routerconsole, streaming 2016-02-06 22:38:10 +00:00
b1eaa772a1 Linting dep-ann: Added @Deprecated annotations in BOB and i2p_sdk 2016-02-06 21:32:28 +00:00
79bb3f6cc4 Added @Deprecated annotations to router classes/methods 2016-02-06 20:39:58 +00:00
zzz
b6deae9b23 SAM v3.3: Tests and fixes for REMOVE; don't close underlying I2PSession
- Don't remove a non-subsession with REMOVE
2016-02-06 17:51:23 +00:00
zzz
edde533e1b SAM v3.3: Fixes after testing
- More error checking
- Better error responses
- Fix listen port and protocol for DATAGRAM and RAW
- Fix adding sessions with duplicate dests to DB
- Add more sessions in SAMStreamSink
2016-02-06 16:56:37 +00:00
zzz
ceb7791541 test tweaks 2016-02-06 15:08:23 +00:00
zzz
68c617950c SAM v3.3: Fixes after testing
- Fix master acceptor
- Clean up error message generation
- Add basic master session test for SAMStreamSink
2016-02-06 13:44:08 +00:00
zzz
62ad7996f1 SAM v3.3: Fixes after testing
- Set Master properties in handler, not in session, so they take
- Create subhandlers for the subsessions
- Create socket manager with preferred createDisconectedManager()
  so we get exceptions
- Fix check for master session
- Enhance error messages
- Add basic master session test for SAMStreamSend
- Add check for DESTINATION in SESSION ADD
- Don't return DESTINATION in an I2P_ERROR response
Next to do: master support in SAMStreamSink
2016-02-06 00:21:37 +00:00
zzz
270bc24b62 SAM: Add start() to session interface,
don't start threads in constructors.
Start master acceptor thread.
Javadocs, SAMv2StreamSession cleanup
2016-02-05 18:44:35 +00:00
zzz
9b004bc61f SAM v3.3 master sessions.
Compiles only. Untested, not regression tested, not complete.
2016-02-05 16:10:04 +00:00
dev
f4abb284eb Imported Microsoft Visual Studio Comminuty 2015 project files.
These were used to create the jcpuid-x86-windows.dll
2016-02-03 21:04:10 +00:00
zzz
f9cf6bdc85 Fix typos, history for prop, -2 2016-02-03 20:22:41 +00:00
zzz
ebc4ca8698 propagate from branch 'i2p.i2p.zzz.test2' (head 70ae5494bd7255a03f80838a2f3d8e7c0ce86634)
to branch 'i2p.i2p' (head 05a201cc5c1bd841f32e9268b3019b3a3447f4f3)
2016-02-03 20:02:34 +00:00
zzz
d4d720524e hashCode() and equals() for ElGamalParameterSpec
comments for I2PProvider
2016-02-03 19:04:46 +00:00
zzz
6be7c46038 EdDSA:
- Implement one-shot methods in EdDSAEngine so we don't copy
   the data if all the data is available (ticket #1750)
 - Use EdDSA one-shot methods in DSAEngine
 - Fix API violation if EdDSAEngine object is reused for signing (ticket #1750)
 - Javadocs
2016-02-03 18:39:49 +00:00
dev
eb696c8993 Added correct build instructions for jcpuid on windows. 2016-02-03 18:31:18 +00:00
zzz
7901784a71 Add secure.thethinhat.i2p to console home page and hosts.txt
Approved at Feb. 2 meeting
Icon license: public domain
2016-02-03 14:12:50 +00:00
zzz
4e55edc049 minor cleanup and javadocs for previous checkin 2016-02-03 13:32:31 +00:00
zzz
acdaa60de3 Console: Custom icons for non-webapp plugins, from cacapo (ticket #1550) 2016-02-03 13:20:22 +00:00
zzz
a70a7a7ed5 Imagegen:
- Return 403 if no code specified in QR or RA
- Mode parameter for html or text in RA
- Set RA text-mode character encoding
- Fix up test page
2016-02-01 14:51:59 +00:00
zzz
2fb1ad035f history for prop, -1 2016-02-01 13:45:09 +00:00
zzz
28a2b82795 propagate from branch 'i2p.i2p.zzz.imagegen' (head 051e08304e7d6d2abaa7eeaf1b57e17bc49c752e)
to branch 'i2p.i2p' (head cd632db729aa84ae0c27c5863cb11820f0adb950)
2016-02-01 13:35:03 +00:00
zzz
bf51d5d9c4 CertUtil: Consolidate PEM encoding (DRY) 2016-01-31 22:24:16 +00:00
zzz
5d1d8b6d4d SelfSigned: Add support for CRL generation 2016-01-31 22:09:39 +00:00
zzz
129fb973f2 update comments 2016-01-29 18:28:43 +00:00
f094bacd67 merge of '01b0b5d0f5aae9882a6ada1fd1a9a7414adec7cb'
and 'ad6ebc8a0672f769ddc142886e0ce9e7fb344180'
2016-01-29 18:23:57 +00:00
be97e84d83 refresh patch 2016-01-29 18:03:33 +00:00
zzz
da3086bbef EdDSA:
- Add hashCode() and equals() everywhere it was missing,
  so we can test keys for equality: Curve, EdDSAParameterSpec, EdDSAPrivateKey, and EdDSAPublicKey
- Speedup for GroupElement.equals()
- Fix public key decode()
- Put unknown class name in exceptions
- indent fixes
Provider:
- Add KeyFactory aliases required for cert.verify()
- Fix EdDSA signature OID
SelfSigned:
- Add simple tests after generation using cert.verify() and key equality
2016-01-29 16:01:23 +00:00
zzz
8badb609e4 Selfsigned: Add EdDSA_SHA512_Ed25519 support
Remove debug output by default
2016-01-29 12:56:26 +00:00
zzz
a1a895e462 Add EdDSA_SHA512_Ed25519ph
Fix EdDSA OID
2016-01-29 03:02:02 +00:00
zzz
9ed185f3d1 Add synch
https://github.com/str4d/ed25519-java/issues/10
2016-01-29 02:40:44 +00:00
zzz
7fdfb5cf12 Put the OID in SigType 2016-01-29 02:23:14 +00:00
zzz
b4d4c93047 New selfsigned key and cert generator,
without keytool, BC, or sun private classes.
To be hooked in to KeyStoreUtil to replace keytool.
2016-01-29 02:08:51 +00:00
zzz
66299cb081 EdDSA notes 2016-01-29 02:04:16 +00:00
zzz
79450bcda6 ElG cleanup 2016-01-29 02:02:34 +00:00
zzz
3a72b0cc63 Crypto: Move I2PProvider initialization
Add ElGamal SigAlgo type
2016-01-28 14:57:07 +00:00
zzz
f200d5cb03 checklist fix 2016-01-27 17:46:31 +00:00
zzz
3ad1db8d74 I2PTunnel: Fix exception message choice that was backwards
for router/non-router context
2016-01-27 16:27:26 +00:00
zzz
bccefb949f 0.9.24 2016-01-27 14:18:08 +00:00
zzz
c6136b5cdb SHA256Generator: Don't fall back to Sha256Standalone,
SHA-256 support must now be in the JRE.
Deprecate all uses of Sha256Standalone, schedule for removal
in 0.9.27. This will require a new Syndie release.
2016-01-27 13:47:46 +00:00
zzz
d2d5a464a3 KeyGenerator: Check that dsax is greater than zero 2016-01-27 13:42:58 +00:00
zzz
6ab814a649 bootclasspath doc 2016-01-27 13:39:25 +00:00
zzz
df0aceb26d add another bootclasspath check 2016-01-27 13:38:08 +00:00
zzz
ddf056cf1d Fixups after review:
Fix arraycopy argument order in unused SocksHeader
Add deleted reseed cert to deletelist.txt
Fix minimum version for SSU extended options
2016-01-27 13:26:22 +00:00
dev
c9818e607f Improved jcpuid build script 2016-01-26 00:06:39 +00:00
dev
305f45fb30 Added jcpuid build instructions for linux/osx/freebsd/windows 2016-01-26 00:06:05 +00:00
ddb9777638 Add new reseed host, bump build 2016-01-25 05:09:12 +00:00
374996d8b2 merge of '7fbf2343aecc5e4d60cf076b89e7ad999f9b1091'
and 'e0b151c2f0595a79a9580334568d9e9c520ed956'
2016-01-25 05:08:24 +00:00
6192aa6910 Switch reseed host per email from reseed admin 2016-01-25 05:05:25 +00:00
8e47ec325d Translation updates from TX 2016-01-25 05:00:23 +00:00
zzz
ed9d403281 ElGamal: Implement key encoding 2016-01-24 21:40:33 +00:00
zzz
f38cfcc937 SigUtil: Enhance ASN.1 parser/generator to support
signatures up to 64K, needed for ElG
Log and javadoc tweaks
2016-01-24 19:02:13 +00:00
zzz
649d7122a2 Add ElGamal signature implementation
Add ElGamal to provider
doesn't work yet,
needs key encoding/decoding and SigUtil support for longer signatures
2016-01-24 16:45:54 +00:00
zzz
ad2561125e final all the crypto classes 2016-01-24 16:37:21 +00:00
zzz
403044fc6c DSAEngine: minor cleanup
ElG KeyFactory: Use getParameters() instead of getParams()
to get the correct class back
SigUtil:
  Use split() in sigBytesToASN1();
  new public ASN1 methods
  Javadoc, args checking
2016-01-24 13:28:03 +00:00
zzz
e7081491ca Fix unit tests I broke 2016-01-23 17:58:16 +00:00
zzz
594abdee55 merge of '8511dd159fa291cbf15fc0ea8bde4b331ed44534'
and 'd577249d0bf080d821db013df9a945dd87217a09'
2016-01-23 17:17:40 +00:00
zzz
c9063f9d9b KeyFactory and KeyPairGenerator for ElGamal.
Stub out decoding key constructors.
2016-01-23 17:12:47 +00:00
zzz
e276febf0a private, final 2016-01-23 14:57:42 +00:00
zzz
592f2449d2 ElGamal classes, from Bouncy Castle 1.53, for I2PProvider.
License: BSD
Encoding/decoding/sigs: todo.
2016-01-23 14:51:52 +00:00
d08f29d7d6 geoip updates (05-Jan-2016) 2016-01-23 08:30:57 +00:00
4342aa6bce Fix erroneous test for equality 2016-01-23 08:28:02 +00:00
zzz
207bfb44f2 Add identicons to sybil page. 2016-01-22 22:53:16 +00:00
zzz
726adaf2bb Add identicons to i2ptunnel address helper conflict page.
Clean up text on the conflict page for readability.
2016-01-22 22:26:46 +00:00
zzz
d16db7b56c Display qr and id images on susidns details page
Don't trim whitespace, messes up title
2016-01-22 20:41:56 +00:00
zzz
c4ea50f06d fix mtn-ignore skipping build.xml files 2016-01-22 20:12:40 +00:00
zzz
5004626d7a Add top-level imagegen to build, javadoc, and licenses
Fix zxing build from top
2016-01-22 20:11:58 +00:00
zzz
48d32943b2 Add random art class, translated to Java from randomart.c in gnutls,
which is BSD licensed.
Heavily modified to add UTF box chars, colors, and HTML options.
Work in progress.
Add random art servlet to the imagegen webapp.
Heavily modified from the example in the identicon package,
which is MIT licensed.
2016-01-22 19:32:13 +00:00
zzz
49d8235661 New imagegen webapp, including
servlets for identicon and qr images.
Heavily modified from the example in the identicon package,
which is MIT licensed.
2016-01-22 19:25:33 +00:00
zzz
21e2600c40 zxing: Add build.xml and i2p notes 2016-01-22 19:04:49 +00:00
zzz
bdd6066fc3 Partial zxing package
This is a small portion of zxing, including only what's required
to generate QR codes.
Pulled from https://github.com/zxing/zxing on Jan. 4, 2016,
rev 4e3abafe3008e02695f894eccf05f8257fca4ee9 dated Dec. 9, 2015.
Contains only the files we need.
Unmodified.
License: Apache 2.0
2016-01-22 19:03:06 +00:00
zzz
04d7c9dfb4 identicon:
Add build.xml
Add i2p notes
Remove commons-logging dependency
2016-01-22 18:55:46 +00:00
zzz
cc21de3fee Partial Identicon package
Pulled from https://github.com/PauloMigAlmeida/identicon on Jan. 4, 2016,
rev 96902d3c7c9733d9da4cce9c5ed424557fc2ec3c dated April 10, 2015.
Contains only the files we need.
Unmodified, changes to follow.
License: MIT
2016-01-22 18:52:47 +00:00
zzz
cf3accb181 Random: Reduce number of PRNG buffers 2016-01-22 16:43:29 +00:00
zzz
a4f75d7b32 Random: Don't bother trying to seed from /dev/urandom on Windows 2016-01-22 16:04:43 +00:00
zzz
9cdd0fc829 Crypto: Fix privkey encoding to follow PKCS8,
ignore example in josefsson draft,
required for keytool to work.
Fix pubkey decode typo.
(ticket #1723)
2016-01-21 21:38:26 +00:00
zzz
f29ed21090 Crypto: Add OID aliases to provider,
required for keytool to work
(ticket #1723)
not working yet, need to fix privkey encoding
2016-01-21 19:06:54 +00:00
zzz
cd5db63286 Crypto: Add I2PProvider,
pass provider args to keytool,
add EdDSA keygen support
(ticket #1723)
not working yet, need sig support
2016-01-21 15:36:54 +00:00
zzz
5074002327 Crypto: Implement EdDSA key decoding
following the draft at
https://tools.ietf.org/html/draft-josefsson-pkix-eddsa-04
(ticket #1723)
2016-01-21 14:43:23 +00:00
zzz
9067dedcc2 tweak family key explanatory text and file name 2016-01-21 13:34:45 +00:00
zzz
179a4a2e56 Crypto: Implement EdDSA key getEncoded()
following the draft at
https://tools.ietf.org/html/draft-josefsson-pkix-eddsa-04
(ticket #1723)
2016-01-21 13:27:33 +00:00
zzz
8243b6922d Jetty: Add gzip filter to eepsite Jetty (new installs only) 2016-01-20 22:40:11 +00:00
zzz
ec27458393 SusiDNS: Replace image (ticket #1301) 2016-01-20 22:37:32 +00:00
zzz
2007e881e5 Crypto: New utils to support private key import/export
Console: New /configfamily, /exportfamily
2016-01-20 21:05:26 +00:00
zzz
d82591ae70 add icon to button 2016-01-20 20:42:01 +00:00
zzz
9d5e8dd785 make network ID configurable for testing 2016-01-20 16:44:40 +00:00
zzz
07e85e095d propagate from branch 'i2p.i2p' (head 45c85fec6458cd0d1a6a6fa2d34b10ee2b9f215c)
to branch 'i2p.i2p.zzz.test2' (head 3ee9968e19867bebb063a98da1184ff4426626cd)
2016-01-19 01:13:09 +00:00
zzz
9bb1a00325 ArraySet implementation 2016-01-19 01:12:51 +00:00
zzz
f0dc76983a BuildHandler: Disable removal of tunnel on next-hop timeout,
as it isn't reliable
cleanup and log tweaks
2016-01-17 19:22:55 +00:00
zzz
71c4505617 add locale note 2016-01-16 17:37:39 +00:00
zzz
acfb0a1e3b add opendocument mime types
source: https://en.wikipedia.org/wiki/OpenDocument_technical_specification
2016-01-15 16:14:06 +00:00
zzz
ff66d9db67 Fix mime type for svg in themes directory 2016-01-15 15:24:40 +00:00
zzz
6edd2b97b9 add zh_TW translation 2016-01-15 00:04:04 +00:00
zzz
cdfd4ca2f4 Move CachedIteratorArrayList from core to router 2016-01-14 13:54:53 +00:00
zzz
308c9da384 remove unused stats 2016-01-14 13:51:42 +00:00
zzz
ca00ea7a76 Fortuna: Add getByte() method 2016-01-13 16:11:39 +00:00
zzz
e2b7f504b0 add i2p-dev family cert 2016-01-13 16:03:56 +00:00
zzz
20547238fc javadoc 2016-01-13 16:03:14 +00:00
zzz
9caddc166b SSU: Don't early-disconnect if we are introducing 2016-01-13 16:02:13 +00:00
zzz
c546b283fd BuildHandler: More early-disconnect cases 2016-01-13 16:01:13 +00:00
zzz
c8197b8181 Tunnels: Fix build request Bloom filter (ticket #1746)
Change from 60s DHS to 60m DBF
Use reply key as filter key, not first part of
encrypted data, to match the specs and hopefully reduce dups
BuildMessageProcessor cleanups
log and stat tweaks
remove deprecated methods
remove some timing measurements
javadocs
2016-01-10 21:22:22 +00:00
zzz
35739289cd Console: Fixed summary bar overflow (ticket #1739) 2016-01-07 14:16:14 +00:00
zzz
68d8c6e556 NetDB: Don't query floodfills if they are too old to
support sig types or encrypted replies (ticket #1742)
2016-01-06 19:38:26 +00:00
zzz
f85d03085b Build: Remove big geoip files from release again 2016-01-06 17:57:06 +00:00
zzz
6917203530 DataHelper: Optimize checks in storeProps() 2016-01-06 17:54:05 +00:00
zzz
144f54eb8c Console: Properly register listen hosts with PortMapper
I2PTunnel: Fixup console links in error pages if console is
           on a non-standard host or port, or on https
PortMapper: Add method to convert wildcard host to actual host
2016-01-06 17:50:06 +00:00
zzz
46af643ca8 Change default source logging from b64 to b32.
To change back to b64, add the following to the RequestLogImpl
section of jetty.xml:
    <Set name="b64">true</Set>
2016-01-06 17:45:35 +00:00
zzz
ee1852f3a4 initialization cleanup and finals 2016-01-03 17:22:03 +00:00
zzz
a141d50902 Refactor Session classes out of SAMv3Handler to their own files 2016-01-03 16:56:44 +00:00
zzz
ab5d4b59fd Cleanup to combine checking and removing a property 2016-01-03 15:48:43 +00:00
zzz
3dbc8408f1 propagate from branch 'i2p.i2p' (head 833ef88c125ba48423bc704701303ba55858336f)
to branch 'i2p.i2p.zzz.sam' (head 7814184e3e7cb4b819a0d7b4ceeda5befbe536c3)
2016-01-03 13:51:03 +00:00
zzz
08a9a01bfb bump to 3.3 2016-01-03 13:50:37 +00:00
0bfe45bebe Start of buildscript for generating updates 2015-12-29 21:18:53 +00:00
3c383ca874 Update router and Java versions in build.gradle after prop 2015-12-29 21:16:42 +00:00
fccd0dad78 propagate from branch 'i2p.i2p' (head 833ef88c125ba48423bc704701303ba55858336f)
to branch 'i2p.i2p.str4d.test2' (head 6f21d8d6c6d4cca5b6442f8effb56841e81a07b6)
2015-12-29 21:08:36 +00:00
dev
3e4d77452a Added support an missing binary for AMD K10 arch. 2015-12-27 13:22:34 +00:00
zzz
2698076fb6 distrust Comodo UTN cert 2015-12-23 11:55:44 +00:00
zzz
2f09389ddd netdb minor cleanups 2015-12-23 10:59:53 +00:00
zzz
8da3257856 cache new family options 2015-12-23 10:50:46 +00:00
zzz
a4546e1045 SSU: Hand all messages pending after establishment to the
outbound queue at once, for efficiency.
This allows more aggressive combining of fragments in packets,
and ensures the priority queue works as designed.
Don't sort outbound messages by size, keep priority order instead.
Log tweaks
2015-12-21 17:19:40 +00:00
zzz
3bce2f5d46 SSU: Fix sent msg count, broken in last checkin
Increase sent threshold from 1 to 2 for mayDisconnect(),
because we send both our RI and a DeliveryStatusMessage
Log tweak
2015-12-21 14:15:40 +00:00
074c5aa16c merge of '22cebc21c21e3a101e03165f26a5e9fddc3648da'
and 'e210f94f3d17359b39a6b24f2a5e1221a86abfd0'
2015-12-20 21:07:16 +00:00
zzz
879b70617b Family: Discard old key property so the separator change will happen 2015-12-20 15:24:35 +00:00
zzz
cad0ab17dc SSU: Fix received msg count, broken in last checkin 2015-12-20 15:23:00 +00:00
zzz
4250f78ddf javadoc fix, bump 2015-12-20 14:33:24 +00:00
zzz
cc4bf8ea16 CertUtil: Add methods to export private keys
Unused so far, to be used for family key
2015-12-20 14:28:44 +00:00
zzz
05b40a220d Sybil tool tweaks 2015-12-20 14:23:59 +00:00
zzz
64f5c662fa synch 2015-12-20 14:20:28 +00:00
zzz
e9146ebc77 Family: change separator from ';' to ':' 2015-12-20 14:17:42 +00:00
zzz
d5990cc0f2 Transports: Add mayDisconnect() advisory which says we
don't expect more messages on this connection; use for BuildHandler
Rename some dest arguments to peer for clarity
UDP: Display messages, not packets, sent/rcvd on /peers
Don't count duplicates in received message count
Count sent messages when sent, not acked
Move some PeerState counters from longs to ints to save space
2015-12-20 14:15:48 +00:00
b6bd497e52 Replaces instances of getBytes() in apps classes 2015-12-20 02:11:42 +00:00
2246e21340 Replaces instances of getBytes() in router classes 2015-12-20 01:26:33 +00:00
c60f3970d1 Replaces instances of getBytes() in core classes 2015-12-20 01:18:38 +00:00
zzz
0b94d866f0 BuildHandler: Improve handling of null 'from' value
when not IBGW (ticket #1738)
2015-12-19 22:17:33 +00:00
zzz
fa6643c5a2 Sybil tool: Fix NPE
Add old version points
Add lookup fail rate points
2015-12-19 22:06:00 +00:00
zzz
d0eaf4d899 BuildHandler: Fix NPE (ticket #1738) 2015-12-18 15:44:11 +00:00
zzz
c59496f30f Console: Consolidate "checked" code 2015-12-18 14:43:31 +00:00
zzz
71d4b5f49f Broadwell/Skylake tweak 2015-12-16 20:52:14 +00:00
zzz
31efa7c980 Recognize Skylake
Do the same checks for Broadwell and Skylake that we do
for Haswell, and check ADX as well, which will be used
in GMP 6.1.
Javadocs
2015-12-16 20:32:54 +00:00
zzz
89e5e1d308 Fix class for nativeJcpuidVersion()
Add output for nativeJcpuidVersion()
Change CPUIDCPUInfo back to package private
More @since fixes
2015-12-16 15:55:39 +00:00
zzz
1e3e02d1f0 CPUID: Clear ECX register to ensure it will work with EAX=7
Tested on linux only
Add nativeJcpuidVersion()
Only call getCPUVendorID() once in getInfo()
Change all @since to 0.9.25 in hopes it will come true
Tab removal
Javadoc tweaks
2015-12-16 15:02:03 +00:00
zzz
8226e92973 Profiles: Don't use same family in a tunnel
Reduce IPv6 mask from 8 to 6
2015-12-16 14:37:40 +00:00
zzz
af26f73f99 Sybil tool tweaks 2015-12-16 14:34:05 +00:00
dev
1f4a266c22 Added more checks to Haswell identification.. 2015-12-15 20:34:28 +00:00
dev
93fbdcd443 Made CPUIDCPUInfo non-abstract to support looking for CPU features during CPU identification. 2015-12-15 17:19:37 +00:00
dev
0e6e90baf0 Cleaned up BMI1/BMI2/AVX2/FMA3/MOVBE/ABM support. 2015-12-15 05:29:58 +00:00
dev
2c8179f057 Added hasBMI2() feature detection and use it to list some Celeron Haswell CPUs as non-Haswell CPUs. 2015-12-14 18:54:58 +00:00
zzz
95946606ef log tweak, bump 2015-12-13 17:35:00 +00:00
zzz
3c5f9d0bc3 RouterInfo: Optimize writing to avoid extra copy;
eliminate caching previously enabled for routers with high memory limits
Log tweak on sig verify fail
DataHelper.writeLong() to write(byte) conversion
DatabaseEntry: Remove deprecated, unused setRoutingKey()
2015-12-13 16:48:04 +00:00
zzz
2155347e4f another writeLong 2015-12-13 16:41:35 +00:00
zzz
db86850d15 Addresses: Catch a rare (Windows only? IPv6 only?) error
when enumerating network interfaces
2015-12-13 16:40:42 +00:00
zzz
97ae1e5034 Cleanup: Don't use DataHelper.writeLong() for a single byte 2015-12-13 16:38:06 +00:00
zzz
fee755bdb7 Show family cert on /certs; fix HTML 2015-12-13 02:42:12 +00:00
zzz
4fe24790fd RouterInfo: Log the full RI, not the hash of the data
(which is useless) on signature verification fail,
in an attempt to find the culprit
2015-12-12 23:14:39 +00:00
zzz
fe3642edd4 CPUID: Multiple bug fixes:
- Add support for extended feature registers EBX/ECX
 - No such thing as EBX for 0x80000001 call; remove getExtendedEBXCPUFlags() method,
   replaced with getExtendedEBXFeatureFlags()
 - Check for support of 6 required Core i3/i5/i7 instructions to enable Haswell,
   since GMP Haswell requires Core i3/i5/i7 support.
   There are Pentium/Celeron Haswells that do not support these instructions.
 - Fix hasAVX2(), hasAVX512(), and hasADX() using wrong register
 - Fix hasAVX512() checking wrong bit
 - Define hasAVX512() as supporting AVX-512 Foundation, not the "full"
   instruction set as previously specified in the javadocs.
 - hasAVX2(), hasAVX512(), and hasADX() need not check hasAVX() first
 - Add missing hasADX() to CPUInfo interface
Also:
 - More diagnostic output in CPUID.main()
 - More javadocs
2015-12-12 22:53:33 +00:00
zzz
68ecd82755 minor cleanup 2015-12-12 14:55:08 +00:00
zzz
2c1b9c2d37 Javadoc fixes
Better OCMOSJ Javadocs
2015-12-12 14:31:52 +00:00
zzz
cddc1b362e Another deadlock fix: remove sync in Router.isHidden() 2015-12-12 13:21:29 +00:00
zzz
89bdbedc0f Sybil: Add start of profile analysis, use for first-heard-about time
Increase pair-distance threat points
2015-12-12 12:43:22 +00:00
zzz
3a4e82f025 Family: Publish pubkey in RI; use it to verify if no cert available 2015-12-12 12:14:51 +00:00
zzz
c8aca62d03 Crypto: Blacklist Verisign G1 roots
match by CN or OU
2015-12-11 22:36:40 +00:00
zzz
8b9bcbc777 SSU: Fix outbound IPv6 errors on Windows without a real v6 address
when explict host is set. Validate addresses before confirming that
we have an IPv6 address. Possibly related to ticket #1538.
javadocs
2015-12-11 17:14:45 +00:00
zzz
00d6a49653 Router: Don't let context clock shifts affect calculated uptime 2015-12-11 17:11:16 +00:00
zzz
ea9c4a1957 Router, naming, I2CP: Increase lookup cache max sizes (except on Android),
reduce max lookup depth, and increase non-floodfill profile bonus
to attempt to reduce load on floodfills
2015-12-11 15:40:11 +00:00
zzz
7680ecbdc4 Transport: More deadlock prevention (ticket #1722) 2015-12-11 15:28:39 +00:00
zzz
00a5d19534 Limit wait for NTP to 45 seconds (ticket #1725) 2015-12-11 15:16:16 +00:00
zzz
2d1ac7b266 Wrapper: Listen for Windows Service shutdown events and shutdown router hard.
As a result, event log will now show "shutdown" instead of "crashed".
2015-12-11 15:13:40 +00:00
zzz
2852383e4e Router: Fix family verification after testing, partially hook into netdb store()
Always use our pubkey to verify our family
Rework caching strategy
2015-12-11 15:10:08 +00:00
zzz
393b593785 Logs: Windows line ending fixes for event log and duplicate message in router log 2015-12-11 15:06:22 +00:00
zzz
32df925fa6 More Sybil tool tweaks 2015-12-10 13:09:33 +00:00
zzz
9b2bbe03ee dont put HTML in Android router logs 2015-12-10 13:07:40 +00:00
zzz
7e872088d0 Router:
- Change addCapabilities() to getCapabilities()
  - Add netdb family sign/verify utility (ticket #1510)
    (verify not yet used)
RouterInfo:
  - Remove addCapability() and delCapability()
StatPublisher:
  - Remove Service interface, not required
  - Consolidate getCapabilities() and network ID here
  - Add family signatures
  - Remove unused coreVersion and stat_uptime (as of 0.9.24)
2015-12-10 13:03:49 +00:00
77a6db1cab Updated history after prop 2015-12-08 05:32:27 +00:00
bb56a11bda propagate from branch 'i2p.i2p.unittests' (head 53586f73fb813f519cdb6a1f7b1b40efec2e35dc)
to branch 'i2p.i2p' (head 628a2c591ca44095e2f93acd026046d4512cf692)
2015-12-08 05:27:03 +00:00
zzz
7ea2be387e Better exception message, so it's in the router log 2015-12-08 02:13:31 +00:00
zzz
81cb62fda7 Sybil tool tweaks and enhancements 2015-12-08 02:09:10 +00:00
zzz
8b42896cc6 Crypto: Consolidate certificate import methods 2015-12-08 02:07:38 +00:00
dev
5df3f404f8 Fixed support for Atom CPUs. 2015-12-08 00:36:49 +00:00
9ba5ad7bb1 Remove 'l' from example apparmor profile 2015-12-06 17:47:22 +00:00
f7ede4bf6f Update timestamp 2015-12-06 17:45:31 +00:00
64f2318720 update debian changelog: new pkg uploaded 2015-12-06 17:43:27 +00:00
34202e6c4e debian: refresh patch 2015-12-06 17:43:07 +00:00
zzz
af8b8ecddd Startup: Increase rekey probability again 2015-12-06 17:35:31 +00:00
zzz
0558bc41a3 Add wrapper deadlock detection to default wrapper.config 2015-12-06 17:33:44 +00:00
zzz
d45dc8d0f3 NetDb: Stub out a "family" indicator (ticket #1510) 2015-12-06 16:52:27 +00:00
zzz
b6e8431bce Console: Don't force profile creation when loading floodfill tab
Don't show negative times
Sybil tool: tweaks
TunnelRenderer: minor cleanup
2015-12-06 16:47:34 +00:00
zzz
826bb54984 minor cleanup 2015-12-06 16:30:46 +00:00
zzz
fdc160cf1d Utils: Move new getSystemTimeZone() from DataHelper to SystemVersion,
which is a better place for it.
2015-12-06 16:28:14 +00:00
5a7fc3f7f4 Update debian changelog 2015-12-06 14:16:43 +00:00
a35ecda992 Debian: java6 can no longer fulfill the requirements 2015-12-06 03:08:23 +00:00
89e60fa8c5 sync debian/changelog 2015-12-06 03:05:42 +00:00
6e2e4ca6d8 allow writing to /tmp/imageio*, needed on some systems to display graphs 2015-12-06 03:03:01 +00:00
eaae06028e remove 'l' from debian apparmor profiles 2015-12-06 03:01:31 +00:00
zzz
997ef73d50 Sybil tool: Test tomorrow's routing keys also
Add netdb stats output
Add avg. ff distance output
Increase penalty for proximity to our keys
Reduce number of RIs output
2015-12-05 13:50:00 +00:00
zzz
ff4d575196 Profiles:
- Change doubles to floats to save memory
  - Move fields to top
Sybil tool: Tweaks
2015-12-04 21:25:25 +00:00
zzz
68c312139e Console: Fix NPE on /profiles
Profiles:
  - Fix first heard about to be earliest, undeprecate
  - Fixup first heard about at profile readin
  - Persist good/bad lookup/store DBHistory stats added in 0.7.8
  - Remove unused DBHistory methods and fields to save memory
  - Change bonus longs to ints to save memory
  - Extend profile expiration time from 3 days to 15
  - Consolidate getLong()
  - Synch fixes
Sybil tool: Tweaks and enhancements
2015-12-04 20:35:38 +00:00
zzz
cab69f6583 NetDb: Fix deadlock (ticket #1722) 2015-12-03 18:07:29 +00:00
zzz
5bd0041f8b Console: Add experimental Sybil analysis tool
requires routerconsole.advanced=true
2015-12-03 17:44:15 +00:00
53ae4125e5 Add time-sync to the systemd unit created by i2prouter install (#1578) 2015-12-02 19:51:00 +00:00
zzz
b53fe37a30 SAM:
- Don't map keys to upper case in parser, corrupts I2CP options
  - Register SSL and UDP ports with PortMapper
2015-12-01 20:14:09 +00:00
zzz
348805f012 i2psnark:
- Consolidate default tunnel length definition
  - Increase max peers and uploaders per torrent
  - Increase default max total uploaders
  - Increase max peers sent and returned in DHT
2015-12-01 20:12:31 +00:00
zzz
72527f4d33 SSU: Allow IP and port in relay request if it matches the source 2015-12-01 20:11:07 +00:00
zzz
dfbbe3e928 Transport: Interrupt DH refiller thread when pool is empty,
to speed refilling and reduce pumper stalls
Reduces empties by 10x
2015-12-01 20:09:22 +00:00
zzz
f778c23f0b SAM: Timeout for first command after HELLO
Better removal of command and opcode from properties
Send error message if no NAME key in LOOKUP
2015-11-30 21:57:55 +00:00
zzz
3c8cc16273 SAM: Use the Destination cache
Comment out some unused methods
SAM client: Add SSL forward support
Handle header line in forwarded stream
Name some threads, number some others
2015-11-30 20:20:55 +00:00
1c1511267d after extended downtime, disabling https://i2pseed.zarrenspry.info/ as a reseed host 2015-11-30 19:08:50 +00:00
zzz
55f729986b properly set protocol value 2015-11-29 16:23:22 +00:00
zzz
23df322056 i2ptunnel:
Change preferred sig type to Ed
   Set permissions on backup tunnel keys file
2015-11-29 15:11:07 +00:00
zzz
d5717ca12d javadoc 2015-11-29 14:52:08 +00:00
zzz
74fac4b1d8 i2psnark: BEP 21 support (upload_only) 2015-11-29 00:19:48 +00:00
zzz
a5a702744f Parser: Allow '=' in values 2015-11-28 23:21:20 +00:00
zzz
1db7613519 one more UTF8 fix 2015-11-28 22:51:00 +00:00
zzz
68b4ad2238 declare 3.2 complete, bump -5 2015-11-28 21:45:36 +00:00
zzz
513e1b9ff8 SAM: Handle UTF-8 in ReadLine (ticket #1488)
Allow forever timeout in ReadLine
Use ReadLine in v1 and v3 handlers
Fix send client closing too fast in v1 stream mode
UTF-8 test and fixes in clients
2015-11-28 21:25:44 +00:00
zzz
dffd441304 SAM: Allow backslash escapes in parser (tickets #1325, #1488)
remove unneeded escape char in other parsers
2015-11-28 18:53:40 +00:00
zzz
87fa1cb1ac SAM: Fix parser to allow spaces in quoted values (tickets #1325, #1488)
Map keys to upper case
Catch some other parse errors
2015-11-28 18:28:15 +00:00
zzz
38c8e017a8 i2psnark: Increase max pieces to 32K 2015-11-28 13:01:00 +00:00
zzz
7b83e23269 HTML fix 2015-11-28 12:56:57 +00:00
zzz
415b51bc49 i2psnark: Fix NPE caused by URL-to-URI conversion in -2 (ticket #1715)
Fix some other similar places
2015-11-28 12:54:41 +00:00
zzz
a03339b120 SAM:
- Use DataHelper to load/store sam.keys
 - Move sam.keys file to config dir (ticket #677)
2015-11-27 22:39:19 +00:00
zzz
b1668bbc11 Fixup after prop, history, bump -3 2015-11-27 21:10:10 +00:00
zzz
9ce8fced02 propagate from branch 'i2p.i2p.zzz.sam' (head b328f0edb961263d7606ea964ecb3f7c319ca1cf)
to branch 'i2p.i2p' (head 7b4c0525be182722ef2cc7b564691f27d997da3b)
2015-11-27 20:58:18 +00:00
zzz
01d23713af test javadoc 2015-11-27 20:49:34 +00:00
zzz
2849aec3c2 Add v3 FORWARD support to sink 2015-11-27 20:34:11 +00:00
zzz
cb979fb685 Allow multiple simultaneous ACCEPT sockets.
Add support for parallel accepts in sink client
2015-11-27 19:39:32 +00:00
zzz
bafec18093 stub out send-with-options 2015-11-27 18:51:59 +00:00
zzz
5adbf9050a Forwarded raw datagrams will include a header line if HEADER=true
Add support for raw with headers to sink client
2015-11-27 18:23:06 +00:00
zzz
3a25a91c33 log tweak 2015-11-27 17:36:42 +00:00
zzz
0519ea476e Add v3 datagram and raw to sink 2015-11-27 17:34:36 +00:00
zzz
48d7f4969c Fix PROTOCOL parsing
Add PROTOCOL test for raw sessions to send client
2015-11-27 16:20:49 +00:00
zzz
ed1567e9f7 short test instructions 2015-11-27 16:05:46 +00:00
zzz
9f625a03fb Fix protocol for V3 datagram and raw sessions
Add V3 datagram and raw sessions to send client
minor cleanups
2015-11-27 15:59:42 +00:00
zzz
e77c5bd05c add session options 2015-11-27 13:44:07 +00:00
zzz
31ace20256 auth and ssl support 2015-11-27 00:46:45 +00:00
zzz
4291450f37 make method private
fix timeout message
add client sink pinger
2015-11-26 23:30:18 +00:00
zzz
6373c8a9ed v1 datagram and raw support for sink 2015-11-26 21:39:18 +00:00
zzz
bd048b04cc Fix ReadLine bug that buffered and lost input;
can't handle UTF-8 for now.
Start support of datagrams and raw in the client
2015-11-26 20:55:10 +00:00
zzz
b9ab933550 client getopt 2015-11-26 18:31:17 +00:00
zzz
626f5415c7 add FROM_PORT and TO_PORT to client 2015-11-26 17:00:32 +00:00
zzz
9367aca50a Notes on STREAM STATUS messages when SILENT=true
Fix one message for STREAM CONNECT that wasn't honoring SILENT setting
PING failure sends a SESSION STATUS message
Implement ping/pong in client
Delay at end of client send so data gets through in v3 mode
log tweaks
Exception catch tweaks
2015-11-26 16:40:45 +00:00
zzz
e5f186f61a fix stopping of reader 2015-11-26 15:02:47 +00:00
zzz
807e5bf966 v3 sink working 2015-11-26 14:14:17 +00:00
zzz
8d7edaae61 Block DSDTestProvider CA cert 2015-11-26 12:54:37 +00:00
zzz
868e5e988c More v3 support
Convert IDs from ints to Strings
Wait for STREAM STATUS
Open 2nd socket for sender
v3 sender working
2015-11-25 22:59:41 +00:00
zzz
612e01cbbf More SAM client cleanup and fixes, beginning of v3 support
v3 unfinished, does not work yet
2015-11-25 20:46:21 +00:00
zzz
13fd613bb8 more client test enhancements 2015-11-25 17:27:37 +00:00
zzz
6b67a70bbd update @since 2015-11-25 16:54:44 +00:00
zzz
6934599eed log tweak 2015-11-25 16:48:44 +00:00
zzz
730dea377a Streaming: Fix recognition of PoisonPacket in ConnectionHandler 2015-11-25 16:48:25 +00:00
zzz
5d07294cc6 require Java 7 in installer 2015-11-25 15:12:54 +00:00
zzz
6081856dd1 client demo cleanup 2015-11-25 14:48:43 +00:00
zzz
92bb2dbda7 Block CNNIC roots also.
Only log once.
2015-11-24 17:18:26 +00:00
zzz
5c4189abdf KeyStoreUtil: Implement system cert blacklist
Fix creation of empty keystore
test enhancements
2015-11-24 15:23:13 +00:00
zzz
2400a77e25 Remove unused USE_FAKE_CRYPTO 2015-11-23 19:49:56 +00:00
zzz
110a0a1b7a Remove singleton SAMv3DatagramServer; hang off of SAMBridge
SAMv3DatagramSession whitespace fixes
@since change to 0.9.24
2015-11-23 18:19:17 +00:00
zzz
302ec7767a Console: Don't show null port in error message (ticket #1712)
History for prop, -2
2015-11-22 16:44:26 +00:00
zzz
1215a70aab propagate from branch 'i2p.i2p.zzz.test2' (head 8fa44268a1dd2b7baaf01806e6994281ab031870)
to branch 'i2p.i2p' (head 44afdaa15ce8a95c112c7d58a5908f401c1a0145)
2015-11-22 16:00:16 +00:00
zzz
ce96234fdb SSU ext. options:
- don't ask for intro if he is indirect
  - ask for intro if our state is unknown
  - debug logging
  - change min to 0.9.23 for testing
2015-11-21 19:45:54 +00:00
zzz
9a9832cb77 Console: Fix escaping of plugin description on /configclients (ticket #1711) 2015-11-21 17:39:10 +00:00
zzz
d30c1ec319 EepGet: Fixes after URL to URI conversion 2015-11-21 17:37:56 +00:00
zzz
7649132259 OCMOSJ: One more place attempting to update our own profile 2015-11-21 14:33:22 +00:00
9efb3c8751 Blockquote formatting part 3 2015-11-21 02:10:12 +00:00
07c9ddb38f Blockquote formatting part 2 2015-11-21 01:05:07 +00:00
be498eaab8 Blockquote formatting 2015-11-20 23:48:55 +00:00
9e8597aa05 Update checklist 2015-11-20 23:24:10 +00:00
5b4a4f6c84 Comment out update.postman.i2p because of lost key 2015-11-20 10:53:01 +00:00
zzz
a468b3e8b4 Build: Remove commons-logging classes from commons-logging.jar (ticket #1679) 2015-11-19 18:56:49 +00:00
zzz
c7d68c2a6c Require Java 7 for SAM
separate option javac.compilerargs7 for Java 7
2015-11-19 17:48:56 +00:00
zzz
16549aa49a Update text docs for Java 7 2015-11-19 17:11:26 +00:00
zzz
b59a8027bb Update: Disable sud/su2 updates (ticket #1709)
Add constraints for no Pack200 support and no certs
2015-11-19 15:40:05 +00:00
zzz
8d9d3fcf95 SSU: Add option to disable extended options
Fix max payload type
2015-11-19 14:15:28 +00:00
1a7bf2a0c3 Rewrite release checklist in Markdown 2015-11-19 10:21:07 +00:00
bb8e6127d3 Add test plan to release checklist 2015-11-19 07:52:55 +00:00
13987b7d50 Release checklist tweaks 2015-11-19 07:52:30 +00:00
dfb8830802 0.9.23 2015-11-19 00:31:15 +00:00
9483e095d9 build.xml: Stop building SUD and SU2 update files in "ant release" (ticket #1709) 2015-11-19 00:30:22 +00:00
zzz
46f42432a2 BOB: change default tunnel length to 3 (ticket #1707) 2015-11-18 22:05:47 +00:00
zzz
599989deba comment re: SSU timestamps 2015-11-18 20:04:45 +00:00
zzz
1e89fac192 SSU: Add support for requesting a relay tag via
Session Request extended options (ticket #1465)
2015-11-18 18:12:23 +00:00
zzz
4c72c08d65 i2psnark: Add skipped length on details page
reorder some logging
volatile
2015-11-18 13:43:14 +00:00
zzz
679fe9b044 more release checks 2015-11-17 14:51:32 +00:00
zzz
6fb0692d57 Centralize time zone code in DataHelper
NewsManager should be a ClientApp, not a RouterApp
2015-11-16 20:04:15 +00:00
zzz
38a1a96db2 revert JobTiming being a clock shift listener, not needed 2015-11-16 19:57:38 +00:00
bbaa6f7f87 Tweaks after review 2015-11-16 19:32:00 +00:00
046ef07efd -29-rc 2015-11-15 19:12:53 +00:00
fc7939b404 Translation updates 2015-11-15 19:12:05 +00:00
dd6a3f14ec geoip updates based on Maxmind GeoLite Country database from 2015-11-03. 2015-11-15 19:07:08 +00:00
zzz
99c9b30e49 another installer build fix 2015-11-14 13:22:35 +00:00
zzz
f5ae9c23fe fix installer tools compile 2015-11-14 02:50:08 +00:00
zzz
23cb4ca764 ditto 2015-11-14 02:07:28 +00:00
zzz
231040ddd8 Profiles: Don't allow creation of our own profile
TunnelCreatorConfig:
 - locking
 - comment out unused code
 - don't set bandwidth stats in profile for ourselves
TunnelDispatcher:
 - don't set tunnel stats in profile for ourselves
BuildHandler, TunnelPool: Minor optimizations
2015-11-14 02:07:01 +00:00
7a75e2e662 up version for interrupt() 2015-11-13 23:32:55 +00:00
e6644236ed Interrupt when cancelling events 2015-11-13 23:28:02 +00:00
zzz
8a1f02aa89 Console: Fix lifetime participating bandwidth display (ticket #1706)
Add locking to HopConfig counts
Split participatingMessageCount stat into two stats,
participatingMessageCountAvgPerTunnel for throttle (same as old participatingMessagecount)
and participatingMessageCount for console (straight total)
Fix calculation of stat for throttle by adjusting for new
stat coalesce time (50 not 20 seconds)
2015-11-13 21:18:21 +00:00
zzz
ded249dd3d add systray dependency tracking to build 2015-11-12 21:00:46 +00:00
zzz
a028bba997 Console: Fix filtering and escaping on /configclients
Fix autostart setting on new client, was inverted
2015-11-12 20:39:58 +00:00
zzz
c609781927 fix compile 2015-11-12 20:02:11 +00:00
zzz
51c5da3f72 lint: don't catch Exception, catch RuntimeException or checked exception.
omits SAM, BOB, reflection, commented-out code, and a few other places
2015-11-12 18:49:13 +00:00
zzz
37a4fcb469 i2psnark: Minor details page reformatting 2015-11-12 16:02:01 +00:00
e93e76a362 Remove netdb.rows.io and its associated certs
The DNS record for the subdomain was removed about a month ago.
2015-11-11 16:36:32 +00:00
zzz
c1afbd37d7 SSU: Version check to send extended options 2015-11-11 13:48:38 +00:00
zzz
3fa2fb4c8d Timers: State fix 4th try (tickets #1694, #1705)
log tweaks
2015-11-11 13:38:24 +00:00
zzz
ffddf415c0 snark add .cue mime type 2015-11-11 13:23:04 +00:00
zzz
03a99adaab snark increase max pieces 2015-11-11 13:22:35 +00:00
zzz
48f294024c snark log tweak 2015-11-11 13:20:42 +00:00
123b4ca460 Fix locking on _nextExpire field 2015-11-09 17:48:19 +00:00
c944fcce96 log if we can't cancel the future 2015-11-09 17:44:54 +00:00
zzz
1451dc6ece More: Don't use DataHelper.readLong() for 1-byte reads, for efficiency 2015-11-08 20:43:42 +00:00
zzz
1aed266f70 Consolidate increments of offset, for efficiency 2015-11-08 19:17:32 +00:00
zzz
e120a8a3a3 Don't use DataHelper.readLong() for 1-byte reads, for efficiency 2015-11-08 18:49:05 +00:00
zzz
a3e16614ae SSU: Prep for extended options 2015-11-08 18:30:51 +00:00
zzz
bdde11c0ef Fix NPE from URL->URI conversion
new URL(null) throws MUE
new URI(null) throws NPE
2015-11-08 18:14:42 +00:00
zzz
63ddf11799 use float for efficiency 2015-11-08 18:14:19 +00:00
zzz
a3b55ccdea cleanup 2015-11-08 16:43:49 +00:00
zzz
8e77188560 Replace URL with URI where possible
URL bad for anon and has traps like equals()
2015-11-07 22:38:05 +00:00
zzz
1e5a35c7f8 Use new split() 2015-11-07 17:45:48 +00:00
zzz
83b923151c propagate from branch 'i2p.i2p' (head e2aa08a93036bcf0d846b8ff67e9cb74de3e4d0f)
to branch 'i2p.i2p.zzz.test2' (head b3d23ed369ba339b9a71dfeb205110458df9ec0d)
2015-11-07 17:08:39 +00:00
zzz
e4ebb9a77d Utils: Add caching string split() 2015-11-07 17:08:27 +00:00
zzz
077c4a073f replaceAll -> replace 2015-11-07 12:47:31 +00:00
zzz
f5bf4ec8ea escape referer 2015-11-07 12:06:56 +00:00
c901010d96 Make parameters of NegativeLookupCache configurable 2015-11-07 02:56:59 +00:00
9f0f1f5ec8 Make more ISJ parameters configurable 2015-11-07 02:46:33 +00:00
7175b1cdb9 Make the search limit configurable 2015-11-07 02:22:17 +00:00
ca4642e0f0 Reduce the memory footprint of Rate objects by changing longs to ints and doubles to floats 2015-11-06 20:19:43 +00:00
6bb156a436 Do not expose ISJ lock 2015-11-06 19:01:44 +00:00
zzz
19090343ba add more links in README 2015-11-06 14:16:25 +00:00
zzz
b15138dd67 i2pwiki.i2p icon
license: creative commons
2015-11-06 01:42:43 +00:00
zzz
5f50f23fe1 Streaming: Split blacklist into one for EC and one for Ed 2015-11-05 21:37:21 +00:00
zzz
d5e2defb5f synch fix 2015-11-05 21:34:47 +00:00
zzz
c1d77dfe5c I2CP: Fix additional connections getting rejected during tunnel open (ticket #1650)
State change cleanups
State checking consolidation
2015-11-05 21:18:01 +00:00
zzz
eca234c187 i2ptunnel: Add longer tunnel options in advanced mode 2015-11-05 20:24:12 +00:00
zzz
1a6074a62b Add lenta.i2p icon, public domain 2015-11-05 17:09:52 +00:00
9baeedbc27 merge of '380c87670c1c931cf39e93d5600c4954c6e13d1e'
and '4fe47402bea065caae229256d58d87e60607602a'
2015-11-04 22:22:58 +00:00
3f91e448c0 Add serialization methods to StatManager, FrequencyStat and Frequency
for easier collection
2015-11-04 21:41:33 +00:00
zzz
3e25ff251b Console: Add new home page links as approved at meeting
exchanged.i2p icon license: WTFPL
i2pwiki.i2p and lenta.i2p: Awaiting icons that meet our requirements
2015-11-04 15:08:44 +00:00
zzz
f8830a759e Threads: More conversions to I2PAppThread 2015-11-04 15:01:56 +00:00
zzz
b15ea8ba2f Timers: Improve OutboundMessageRegistry locking
SimpleTimer2 cleanups
possible fix for ticket #1694
2015-11-04 14:57:07 +00:00
zzz
ef428d559e merge of '7db2f97711361f598cb14aa579cb008ac8438577'
and 'cb9b4af48ca3c515eeddd44aefc040857a109b05'
2015-11-04 14:50:17 +00:00
39d749ba16 Fixed generation of eepget target filenames for basic page URLs, URLs with query parameters, certain edge cases. 2015-11-02 17:27:04 +00:00
zzz
a3a092a454 Utils: Double IP lookup cache size (ticket #1700) 2015-11-01 19:31:22 +00:00
zzz
787921aa89 spelling 2015-11-01 17:29:20 +00:00
zzz
bbb6da2ac6 cleanups, javadoc 2015-11-01 16:47:59 +00:00
zzz
b7dc55e326 checklist update 2015-11-01 00:45:30 +00:00
zzz
805979b987 UPnP: Fix deadlock in callbacks (ticket #1699)
possibly more to do
2015-10-31 22:58:51 +00:00
zzz
c37cc7ad52 Convert remaining Threads to I2PThread or I2PAppThread 2015-10-31 19:13:57 +00:00
zzz
02c1417cc5 update ancient snark docs 2015-10-31 14:20:10 +00:00
zzz
627d0d29db Router: Fix cascading I2CP error (ticket #1692)
caused by not setting message ID.
only happens when serialized (external I2CP)
2015-10-30 16:53:45 +00:00
zzz
c595895877 i2psnark: More consistency and torrent links in messages 2015-10-21 13:22:32 +00:00
zzz
6efce31eed Increase timer thread priority 2015-10-21 13:11:35 +00:00
zzz
f713a19785 Disable TLS_DHE_DSS_WITH_AES_128_CBC_SHA 2015-10-17 20:13:03 +00:00
zzz
abc0f4c720 lint core, console, i2ptunnel, jetty 2015-10-17 17:38:57 +00:00
zzz
71bc55b470 lint core, i2psnark, jetty, susimail 2015-10-17 16:49:37 +00:00
zzz
5f175455c7 lint console,streaming 2015-10-17 15:47:49 +00:00
zzz
9bddba56a0 lint router 2015-10-17 14:38:02 +00:00
zzz
4e6ddfcea3 lint core 2015-10-17 14:01:08 +00:00
zzz
3411a7c884 Crypto: Consolidate duplicate unlimited strength crypto check code 2015-10-17 12:55:39 +00:00
zzz
70921a2b09 i2psnark: Don't balloon files on ARM (ticket #1684) 2015-10-16 22:17:09 +00:00
zzz
dd36176997 big fat Java 6 warning 2015-10-16 21:38:12 +00:00
zzz
fe26052189 add mime type for .mka 2015-10-16 20:54:12 +00:00
zzz
ba1488bcce i2psnark: Add "smart sort" option, set sort based on language (tickets #637, #1303) 2015-10-16 19:45:23 +00:00
zzz
39b218b216 i2psnark: Fix deadlock (ticket #1432) 2015-10-16 14:25:55 +00:00
zzz
b43417bf77 update jetty javadoc link 2015-10-15 18:59:37 +00:00
dev
eec87bd814 Removed error print for cases of 'null' primary, where CPU identification has failed. 2015-10-15 17:42:30 +00:00
zzz
649a63db6f Update: Fix persistence of the available dev version
Java 7 check at startup with persisted versions
2015-10-14 19:18:10 +00:00
zzz
6aa8ed1280 Update: Require Java 7 to download dev builds 2015-10-14 18:22:35 +00:00
zzz
9224afb78d i2psnark: Don't show empty fields on details page 2015-10-13 21:38:19 +00:00
zzz
5e879b85a8 fix installer build 2015-10-13 19:49:18 +00:00
zzz
2c03b434e1 Startup: Delete our old RI from netDB when rekeying 2015-10-13 19:24:30 +00:00
zzz
55a6f44651 Crypto: Test for broken Gentoo ECDSA support
Add SystemVersion.isJava9()
2015-10-11 15:39:28 +00:00
zzz
971a2652e3 adjust date in warning 2015-10-10 19:53:34 +00:00
zzz
68aa8800b6 increase rekey probability 2015-10-10 15:45:54 +00:00
zzz
dd4d12f287 i2psnark: Increase max piece size to 16 MB, max files to 999,
close files faster based on file count (tickets #1626, #1671)
Remove dup synchs
2015-10-10 14:02:48 +00:00
zzz
7063609f05 JobQueue: Only adjust timing for negative clock shifts 2015-10-10 13:33:46 +00:00
zzz
b32c8d5fa4 NamingServices: Add support for lookups prefixed with "www." 2015-10-10 12:29:52 +00:00
zzz
f8163241ef NBI test improvements:
- Try to prevent not-coprime errors
- Minor cleanups
- Javadoc fix
Fix build script typo
2015-10-09 16:35:00 +00:00
843e2a8a0e propagate from branch 'i2p.i2p' (head 4a63eba1606a8ba2448352876b4177d9e4c753a1)
to branch 'i2p.i2p.unittests' (head 051ea486db9f6f5a4327038827763f350369f932)
2015-10-09 10:17:03 +00:00
zzz
419d6a8e18 SimpleTimer2: Additional fix for uncaught IllegalStateException
affecting streaming timers (ticket #1672)
Minor streaming cleanup
2015-10-08 13:42:31 +00:00
dev
6a0d421ed0 merge of '8e2524075b463bca9f87a992a87b439210abbc96'
and 'b6a391f4f621d58d7d94c1fc3f5b58f8679081da'
2015-10-08 01:18:43 +00:00
dev
c1c3a92331 Fixed case statement to be independent of case. 2015-10-08 01:18:38 +00:00
dev
1dfc8187ca merge of '0901b31b94e8472e5578cd5ac685500044fc07de'
and 'c7d6075d6f3c0ea1035d8c839773da25634842e4'
2015-10-07 18:45:27 +00:00
dev
075c4d4822 Changed scripts to be SH compatible instead of bash. 2015-10-05 14:13:38 +00:00
03f9df4ff0 JobQueue: Listen to clock shifts as well as clock changes (ticket #1014).
Restarter: Don't restart the JobQueue or PeerManager (ticket #1014)/undo previous commit.
More to do.
2015-10-04 15:17:26 +00:00
zzz
07fa3eb922 NBI test improvements:
- Output versions
- Only warmup crypto once
- Add -n option to test native only
- Reduce output if only native or only java tested
2015-10-04 13:58:28 +00:00
zzz
f4a6cf2002 Show 'none' if no part. tunnels on /tunnels 2015-10-03 14:06:12 +00:00
zzz
f93da93cf0 Router: Minor cleanup, remove some deprecated and small methods 2015-10-02 13:45:42 +00:00
zzz
b068f9a262 Router: Don't check config files for reload on Android 2015-10-02 13:43:54 +00:00
dev
489ff65e34 Added OSX notei 2015-09-30 16:17:09 +00:00
dev
bf76c57de7 Added FreeBSD cross-compilation instructions. 2015-09-30 15:07:09 +00:00
5fa059b4a8 Adding the new reseed server hosted by our friends at TorontoCrypto. Thanks. :) 2015-09-29 19:41:01 +00:00
2f92b27446 Ticket #1596 - part 2
Removing 193.150.121.66 as a reseed host from the source and its certificate.
2015-09-29 19:30:13 +00:00
dev
2bc87662aa Added 'osx' alias for darwin. 2015-09-29 15:34:57 +00:00
dev
73228a1514 Revamped downloading of gmp files.
Revamped cross-compilation support.
2015-09-29 15:31:42 +00:00
zzz
5d345f65a3 SusiDNS: Hide table headers and buttons if there are no search results 2015-09-28 16:58:18 +00:00
zzz
ccc8c04782 i2psnark: Support adding plain base 32 hashes
convert plain hashes to upper case
2015-09-28 14:52:55 +00:00
zzz
58ccfed41d Addressbook:
- Use Patterns instead of replaceAll()
- Fix isValidDest() for EC/Ed dests
2015-09-28 14:50:53 +00:00
zzz
59b05d4214 Util: Speed up IP address validation by using Apache's implementation (ticket #1198) 2015-09-27 21:54:14 +00:00
f46a902256 Router: Fix soft restarts for 'massive' clock jumps (over +150s or -61s) and recover from standby/hibernate (ticket #1014).
I2P should now recover (better) from a system hibernate/standby and be able to reconnect to peers automatically.
2015-09-27 21:15:51 +00:00
zzz
39b810bd79 Tunnels: Use max of 2 not-failing peers in an exploratory tunnel,
use high cap for the rest; change outbound exploratory
default length from 2 + 0-1 to 3+0.
2015-09-27 16:01:22 +00:00
zzz
22417715e7 javadoc 2015-09-27 15:58:47 +00:00
zzz
d21777fbc1 log tweak 2015-09-27 15:57:53 +00:00
zzz
b22a6bc163 log tweak 2015-09-27 15:57:22 +00:00
zzz
1c3527e1a4 Console:
- Export SSL cert on creation
 - new /certs page to show local SSL certs
2015-09-27 15:56:03 +00:00
zzz
4d7ad6ef7f Console: show 'none' if no leases
log timing for /netdb (ticket #1532)
2015-09-27 15:53:37 +00:00
zzz
3ea8b477d8 Streaming: Move throttler from context timer to streaming timer 2015-09-27 15:14:18 +00:00
zzz
ea4dd12bff SimpleTimer2:
- Fix bug in forceReschedule() that caused subsequent uncaught IllegalStateException;
    forceReschedule() is only used by streaming timers
  - Log uncaught exceptions
  - Enforce 5 second minimum delay for periodic events
  - atomic count
  - de-wtf
2015-09-27 15:10:59 +00:00
a13552dd8d Fix news (ant poupdate), typos in bundle-* 2015-09-25 21:49:47 +00:00
89c14c2e9a javadoc 2015-09-25 20:21:03 +00:00
22b9876b68 Rename _() for translation to _t() for Java 9 compatibility (ticket #1456) 2015-09-25 19:55:36 +00:00
dev
0848e34243 Replaced 0 with NULL to fix miscompilation on windows. 2015-09-24 22:13:33 +00:00
zzz
04690bed9f close before rename 2015-09-24 19:08:36 +00:00
zzz
0faa5ba2f4 i2psnark:
- Rename bad .torrent files instead of deleting them
  - Add mime type for .xz
2015-09-24 18:28:26 +00:00
zzz
04d653a8b9 comment out main() 2015-09-21 15:21:54 +00:00
zzz
3f213cf1db register I2CP with the PortMapper 2015-09-21 15:13:39 +00:00
zzz
53ae727935 synch fix 2015-09-21 14:54:08 +00:00
zzz
62acfc0cae use standard error message 2015-09-21 12:35:39 +00:00
5a2f22b00f history 2015-09-20 19:34:10 +00:00
7dd438b5f0 bump 2015-09-20 19:29:47 +00:00
6685b81834 /configreseed: Add 'Reset URL list' button for revert to default hosts (ticket #1554, thanks dzirtt@gmail.com) 2015-09-20 19:28:11 +00:00
c56f686d8c Fix typo. 2015-09-20 19:23:50 +00:00
zzz
b81cbedd5c format multiplies by 100, so complete is 1.0 2015-09-20 11:08:27 +00:00
zzz
02a0ef3526 include man pages in the update 2015-09-20 00:44:51 +00:00
zzz
cfc0664756 Don't try to fetch subscriptions, news, or plugin updates while in VM Comm system 2015-09-19 19:06:07 +00:00
zzz
2a3b55f3a4 i2psnark: Add check progress output 2015-09-19 17:54:07 +00:00
zzz
287f94ad19 i2psnark: Add recheck/start/stop buttons to details page (ticket #372)
remove dup CSS item
2015-09-19 17:05:09 +00:00
zzz
462c882f4e i2psnark: Improve directory listing efficiency (ticket #1079) 2015-09-18 22:54:32 +00:00
zzz
b8a909c4cc Fix eepget man page (ticket #1631)
retry default was changed to 0 a while ago
2015-09-18 20:43:54 +00:00
zzz
83791b2d10 i2psnark: Don't display "Tracker Error" if torrent is stopped (ticket #1654) 2015-09-18 20:15:06 +00:00
zzz
ff420278c5 only log once 2015-09-18 20:08:40 +00:00
zzz
1a385b6dca i2ptunnel:
- Pass Accept-Encoding header through HTTP client and server proxies,
   to allow end-to-end compression
 - Don't do transparent response compression if response
   Content-Encoding indicates it is already compressed
 - Minor encoding cleanups
EepGet:
 - Send Accept-Encoding: gzip even when proxied
 - Minor cleanups
2015-09-18 18:15:32 +00:00
zzz
64889b2bc2 Streaming: Move remaining timers from the context to streaming's SimpleTimer2;
these were the ones migrated from SimpleScheduler earlier
2015-09-18 14:36:49 +00:00
zzz
bfc6534b20 Don't delete torrent config file after error on initial startup (ticket #1658) 2015-09-17 21:20:21 +00:00
zzz
84abfa0190 Store magnet parameters across restart (ticket #1485) 2015-09-17 20:19:10 +00:00
zzz
d5a0d95c61 news appearance tweaks 2015-09-17 19:51:01 +00:00
zzz
1de840ce59 Profiles: Bias slightly away from floodfills 2015-09-16 21:07:46 +00:00
zzz
0f6176b7bf News: Add author to entry headers 2015-09-16 17:26:03 +00:00
zzz
3d533a406d News:
- Fix retrieval of entry links from feed
 - Linkify entry headers
2015-09-16 16:42:24 +00:00
zzz
37597b8c7d Build:
- Include geoip in update files for next release
 - Add created-by string to release torrents
i2psnark:
 - Store torrent added and completed times in config files, display on details page
 - Display dates on details page in local time zone
 - Add metainfo creation command line support for created-by string
2015-09-16 14:21:02 +00:00
zzz
addc9c5ca3 News: connect it all together (ticket #1425):
- Enable new NewsManager to load/store feed items on disk by UUID
 - News items are stored forever, not lost when they are removed from feed
 - News read in once at startup, not at every summary bar refresh
 - Convert old initialNews.xml and news.xml to NewsEntry format
 - Limit display to 2 news items in summary bar, /home and /console
 - New /news page to show all news
2015-09-15 13:33:29 +00:00
zzz
a2e38503fe News: New /news page and helper to show all news
WIP, not yet hooked in
2015-09-14 16:15:21 +00:00
zzz
7912d7650d News: new NewsManager to maintain current news entries.
WIP, not yet hooked in.
2015-09-14 14:49:20 +00:00
zzz
6f5739b9d8 News: Store/load individual news entries as XML in separate files by UUID.
WIP, not yet hooked in.
2015-09-14 11:06:35 +00:00
zzz
ed3e444d1e log tweak 2015-09-13 13:38:19 +00:00
zzz
ac1a28e988 print usage if no arg 2015-09-13 13:34:51 +00:00
zzz
7117438b04 RIP ugha 2015-09-13 13:34:10 +00:00
zzz
d5cbccf186 checklist update 2015-09-13 13:33:00 +00:00
zzz
fd606064d9 0.9.22 2015-09-12 13:55:30 +00:00
zzz
9d05424202 Router: Reduce rekey probability from 10% to 5% 2015-09-11 13:24:10 +00:00
157d494dee bump build to -8-rc 2015-09-11 00:54:45 +00:00
fa792a9d5e GeoIP db updates from 2015-09-02. 2015-09-11 00:54:03 +00:00
ab134261f0 Translation updates from Transifex 2015-09-11 00:53:13 +00:00
de2431e9ee Fix auto-start of new .torrents in the Snark folder 2015-09-07 18:18:16 +00:00
c4cbd7d5c4 (hopefully temporarily) disable netdb.rows.io as it's been down for nearly a month. 2015-09-06 08:01:28 +00:00
zzz
e978bb81a0 checked in correct file 2015-09-05 14:02:21 +00:00
zzz
2c6edf401f add extra to bumpBuild output after change 2015-09-04 21:15:48 +00:00
zzz
fe69d3b8f7 UPnP: Fix "content not allowed in trailing section" (tickets #481, #1653)
patch from 'kay" in #1653, dev agreement received
2015-09-04 21:05:38 +00:00
61edd01e3d Switch URL/certificate for backup's reseed server 2015-09-04 18:44:05 +00:00
zzz
483d7c43ee Router: Change thread name so it truncates better (ticket #1648) 2015-09-01 11:56:58 +00:00
zzz
7c703953be Data: Cache P256 and Ed255i9 key certificates
- Enable P256 caching
 - Create cached Ed25519 cert and enable
 - Fix cached P256 hashcode
2015-08-31 13:25:58 +00:00
zzz
f577a94012 i2psnark: Change default sig type to Ed25519 2015-08-31 13:19:29 +00:00
zzz
b10b8581cc Router:
- Change default RI sig type to Ed25519, with a 10% chance od
     rekeying from DSA at each restart
   - Don't initialize KeyManager before selecting sig type
   - Don't log KeyManager error when changing sig type
2015-08-29 14:20:13 +00:00
zzz
601376561b add Closeable/Flushable interfaces 2015-08-27 14:36:19 +00:00
zzz
5a11a28a35 i2psnark:
- Return partial piece to coordinator after reject
   - Fix tracking of downloaded portion of piece after reject
   - Send reject on receipt of bad request
   - Mark piece unrequested after receiving bad data, so it
     will be requested again, but not from the same peer
   - Fix NPE in Request constructor on error
   - Fix stuck before completion due to reject handling (ticket #1633)
2015-08-24 17:30:32 +00:00
zzz
b0c3c11bd9 Start work on Jetty 9
targetting 9.2.x for now
Requires Java 7
2015-08-09 13:36:24 +00:00
fde0ae8349 sync debian/changelog with packaged version 2015-08-02 15:06:50 +00:00
b5944045fb sync apparmor rules with the 0.9.21 package 2015-08-02 15:04:08 +00:00
zzz
ecd0231cd0 Fix console SSL excluded ciphers (thx lazyg)
Fix typo in local address in I2PSSLSocketFactory
Another findbugs char encoding fix
Add keystore password option to SU3File command line
2015-08-02 12:58:00 +00:00
zzz
44b35f328b 0.9.21 2015-07-31 14:22:03 +00:00
zzz
f3bb20d750 minor updates after review 2015-07-30 20:41:45 +00:00
20cb284f9d update geoip, bump to -23-rc 2015-07-30 17:03:46 +00:00
b4993d42b3 updated i2prouter po files (deb related) 2015-07-30 07:11:45 +00:00
9b466f3261 refresh debian patch so my automated update builds will run again 2015-07-30 06:52:18 +00:00
zzz
0bf9cb3bf2 add news cert 2015-07-28 13:55:10 +00:00
zzz
9efe60d7a8 Fix processing of translated news 2015-07-27 18:10:01 +00:00
45fe238227 Refactor SchedulerDead tests 2015-07-27 11:50:01 +00:00
e704baddd8 SchedulerDead tests 2015-07-27 08:18:46 +00:00
db9555dba3 Fix test 2015-07-27 06:49:07 +00:00
4b34b49dc1 More MessageInputStream tests 2015-07-27 06:32:53 +00:00
1652bb39e3 Fix Cobertura exclusions 2015-07-27 06:31:31 +00:00
5eda1e0031 JavaDoc paragraphs 2015-07-27 04:29:50 +00:00
b19866cbc4 Refactor part 2 2015-07-27 03:33:30 +00:00
48bcc031da Refactor tests 2015-07-27 02:57:33 +00:00
f1998e6377 Add Mockito libs to streaming tests 2015-07-27 01:52:56 +00:00
6f1bb85397 Separate out streaming integration tests, make them optional 2015-07-27 00:58:42 +00:00
zzz
d848a19ab0 update translations, bump -20-rc 2015-07-26 14:22:33 +00:00
8dcbc9958e I2PSocketManagerFactory tests 2015-07-26 11:55:49 +00:00
63555acd21 I2PSocketException tests 2015-07-26 09:33:11 +00:00
c451014eea I2PSocketEepGet tests 2015-07-26 07:46:13 +00:00
9fad9347c1 Add Mockito library hooks 2015-07-26 07:45:49 +00:00
841e27f35c Add tests for I2PSocketAddress 2015-07-25 15:09:32 +00:00
zzz
bfde521cf9 NetDB: Fix NPE (ticket #1619) 2015-07-25 13:37:45 +00:00
zzz
fea6b8aec3 i2psnark: Fix total_size in metadata message (ticket #1618) 2015-07-25 13:15:56 +00:00
8d3fb0c9a1 Add build harness for ministreaming tests 2015-07-25 12:08:17 +00:00
d662514f74 Move streaming demo out of tests 2015-07-25 11:42:53 +00:00
44bd14bd4d propagate from branch 'i2p.i2p' (head 3a8ae6268555bd2c5d1519c48497677f74e34a76)
to branch 'i2p.i2p.unittests' (head 752d5d999986d2a552e695592c82fa659c1f889c)
2015-07-25 10:01:18 +00:00
1681598dec merge of '30be1cda5a1ad30d33bbd355f4d85785a889c9fb'
and '8ec6b122079156e35f7515afa5eb433a13ce41b0'
2015-07-23 01:31:39 +00:00
809a533573 Updated history 2015-07-23 01:22:12 +00:00
265e4b58a5 Throw DataFormatException if not enough bytes 2015-07-23 01:15:11 +00:00
93854e93b5 bump -18-rc 2015-07-22 23:36:19 +00:00
f6605d05d9 merge of '1ba9885122d9a9ec69c77342719d8464aae244be'
and 'c61353ade089ac0e1fa83fab661dc6893b51b95a'
2015-07-22 23:34:32 +00:00
c20772702a I2PSnark: Don't let tunnels start unless we're starting torrents (regression, #766) 2015-07-22 22:05:44 +00:00
ba5af15c6f Fix KeyCert bug 2015-07-21 01:19:37 +00:00
9af197e590 Add KeyCert test that fails 2015-07-21 01:19:23 +00:00
2f59a4b3e6 Fix test 2015-07-21 00:40:35 +00:00
zzz
8b14afd605 Add SSLSocketChannel wrappers after review
Requires Java 7 to compile
2015-07-20 14:44:22 +00:00
63e934f8f2 Update English PO files 2015-07-17 01:36:45 +00:00
zzz
dd5f804150 Console: Add dates to news headings
Spacing for news headings in summary bar
2015-07-16 18:06:48 +00:00
35b0e99ff0 I2PSnark: Fix torrent-stopping (#766) 2015-07-14 14:33:41 +00:00
zzz
1ed1e4414b Findbugs all over #4
char encoding
2015-07-12 19:19:32 +00:00
zzz
d087fd674b Findbugs all over #3
char encoding, remove FileReader/FileWriter
Fix TunnelConfig bug
2015-07-12 16:34:24 +00:00
zzz
1f9bb046f5 Findbugs all over #2
Mostly char encoding
Use StringWriter rather than OSW->BAOS->String
2015-07-12 16:06:49 +00:00
zzz
914cc120ad Findbugs all over 2015-07-12 14:02:55 +00:00
631a0674ab bump 2015-07-08 21:26:13 +00:00
17d26976d5 lang fixups 2015-07-08 21:25:33 +00:00
dc9d60e261 I2PSnark:
- Fix NPE (#1615, h/t kytv)
- Fix start/stop status resumption on restart (#766, h/t backup)
2015-07-08 21:22:45 +00:00
zzz
2c191e7bf8 Tunnels: New Bloom filter size, increase bandwidth limit (ticket #1505) 2015-07-08 13:40:26 +00:00
zzz
817888c23c i2psnark: Tweak dest display in footer 2015-07-07 18:42:26 +00:00
zzz
1eaf376ee7 Crypto: Check for error return from sign() 2015-07-07 13:46:04 +00:00
zzz
6cb3d1d330 Updates: New news URL 2015-07-07 13:38:44 +00:00
zzz
2681c4b42f Streaming: New config to add to DSA-only list 2015-07-07 13:35:55 +00:00
zzz
05959d5199 SSU: Request outbound bandwidth on the way into the
sender queue, not on the way out, so that SSU requests
bandwidth allocations for each packet in parallel
and competes more effectively with NTCP for bandwidth.
Inbound stubbed-out only.
2015-07-05 12:30:01 +00:00
zzz
113a8a52f3 Transport: Raise bandwidth refiller thread priority
so I/O doesn't stall under high CPU load
- Raise DH generator thread priority to keep
  DH building out of event pumper thread
- Raise PRNG and YK generator thread priorites one notch
- Set I2PThread priority in constructor
Fixes problems mainly seen on Windows, which seems
to be much more sensitive to priority settings
2015-07-05 12:08:33 +00:00
zzz
98a4460bde fix test compile 2015-07-02 15:20:58 +00:00
3645c906e8 merge of 'a0b025f180c1f7befcc1eb504c24140cf9e3fc0f'
and 'e0773d79a9bc8820024206f39686541ddb393c4a'
2015-06-29 20:22:10 +00:00
zzz
fcdd8be7a7 Transport: More fixes for SSU stalling -
Don't skip further bandwidth allocations for SSU, since
it needs the entire allocation to proceed.
Log tweaks
More synchronization of requests
2015-06-29 16:02:07 +00:00
zzz
34f6f65104 UPnP main() test tweak 2015-06-29 15:59:45 +00:00
zzz
4c516cd2af log tweak 2015-06-29 15:58:41 +00:00
8ea6805f8d Prevent double-save for now and auto start all torrents if autostart is already set (don't make the user restart each one). 2015-06-28 19:43:57 +00:00
zzz
23f2261bd9 Apache Tomcat 6.0.44 2015-06-28 12:13:52 +00:00
zzz
6e06d326e3 Use ReadLine for SAMHandlerFactory 2015-06-27 20:31:56 +00:00
zzz
072e4dc2bf Add ReadLine with timeouts
Implement PING
Handle QUIT, STOP, EXIT
synch DatagramServer start/stop
2015-06-27 19:46:45 +00:00
zzz
f56ac66d64 Make DatagramServer a Handler, register with bridge 2015-06-27 16:02:15 +00:00
zzz
c662f17823 Move DatagramServer from SAMv3Handler to its own file,
javadocs
more changes to follow
2015-06-27 15:41:19 +00:00
zzz
246b376ed9 tab cleanup 2015-06-27 14:58:29 +00:00
zzz
194f20e18c V3 Stream Session: SSL for STREAM FORWARD
better exception handling
boolean cleanups
2015-06-27 14:31:55 +00:00
zzz
9b2d416154 Stub out PING and PONG commands.
Handle PING and send PONG. No code for sending PINGs yet.
Don't drop connection if only one token.
2015-06-27 13:15:28 +00:00
zzz
12385f04ec protocol and ports for outgoing datagrams 2015-06-26 23:12:01 +00:00
zzz
49e68bcc86 ports for CONNECT 2015-06-26 21:47:37 +00:00
zzz
b82c1ead72 Add AUTH commands: ENABLE, DISABLE, ADD, REMOVE
Store changes to config file
2015-06-26 21:32:24 +00:00
zzz
33672e6a86 Add authorization
New PasswordManager methods for use by SAM
2015-06-26 20:24:15 +00:00
zzz
876729c24e Add protocol and port notification 2015-06-26 18:51:03 +00:00
zzz
b6cb074c04 Add sam.config file support and -c file option
Add partial SSL support (will require Java 7 due to SocketChannel changes)
won't compile, SSLServerSocketChannel and SSLSocketChannel not checked in,
pending decisions on implementation
Bump version to 3.2
2015-06-26 15:40:20 +00:00
zzz
dd47389ad1 Console: Use registered host/port for eepsite link (ticket #1604)
Jetty starter: Register host/port when started
PortMapper: Add hostname support
2015-06-25 17:00:52 +00:00
zzz
25268e7cb2 Transport: Add failsafe to prevent complete SSU stall waiting
for bandwidth limiter, root cause unknown
2015-06-24 19:11:05 +00:00
zzz
355b2a1528 I2CP: Don't try to decrypt an LS before it's encrypted (ticket #1608)
log tweaks
2015-06-23 21:16:34 +00:00
zzz
975149d049 Router: Increase default outbound bandwidth to 60 KBps;
raise class L/M boundary to match so defaulted routers are still L
2015-06-23 20:50:22 +00:00
zzz
af394e13ad GeoIP: Add countries and flags for Asia/Pacific, Bonaire, St. Barts,
St. Maarten, South Sudan
AP: black flag copied from A1
BL: official flag is France, copied from FR
BQ, SX, SS: PNG files generated from public domain SVG files from Wikipedia
Shortened some other country names (remove "Republic of", etc.)
Change spelling to Macau, Vietnam
2015-06-23 20:33:38 +00:00
zzz
e3f64f6edf Console: Fix NPE on /configtunnels 2015-06-23 20:26:02 +00:00
2fbbfa388e NetDB: Partially revert last NetDB change: flood because we don't want to create a hole in the DHT before publisher resends to somebody else. 2015-06-22 20:11:29 +00:00
zzz
0b4d4ddcbc update hardcoded tags 2015-06-21 15:42:30 +00:00
zzz
428d89a307 Update: Add config to disable translated news
Rewrite addLang() for efficiency
2015-06-21 15:41:33 +00:00
feff6c003b bump 2015-06-20 10:30:14 +00:00
699d550992 NetDB: Don't say we stored, and don't flood, if we're shutting down 2015-06-20 10:06:54 +00:00
c6896c4418 I2PSnark: Auto-start now only starts torrents which were running at shutdown (#766) 2015-06-20 10:03:47 +00:00
zzz
1b2d4c75eb I2CP: Fix simple session lookups, broken in prop 2015-06-19 15:55:07 +00:00
zzz
586defc802 Tunnels: Increase default max tunnels 2015-06-19 14:57:59 +00:00
zzz
2499aad51d I2PSocketEepGet: Do hostname lookups in-session for efficiency 2015-06-19 14:55:49 +00:00
zzz
addb142ecd I2CP: Move client-side implementation classes to
new package net.i2p.client.impl, leaving only the
factories and interfaces in net.i2p.client
2015-06-18 21:20:00 +00:00
zzz
20c796e87a Update: Add language param to news fetch, to support translated news (ticket #1425) 2015-06-18 15:05:48 +00:00
zzz
cd62d7170c I2CP: Don't send the first LS request to the client until we have
at least one OB tunnel, so the client waits until we are ready.
This will reduce drops, retransmissions, and failures on new client tunnels.
Fixes to prevent multiple pending LS requests.
2015-06-18 15:02:21 +00:00
acc647822f sync debian changelog in mtn 2015-06-18 10:34:54 +00:00
zzz
1cf544f1d4 fix unit test compile 2015-06-18 00:41:58 +00:00
zzz
0f4e09500c javadocs 2015-06-17 23:46:11 +00:00
zzz
7c5dfaee20 I2CP: More fixes after prop, w.r.t. restore after close-on-idle
- When socket is closed, set sessionID and LS to null,
    close subsession and set its sessionID and LS to null
  - Checks on client side for null session ID
  - Check for null session in Destroy Session message
  - Don't kill I2CP connection due to a bad session ID
    in a SendMessage, just drop the message and send
    a MessageStatusMessage
  - Log tweaks
2015-06-17 23:44:12 +00:00
zzz
8d9cced128 history for prop, -6 2015-06-17 16:17:46 +00:00
zzz
8096e4f65d propagate from branch 'i2p.i2p.zzz.multisess' (head 655a0c2bbd50625c804b8de8c809b40ed63f53f4)
to branch 'i2p.i2p' (head b977ab50209475c0e74825f361924e05dbd470c7)
2015-06-17 16:00:53 +00:00
zzz
5878fae88f Use getopt for SAM args processing
Args processing cleanups
Change default host from 0.0.0.0 to 127.0.0.1
Add -s option for SSL (unimplemented)
Put help text in a single string
2015-06-17 02:22:28 +00:00
zzz
036b77746b Catch uncaught exceptions in ClientConnectionRunner and stop connection
Catch null SessionId in messages and stop connection instead of NPE
Wait for LS in SubSession in connect() so we don't send data w/o
a session ID and leaseset
Log tweaks
2015-06-17 02:16:06 +00:00
zzz
233cce8311 remove _args field 2015-06-16 13:59:27 +00:00
zzz
bc85543ef2 Fix removal of subsession aliases from tunnel manager on
I2CP connection shutdown
Sort tweaks for shared clients in summary bar
2015-06-15 14:35:15 +00:00
627f7076b0 debian: Add support for setting open file limits to initscript, add comment to explain how to do it with systemd 2015-06-14 20:16:16 +00:00
863e120204 Hard-depend on gmp >> 5. 2015-06-14 20:12:00 +00:00
53cfba4cbd merge of 'cb89dec5190f295ba301666166448929f1b7f3c1'
and 'f13d8499995c44dc76ae61d4b5c4c936e307eb89'
2015-06-14 20:07:43 +00:00
3a774b7c37 Rename i2p.mooo.com2.crt to i2p.mooo.com.crt, certificate has been switched out on the server 2015-06-14 20:07:35 +00:00
dev
5c56de7218 Add x86 and x86_64 targets. 2015-06-14 18:39:12 +00:00
dev
f33e5c2845 Revert accidental commit to ConsoleUpdateManager 2015-06-14 17:57:59 +00:00
dev
52b362dedf merge of '3c853434727997386e691eed12478317c5c5b918'
and 'e62ecd3b1887712e2408f2c716873e9433ee2e4f'
2015-06-13 19:57:10 +00:00
dev
ecb28eb480 Added support for all ARM targets provided in GMP, on platforms running Linux. 2015-06-13 19:57:05 +00:00
dev
69a5f94642 merge of '2ba51476b19c182b894a5cf98f3fff6befb555a9'
and '51c05045ee9faacb879cfc893db82eaa3db99b4d'
2015-06-13 19:55:59 +00:00
zzz
a984745689 Cleanups after review, part 1:
- change crit() to error() and remove crit()
- comment out some System.out.println()s
- Back out a couple of code moves to minimize the diff for review
- Spelling fixes, comment cleanups, spacing tweaks
- Tweaks for efficiency
- Remove / comment out unused methods
- Make ARM architecture have priority over model string,
  except for ARMv6 (Raspberry Pi workaround)
- Restore check for ARM architecture first char only,
  not exact match
- Try architecture and model string even if implementer and part are absent
- Return null immediately for Windows ARM
2015-06-13 17:35:45 +00:00
zzz
0ad34a4b00 Timestamper: Reduce NTP timeouts to shorten startup time
when NTP is blocked
2015-06-13 16:25:58 +00:00
zzz
2b9ffc1270 javadoc fixes after review 2015-06-13 15:14:21 +00:00
zzz
93c7860d2b NetDB: Improve routing of DatabaseStoreMessage acks
Send our own RI unsolicited in reply if we aren't floodfill
  Don't ack or flood a store of an unknown type
PeerTestJob: Don't generate zero reply token
Tunnels: More checks of messages received down exploratory tunnels
javadocs and comments
2015-06-13 15:13:35 +00:00
25f6c3d9e1 apparmor: tweaks to TMPDIR rules 2015-06-13 15:05:28 +00:00
zzz
b9e07bc9aa i2psnark: Fix NPE (ticket #1602) 2015-06-13 14:20:08 +00:00
zzz
09f68e44ca enable ECDSA by default for shared clients 2015-06-10 23:24:38 +00:00
zzz
013b5fd85b more @since updates 2015-06-10 19:24:20 +00:00
zzz
8962bfb6bc more @since updates 2015-06-10 19:23:26 +00:00
zzz
605602e001 @since updates 2015-06-10 19:15:01 +00:00
zzz
f341e5566b Pass session in connect();
Store the session in Connection;
Don't create a new ConnectionManager for a subsession,
now that all components track the session properly.
@since updates
2015-06-10 19:14:33 +00:00
zzz
7b84676f4a remove session ref from PacketQueue 2015-06-10 12:37:19 +00:00
dev
c666f8a4f9 Javadoc fixes. 2015-06-09 14:30:42 +00:00
dev
e067761947 Added a new flavour of checkAvailable() to UpdateManager interface. 2015-06-09 03:57:44 +00:00
dev
226bee64ef Added more variants of isUpdateInProgress to UpdateManager. 2015-06-09 03:44:34 +00:00
dev
1a40e57413 Added isUpdateInProgress() to UpdaterManager interface. 2015-06-09 03:32:33 +00:00
dev
f73101b014 Added checkAvailable(), update() and getStatus() to UpdateManager interface. 2015-06-09 01:09:23 +00:00
zzz
fef65c996f Store the session in Packet, so we may more easily and efficiently
handle multisession, especially on the incoming side.
More refactoring to follow
2015-06-08 22:18:14 +00:00
zzz
cbc2f899a6 fixup after prop 2015-06-08 22:14:49 +00:00
zzz
099515adff propagate from branch 'i2p.i2p' (head 1de143fff53bb56e6eac926d6293d62200f0c392)
to branch 'i2p.i2p.zzz.multisess' (head 70fc07857232668b93ca6ba02c433dffc7639132)
2015-06-08 21:50:42 +00:00
ff2ea9ac3e Irc{Outbound,Inbound}Filter:
- Silence 'no streams' warning when we can't connect to an IRC server. Change to WARN.
2015-06-08 19:35:18 +00:00
97aeecd865 FloodfillMonitorJob, FloodfillRouterInfoFloodJob:
- Directly connect to nearby floodfills to share our RI to speed up integration of new floodfills (#1195).
- Called on both non-ff -> ff OR ff -> non-ff.
- Create FloodfillRouterInfoFloodJob to do so.
2015-06-08 19:24:28 +00:00
8098d705f9 Make netDb.storeFloodNew graphable for testing (#1195) 2015-06-08 16:39:41 +00:00
fa8c390267 Language fixups. 2015-06-08 16:14:08 +00:00
zzz
e8f4e19bac NetDB: Fix early NPE 2015-06-07 16:29:41 +00:00
zzz
9041a2c69f SSU: Possible fix for NPE in establisher 2015-06-07 14:13:58 +00:00
zzz
384e9118c6 Logs: Correct wrapper.config location when running as a Linux service 2015-06-07 12:44:29 +00:00
0936a2ee23 disable 193.150.121.66 (ticket #1596) 2015-06-06 21:36:24 +00:00
bc6b0c12ac update debian changelog to reflect the latest release 2015-06-06 21:33:51 +00:00
f6f051cfa4 remove unneeded user-tmp abstraction; tighten tmpdir perms 2015-06-06 21:31:38 +00:00
zzz
fb131a040c fix snark sort by rate of stopped torrents 2015-06-06 20:54:13 +00:00
zzz
9f2ded6073 cleanup 2015-06-06 20:53:33 +00:00
zzz
55e36ee458 Console: Add indication of current ff status on /configadvanced,
change immediately when config changes, force republish
Router: RI rebuild locking
2015-06-06 16:01:39 +00:00
7c13fb2ba0 Android's SimpleDateFormat doesn't support XXX at any API 2015-06-06 09:24:46 +00:00
663ccb72d7 Bump router version 2015-06-05 01:53:52 +00:00
78e0a37fc9 Define I2PTunnelClientBase stats in one place 2015-06-04 22:36:45 +00:00
09cdc00939 i2ptunnel: Don't call startup() in chained constructor (ticket #1593) 2015-06-04 22:34:13 +00:00
2590e7d4ff i2ptunnel: Don't connect manager to router in constructor (ticket #815) 2015-06-04 22:25:44 +00:00
zzz
27f56776ca Console: Fix display of n/a for events that never happened on floodfill profiles 2015-06-03 20:45:15 +00:00
zzz
657f13af29 Remove ConnectionManager ref from PacketQueue 2015-06-03 17:25:25 +00:00
zzz
e2ca74963f Console: Click on version or country in /netdb table to get list of those routers 2015-06-03 16:55:01 +00:00
zzz
9304cb2bbc SAM message quoting fix 2015-06-03 12:33:42 +00:00
zzz
362086994a history for props, -1 2015-06-03 12:03:07 +00:00
zzz
f57e37d588 comment fix 2015-06-03 12:02:25 +00:00
zzz
d96ddd1a0e propagate from branch 'i2p.i2p.zzz.sam' (head 68de14d0053dea374413f9e0419b1c0f7e9ec3af)
to branch 'i2p.i2p' (head 54f5dd288f7c0c5a50f7f63f911aec4008be27e2)
2015-06-03 11:42:54 +00:00
zzz
7b711ebba0 propagate from branch 'i2p.i2p.zzz.test2' (head 47586aa88408845c51ee4c5fce40c617bdb8e398)
to branch 'i2p.i2p' (head bacb6048bc596f064ff237dd8569014a421b4ef6)
2015-06-03 11:40:28 +00:00
zzz
0762715264 i2psnark: Don't lose sort param when hiding peers 2015-06-02 21:04:12 +00:00
zzz
8a69dc0a97 only log reseed network disconnected warning once 2015-06-02 20:44:10 +00:00
zzz
39dc60cf8a only log UPnP network disconnected error once 2015-06-02 20:19:46 +00:00
zzz
09e867b194 i2psnark: Don't say 'download finished' unless we downloaded something
atomics
2015-06-02 20:14:33 +00:00
zzz
dc9256f274 Console: Prevent bad line-wrap of very long menu items 2015-06-02 16:41:04 +00:00
zzz
272f63dbbd Console: Nicer "move" icons on /configsidebar, add tooltips
Icons from silk, rotated, same license as before
2015-06-02 16:30:35 +00:00
zzz
06104118d0 EepGet: Recognize 418/420 responses 2015-06-02 15:44:17 +00:00
zzz
525ec01c1e Console: Don't allow unbanning of all-zero hash 2015-06-02 15:41:42 +00:00
zzz
f8594c316f DataHelper: make formatDuration() days to years be monotonic 2015-06-02 15:36:19 +00:00
zzz
3c89bd4e19 0.9.20 2015-06-02 12:00:59 +00:00
zzz
1f8408f417 Stats: Reduce number of rates in required stats to save memory 2015-05-31 14:03:39 +00:00
zzz
915b35f0c1 LogWriter: Write dup message to wrapper log and crit buf also 2015-05-31 13:22:36 +00:00
zzz
4521156ecb Fortuna: Catch AIOOBE (ticket #1576) 2015-05-31 12:43:06 +00:00
zzz
c58fd8f84e i2ptunnel: Fix +/- variance config (ticket #1587) 2015-05-30 15:46:37 +00:00
zzz
f02b401b7a SSU: More synchronization in PeerState 2015-05-30 14:25:40 +00:00
zzz
4fdcb6ce29 I2CP: Prevent sending lookup or bw limit messages before handshake with router is complete 2015-05-30 14:13:13 +00:00
zzz
94824e4d2b I2CP: Prevent sending data message before handshake with router is complete 2015-05-30 14:02:38 +00:00
zzz
280fc05c91 susidns, addressbook: Don't attempt to fetch subscriptions if
HTTP proxy is down (ticket #1530)
2015-05-30 13:53:56 +00:00
zzz
89745f5002 HTTP Client: Greatly simplify decompression by using
InflaterOutputStream, available since Java 6.
Removes PipedInputStream, PipedOutputStream.
Removes Pusher threads.
Remove delay workaround for truncated pages, no longer required.
2015-05-30 13:19:29 +00:00
zzz
7715e6484c Router: Add gzip caches to clearCaches() 2015-05-30 11:18:04 +00:00
zzz
c807194e93 propagate from branch 'i2p.i2p' (head 07028378508ab46278d193039b97c543d12ee22e)
to branch 'i2p.i2p.zzz.test2' (head 0074b91cb9fe0ed875457dc0bf1989df03fa9e9a)
2015-05-30 11:16:00 +00:00
zzz
3602f73497 HTTP client: Fix occasional truncation of compressed responses
log tweaks
2015-05-29 17:37:58 +00:00
zzz
4bf115b5f6 javadoc 2015-05-27 21:07:56 +00:00
zzz
7ab85a0a20 Graphs: prevent NaNs if we are skewed ahead of system time 2015-05-27 21:05:44 +00:00
zzz
fba0372339 Banlist: Ban all-zero hash
NetDb: Drop all-zero lookups and stores, add stats
SSU:
 - Fix debug logging of dumped packets
 - Drop sessions with bad clock skew, banlist peer, add stats
 - Drop sessions with corrupt DSM, banlist peer, add stats
Log tweaks
2015-05-27 21:00:46 +00:00
zzz
03dfa6515b SSU: send destroy message in a couple cases where we previously just called dropPeer() 2015-05-27 20:54:22 +00:00
zzz
5e33ed1169 log tweaks 2015-05-27 20:52:00 +00:00
zzz
11ab7fc56c add comment 2015-05-27 20:51:01 +00:00
zzz
716bff41d7 remove cast 2015-05-27 20:50:29 +00:00
zzz
1d8842cfc8 Gunzip: Add tests to main() 2015-05-27 20:49:51 +00:00
zzz
042b03d6b8 DataHelper: Add year output to formatDuration() 2015-05-27 20:48:51 +00:00
ab753651b9 Add new reseed server
Thanks parg!
2015-05-26 20:55:44 +00:00
zzz
6076bb3b2b modPowCT requires GMP 5 2015-05-26 18:16:55 +00:00
dev
1a012dfca1 Removed exec flag from some jbigi libs. 2015-05-26 15:18:48 +00:00
dev
e0fe2439e6 Stripped ARM jbigi binaries. 2015-05-26 15:06:02 +00:00
dev
34d3009439 Added GMP6 compilations of jbigi for Intel CPUs on linux, built on Intel Haswell. 2015-05-25 21:10:47 +00:00
dev
70c2838421 Added GMP6 compilations of jbigi for ARM CPUs on linux, built on Raspberry Pi 2. 2015-05-25 19:43:29 +00:00
dev
63a5b4803c Added support for ARM A12/A17 using the A15 libs. 2015-05-25 19:30:28 +00:00
dev
67760c8bea Corrected make clean call 2015-05-25 18:16:19 +00:00
dev
9130d556d8 merge of '6d6ce6e9e717c56881e728cc3b5fad45897d58b2'
and '8fa65646f9dfb055d71d24fc4d3c26510da48a54'
2015-05-25 18:01:41 +00:00
dev
50d46006ae Added support for ARM Cortex A5/A7/A8/A9/A15. 2015-05-25 18:01:37 +00:00
dev
583a050281 merge of '6040534dc82b5160fea1d95bec37c98497f0f22c'
and 'e8ebf9b71d96f8107ed295d94502a04dc70d1414'
2015-05-25 17:49:26 +00:00
dev
2185a65de6 Added -j flag to make to use parallel compilation. 2015-05-25 17:49:11 +00:00
zzz
4ea99b8a10 I2CP: Take 2 of fix, so a newly created session
isn't destroyed and immediately replaced by i2ptunnel,
which caused dup shared clients in a race at startup;
Clarify session exception text if not open
2015-05-24 00:14:32 +00:00
zzz
3d07e1a10b I2CP: Revert part of prior checkin, prevented idle tunnel from opening;
(treat INIT as CLOSED) better fix to follow
2015-05-23 20:02:46 +00:00
dev
9134d2856f Don't unpack gmp before every build. Do a distclean instead. 2015-05-23 18:48:35 +00:00
zzz
86525e7239 i2ptunnel: Strip top-level supercookies too 2015-05-23 17:13:15 +00:00
zzz
195171f9ed I2CP: Add an INIT state for session, so a newly created session
isn't treated as CLOSED and immediately replaced by i2ptunnel,
which caused dup shared clients in a race at startup
(possible related tickets #642, #650, #815, #1545)
2015-05-23 16:07:49 +00:00
33c4be5b2f Updates to geoip.txt and geoipv6.dat.gz based on Maxmind GeoLite Country database from 2015-05-06. 2015-05-21 17:32:35 +00:00
fea2c3c6b2 Install the apparmor profiles in complain mode
Instead of enabling exceptions when needed for custom set-ups, some users will
opt for disabling all security functions.
2015-05-21 17:27:29 +00:00
281686ba58 clarify comment 2015-05-21 17:24:32 +00:00
0b91fcb636 sync Translations with Transifex 2015-05-21 17:11:50 +00:00
807f1381fb sync debian/changelog 2015-05-21 16:54:35 +00:00
ac56a63809 remove /dev/(u)?random since these are included in the base abstraction 2015-05-21 16:52:09 +00:00
e4798b9ed8 allow user scripts installed to cgi-bin to be executed 2015-05-21 16:46:19 +00:00
7584346c82 fix indentation of i2p abstraction 2015-05-21 16:44:00 +00:00
dev
68adfa80af Added support for new CPUs
- Intel: Sandy Bridge, Haswell and Broadwell
- AMD: Bulldozer, Piledriver, Steamroller, Excavator and Jaguar
2015-05-20 01:06:26 +00:00
zzz
29330aa5d3 i2psnark: Another place to send reject; switch to LBQ 2015-05-19 23:21:18 +00:00
zzz
65ff2c0afe i2psnark: Log tweaks and cleanups after testing 2015-05-19 21:56:21 +00:00
zzz
de4d47de95 i2psnark: Add support for fast extensions (BEP 6)
untested
2015-05-19 18:13:32 +00:00
zzz
ae41a3f316 SSU:
Synchronize UDPPacket methods, possible fix for bad
packets and UDP stalls caused by cache corruption?
Cleanup unused methods and fields
2015-05-19 14:49:02 +00:00
dev
1e8c299be2 Fixed comments 2015-05-19 12:36:02 +00:00
dev
39cb60e72b Added AVX/AVX2/AVX512/TBM feature detection 2015-05-19 12:31:15 +00:00
zzz
2dc3d68418 propagate from branch 'i2p.i2p' (head d046bffcd4f94b253e1aa2bfc9a90482974363dd)
to branch 'i2p.i2p.zzz.test2' (head d00c6fd9c9aef6c37218a791a12f2da957181cd2)
2015-05-18 11:09:26 +00:00
zzz
5eb43b6ae4 Translate: Clear ResourceBundle cache too,
available since Java 6 / Android API 9
2015-05-18 11:08:40 +00:00
zzz
0c672ecc49 Update: Fix NPE in initialization 2015-05-16 13:10:07 +00:00
3b6d98fe38 Translate "Dest" instead of "Dest:", tabbing (thx zzz) 2015-05-15 22:36:49 +00:00
b3472cfe80 Show the I2PSnark dest on the main page (#1436) 2015-05-15 20:51:45 +00:00
38f2b93c7a typo 2015-05-15 20:30:59 +00:00
zzz
e7af87a981 Update: Ignore su3 dev build version at startup if older 2015-05-15 19:15:51 +00:00
zzz
d698a67660 Deprecate Router.setConfigSetting() and removeConfigSetting() 2015-05-15 15:50:16 +00:00
zzz
b38f2d62a8 bump -23 2015-05-15 14:58:54 +00:00
zzz
10556bca75 merge of '174649506cd8a9665ad798c090e39481af967011'
and '67eb724b7638284d33f1b4997183cc9f197d2883'
2015-05-15 14:17:41 +00:00
zzz
1f17d2a149 add cacapo plugin cert 2015-05-15 14:17:08 +00:00
dc777c8de5 fix on non-full stats routers (thx zzz)
doh
2015-05-15 13:42:16 +00:00
zzz
1fb9643916 i2psnark: Fix deletion of single-file torrent outside snark dir (ticket #1544) 2015-05-13 14:00:19 +00:00
zzz
081f1865a8 Console: Fix URLs caught in XSS filter on /confighome (ticket #1569)
Fix name and URL escaping
Truncate long URLs in display
2015-05-13 12:04:28 +00:00
zzz
0e17c560b3 NTCP: Catch race in Reader (ticket #1534) 2015-05-13 10:52:26 +00:00
zzz
a3b1327934 javadoc fixes 2015-05-13 10:48:48 +00:00
zzz
e68ca573f0 remove status message 2015-05-13 10:41:49 +00:00
zzz
b5455cee6e SAM: Set keepalive on sockets (ticket #1573)
Also on both sides of I2CP.
BOB already does it.
2015-05-12 20:13:17 +00:00
cbdc1403bf remove old check
bump
2015-05-12 19:53:19 +00:00
zzz
40130a8a61 SAM:
- Close sockets and stop tunnels when router-side SAM stops (ticket #1572)
- Better checks for quoting status message strings (ticket #1488)
- Set encoding for sam.keys file
- Don't throw NPE on rare stream errors
- Comment out unused dumpProperties()
- Cleanups, log tweaks, thread name tweaks
2015-05-12 19:07:42 +00:00
ca14055976 fix build 2015-05-12 19:02:00 +00:00
8303016b48 - Job Queue/stats: add stat/graph for amount of scheduled jobs (router.tunnelBacklog)
- FloodfillMonitorJob:
  - Use avg of router.tunnelBacklog instead of current backlog
- Some language/spelling fixes
2015-05-12 18:46:40 +00:00
287862887d runplain.sh improvements 2015-05-11 01:12:13 +00:00
zzz
f25d2a3d3f Util: Fix corruption of cached ReusableGZIPInputStreams,
caused by calling close() from HTTPResponseOutputStream.Pusher,
but close() rendered the underlying InflaterInputStream unusable.
Broken in -15. Caused failed HTTP fetches and other flakiness.
2015-05-11 00:08:26 +00:00
zzz
7f30f481b2 i2ptunnel: Improve error handling for UDP tunnels,
Sink.send() may now throw RuntimeException,
converted from IOException or I2PSessionException;
interrupt runner threads on error;
ignore I2PSessionException in Pinger.close();
logging and javadoc improvements;
untested
2015-05-09 22:22:13 +00:00
zzz
5ee6826241 Plugins: Add support for custom icons (ticket #1550) 2015-05-09 15:28:43 +00:00
zzz
68951c4c6b remove http in linkify() 2015-05-09 13:19:46 +00:00
zzz
5dc7497802 Reseed: Don't reseed while shutting down (ticket #1565) 2015-05-08 12:27:40 +00:00
zzz
31cfddc218 Router: Clear I2CP lookup cache on exit 2015-05-07 16:46:15 +00:00
zzz
c1e70ac7d2 SAM: Close datagram or raw session when underlying
I2P session closes (ticket #1563)
2015-05-07 16:04:08 +00:00
zzz
dd9abd3f09 set installed dev version 2015-05-07 14:18:47 +00:00
zzz
2f5e64e532 Update: Add support for su3-signed development builds (ticket #1381)
Full version is used as the su3 version.
Uses same su3 certs as release updates. Users may add additional certs
to ~/.i2p/certificates/router/ as necessary.
Copy echelon's reseed key for use as a router signer.
Unsigned update remains a separate option for now.
Various update subsystem cleanups.
2015-05-07 13:04:43 +00:00
zzz
b12f988390 javadoc fixes 2015-05-07 13:03:17 +00:00
9f3d5bf57b use the full version string (including build number) in the signed-* build targets 2015-05-06 23:24:08 +00:00
zzz
7f9e958e5a Datagram: Convert IOE to DFE and throw on datagram load error
rather than failing silently
2015-05-06 20:05:30 +00:00
zzz
c4877ea092 Crypto: Comment out Cryptix debug logging 2015-05-06 01:53:50 +00:00
zzz
2aafc23774 PrintWriter doesn't throw exceptions, so call checkError() 2015-05-06 01:51:57 +00:00
zzz
77c9a644ac Naming services: Export address books with Windows line endings on Windows (ticket #1557) 2015-05-06 01:48:47 +00:00
zzz
abd8ca34dc Transport: Add config to force IPv4 (only) to firewalled (ticket #1541)
since we cannot reliably detect DS-lite (ticket #1458)
Hide transport status on /peers unless routerconsole.advanced
2015-05-06 01:45:33 +00:00
dev
31435685bf Added disclaimer about not being a part of the public API. 2015-05-05 22:16:51 +00:00
zzz
7337fd0670 i2ptunnel: Add Connection: close headers to errors and proxy.i2p responses
where it was missing (ticket #1531)
2015-05-04 16:36:49 +00:00
zzz
f7b7a98b9d i2ptunnel: Close input stream when HTTP client decompressor terminates (ticket #1506)
streaming: Minor cleanups, log tweaks
2015-05-04 14:43:54 +00:00
2226936737 i2prouter 'console' bugfix: Don't report failure for INT signal 2015-05-04 14:10:25 +00:00
8b293b2190 symlink instead of copying
I created this patch a couple of years ago and at that time symlinking (for
reasons I don't remember anymore) didn't work. Now it works with symlinks, so
let's go with that. (Tested in OpenBSD 5.7)
2015-05-04 13:47:32 +00:00
zzz
94bba8d11f I2CP: Fix external I2CP SendMessageExpires, broken in previous cleanup 2015-05-04 12:36:03 +00:00
5c2b5075f9 support OpenBSD in i2prouter
We don't include a wrapper for OpenBSD and Tanuki doesn't offer OpenBSD
binaries either. It is available as an OpenBSD package. Therefore, if the
wrapper is not found (likely), advise the user to install it. The next time
`i2prouter start` is run, the wrapper will be copied to the I2P install
directory and it should "just work".
2015-05-04 09:22:25 +00:00
ca6820a4c0 refresh debian patch 2015-05-04 00:26:26 +00:00
zzz
2fafa3337f Console: Add floodfill configuration form to /configadvanced 2015-05-03 18:49:34 +00:00
zzz
b5f75a4bb9 Router: Allow class M to become floodfill;
add bandwidth classes P and X (ticket #1447)
2015-05-03 17:35:09 +00:00
zzz
707bfbbf8b Router: Put the GarlicMessageParser in the RouterContext
to reduce object churn, we only need one
Add DeliveryInstructions.create() to return immmutable
local instructions, to reduce object churn
Minor cleanups
2015-05-03 17:00:22 +00:00
zzz
1eba6c5167 SusiDNS: Add export button 2015-05-03 13:21:16 +00:00
zzz
a14208b841 Move Indonesian po files used by Java om _id to _in, since
Locale.getDefault().getLanguage() will only return "in".
See Locale javadocs. Same change already made in Android.
2015-05-02 23:23:13 +00:00
83966f9a7f Switch out the certificate for netdb.i2p2.no, replacing it with a stronger one
certificates/ssl/netdb.i2p2.no2.crt was checked in on 2014-12-08 with the
intention of its replacing certificates/ssl/netdb.i2p2.no.crt after a
transition period of a few months had passed. The certificate has already been
switched out on the server.
2015-05-02 20:49:50 +00:00
zzz
d89f06015b merge of '7cc7b74d018c5e2d5d571000d066e65ad034c114'
and 'd87b6870e67271b703a38f82cb6fc9b753bf9698'
2015-05-02 17:46:48 +00:00
zzz
49f786c928 Transport: Ticket #1458 continued...
enum fixes so we don't always force a peer test quickly
set reachability status at startup when interfaces are configured
prevent firewalled -> OK -> firewalled+OK transition
2015-05-02 17:45:37 +00:00
zzz
e8bc0bd5d1 Stats: randomize router count at startup also 2015-05-02 17:42:49 +00:00
8d69b69357 Switch out the certificate for ieb9oopo.mooo.com
certificates/ssl/ieb9oopo.mooo.com2 was checked in on 11/23/2014 with the
intention of its replacing certificates/ssl/ieb9oopo.mooo.com.crt after a
transition period of a few months had passed. The certificate has already been
switched out on the server.
2015-05-02 15:59:33 +00:00
e7b9a230e6 add 'bump' as an alias for the 'bumpBuild' ant target 2015-05-02 15:50:25 +00:00
6385c412fd Disable https://jp.reseed.i2p2.no:444/ due to extended downtime, unresponsive host (ticket #1422) 2015-05-02 15:48:46 +00:00
zzz
bb33b358b4 Change log level for Jetty warnings with exceptions
from error to warn (ticket #1551)
2015-05-02 14:36:39 +00:00
zzz
572f071cfe Jetty 8.1.17.v20150415 2015-05-02 14:09:59 +00:00
zzz
42cb89f525 bump -12 2015-04-30 21:14:56 +00:00
zzz
1868d2b50f Transport: Ticket #1458 continued...
Implement methods to remove only a single IPv4 or IPv6 address,
so that IPv6 addresses will remain when SSU detects that IPv4 is firewalled
Summary bar status fixes
Fix getIsPortFixed() for more enum cases
log tweaks, cleanups
2015-04-30 20:33:46 +00:00
dev
d5d4dbb078 Added source of CPUID information 2015-04-29 15:52:08 +00:00
dev
815f275d8b Added source of CPUID information 2015-04-29 15:51:34 +00:00
dev
fdad8f0c34 Added support for new AMD CPUs
- Jaguar added
 - Bulldozer derivatives (Piledriver, Steamroller and Excavator) added
2015-04-29 15:48:52 +00:00
zzz
4588f1ec75 I2CP: Periodically send a SetDate message to external clients
so they stay in sync
2015-04-29 15:22:55 +00:00
zzz
629f7f05c7 Transports: Track IPv4/v6 reachability separately (ticket #1458)
Don't include NTCP conns established too long ago in clock skew vector
Hide unestablished outbound NTCP conns from /peers view
Add per-transport status to /peers
Put status description instead of code into event log reachability changes
2015-04-29 12:50:33 +00:00
zzz
0f18686243 Clock: Make forward slewing work better
when now() is not called too frequently
2015-04-29 11:48:17 +00:00
zzz
2a2587b13d fix logic bug 2015-04-29 02:41:25 +00:00
zzz
489fdd5e4b NTCP: Use context time, not system time, in NTCPConnection
so that clock skew calculations work right
2015-04-29 02:35:22 +00:00
zzz
fe680eb192 Transports: Fix clock skew calculations
- NTCP inbound skew calculation had flipped sign
- Include RTT in NTCP skew calulation
- Set SSU skew on first packet so it's right from the beginning
- Above should fix the "ignoring clock offset" error
- Javadocs
RouterClock:
- Add config to disable clock adjustment for testing
- Reduce window in skew vector for slew calculation
- Double max slew rate
2015-04-29 01:30:33 +00:00
zzz
613440ff63 CSF: New enums for SNAT/OK and SNAT/UNKNOWN 2015-04-28 22:26:40 +00:00
zzz
64121b1e92 catch OOM in the OOM listener 2015-04-28 22:24:05 +00:00
zzz
f16927f316 JobQueueRunner: Don't call System.exit() on OOM,
let the shutdown progress normally;
Make it an I2PThread instead of a Runner so we can
call fireOOM() for consistent logging (ticket #1549)
Router: Don't add OOM listener on Android so
we don't hang onto the context
2015-04-28 21:57:13 +00:00
zzz
cb50c1bd8b improve UDP test 2015-04-28 12:44:53 +00:00
zzz
921ad86274 Comm System: More prep for ticket #1458
- Big method to handle status transitions, not yet used
 - Status enum tweaks, unknown must be higher code than known
2015-04-28 03:25:20 +00:00
zzz
ac76107752 Transports:
- More transition to status enum
 - Don't set TCP keepalive for IPv6
2015-04-28 03:21:28 +00:00
zzz
2359b1edd2 Transports: Convert internal state to enums (ticket #1458) 2015-04-27 17:05:16 +00:00
zzz
2750681d78 CommSystem: Stubs for separate IPv4/v6 status (ticket #1458) 2015-04-27 15:44:05 +00:00
zzz
eaac4d3de0 NamingService: Add export methods,
fill in subclass methods for efficient exporting,
fill in getBase64Entires() and getNames() where unimplemented
SusiDNS: Add export support, no UI yet
2015-04-27 15:41:38 +00:00
dev
827b7b64d2 merge of '1a475694d7840a7be029691e7ba97ee7afca80d4'
and '3d8d9d506f96418982baac68a992ec62a0278a35'
2015-04-27 00:29:51 +00:00
zzz
f243968dfa i2ptunnel: Reduce sleep time in runners to reduce latency
greatly improves "loopback" performance
minor cleanups
2015-04-26 17:50:06 +00:00
zzz
8d9e2bdc71 log tweaks 2015-04-26 17:46:48 +00:00
zzz
6dbbb6b61b minor cleanup 2015-04-26 17:46:14 +00:00
zzz
f89bf32390 target=_top 2015-04-26 17:45:31 +00:00
zzz
ef195aa4ef re-add fixed reseed 2015-04-26 17:45:01 +00:00
843230a1cb Fixed MessageInputStreamTest after constructor changes 2015-04-26 01:43:34 +00:00
zzz
84e63f3b38 reseed tweaks for SNI 2015-04-26 00:12:17 +00:00
zzz
b90816fdf8 add package.html files 2015-04-25 23:15:52 +00:00
zzz
40c4a42921 I2PSSLSocketFactory:
- Add hostname verification using code from
Apache HttpClient 4.4.1 (Apache 2.0 license)
and one small class from HttpCore 4.4.1,
slightly modified to remove additional Apache dependencies
and unneeded code.
- Includes support for public suffix list;
use basic list with standard TLDs,
and also support loading the big Mozilla list,
but don't bundle the 150KB Mozilla list for now.
- For Android, use its default verifier, which
should actually work (unlike Oracle)
- Java 7 not required, although servers requiring SNI will now
fail on Java 6, which does not support SNI
SSLEepGet:
- Rework recent setSoTimeout code changes, as they broke SNI
- Add option to save certs even if no errors
- Add option to disable hostname verification
2015-04-25 23:06:44 +00:00
zzz
26f89391d3 Mods to remove additional Apache dependencies
and unneeded code, now compiles
2015-04-25 22:56:51 +00:00
zzz
aaae72cf84 - Initial checkin of Apache classes from
Apache HttpClient 4.4.1 (Apache 2.0 license)
and one small class from HttpCore 4.4.1,
unmodified as a baseline for future merges.
Does not compile.
See following checkins for more info
2015-04-25 22:54:05 +00:00
zzz
3e55cff153 Util: Catch and convert OOM in I2PThread.start() to a RuntimeException,
to give better message to users and prevent JVM shutdown
on what is unlikely to be a heap issue.
2015-04-25 00:02:55 +00:00
zzz
bd778a2204 Remove old pre-0.6.1.30 TunnelCreateMessage and TunnelCreateStatusMessage,
moved to junit years ago but not part of any tests
2015-04-24 22:25:17 +00:00
zzz
235c196f14 log tweaks 2015-04-24 21:37:22 +00:00
zzz
e475c161cb i2ptunnel: Don't register port mapper in clients overriding startRunning()
if super.startRunning() failed
Register as HTTPS proxy also in HTTP client
2015-04-24 21:16:45 +00:00
dev
e5cd33cedb merge of '7a80d824309a75c1f02df0c50ccddd0f8e65e9dd'
and '874cdc3aa5783e115f79ce6ef7d797ff33bd8ab9'
2015-04-24 20:31:35 +00:00
dev
a074654916 Reformatted and added support for some Intel architectures 2015-04-24 20:31:01 +00:00
zzz
54f9d1eb63 fix typo 2015-04-24 20:20:50 +00:00
zzz
08e96109a7 i2ptunnel: Fix shutdown of client tunnels on server socket errors,
broken in fix for ticket #815
TCG still doesn't go back to stopped, to be fixed.
Test case: configure low port.
2015-04-24 19:19:18 +00:00
zzz
81ad33d9e3 lint unchecked 2015-04-24 16:27:03 +00:00
zzz
aecc95825b Updates: Fail fast if HTTP proxy is not running (ticket #1530)
Covers router, unsigned router, plugin, and news updates
2015-04-24 16:08:08 +00:00
zzz
37c6ac3a88 i2ptunnel: Fix Socks and SocksIRC tunnels not starting,
broken in fix for ticket #815
2015-04-24 01:48:07 +00:00
zzz
772d0beac3 Streaming: Don't wait too long to send a dup ACK, so the other
side isn't stuck forever at a window size of 1.
Cleanups, log tweaks, javadocs
2015-04-23 15:34:24 +00:00
zzz
64fdfd81ee remove excess logging 2015-04-23 13:38:44 +00:00
zzz
1b09b9faa4 Streaming: More efficient checking for input buffer overflow,
add additional checks.
Fix bug if available buffer calculation is negative
Check log level before calling displayPacket()
Log tweaks
2015-04-23 13:19:18 +00:00
zzz
6f0ebb2d94 Streaming: Reduce min RTO so that "loopback" connections
recover quicker after packet loss;
Reduce default initial ack delay;
Rename misspelled method
2015-04-23 10:28:02 +00:00
zzz
12099753ad NBI: core2_64 is always a fallback for corei_64 2015-04-23 09:33:44 +00:00
zzz
db4e09efa3 jbigi: Drop 32-bit corei libs where they are identical to the
core2 lib, since we now have a generic fallback in NBI:
	libjbigi-freebsd-corei.so
	libjbigi-linux-corei.so
	libjbigi-osx-corei.jnilib
Remaining corei libs are not identical to the core2 version
(although they may have the same size)
2015-04-22 23:20:01 +00:00
zzz
8fa1e6ee11 NBI: remove special case for core2/corei in getMiddleName2()
since it's now a fallback in getResourceList()
2015-04-22 23:11:17 +00:00
zzz
e7a33dfd64 NBI: core2 is always a fallback for corei 2015-04-22 22:50:51 +00:00
zzz
55c411a495 Add coreisbr coreihwl coreibwl targets, thx tuna
Reorder the builds so the new ones are build first, for easier testing
2015-04-22 22:10:42 +00:00
zzz
cbe91e3012 I2PSocketEepGet: Fix i2psnark NPE caused by -6 (ticket #1543) 2015-04-22 20:34:04 +00:00
zzz
238501919b i2psnark: Fix deletion of config files, cleanup
orphaned ones at startup (ticket #1498)
2015-04-22 20:22:17 +00:00
zzz
ae3a5f7b25 name tunnel starter threads 2015-04-22 20:17:33 +00:00
zzz
638cadc3c9 NetDB: Disable floodfill for non-ARM Android also 2015-04-22 15:54:18 +00:00
zzz
da0036581c thread name tweak 2015-04-22 14:51:40 +00:00
zzz
59a58ea310 NTCP: Reduce min send finisher threads to 1 2015-04-22 14:48:59 +00:00
zzz
bebe5f8a4e PortMapper: Status output for /debug 2015-04-22 14:45:40 +00:00
zzz
c3af99685d log tweak 2015-04-22 12:00:46 +00:00
zzz
e1d9e05b8d i2ptunnel: Fixes and cleanups for command line testing;
catch IAE from getInstance() if i2ptunnel.config isn't found
in app context; log tweaks; config command tweaks
Unit tests: Fix several NPEs in LocalClientManager,
implement HostLookup
2015-04-22 11:59:40 +00:00
zzz
212f6b472a i2ptunnel: Catch and log uncaught errors in thread pool 2015-04-21 20:37:59 +00:00
zzz
fdada78edf Reseed: Disable non-su3 reseeding 2015-04-21 18:48:11 +00:00
zzz
638c5429d2 NTP:
- close socket in finally
 - really comment out main()
2015-04-21 14:49:48 +00:00
zzz
b67bbd7065 improved locking 2015-04-21 14:33:59 +00:00
zzz
1caf3e778b Router timestamper:
- Add country-to-continent mapping
 - Add continent pool.ntp.org zones as first fallback,
   this will improve time service for countries that don't have a zone
 - Don't start threads in constructors
 - Fix logging, better prevention of initialization loops
 - Log severe errors to wrapper log also
continent.txt file from http://dev.maxmind.com/geoip/legacy/codes/country_continent/
Creative Commons Attribution-ShareAlike 3.0 Unported License
http://dev.maxmind.com/geoip/legacy/geolite/
Terms already met in LICENSE.txt
2015-04-21 14:22:05 +00:00
zzz
fd82fff07a Transports: Reduce idle timeouts 2015-04-21 09:58:46 +00:00
zzz
a6ac8f8c09 Blockfile: Unroll recursive initialization of BSkipLevels 2015-04-20 22:56:08 +00:00
zzz
19a26f8e22 Reseed: Prep for disabling non-su3 fetches (ticket #1513) 2015-04-20 18:48:00 +00:00
zzz
46e85cf265 only reset the sotimeout if not proxied 2015-04-20 17:57:57 +00:00
zzz
8f321b5427 EepGet: Set soTimeout for non-proxied fetches to enforce
header timeout and prevent long reseed hangs
2015-04-20 17:53:29 +00:00
zzz
e1f8f1a3f4 Reseed: Remove all default HTTP URLs (ticket #1514) 2015-04-20 16:11:33 +00:00
zzz
935a5b573d Reseed: Better error message if no valid URLs for configuration 2015-04-20 15:45:49 +00:00
zzz
8c2636aa99 Reseed: Honor SSL/non-SSL setting when custom reseed list is set (ticket #1136)
patch from "Inondle", cleaned up and tested
2015-04-20 15:33:03 +00:00
zzz
03ddb1075c BuildHandler: Don't enforce conn limits for P or X 2015-04-20 13:15:30 +00:00
zzz
72eb2c058c Streaming: Move Packet.writeSignedPacket() to PacketLocal 2015-04-20 13:13:55 +00:00
zzz
a100d2ccf9 javadoc, remove unneeded volatile and initializer in TCG 2015-04-20 13:12:21 +00:00
zzz
ecfb3e94c8 javadoc and debug log tweaks for ST2 2015-04-20 13:09:48 +00:00
zzz
c31d6b1ac1 javadoc fix 2015-04-20 13:09:13 +00:00
zzz
65993e1d50 add methods to simplify logging 2015-04-20 13:05:14 +00:00
zzz
47c4c0d6bb add all known dsa-only hosts to list 2015-04-19 19:35:38 +00:00
zzz
b2872e6110 I2CP Multisession - Work in progress:
Start availability notifier in subsession
Availability notifier cleanup
Various log tweaks added while chasing this down
Better subsession state management
I2PSocketManagerFull verifies subsession to force connect()
Successfully tested
2015-04-19 19:05:53 +00:00
zzz
b8c8d5b447 I2CP Multisession - Work in progress:
Accept subclient data message down client's tunnel in IMD
2015-04-19 15:49:02 +00:00
zzz
32049d7bfc I2CP Multisession - Work in progress:
Reuse LS encryption keypair from primary LS
Log tweaks
2015-04-19 14:49:13 +00:00
zzz
f0fdb35ba6 I2CP Multisession - Work in progress:
Fix creating subsession LS from primary LS
2015-04-19 03:35:40 +00:00
zzz
d8baf62966 I2CP Multisession - Work in progress:
Stub out hardcoded list of DSA-only destinations
Tweak client name length in summary bar
Force initial leaseset request for subsession
Send SessionStatus msg before LS request for subsession
2015-04-19 03:11:37 +00:00
zzz
be8f7f9676 I2CP Multisession - Work in progress:
Fix sending CreateSessionMessage for subsession
New AliasedTunnelPool for subsessions, don't reuse TunnelPool,
so it has its own settings
Fix addAlias()
Simplify refreshSettings()
Send status message on subsession create failure
Fix settings for subsession
2015-04-19 01:32:30 +00:00
zzz
57b641bf63 I2CP Multisession - Work in progress:
Fix NPE in receiveMessage()
2015-04-18 20:45:30 +00:00
zzz
ff5d29de1a I2CP Multisession - Work in progress:
Fix NPE in addSubsession() by creating key stream
Set sigtype for subsession
2015-04-18 19:50:14 +00:00
zzz
91e98ba447 I2CP Multisession Work in progress:
Fix NPE in requestLeaseSet()
Fix setting new session ID in SessionStatusMessage
Fix subsession support detection
Streaming: one socket manager, multiple connection managers.
Change data structure for subessions in socket manager
Subsession cleanup on destroy
I2PTunnel: add DSA subsession for non-DSA shared client
Javadocs
2015-04-18 19:01:23 +00:00
zzz
6a644dd0e5 propagate from branch 'i2p.i2p' (head 66743cfb9b4e1c257e4f0a20a318ee7eb1fb607c)
to branch 'i2p.i2p.zzz.multisess' (head 4533ba250cb8e49044f5144b34014e9bc618cdc7)
2015-04-18 14:08:22 +00:00
zzz
7b82393336 atomics and finals 2015-04-17 17:15:22 +00:00
22993e1ea6 installer/resources/eepsite/jetty-ssl.xml: fix comments 2015-04-17 14:18:56 +00:00
341bd6d7ca tweak to debian apparmor rules 2015-04-17 14:15:05 +00:00
13d5a36cfc drop unneeded patch (ty zzz) 2015-04-17 14:14:06 +00:00
f3bb84f2c0 merge of '4cd641356d3ecf443fa79aa64c8ad553a37022da'
and 'b9d4479f7e0f562a5fd47f2d494fe1b2b0925cbe'
2015-04-17 13:46:44 +00:00
1d496404be Separate loading and starting of TunnelControllers 2015-04-17 13:45:37 +00:00
zzz
51233371e0 history for prop, -5 2015-04-17 13:43:48 +00:00
zzz
bc0a7ebbbc propagate from branch 'i2p.i2p.zzz.test2' (head b6de226d1664089488ab2b438fe7457e9fb8e563)
to branch 'i2p.i2p' (head 0cf35c87b68a5360bd35257e36dfe7f740e53693)
2015-04-17 13:18:22 +00:00
zzz
72c78b3870 config for SSL to eepsite 2015-04-17 13:03:48 +00:00
zzz
5555c52376 Streaming: Locking for next send time,
rename shadowing field in inner class
2015-04-17 13:00:16 +00:00
e1842be049 Don't automatically start TCG on Android 2015-04-17 11:21:26 +00:00
zzz
6ceb4fcf42 history for prop, -4 2015-04-16 23:25:49 +00:00
zzz
50b68d4e1c propagate from branch 'i2p.i2p.zzz.815' (head 43bce385eecdf95bba08985211b80099d1224462)
to branch 'i2p.i2p' (head 1b89427bd2952dc4be08fba14ad1d814d722739f)
2015-04-16 23:19:48 +00:00
zzz
3f46228f0b ISJ: Reduce max search depth to reduce ff load
- from 7 to 6 if not ff
- from 7 to 3 if ff (we don't need to backtrack much if any, we know most of the ffs)
2015-04-16 22:02:35 +00:00
zzz
6c954f0b68 Transport: Fix NTCP countPeers()
O/P conn limit adjustment
2015-04-16 21:55:43 +00:00
zzz
69c2ed77a0 recognize Intel model 69 2015-04-16 15:38:13 +00:00
zzz
6f09224bdc sort clients on /configclients 2015-04-16 15:07:08 +00:00
zzz
568c90806d I2CP: Run DistributeLocal jobs inline (ticket #1506) 2015-04-16 14:24:56 +00:00
zzz
6e451c8d4d javadocs 2015-04-16 14:18:10 +00:00
zzz
12fd585625 Transport: Fix active peer count for NTCP,
which will make the network-down message in the console consistent.
Javadocs for getActivePeers() and getActiveSendPeers()
Make getActivePeers() and getActiveSendPeers() abstract in TransportImpl
Make getActivePeers() and getActiveSendPeers() more efficient
Preliminary conn limits for P/X
Log tweaks
2015-04-16 14:13:23 +00:00
zzz
997fbb3392 log on failed plugin update check 2015-04-16 13:14:40 +00:00
zzz
089626f6b1 increase max i2psnark tunnels to 10 2015-04-16 13:13:32 +00:00
zzz
71d2049fe8 OOM log tweak 2015-04-16 13:11:34 +00:00
zzz
e5aee3001f bump -2 2015-04-15 18:20:52 +00:00
dev
ec62bcbf8e propagate from branch 'i2p.i2p.tuna.tmp' (head 73f55ef56c4b4800364bc92d69794a7b6715c5a7)
to branch 'i2p.i2p' (head 20e0a6d51df8fa6918a48ac01c808e56d3540bf1)
2015-04-15 16:25:58 +00:00
dev
a8f013f3e4 merge of '303a05a4ccfb4162f4cca475bca49d77dceb06f9'
and '9c1c14d60b15e3d9eed4b291a7fae39c11d3c993'
2015-04-15 16:17:24 +00:00
dev
037cd78dc7 #1069: Propagate fix into i2p.i2p from i2p.i2p.tuna.tmp
* Replace SimpleScheduler with SimpleTimer2
 * Bump version number
2015-04-15 16:15:53 +00:00
dev
b31ae4bae5 propagate from branch 'i2p.i2p.tuna.tmp' (head 1bba286bdb7f8ba879c4db3f356676151674a201)
to branch 'i2p.i2p' (head 5698b31632398b8156a3b4cc215fed677cf205bf)
2015-04-15 16:08:29 +00:00
dev
54dba980b4 #1069: Replaced SimpleScheduler with SimpleTimer2 in a few places 2015-04-15 15:32:40 +00:00
dev
dc19d2fab3 SimpleTimer2: Removed debug print 2015-04-15 15:18:02 +00:00
dev
3a57310fbe SimpleTimer2: Call the 3-arg addPeridicEvenet() from the 2-arg addPeridicEvenet() 2015-04-15 14:42:39 +00:00
749e19a1c3 fixes to apparmor profile for i2prouter 2015-04-14 18:50:45 +00:00
zzz
de6608f6b8 Streaming: Handle reset packets without a FROM field, validate
signature using connection's destination
Log tweaks
Remove 0 arg from addRateData() calls
2015-04-14 14:11:48 +00:00
zzz
cd6d9cdd94 Router: Fix NPE on bad share bandwidth config (ticket #1524) 2015-04-14 14:04:31 +00:00
zzz
e45413d417 Update: Don't log an error for the "dummy" updater (ticket #1525) 2015-04-14 14:01:50 +00:00
11c3230150 updates to apparmor profiles
- hardening (restrict access to proc to owner)
- removing files covered by abstractions
- indentation per apparmor profile style
2015-04-14 01:00:10 +00:00
zzz
dd99978b19 0.9.19 2015-04-12 13:32:49 +00:00
zzz
dd265bbd54 Updates after review:
Remove meeh.i2p as update host (ticket #1515)
Re-add 193.xxx https reseed
Fix SocketManagerFactory property handling
Restore UPnP locale fix lost in the merge
i2ptunnel finals
I2NP unique id fixes
duplicate done() in ReseedChecker
bigger langbox in CSS
reformatting
Javadocs
2015-04-11 19:34:34 +00:00
dev
f5ba1b1b97 #1069: Replaced getInstance() with this 2015-04-09 22:32:59 +00:00
zzz
7825f0f84f i2ptunnel: Remove null workaround and stat, testing passed (ticket #335) 2015-04-09 16:04:06 +00:00
69a0324e86 update debian changelog; bump build 2015-04-09 12:06:26 +00:00
957d3545b6 Translation updates pulled from Transifex; start of Malagasy translation 2015-04-09 11:59:17 +00:00
466348a8c5 Updates to geoip.txt and geoipv6.dat.gz based on Maxmind GeoLite Country database from 2015-04-07. 2015-04-09 11:51:55 +00:00
zzz
e5b7e97ff4 Jetty: Set session cookies to HttpOnly in all webapps
i2psnark: Remove extra mime types in i2psnark web.xml;
added to Jetty's default by now, or in our mime.properties file
2015-04-08 19:45:37 +00:00
dev
4613e5f847 #1069: Improved patch according to feedback in ticket 2015-04-08 17:49:28 +00:00
dev
44f8154f07 #1069: Improved patch according to ticket feedback 2015-04-08 17:47:27 +00:00
zzz
5486874d1a Tunnels: Add config to disable Bloom filter for testing 2015-04-08 14:50:12 +00:00
zzz
d868ca4740 Tunnels: Add new Bloom filter size, increase bandwidth limit (ticket #1505) 2015-04-08 14:40:53 +00:00
zzz
780479be4b Tunnel: Add bloom filter warning if high bw but low memory 2015-04-08 13:36:56 +00:00
zzz
4705f01bc5 Router: Move update extraction code to new class in tasks/ 2015-04-08 12:33:16 +00:00
zzz
2f5f91a084 log tweaks 2015-04-08 11:52:02 +00:00
dev
e44fe98c7e propagate from branch 'i2p.i2p' (head 6ae35262874a1828d53ddad22e6a6c4db7b031c1)
to branch 'i2p.i2p.tuna.tmp' (head 7d48c8e1a01f6c6f6cef802e0436c50785d89716)
2015-04-07 17:01:47 +00:00
dev
d8fbc9c170 Formatting 2015-04-06 21:10:49 +00:00
dev
facbe8f9a0 #1069: Deprecated SimpleScheduler and moved functionality into SimpleTimer2 2015-04-06 21:05:24 +00:00
dev
4d8e577ffd findbugs: Added companion equals() and hashCode() methods to existing compareTo() 2015-04-06 16:04:05 +00:00
dev
80eb7635c1 findbugs: Added companion equals() and hashCode() methods to existing compareTo() 2015-04-06 15:40:39 +00:00
dev
e3103762b6 findbugs: Removed synchronization on concurrent object 2015-04-06 15:00:40 +00:00
zzz
cce710e377 IRC Server: Better timeout handling when reading initial lines (ticket #723)
Send error responses for timeout, EOF, and bad registration.
Only affects "user" mode, not webirc.
detab
move private fields to top
2015-04-05 17:36:30 +00:00
013c79bc45 Debian: Refresh patch 2015-04-04 21:59:36 +00:00
dev
1e375886bd merge of '2cb50c2864d750f33039bdbaeb6c15d2bd636ce4'
and 'cb2fbb74aa4412375fdbc546fe2218ca1704cd7d'
2015-04-04 19:49:47 +00:00
dev
d1ac24c65d findbugs: Covariant equals() method defined, Object.equals(Object) inherited 2015-04-04 19:49:37 +00:00
zzz
6aa1284848 i2ptunnel: Check for total header size too big,
log tweaks
2015-04-04 19:31:20 +00:00
zzz
bb082c35fc recognize more error codes 2015-04-04 19:14:30 +00:00
zzz
f7577e7de8 i2ptunnel: Return specific error pages to client on errors
in HTTP header processing in the HTTP server (ticket #1507)
2015-04-04 19:12:18 +00:00
zzz
b5df13d8b7 propagate from branch 'i2p.i2p' (head 2cb50c2864d750f33039bdbaeb6c15d2bd636ce4)
to branch 'i2p.i2p.zzz.test2' (head 9775e688503ec47dc12efa860a5571317af5f063)
2015-04-04 17:04:52 +00:00
zzz
9d76790cc5 javadoc 2015-04-04 17:01:40 +00:00
zzz
706ee243a5 Streaming read timeout fixes:
i2ptunnel:
- Better timeout handling when reading headers in HTTP server (improved fix for ticket #723)
  Enforce total header timeout with new readLine()
- Prep for returning specific HTTP errors to client on request timeout and header errors,
  instead of just closing socket... further work to be in i2p.i2p.zzz.test2 branch
Streaming:
- Fix read timeout on input stream - was waiting too long, often twice as long as timeout, or more
  Enforce total timeout even when notify()ed
- Fix read() returning 0 on read timeout instead of -1 (possible fix for ticket #335)
  This prevents passing partial headers to server on timeout
- Fix javadocs for read timeout to match current behavior
- Fix StandardSocket SoTimeout to account for differences with I2PSocket readTimeout
- log tweaks
2015-04-04 17:00:57 +00:00
zzz
351a1a8d27 i2ptunnel: Fix NoSuchElementException processing proxyList
caused by 03-31 checkin
2015-04-04 16:59:21 +00:00
zzz
6916cd7977 merge of '18f97452ba9fd5a7274ca689084ffe49b55c2cf3'
and 'c9caed8c48615dc740061fd28315ee659e1afe20'
2015-04-04 15:42:14 +00:00
dev
a444c25c2c silence findbugs: use of uninitialized value 2015-04-04 13:44:37 +00:00
dev
45bc533e38 findbugs fix: equals() used to compare array and nonarray 2015-04-04 13:37:18 +00:00
zzz
03e890b01c merge of '2e3b52a13c62422d86931cd194870b7e2698f3c2'
and 'fde331f6b10f0ef936a2aa0d68092df22348a581'
2015-04-04 11:21:50 +00:00
dev
0c90162e20 Copy directly into buffer without intermediate buffer 2015-04-04 02:27:24 +00:00
dev
ddc3ef8db3 Removed unnecessry buffering 2015-04-04 00:05:29 +00:00
zzz
fcec43b7ca i2ptunnel: Fix stopping tunnel on bad args when starting,
broken by new state code
2015-04-03 23:46:24 +00:00
zzz
edb614d970 wrapper.config: Remove old mortbay properties, unused by new Jetty 2015-04-03 23:40:39 +00:00
dev
820b99e3d3 Commented out java runtime argument 2015-04-03 23:20:39 +00:00
dev
cf0453cee0 Initialize uniqueId lazily to avoid wasting entropy for messages where it isn't used 2015-04-03 23:01:16 +00:00
zzz
75a8d8f6d3 more ssl config tweaks 2015-04-03 13:33:59 +00:00
zzz
1ac8d99145 i2ptunnel: Send HTTP server port 443 traffic to the server
transparently, to support HTTPS over the same tunnel,
when so configured.
Jetty: Add extensive help to jetty-ssl.xml for setting
up SSL on the same server.
2015-04-03 12:19:41 +00:00
dev
b7b5512e7a Formatting 2015-04-02 23:01:41 +00:00
zzz
485acd6c8d Remove all the startRunning() calls in constructors,
which duplicated the new ones in I2PTunnel, causing all sorts of trouble.
May still need more locking. TBD.
2015-04-02 20:52:40 +00:00
dev
bb68728c82 Added link to blog post explaining why the flag was added 2015-04-02 20:44:52 +00:00
dev
f3b2eb69d2 Fixed syntax error 2015-04-02 16:32:38 +00:00
dev
168d688fc9 Disable JVM stats being written to file, to prevent long (up to ~400ms) pauses.
- Blog post: http://www.evanjones.ca/jvm-mmap-pause.html
    - This change prevents tools that use the stats-file (/tmp/hsperfdata) from working (like jstat)
2015-04-02 16:05:43 +00:00
dev
ade93ea76d Added model name for Xeon E3-1230v2 2015-04-02 15:58:46 +00:00
44503af88b * Job Queue/stats: add stat/graph for amount of scheduled jobs. 2015-04-01 22:34:39 +00:00
zzz
eb7693561b spelling 2015-04-01 13:59:51 +00:00
zzz
3ccb03f9be propagate from branch 'i2p.i2p' (head bf7fc6bb213e734788d6527a4a689184ff73d6ad)
to branch 'i2p.i2p.zzz.test2' (head 6a04d890ef0ebf179ec6801d9d96afff26a2e515)
2015-04-01 13:48:18 +00:00
zzz
f3a2af8f10 make job runner quantity configurable 2015-04-01 13:48:06 +00:00
zzz
2ef615a3f7 I2CP: Allow larger client clock skew (ticket #1503),
better error message to client
javadocs
2015-04-01 12:50:51 +00:00
zzz
20197fc3ec i2psnark: Fix changing data directory on Windows (ticket #1503) 2015-04-01 12:41:38 +00:00
zzz
fadc624f7c API: Fix some client-side APIs to honor defaults in Properties;
add javadocs to specify where we do and don't (ticket #1491)
2015-03-31 13:18:11 +00:00
zzz
22c4149358 fix another split() bug 2015-03-31 11:26:02 +00:00
zzz
c770c6bc6a i2ptunnel: Fix multiple SSL outproxies in HTTP client
escape and truncate URL on error page
2015-03-31 11:21:32 +00:00
zzz
891408191e UPnP: Don't rescan when shutting down 2015-03-29 14:59:11 +00:00
zzz
9a8fa246a9 I2CP: Prevent NPE when router receives messages without prior session (ticket #1503) 2015-03-29 13:45:14 +00:00
zzz
83c3152b5d JobQueue: Don't start thread in constructor (ticket #973) 2015-03-29 13:40:04 +00:00
zzz
956730c5e9 log tweak to help diagnose ServerSocket closed 2015-03-28 10:54:00 +00:00
zzz
72b9c92a6e better 7 bit error message 2015-03-28 10:51:59 +00:00
zzz
349255d252 exit code checks and javadocs 2015-03-28 10:49:43 +00:00
zzz
ac902badcd log tweak to hide i2pd badness 2015-03-28 10:47:10 +00:00
zzz
9dc2ae0d7e fixup after prop 2015-03-28 10:25:45 +00:00
zzz
188bd6db7b propagate from branch 'i2p.i2p' (head 2ce39645bf3b3b7fc2f083ebcb073f104114e939)
to branch 'i2p.i2p.zzz.815' (head 4f0279eb4cf13e547a64913443ff7819a43962c0)
2015-03-27 14:47:49 +00:00
zzz
3a8ce64c84 I2PTunnel client-side locking fixes (ticket #815)
Checkin of patches from Oct. 2013, based on 0.9.8.1.
Had some issues back then, and not tested recently.
Prop from i2p.i2p to follow.
2015-03-27 14:16:41 +00:00
zzz
f3d573cab0 i2ptunnel HTTP client: Replace all getBytes() calls
with a Writer or getBytes("UTF-8") for efficiency and to
avoid encoding issues.
Store strings as strings, not bytes.
Catch IOEs to prevent cascading error pages.
Minor cleanups
2015-03-25 12:10:14 +00:00
zzz
9e18c7ea18 Streaming: Throw I2PSocketException when connection is reset,
display new error page in HTTP client (ticket #643)
javadocs
2015-03-24 14:33:36 +00:00
zzz
a975dc4427 Summary bar: linkify news headings, remove 'show news' link 2015-03-23 15:47:33 +00:00
zzz
b875e284af merge of '33b368d75d4b7536dd4a29efa35fba64e6dc409d'
and '8eb5a0d367c4b34eadc326e0ba727e998e6f5505'
2015-03-23 14:21:05 +00:00
46fe4298b9 States for TunnelController (#815) 2015-03-23 13:59:05 +00:00
9790d3ba64 Tweak so TODO is marked in IDEs 2015-03-23 12:50:33 +00:00
2d31f30a22 ReadWriteLock in TunnelControlGroup (#815) 2015-03-23 12:49:30 +00:00
2fefe93922 merge of '91e8b79f2d8c4ffd26867eb6ddd0ee63d22b0ca9'
and 'dd39c6a48fec46017ce527d8b8b8208369ecda5e'
2015-03-23 12:47:40 +00:00
399b068a4e Fixed NPE in test 2015-03-23 03:54:21 +00:00
zzz
dcffde6eeb Javadoc: missing package.html files in applications (ticket #1109) 2015-03-22 18:37:40 +00:00
zzz
78074f6a7e Javadoc: missing package.html files in i2p.jar (ticket #1109) 2015-03-22 17:32:35 +00:00
zzz
79dc01f7e4 Javadoc: missing package.html files in router.jar (ticket #1109) 2015-03-22 16:35:21 +00:00
zzz
0f6040ecb1 enforce a minimum number of RIs to bundle 2015-03-22 12:44:32 +00:00
zzz
a0ab72e362 more /configreseed help text 2015-03-22 12:26:05 +00:00
zzz
2c45378c6d Console: Better status feedback on manual reseed from URL
Reseed: Better status feedback and cleanup in summary bar
2015-03-22 10:08:48 +00:00
zzz
44c75187f5 set tunnel name for ping 2015-03-22 08:30:38 +00:00
zzz
2609a4d124 Floodfill: Don't become ff w/o ECDSA support
Don't transition to non-ff when shutting down if configured true
Set ff for cap P and X
2015-03-22 08:30:10 +00:00
zzz
2d58501db3 Plugins: Add form to browse for local plugin file to install,
easy since we have multipart in console now
Better status feedback from update manager to console
2015-03-21 17:23:19 +00:00
zzz
a337185820 better temp dir fallback and logging 2015-03-21 12:38:48 +00:00
zzz
9c0aa0c271 randomize i2psnark temp dir name 2015-03-21 12:19:03 +00:00
zzz
b2e908f094 add removed certs to delete list 2015-03-21 12:14:07 +00:00
zzz
ef32d37073 TunnelPool: Reduce expl. quantity adder for ff since we're
doing mostly direct lookups now, and delay adding them at
startup to give client tunnels a chance
2015-03-21 12:13:22 +00:00
zzz
f0961a9658 more accurate job stats 2015-03-21 12:10:10 +00:00
876b5714be merge of '7c32d2fbb882e6d56cb06fc0e272f05ee2c0b8ed'
and '7e72459b27feb5176e98c5efc843f63e46e8f63d'
2015-03-21 09:59:00 +00:00
825cd7ff4c Docstring spelling fix 2015-03-21 04:29:45 +00:00
47f3476078 More I2PTunnel UI logic into GeneralHelper 2015-03-21 04:29:32 +00:00
7b10ebc117 fix previous commit 2015-03-20 19:43:01 +00:00
e5cdfd206d Re-enable uk.reseed.i2p2.no; it's back up (ticket #1487) 2015-03-20 19:25:42 +00:00
zzz
dd4c62b560 TunnelDispatcher: Start part. tunnel cleanup job sooner since
we're accepting tunnels sooner.
2015-03-20 16:54:03 +00:00
zzz
aae801efaf sort config tabs 2015-03-20 16:51:34 +00:00
zzz
e02d44433d missed file from last checkin 2015-03-20 13:32:42 +00:00
zzz
590a3c98e5 charset 2015-03-20 12:32:53 +00:00
zzz
7f472e4ee9 Console:
- Move multipart form support from susimail to jetty-i2p.jar
    so console can use it
  - Add multipart form support to formhandler.jsi and FormHandler.java
Reseed:
  - Fix zip magic number
  - Finish manual reseed from local file
package.html files for jetty-i2p.jar
2015-03-20 12:30:04 +00:00
zzz
a3802d4d8b javadoc fix 2015-03-20 12:29:40 +00:00
zzz
59348f8dbd Reseed:
- Add form to manually reseed from zip or su3 URL
    (result status not yet working)
  - Add form to manually reseed from local zip or su3 file
    (not yet working, needs multipart/form-date moved from susimail)
  - Add form to create reseed zip file to share
    (working)
  - Backend support and refactoring in reseed code
2015-03-19 23:17:18 +00:00
zzz
8742a66f2f fix susimail HTTP headers 2015-03-19 21:36:23 +00:00
zzz
a2f027e136 NetDB: Don't publish non-ff RI on exit if we are coming right back 2015-03-18 19:58:31 +00:00
zzz
cb4359cd0a Streaming: Reduce min RTT again 2015-03-18 17:50:40 +00:00
zzz
163c172823 StatisticsManager: Publish dummy LS count if we just started 2015-03-18 17:29:08 +00:00
zzz
80a2d2c1f5 Router: Allow disabling the setting of some System properties, for embedded applications 2015-03-18 14:40:17 +00:00
zzz
486f282999 add CoreVersion.getVersion() 2015-03-18 14:13:05 +00:00
zzz
1293dccf35 I2CP Multisession support and multiple destinations in one tunnel pool.
Work in progress.
Router-side I2CP mostly done.
Client-side I2CP mostly done but undecided on how to handle
listeners.
Streaming stubbed out but may be wrong, may need multiple socket managers,
not clear how to proceed.
I2PTunnel not started.
Blacklist of DSA-only dests not started.
Router leaseset publishing not correct. Not clear whether to have
additional tunnel pools with flags, or put the tunnel pools into
the client hashmap twice. Client config contains destination,
may need to move that to tunnel pool.
2015-03-18 12:59:50 +00:00
zzz
91fe62eee3 History for prop, -6:
Prop from i2p.i2p.zzz.upnp, containing:
Cyberlink for Java v3.0 + (2015-02-15) from github
See branch revs for more info and fixups.
Previous was Cyberlink for Java v2.1 (2011-09-16) from SVN.
From a scan of the 2.1-to-3.0 diff, it's mostly
formatting changes, getting rid of DOS line endings,
and a couple of new features we don't need.
I see very few fixes. And the Device.getAbsoluteURL()
"fixes" did not work in my testing, I had to fix them again.
Unlikely to fix any of the open UPnP tickets #481 #725 #728 #1194 #1480.
But now we're current.
2015-03-18 12:15:41 +00:00
zzz
d3f5596cb2 propagate from branch 'i2p.i2p.zzz.upnp' (head 8719ae9a1473d748947733043f465a4589cc23d5)
to branch 'i2p.i2p' (head 5ae9785903c4b9452f4241758e8ddc1338e94574)
2015-03-18 12:13:41 +00:00
zzz
d7a88db87a NetDB:
- Send exploratory lookups directly to the floodfill if
    we are already connected to him
  - Don't encrypt RI lookups when overloaded
  - Don't explore when overloaded
  - SearchJob cleanups
Tunnels: Drop instead of reject requests on high job lag
2015-03-18 12:10:30 +00:00
zzz
0af1f67c33 Router: Revert deprecation;
addCapabilities() tweaks
2015-03-17 21:38:59 +00:00
zzz
8dde7b70db UPnP:
- New fix Device.getAbsoluteURL() once again after merge
 - Don't load local files in Service.getSCPDNode()
2015-03-17 21:29:03 +00:00
zzz
64faeef6c4 restore previous javadoc fixes after merge 2015-03-17 19:11:21 +00:00
zzz
c79e4aeaea propagate from branch 'i2p.i2p' (head 97716ce246bcbee153cf1a28253bac2385ddf7be)
to branch 'i2p.i2p.zzz.upnp' (head e508f71db90f382080b98d11efbdb4d88c1bc406)
2015-03-17 18:49:37 +00:00
zzz
8b6a86e391 merge of 'c5e201203713f0fefcdef642ca50597f8936c79c'
and 'fbd68f812db1e891f96e212b3a5938beec0233b5'
2015-03-17 18:21:12 +00:00
zzz
92daf4a8df Cyberlink for Java v3.0 + (2015-02-15) from github:
Unmodified cybergarage-upnp from github rev 9499b03 2015-02-05
https://github.com/cybergarage/cybergarage-upnp/commits/master
which is the same as rev 3ed1af9 2014-07-28 except for
the addition of README.md which we aren't using.
This is post-version 3.0.

Omitted files:
  router/java/src/org/cybergarage/xml/parser/XercesParser.java
  router/java/src/org/cybergarage/xml/parser/XmlPullParser.java
  router/java/src/org/cybergarage/xml/parser/kXML2Parser.java
chmod all files back to 644.

Diverging from 2.1 checkin rev 59eae97dbb470d8c4a1e4dba3a9763e134bb0c53
in prep for merging.

License unchanged.
Compile tested only.
2015-03-17 14:36:05 +00:00
zzz
819b07a52a minor refactor 2015-03-17 13:18:30 +00:00
zzz
b8f8c6129d prevent negative sleep 2015-03-17 13:17:38 +00:00
zzz
25d1ae195a New translations from tx:
Indonesian, Finnish, Malagasy, Albanian, Korean, Ukrainian, Brazilian Portuguese, Dutch
Note broken translations in TX config file
2015-03-17 13:16:40 +00:00
zzz
d22b05e114 NetDB: Send RI lookups directly to the floodfill if
we are already connected to him
(from ISJ only; does not affect exploration, verifies, LSes, ...)
2015-03-16 22:40:25 +00:00
zzz
db25eff74a log tweak 2015-03-16 22:38:29 +00:00
zzz
c927441d66 case-insensitive sort of stats 2015-03-16 20:14:32 +00:00
zzz
7e4832d5f2 lint 2015-03-16 15:44:45 +00:00
zzz
819b35c760 Router: Increase exploratory tunnel quantity if floodfill 2015-03-16 15:20:03 +00:00
zzz
071498c413 Router: Republish RI early if capabilities change
- RI javadoc clarifications WRT caps
2015-03-16 15:10:36 +00:00
zzz
7125ed0492 Apache Tomcat 6.0.43 2015-03-16 09:34:37 +00:00
zzz
de201bdd9c Throttle: Reject tunnels based on job lag 2015-03-16 09:12:41 +00:00
zzz
4fccd258e6 javadoc fixes 2015-03-16 09:08:03 +00:00
56d705739b Migrate accessors to GeneralHelper, fix broken outproxyAuth boolean 2015-03-15 20:26:36 +00:00
2a9d61b1ed merge of '6eb0d9bd5731afaa33fa1a0c82dd08a1d16d104b'
and 'f4fa275a1d6e014c64c5ff063fb890dd05e4ed60'
2015-03-15 20:13:16 +00:00
zzz
a9f6839a04 NetDb: Track flood success 2015-03-15 13:37:22 +00:00
zzz
5b555855ef Clear displayed tracker issues when restarting torrent
lint
2015-03-15 12:52:26 +00:00
zzz
76cf80a3d0 Job Queue:
- Fix overload dropping
   - Add drop count to job stats
   - Decrease overload threshold again
   - Concurrent tweaks
2015-03-15 11:48:12 +00:00
zzz
4c6aaa32b6 Router javadocs, stub out class P,
throw ISE instead of exit() if another router running
2015-03-15 11:42:00 +00:00
zzz
74ab1bff53 threshold tweaks for floodfill 2015-03-15 11:37:03 +00:00
zzz
b5bba5e3c8 log tweak 2015-03-15 11:35:49 +00:00
7e5bd17714 Move saveTunnel() and deleteTunnel() from IndexBean into i2ptunnel-ui.jar 2015-03-14 02:52:16 +00:00
zzz
ec6207fc78 Job Queue:
- Drop garlic message decryption jobs on overload
  - Decrease overload threshold
2015-03-13 17:50:32 +00:00
zzz
36d47a0ba9 minor cleanup 2015-03-13 17:48:29 +00:00
zzz
0289cefd8d lint 2015-03-13 17:26:15 +00:00
521eb2d8f8 Router: create router.integratedPeers (floodfills) stat, and allow graphing of it. 2015-03-13 16:53:08 +00:00
zzz
0494266649 i2psnark:
- Auto-reduce tunnel quantity based on peer count
  - Increase max tunnels
2015-03-13 14:56:35 +00:00
zzz
8fac5c064e fix i2ptunnel.war 2015-03-13 14:14:49 +00:00
0b6f74e646 Enable proxy authentication type to be configured 2015-03-11 23:46:38 +00:00
b8b272a5b8 Better multi-mode setters 2015-03-11 10:57:07 +00:00
a570e09166 Explicit boolean setters in TunnelConfig 2015-03-11 10:34:02 +00:00
1919e36c30 Move TunnelConfig to .ui, separate it from i2ptunnel.jar 2015-03-11 03:58:24 +00:00
812c00f11e Move TunnelController config creation logic into class that Android UI can use 2015-03-10 20:05:45 +00:00
419e27cfd1 Disable (jp|uk).reseeder.i2p2.no (tickets #1422, #1487) 2015-03-09 15:49:52 +00:00
d761c02909 Remove commented out reseed server i2p-netdb.innovatio.no and its associated certificates. 2015-03-09 15:40:40 +00:00
zzz
c7d1d2b69a console: Hide cancel graceful shutdown button unless we are shutting down 2015-03-08 20:23:00 +00:00
zzz
0972b6b56a more test cases 2015-03-08 20:20:50 +00:00
zzz
6e3cf7869f log tweak 2015-03-08 20:20:06 +00:00
zzz
f7337b4891 i2psnark: Increase min and default bandwidth
Add creation date to created torrents
log tweaks
more test cases
2015-03-08 20:19:12 +00:00
zzz
55161dec17 Router Throttle: Tweak messages during probabalistic rejection,
other cleanup
2015-03-08 20:07:05 +00:00
zzz
b65b53b0df Transport: Add missing bogons to IP validity check
192.0.0.2 seen out there (RFC 6333)
2015-03-08 20:05:50 +00:00
zzz
49e1e1c8a4 minor transport cleanup 2015-03-08 20:02:28 +00:00
9b73fcda40 Include priority for logged strings 2015-03-04 19:07:28 +00:00
b92e1ee9aa Split LogWriter to make Android subsititution simpler 2015-03-02 10:56:50 +00:00
04ac54cd35 Re-enabling host; its su3 files are now properly signed. 2015-03-01 23:37:27 +00:00
d47916f753 re-enable jp.reseed.i2p2.no (ticket #1422) 2015-03-01 22:34:15 +00:00
zzz
b0ea1d691a log fix, comment fix 2015-02-23 09:50:43 +00:00
zzz
ce041dfbc1 0.9.18 2015-02-22 09:52:27 +00:00
zzz
4613da093d log level tweak, bump for review 2015-02-19 09:47:44 +00:00
2d5f7aaae5 year typo fix 2015-02-18 23:48:21 +00:00
5a7a7ac83d typo fix 2015-02-18 22:36:52 +00:00
f217af2deb extend checkcerts.sh to print bits and hash information 2015-02-18 22:36:33 +00:00
6d58f9a354 Updates to geoip.txt and geoipv6.dat.gz based on Maxmind GeoLite Country database from 2014-02-04. 2015-02-18 22:34:09 +00:00
29953ea5e4 Debian: confine daemon with apparmor (ticket #1061) 2015-02-18 22:25:24 +00:00
bb9cef1e40 Add example apparmor profile (ticket #1092) 2015-02-18 21:38:25 +00:00
ece2f1484c refresh debian patch 2015-02-18 21:32:34 +00:00
a3c8a4363d Pulling in translations from Transifex 2015-02-18 20:20:52 +00:00
2f90b5a201 refresh debian patch 2015-02-17 19:27:11 +00:00
d4bbdc28f3 FloodfillMonitorJob: use the 60 min rate avg instead of lifetime avg, but fallback to the lifetime.
SAMStreamSend: fix tabbing from earlier commit.
2015-02-16 17:27:17 +00:00
f41df969b7 merge of '3e2231827648f614c5df325d9904e8d454e9a847'
and 'cddd2e9d2cf6f5c50a7d9948fbb2b3247d9768eb'
2015-02-16 08:07:54 +00:00
f87d006a1c FloodfillMonitorJob:
- Use lifetime average value for job lag
 - Change the job lag limit to less than 25ms
 - Consider and set the limit of backlogged tunnels to less than 5
2015-02-15 22:40:36 +00:00
f4fa9a7d8f New cert for i2p.mooo.com. Will be switched on the server in a future release. 2015-02-15 19:16:07 +00:00
c52047e6cd Remove reseed host by hoster's request 2015-02-15 19:10:48 +00:00
9163d41228 * I2PSnark, Jetty, SAM, crypto: findbugs resource leaks. 2015-02-10 21:57:27 +00:00
1be9bb29e8 disabling us.i2p2.no over http 2015-02-08 15:05:04 +00:00
522a89a045 reseed: remove reseed.info; hoster is discontinuing the service. 2015-02-08 15:00:01 +00:00
zzz
06b9b6a7fb more clock log tweaks 2015-02-08 12:52:51 +00:00
zzz
7f9c565cd7 fix early NPE 2015-02-08 00:42:43 +00:00
zzz
201afc823e SSU: Limit range for valid clock skew
Reduce log level for ignored clock adjustment
2015-02-07 14:13:14 +00:00
zzz
f4c79c885a Transport: Ban routers if they are too old and we are non-DSA 2015-02-07 14:03:42 +00:00
zzz
656202c9db debug tweak 2015-02-07 14:01:56 +00:00
zzz
72b64072d5 missed file for event log change 2015-02-07 13:59:11 +00:00
zzz
b72271f9a4 NTCP: Block IP for a while when incoming connection is dropped before
receiving a message. Possible workaround for tickets #551, #1075, #1411.
Root cause of problem not yet found.
- Increase threshold for loop throttle, this probably isn't the problem.
- Log tweaks
2015-02-06 15:09:45 +00:00
zzz
b0d09d28f4 SSU: Change peer test log error to warn.
This is caused by an i2pd bug, already fixed.
2015-02-06 11:18:20 +00:00
zzz
b9197e35b5 NetDB: Reduce max job lag for floodfill, was far too high 2015-02-06 00:51:32 +00:00
zzz
e431be2cbe NTCP minor cleanups, javadocs, atomics 2015-02-06 00:49:21 +00:00
zzz
761c883c1f Add event log for reachability change 2015-02-06 00:47:41 +00:00
zzz
60f86f342b Decrease DH refiller initial delay and increase buffer size
to reduce chance of running out on high-bandwidth routers
2015-02-06 00:46:13 +00:00
zzz
1234b6b148 stat tweak 2015-02-06 00:45:24 +00:00
6f45242fc8 Plugin SU3 cert for str4d@mail.i2p 2015-02-04 23:03:42 +00:00
zzz
36c45ccb7b Console: Show UPnP status even if disabled (ticket #1459) 2015-02-04 16:11:17 +00:00
zzz
90cf71b5bc rename headers after review 2015-02-04 11:54:18 +00:00
zzz
7165dc7860 NetDB: Don't flood an RI back to itself. While Java ffs self-flood,
other implementations may not.
2015-02-01 19:57:18 +00:00
zzz
5491287931 OCMOSJ: Pick a OB tunnel at random, not with the OBEP closest
to the lease, as that may be reducing the odds of trying a
different path and hurting connection reliability.
While the change may slightly increase connection congestion,
if it helps with reliability then it's worth it.
2015-02-01 19:53:11 +00:00
zzz
7256096b8a Router: Call warmupCrypto() earlier in the initialization, so it
actually happens before some other thread needs the crypto
2015-02-01 19:49:25 +00:00
zzz
b6008b5414 Crypto: Catch IAE in generateCertificate() 2015-02-01 19:47:09 +00:00
zzz
1042d21278 log tweak 2015-02-01 14:07:56 +00:00
zzz
47eff7ee86 PRNG: Don't hang forever at startup waiting for SecureRandom init 2015-01-31 17:37:59 +00:00
zzz
3da850a6b9 bump -17 2015-01-31 15:20:37 +00:00
zzz
a1358deda2 private method 2015-01-31 15:16:42 +00:00
zzz
df0bbfd615 Netdb: Encrypt lookups for 32-bit x86 also 2015-01-31 15:13:52 +00:00
zzz
0568ac3aa5 javadoc 2015-01-31 15:13:04 +00:00
zzz
e63a69170e Transport: set 4 MBps max bw due to bloom filter 2015-01-31 15:12:21 +00:00
zzz
711f8dedd9 console: disable changing log path 2015-01-31 15:10:45 +00:00
zzz
09c3737a94 reduce log level 2015-01-31 12:53:49 +00:00
zzz
9384424173 disable floodfill in laptop mode 2015-01-31 00:12:25 +00:00
zzz
4936f08212 Console: Don't display invalid IPv6 addresses as options on /confignet 2015-01-30 17:26:45 +00:00
zzz
03f4ebbe35 add throttle stat 2015-01-30 16:17:39 +00:00
zzz
0671785ab2 NTCP: Throttle event pumper if looping too fast (tickets #551, #1075, #1411)
This is just a simple workaround, root cause unknown.
May need tuning.
2015-01-30 16:00:45 +00:00
zzz
381dbc4b4a Proxy error page tweaks 2015-01-30 15:55:12 +00:00
zzz
84cf531f5f SSU: Fix transition from firewalled to non-firewalled 2015-01-29 22:23:28 +00:00
zzz
175806115b SSU:
- Sort introducers in router address, so we won't force a republish
due to a different ordering of the same introducers
- Don't publish an address if we need introducers but don't have any,
so the user won't see a 'firewalled with inbound NTCP enabled' message
2015-01-29 20:34:49 +00:00
zzz
86b45ab1e5 SSU: Fix replaceExternalAddress churn when firewalled,
caused by change in 0.9.17 removing IP/port from published address
when firewalled. We must now keep a local unpublished address
also, containing the detected IP/port.
2015-01-29 15:53:04 +00:00
zzz
17939036bc move comparators to their own class 2015-01-29 12:52:46 +00:00
zzz
5bf515441e Router: Ensure nonzero tunnel IDs 2015-01-28 21:43:27 +00:00
zzz
06edb9f2a6 Router: Stub out capabilities P and X (ticket #1447) 2015-01-28 18:07:45 +00:00
zzz
33b58f5fab UPnP:
- Callback when device removed
  - Consolidate callbacks
  - Clear ignored devices after primary device removed
    to allow one to be promoted on rescan
2015-01-28 17:38:52 +00:00
zzz
47a012a4dd initialize blocklist sooner 2015-01-28 17:36:53 +00:00
zzz
e5801be43e only use valid IP for geoIP 2015-01-28 16:25:50 +00:00
zzz
d5a6ac591c more UPnP locking fixes 2015-01-28 16:25:08 +00:00
zzz
59373f9bdf UPnP:
- Rescan for devices periodically and when reachability changes (tickets #661, #959)
  - Don't put "I2P" in registered protocol name
  - Add uptime to UPnP info
  - HTML escaping
  - Remove static log on Android
  - Javadocs and cleanups
2015-01-28 15:04:59 +00:00
zzz
5da492b9e5 spelling 2015-01-19 12:44:31 +00:00
zzz
9bcc951f10 i2psnark: Skip incompatible welterde tracker if we are ECDSA 2015-01-11 18:21:45 +00:00
zzz
3270ba840e I2PTunnel: Add option for multihoming optimization 2015-01-11 17:36:39 +00:00
zzz
45b3e44cc2 NetDB: Stubs for bandwidth estimation during reseed (ticket #935)
Incomplete and may not ever be, for evaluation only.
2015-01-10 16:51:13 +00:00
zzz
7ed855b2d2 NetDB: Publish RI faster when costs change (ticket #1437)
PLRIJ interval was 37-50 minutes. Reduce that by 4x,
but for 3 out of 4 times, only publish if something changes,
including cost. 4th time, always publish, as before.
This will hopefully reduce routers getting slammed to
conn limits on a transport.
2015-01-09 17:03:33 +00:00
zzz
f08552c2d1 javadocs 2015-01-09 16:58:57 +00:00
zzz
9a4c19b24b reduce log level 2015-01-08 19:32:42 +00:00
zzz
690b695373 remove jisko.i2p, down since 2014-11-08 2015-01-08 18:21:11 +00:00
zzz
65348b2365 more renaming 2015-01-08 18:20:08 +00:00
zzz
285c13d900 fix reseed checking at startup, broken in previous checkin 2015-01-07 23:15:10 +00:00
zzz
0a938d9048 Router: Don't reset uptime after a soft restart
Tunnels: Temporarily increase exploratory tunnel quantity at startup,
so that netdb refresh will work better
2015-01-07 20:11:04 +00:00
zzz
a02a265802 trim all xml news data 2015-01-07 19:55:37 +00:00
zzz
eeeeef81cf NetDB: Possible fixes for reseed completion not recognized (ticket #1384) 2015-01-07 19:16:55 +00:00
zzz
bcb9fe5f24 Startup: Accept tunnels after 10 minutes instead of 20 (ticket #1152) 2015-01-07 19:14:44 +00:00
zzz
37f34d83f8 Router: Add startup/shutdown state machine
Tunnels: Cleanup, catch more cases of zero-hop configuration
ClientAppConfig: Start i2ptunnel sooner
  Since BuildRequestor won't use a zero-hop exploratory as a paired tunnel
  for client builds, it's now safe to start client tunnels
  before the expl. tunnels are ready. This will save up to 90 seconds.
2015-01-07 17:54:21 +00:00
zzz
b3238079c3 reorder 2015-01-06 14:39:14 +00:00
zzz
ee1edb3383 renaming 2015-01-06 14:10:25 +00:00
zzz
7767430af2 EepGet: Fix PcapWriter 2015-01-05 17:05:36 +00:00
zzz
2e5185aa99 EepGet: Change command line default to 0 retries 2015-01-05 15:22:32 +00:00
zzz
6e847a4cc4 Streaming: Add API for sending/receiving payload in ping/pong 2015-01-05 15:09:12 +00:00
zzz
045f6dccf8 Latency reduction all over:
- SSU: Reduce ack delay
- Streaming: Reduce min RTO and flusher delay
- Tunnels: Reduce GW batching time
2015-01-05 13:19:34 +00:00
zzz
d7895a456a minor optimization 2015-01-05 13:17:59 +00:00
zzz
7753d05b61 UrlLauncher:
- Configure browser with routerconsole.browser (ticket #1159)
- Convert to ClientApp interface
2015-01-05 12:42:39 +00:00
zzz
043b4776c3 move port under interface in form 2015-01-05 12:40:46 +00:00
zzz
5db764de5f Blocklist:
- Rewrite to read and merge multiple files
- Include in update, use version in base dir too
- Increase limits
- Bug fixes
2015-01-05 12:38:38 +00:00
zzz
3ae846a713 m4b mime type 2015-01-03 14:15:48 +00:00
zzz
927e29b8ef I2PTunnel: Persist leaseset keys
I2CP: Use configured leaseset keys if available
2015-01-03 13:32:24 +00:00
d271411552 Added Dock fix for Mac OSX 10.10 2015-01-03 01:51:32 +00:00
31d98ac4a5 new reseed host 2014-12-30 02:18:30 +00:00
78f4cc8e30 Add two certs to deletelist (missed in last commit) 2014-12-22 16:27:58 +00:00
cce30a8f42 reseed changes
- cowpuncher is moving to rows.io
- (temporarily) disabling 193.150.* due to downtime
- removing unnecessary certs
2014-12-21 20:41:34 +00:00
zzz
a9e928fb46 Eepsite help: Removed statements requiring dest to end in AAAA.
Translations updated also, but may need some further fixup.
2014-12-19 14:14:04 +00:00
zzz
60017f7c55 Crypto: Stubs for encryption key types 2014-12-17 14:41:24 +00:00
zzz
eb46f74e24 I2CP: Don't log full session config on error 2014-12-17 14:30:11 +00:00
5e890bd781 checkremotecerts.sh: torify was recently deprecated and now is just an alias pointing to
torsocks, so let's use torsocks directly
2014-12-15 15:18:19 +00:00
zzz
20facf78d0 bump -3 2014-12-15 14:51:34 +00:00
zzz
96db43cc8e unchoke new peer faster 2014-12-15 14:43:37 +00:00
zzz
ab4f209c10 remove xml stats link 2014-12-15 14:40:38 +00:00
zzz
fa51a0aef4 enhance logging for inproxy rejections 2014-12-15 14:40:00 +00:00
zzz
aa6a5e053c raise max concurrent tunnel builds 2014-12-15 14:38:33 +00:00
zzz
03df6c2ba0 less casting 2014-12-15 14:38:07 +00:00
501f645e60 disabling reseed host i2p-netdb.innovatio.no: unresponsive hoster + config issues.
Could be re-enabled when/if problems are fixed.
2014-12-14 23:32:11 +00:00
zzz
23534b31c6 SU3File: Infer SigType from private key when signing,
Change default to RSA 4096
SigUtil: Add conversion methods for Java keys with unknown types
2014-12-14 17:52:23 +00:00
zzz
d35363cdbc SU3File: Fix getContentOffset(); fail on excess data after sig 2014-12-14 15:52:44 +00:00
zzz
ba34c90b7f EdDSA cleanup, another null resource check 2014-12-13 20:56:49 +00:00
94a19171ed reseed server and comment updates 2014-12-13 18:54:28 +00:00
8099591589 correct certificate line endings 2014-12-13 18:38:41 +00:00
df6bbc59b3 update of reseed ssl certificates:
The webpack* and cloudflare* certificates are for ssl.webpack.de and
cowpuncher.drollette.com, respectively.  I'm removing the smartcom.org
certificate because it's unused.
2014-12-13 18:29:12 +00:00
zzz
05a616aa0d SU3File: Implement 'extract -k' 2014-12-11 20:58:04 +00:00
zzz
c84105e783 add cacert cert to deletelist 2014-12-10 17:57:16 +00:00
zzz
262721cc90 SSU: reduce log level of uncaught errors processing I2NP message 2014-12-10 17:56:37 +00:00
c24168d5cd remove unused and weak md5 certficate 2014-12-10 14:39:44 +00:00
zzz
4e529a68d3 Console: Prevent two-word translations from splitting across lines in summary bar 2014-12-09 15:16:41 +00:00
4f3244e93b add new, stronger certificate for netdb.i2p2.no
The old certificate will not be replaced on the server yet.  The old cert is
SHA/1024-bit. New cert is SHA256/2048-bit key.
2014-12-08 23:50:06 +00:00
zzz
b2e17916e4 HTTP Proxy: Fix parsing of ECDSA address helper,
ignore '=' when comparing, reindent test
2014-12-08 14:12:00 +00:00
zzz
57ac344e7f show infohash in upper case 2014-12-08 14:08:45 +00:00
zzz
98e275d908 javadoc typo 2014-12-08 14:05:35 +00:00
zzz
8420b6c715 NetDB: Increase lookup throttle time 2014-12-08 14:05:08 +00:00
3dfcb2d5cc (temporarily?) disable jp.reseed.i2p2.no (ticket #1422), add a note that netdb.i2p2.no is currently v3 only 2014-12-07 15:42:57 +00:00
zzz
540720a912 unit test fixes 2014-12-05 16:18:25 +00:00
zzz
f86200e3ae history for prop, -1 2014-12-05 15:37:01 +00:00
zzz
9e43618028 Plugins: More thread group debugging for isRunning check;
Don't count Jetty RolloverFileOutputStream in the thread group,
to fix restart of a plugin
2014-12-05 15:35:38 +00:00
zzz
aacdba1bc7 KeyGenerator: main() test improvements
Allow specification of sig types on command line
2014-12-05 15:32:34 +00:00
zzz
c28d060d52 Update: Use last-modified instead of last-checked for the next
if-modified-since fetch, to fix failing to fetch the latest news
2014-12-05 15:30:53 +00:00
zzz
bf3fdbb1ab Increase default class O conn. limits to 350 NTCP, 1050 SSU 2014-12-05 15:27:24 +00:00
zzz
0a7a637d46 javadocs 2014-12-05 15:21:45 +00:00
zzz
e842165265 more argument checking, javadocs 2014-12-05 15:21:26 +00:00
zzz
2db82da910 cleanup 2014-12-05 15:19:26 +00:00
zzz
9953bc3024 javadoc 2014-12-05 15:18:24 +00:00
zzz
2ba4992d88 propagate from branch 'i2p.i2p.zzz.test2' (head 0feb2e6806927f68c7333aaa0892de185bb2629c)
to branch 'i2p.i2p' (head 0482fa843cb1e9d7ec281440056eef3a0ab07bdb)
2014-12-05 15:14:40 +00:00
zzz
5e67008d26 I2PTunnel: Reduce i2ptunnel threads, more thread pooling.
Big savings is on client side (two less threads per connection)
 - Move client pool from static inI2PTunnelClientBase to TCG.
 - Use client pool for some server threads
 - Run some things inline that were formerly threads
 - Client-side I2PTunnelRunner thread used to do nothing but start 2 more
   threads; now it runs one inline (like we do for server-side HTTP)
 - Javadocs and cleanups
Was originally intended to reduce load for high-traffic servers
but most of the savings for now is on the client side.
Ref: http://zzz.i2p/topics/1741
Todo: Figure out how to run the HTTP client-side gunzipper inline too
Todo: More server-side improvements

---

Client side:

before:
4-5 threads, 1-2 pooled

  I2PTunnel Client Runner (BlockingRunner from client pool)
      starts I2PTunnelRunner or I2PTunnelHTTPClientRunner and exits
          starts StreamForwarder toI2P and waits
          starts StreamForwarder fromI2P and waits
              starts HTTPResponseOutputStream (HTTP gunzip only) (from client pool)
now:
2-3 threads, 1-2 pooled

  I2PTunnel Client Runner (BlockingRunner from client pool)
      runs I2PTunnelRunner or I2PTunnelHTTPClientRunner inline
          starts StreamForwarder toI2P and waits
          runs StreamForwarder fromI2P inline
              starts HTTPResponseOutputStream (HTTP gunzip only) (from client pool)

---

Server side:

before:
1-4 threads, 0-1 pooled

  Server Handler Pool (Handler from server pool) execpt for standard server, blockingHandle() inline in acceptor
      starts I2PTunnelRunner or CompressedRequestor and exits
          starts StreamForwarder toI2P and waits   (inline for HTTP)
          starts StreamForwarder fromI2P and waits  (except not for HTTP GET)

now:
1-4 threads, 0-2 pooled

  Server Handler Pool (Handler from server pool) execpt for standard server, blockingHandle() inline in acceptor
      starts I2PTunnelRunner or CompressedRequestor and exits (using client pool)
          starts StreamForwarder toI2P and waits   (inline for HTTP)
          starts StreamForwarder fromI2P and waits  (except not for HTTP GET)
2014-12-05 15:12:51 +00:00
zzz
e7b50c5940 reduce auto-stop threshold again 2014-12-02 15:23:50 +00:00
zzz
78d7277298 show b32 for local leasesets too 2014-12-02 15:11:12 +00:00
zzz
fb641187b8 use new getVersion() 2014-12-02 13:42:58 +00:00
zzz
4b2715c36f RouterInfo: Add convenience method getVersion() 2014-12-02 13:30:31 +00:00
zzz
f1e9f5d4fd DatabaseStoreMessage: Mask the unused bits in the type field,
in case we ever want to use them for options
2014-12-02 13:28:48 +00:00
zzz
2d43d349ab add more invalid ports 2014-12-02 13:22:26 +00:00
zzz
a3c6cc1daa libjbigi updates:
Added:
     nativeJbigiVersion()
     nativeGMPMajorVersion()
     nativeGMPMinorVersion()
     nativeGMPPatchVersion()
     nativeModInverse()
     nativeModPowCT()
   Support negative vaules in conversion functions
   Support negative base value in modPow()
   Throw ArithmeticException for bad arguments rather than crashing
   Switch to GMP 6.0.0
   New build targets
NativeBigInteger changes:
   Test improvements
   Version reporting
Crypto changes:
   Use constant time modPow() for signing and decryption
   Use native modInverse()
2014-11-30 21:19:28 +00:00
zzz
1773fc0e0d Add more clues to file locations in default config files 2014-11-28 14:23:34 +00:00
zzz
6d6f7fb89b Data: Disallow duplicate keys in a Mapping 2014-11-28 13:45:33 +00:00
zzz
449ce3176e propagate from branch 'i2p.i2p' (head b4b595d294ace07f7fde583957d8e00e96af347c)
to branch 'i2p.i2p.zzz.test2' (head 90c482d231ea639bff8d37d390dac081e361f48f)
2014-11-28 13:13:00 +00:00
zzz
5383f9f097 Profiles: Change slice selection argument from an int to an enum for clarity 2014-11-25 14:25:42 +00:00
zzz
a16d17c422 SusiMail: Add save-as button
Fix encoding for filename in Content-Disposition header
New icon from Silk, same license as the others
2014-11-24 18:36:16 +00:00
zzz
31cc0764a9 Logger: Configurable flush interval 2014-11-18 14:49:23 +00:00
zzz
8f8adfa39e propagate from branch 'i2p.i2p' (head bde4ef3680071b416b3528bad4c16245964f432a)
to branch 'i2p.i2p.zzz.test2' (head 183d2a30edd10165451d0cbbf75636f3b1dfda16)
2014-11-15 17:48:39 +00:00
zzz
5044f3e58f I2NP:
Move some data structures away from ByteArray; offsets were always zero
  - New BuildRequestRecord constructors
  - BuildRequestRecord field becomes final byte[222]
  - IV becomes byte[16]
  - Build record becomes EncryptedBuildRecord
Remove extra copy in BuildRequestRecord.encryptRecord()
Remove unused BuildRequestRecord.readOurIdentityMatches()
2014-11-15 17:48:11 +00:00
bb00e91672 propagate from branch 'i2p.i2p' (head e02e6d733a703970e20e732e5156cbabc394e88e)
to branch 'i2p.i2p.str4d.test2' (head aad766aaf6f0a2563069c6f19c38b33ae6c49ad8)
2014-07-10 09:28:25 +00:00
2ef203246b Routerconsole build script fixes 2014-06-26 22:37:42 +00:00
367ab28706 Corrected contents of i2p.jar router.jar utility.jar 2014-06-26 03:26:32 +00:00
8de0c0bd88 Correct Jar/War split for addressbook, snark and i2ptunnel 2014-06-26 00:00:38 +00:00
aa3ac75470 Gradle test config improvements 2014-06-25 02:50:24 +00:00
f6108b51a2 Missing Gradle wrapper 2014-06-25 02:07:00 +00:00
3c8862763b Gradle build scripts for remaining apps 2014-06-25 02:04:06 +00:00
bab02a62e9 Gradle wrapper and instructions 2014-06-24 23:41:55 +00:00
d97c9876e8 desktopgui and systray build scripts, fixed routerconsole 2014-06-24 23:26:51 +00:00
61285435e8 Fixed deprecation 2014-06-24 23:16:47 +00:00
8ea4d893f6 BOB and SAM build scripts 2014-06-24 22:59:23 +00:00
593904cc44 Started build script for routerconsole, broken 2014-06-24 22:48:05 +00:00
957eb1f7ab Jetty build.gradle 2014-06-24 11:25:02 +00:00
7ca735bfb2 Gradle build scripts for ministreaming and streaming 2014-06-24 05:37:53 +00:00
0919fa06f6 Don't set version (so .jars don't contain version) 2014-06-24 05:36:49 +00:00
da777c1d7d Initial set of Gradle build scripts for core and router 2014-06-24 05:18:16 +00:00
0305274a13 Updated ignores for Gradle 2014-06-24 05:08:26 +00:00
a83c88e886 propagate from branch 'i2p.i2p' (head 4b264686657ff54a00224313e00de68d37edbd31)
to branch 'i2p.i2p.unittests' (head 63cf9916eca4b38ab0707cd781c308312e27d75f)
2014-01-14 05:09:31 +00:00
bcfc7630d1 propagate from branch 'i2p.i2p' (head 166cedda170ef76decb2d53129cfbbf8eba0b7b9)
to branch 'i2p.i2p.unittests' (head 70175d5dae110f7d3efee256c9169e68f4a83d9f)
2013-07-03 10:54:18 +00:00
3b7daafad7 Fill in basic datastructure length tests 2013-06-09 12:21:35 +00:00
4610 changed files with 810142 additions and 372195 deletions

32
.dockerignore Normal file
View File

@ -0,0 +1,32 @@
.idea
.git
Dockerfile
# Gradle
.gradle
build
apps/BOB/build
apps/addressbook/build
apps/desktopgui/build
apps/i2pcontrol/build
apps/i2psnark/build
apps/i2ptunnel/build
apps/imagegen/build
apps/jetty/build
apps/jrobin/build
apps/ministreaming/java/build
apps/ministreaming/build
apps/routerconsole/build
apps/sam/build
apps/streaming/build
apps/susidns/build
apps/susimail/build
apps/systray/build
core/java/build
core/build
installer/build
router/java/build
router/build
override.properties

67
.editorconfig Normal file
View File

@ -0,0 +1,67 @@
root = true
[*]
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
charset = utf-8
indent_style = space
indent_size = 4
[{*.bat,**/*.bat,installer/resources/proxy/*.ht}]
end_of_line = crlf
[**/*.css]
indent_size = 5
[{history.txt,LICENSE.txt}]
indent_size = 3
[**/.project]
indent_style = tab
[README.txt]
indent_style = tab
[apps/BOB/**/*.java]
indent_style = tab
[apps/routerconsole/java/src/com/vuze/plugins/mlab/tools/ndt/swingemu/*.java]
indent_style = tab
[apps/routerconsole/java/src/edu/internet2/ndt/*.java]
indent_style = tab
[apps/routerconsole/jsp/{createreseed.jsp,exportfamily.jsp,flags.jsp,index.jsp,viewhistory.jsp,viewrouterlog.jsp,viewstat.jsp,viewtheme.jsp,viewwrapperlog.jsp}]
insert_final_newline = false
[apps/susimail/**/{*.java,*.js}]
indent_style = tab
[apps/susimail/**/{Attachments.java,MailPart.java,WebMail.java}]
end_of_line = crlf
[core/java/src/com/nettgryppa/**/*.java]
indent_size = 2
[core/java/src/gnu/**/*.java]
indent_size = 2
[core/java/src/gnu/getopt/*.properties]
charset = iso-8859-1
[core/java/src/org/json/simple/**/*.java]
end_of_line = crlf
indent_style = tab
[core/java/src/com/southernstorm/**/*.java]
indent_style = tab
[router/java/src/org/cybergarage/**/*.java]
indent_style = tab
[router/java/src/org/freenetproject/*.java]
indent_style = tab
[router/java/src/com/southernstorm/**/*.java]
indent_style = tab

127
.github/workflows/ant-nightly.yml vendored Normal file
View File

@ -0,0 +1,127 @@
name: Daily Workflow
on:
schedule:
# This runs at 00:00 UTC every day
# Cron syntax: minute hour day-of-month month day-of-week
- cron: '0 * * * *'
workflow_dispatch: # Allows manual triggering
permissions:
contents: read
pages: write
id-token: write
jobs:
daily-job:
runs-on: ubuntu-latest
# Ensures this only runs on the master branch
if: github.ref == 'refs/heads/master'
steps:
- name: GetText
run: sudo apt install gettext
- uses: actions/checkout@v4
- name: Set up JDK 8
uses: actions/setup-java@v4
with:
java-version: '8'
distribution: 'temurin'
- name : Generate override.properties
run: |
rm -f override.properties
echo "build.built-by=GitHub Actions" >> override.properties
echo "noExe=true" >> override.properties
- name: build with Ant
run: ant distclean pkg
- name: Upload installer.jar
uses: actions/upload-artifact@v4
with:
name: I2P-install-${{ github.sha }}.jar
path: install.jar
javadoc-latest:
runs-on: ubuntu-latest
steps:
- name: Setup Pages
uses: actions/configure-pages@v4
- name: GetText
run: sudo apt install gettext
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
- name : Generate override.properties
run: |
rm -f override.properties
echo "build.built-by=GitHub Actions" >> override.properties
echo "noExe=true" >> override.properties
- name: test Debian build with Ant
run: ant distclean
- name: build javadoc with Ant
run: ant distclean javadoc updater
- name: zip javadoc and place update in javadoc zip
run: cp i2pupdate.zip build/javadoc/i2pupdate.zip && zip -r javadoc.zip build/javadoc
- name: Upload javadoc.zip
uses: actions/upload-artifact@v4
with:
name: I2P-javadoc-${{ github.sha }}.zip
path: javadoc.zip
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
# Upload javadocs to github page
path: 'build/javadoc'
- name: Deploy javadoc and dev build to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
build-java7:
runs-on: ubuntu-latest
steps:
- name: GetText
run: sudo apt install gettext
- uses: actions/checkout@v4
- name: Set up JDK 8
uses: actions/setup-java@v4
with:
java-version: '8'
distribution: 'temurin'
- name : Generate override.properties
run: |
git clone https://github.com/eyedeekay/openjdk-7 "$HOME/openjdk-7"
rm -f override.properties
echo "build.built-by=GitHub Actions" >> override.properties
echo "noExe=true" >> override.properties
echo "javac.compilerargs=-bootclasspath $HOME/openjdk-7/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar:$HOME/openjdk-7/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/jce.jar -Xlint:all" >> override.properties
- name: build Maven dev build with Ant
run: ./installer/resources/maven-dev-release.sh 1
- name: Upload servlet-i2p.jar
uses: actions/upload-artifact@v4
with:
name: servlet-i2p-${{ github.sha }}.jar
path: pkg-mavencentral/servlet-i2p*.jar
- name: Upload streaming.jar
uses: actions/upload-artifact@v4
with:
name: streaming-${{ github.sha }}.jar
path: pkg-mavencentral/streaming*.jar
- name: Upload mstreaming.jar
uses: actions/upload-artifact@v4
with:
name: mstreaming-${{ github.sha }}.jar
path: pkg-mavencentral/mstreaming*.jar
- name: Upload router.jar
uses: actions/upload-artifact@v4
with:
name: router-${{ github.sha }}.jar
path: pkg-mavencentral/router*.jar
- name: Upload i2p.jar
uses: actions/upload-artifact@v4
with:
name: i2p-${{ github.sha }}.jar
path: pkg-mavencentral/i2p*.jar

122
.github/workflows/ant.yml vendored Normal file
View File

@ -0,0 +1,122 @@
# Mostly copied from https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-ant
# zlatinb
name: Java CI
on: [push]
permissions:
contents: read
pages: write
id-token: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: GetText
run: sudo apt install gettext
- uses: actions/checkout@v4
- name: Set up JDK 8
uses: actions/setup-java@v4
with:
java-version: '8'
distribution: 'temurin'
- name : Generate override.properties
run: |
rm -f override.properties
echo "build.built-by=GitHub Actions" >> override.properties
echo "noExe=true" >> override.properties
- name: build with Ant
run: ant distclean pkg
- name: Upload installer.jar
uses: actions/upload-artifact@v4
with:
name: I2P-install-${{ github.sha }}.jar
path: install.jar
javadoc-latest:
runs-on: ubuntu-latest
steps:
- name: Setup Pages
uses: actions/configure-pages@v4
- name: GetText
run: sudo apt install gettext
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
- name : Generate override.properties
run: |
rm -f override.properties
echo "build.built-by=GitHub Actions" >> override.properties
echo "noExe=true" >> override.properties
- name: test Debian build with Ant
run: ant distclean
- name: build javadoc with Ant
run: ant distclean javadoc updater
- name: zip javadoc and place update in javadoc zip
run: cp i2pupdate.zip build/javadoc/i2pupdate.zip && zip -r javadoc.zip build/javadoc
- name: Upload javadoc.zip
uses: actions/upload-artifact@v4
with:
name: I2P-javadoc-${{ github.sha }}.zip
path: javadoc.zip
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
# Upload javadocs to github page
path: 'build/javadoc'
- name: Deploy javadoc and dev build to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
build-java7:
runs-on: ubuntu-latest
steps:
- name: GetText
run: sudo apt install gettext
- uses: actions/checkout@v4
- name: Set up JDK 8
uses: actions/setup-java@v4
with:
java-version: '8'
distribution: 'temurin'
- name : Generate override.properties
run: |
git clone https://github.com/eyedeekay/openjdk-7 "$HOME/openjdk-7"
rm -f override.properties
echo "build.built-by=GitHub Actions" >> override.properties
echo "noExe=true" >> override.properties
echo "javac.compilerargs=-bootclasspath $HOME/openjdk-7/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar:$HOME/openjdk-7/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/jce.jar -Xlint:all" >> override.properties
- name: build Maven dev build with Ant
run: ./installer/resources/maven-dev-release.sh 1
- name: Upload servlet-i2p.jar
uses: actions/upload-artifact@v4
with:
name: servlet-i2p-${{ github.sha }}.jar
path: pkg-mavencentral/servlet-i2p*.jar
- name: Upload streaming.jar
uses: actions/upload-artifact@v4
with:
name: streaming-${{ github.sha }}.jar
path: pkg-mavencentral/streaming*.jar
- name: Upload mstreaming.jar
uses: actions/upload-artifact@v4
with:
name: mstreaming-${{ github.sha }}.jar
path: pkg-mavencentral/mstreaming*.jar
- name: Upload router.jar
uses: actions/upload-artifact@v4
with:
name: router-${{ github.sha }}.jar
path: pkg-mavencentral/router*.jar
- name: Upload i2p.jar
uses: actions/upload-artifact@v4
with:
name: i2p-${{ github.sha }}.jar
path: pkg-mavencentral/i2p*.jar

36
.github/workflows/docker.yml vendored Normal file
View File

@ -0,0 +1,36 @@
name: Dockerhub
on:
push:
tags:
- 'i2p-*.*.*'
branches:
- master
jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set env
run:
sudo apt-get install -y sed;
echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" | sed 's|master|latest|g' >> $GITHUB_ENV
- name: Build and push
uses: docker/build-push-action@v6
with:
push: true
tags: geti2p/i2p:${{ env.RELEASE_VERSION }}
- name: Build and push
uses: docker/build-push-action@v6
with:
push: true
tags: geti2p/i2p.i2p:${{ env.RELEASE_VERSION }}

105
.github/workflows/izpack.yml vendored Normal file
View File

@ -0,0 +1,105 @@
name: Java with IzPack Snapshot Setup
on: [push]
permissions:
contents: read
jobs:
setup:
runs-on: ubuntu-latest
steps:
- name: Install Required Packages
run: sudo apt install gettext
- name: Checkout Main Repository
uses: actions/checkout@v4
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'temurin'
- name: Set up Maven
uses: stCarolas/setup-maven@v4.5
with:
maven-version: '3.9.9'
- name: Clone IzPack Repository
uses: actions/checkout@v4
with:
repository: 'izpack/izpack'
path: 'izpack-source'
- name: Build IzPack Snapshot
working-directory: ./izpack-source
run: |
mvn clean install -DskipTests
find . -iname 'izpack*.jar'
echo "IZPACK_HOME=$GITHUB_WORKSPACE/izpack-source/izpack-dist/target/IzPack" >> $GITHUB_ENV
echo "$GITHUB_WORKSPACE/izpack-source/izpack-dist/target/IzPack/bin" >> $GITHUB_PATH
cat > auto-install.xml << EOF
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<AutomatedInstallation langpack="eng">
<com.izforge.izpack.panels.HelloPanel/>
<com.izforge.izpack.panels.TargetPanel>
<installpath>/usr/local/IzPack</installpath>
</com.izforge.izpack.panels.TargetPanel>
<com.izforge.izpack.panels.InstallPanel/>
<com.izforge.izpack.panels.FinishPanel/>
</AutomatedInstallation>
EOF
# Create installation directory
sudo mkdir -p /usr/local/IzPack
sudo chmod 777 /usr/local/IzPack
# Run the installer in headless mode
# java -jar ./izpack-dist/target/izpack-dist-*-SNAPSHOT-installer.jar auto-install.xml
java -DINSTALL_PATH=/usr/local/IzPack -jar ./izpack-dist/target/izpack-dist-*-SNAPSHOT-installer.jar -options-system
# Update environment
echo "/usr/local/IzPack/bin" >> $GITHUB_PATH
echo "IZPACK_HOME=/usr/local/IzPack" >> $GITHUB_ENV
- name: Generate Properties
run: |
rm -f override.properties
echo "build.built-by=GitHub Actions" >> override.properties
echo "izpack.home=${{ env.IZPACK_HOME }}" >> override.properties
echo "izpack5.home=${{ env.IZPACK_HOME }}" >> override.properties
echo "izpack5.version=5.2.4-SNAPSHOT" >> override.properties
- name: Verify Setup
run: |
java -version
ant -version
echo "IzPack installation directory: $IZPACK_HOME"
ls -l $IZPACK_HOME/bin
- name: Upload IzPack Build
uses: actions/upload-artifact@v4
with:
name: izpack-snapshot-${{ github.sha }}
path: ${{ env.IZPACK_HOME }}
retention-days: 1
- name: Cache IzPack Build
uses: actions/cache@v3
with:
path: izpack-source
key: izpack-snapshot-${{ github.sha }}
restore-keys: |
izpack-snapshot-
- name: build with Ant - Non Windows
run: ant distclean pkg installer5-linux
- name: find installer artifacts
run: find . -iname 'i2p*.jar'
- name: Upload i2pinstall.jar
uses: actions/upload-artifact@v4
with:
name: i2pinstall-${{ github.sha }}.jar
path: i2pinstall*.jar
- name: build with Ant - Windows
run: ant distclean pkg installer5-windows
- name: find installer artifacts
run: find . -iname 'i2p*.exe'
- name: Upload i2pinstall.exe
uses: actions/upload-artifact@v4
with:
name: i2pinstall-${{ github.sha }}.exe
path: i2pinstall*.exe

66
.github/workflows/sync.yaml vendored Normal file
View File

@ -0,0 +1,66 @@
# GitHub Actions workflow file to sync an external repository to this GitHub mirror.
# This file was automatically generated by go-github-sync.
#
# The workflow does the following:
# - Runs on a scheduled basis (and can also be triggered manually)
# - Clones the GitHub mirror repository
# - Fetches changes from the primary external repository
# - Applies those changes to the mirror repository
# - Pushes the updated content back to the GitHub mirror
#
# Authentication is handled by the GITHUB_TOKEN secret provided by GitHub Actions.
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Validate Github Actions Environment
run: if [ "$GITHUB_ACTIONS" != "true" ]; then echo 'This script must be run in a GitHub Actions environment.'; exit 1; fi
- name: Checkout GitHub Mirror
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Configure Git
run: |-
git config user.name 'GitHub Actions'
git config user.email 'actions@github.com'
- env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
name: Sync Primary Repository
run: |-
# Add the primary repository as a remote
git remote add primary https://i2pgit.org/I2P_Developers/i2p.i2p.git
# Fetch the latest changes from the primary repository
git fetch primary
# Check if the primary branch exists in the primary repository
if git ls-remote --heads primary master | grep -q master; then
echo "Primary branch master found in primary repository"
else
echo "Error: Primary branch master not found in primary repository"
exit 1
fi
# Check if we're already on the mirror branch
if git rev-parse --verify --quiet master; then
git checkout master
else
# Create the mirror branch if it doesn't exist
git checkout -b master
fi
# Force-apply all changes from primary, overriding any conflicts
echo "Performing force sync from primary/master to master"
git reset --hard primary/master
# Push changes back to the mirror repository
git push origin master
name: Sync Primary Repository to GitHub Mirror
"on":
push: {}
schedule:
- cron: 0 * * * *
workflow_dispatch: {}

17
.gitignore vendored
View File

@ -46,3 +46,20 @@ sloccount.sc
# but allow debian/patches
!/debian/patches/*.(patch|diff)
# IDE project files
# Eclipse
.classpath
.project
.settings/
# IDEA
*.iml
.idea
# Gradle
.gradle
# TODO: why does this file appear?
apps/routerconsole/jsp/favicon.ico
.tx
/*.sh

139
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,139 @@
image: openjdk:8-alpine
stages:
- test
- build
test:gradle:
stage: test
coverage: '/Total.*?([0-9]{1,3})%/'
before_script:
- apk add --no-cache grep
script:
- ./gradlew codeCoverageReport
# The actual output that will be parsed by the code coverage
- grep -oP "Total.*?%" build/reports/jacoco/html/index.html
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
- .gradle
only:
- master
- merge_requests
- tags
test:ant:
stage: test
image: debian:buster-slim
variables:
SCALA: https://downloads.lightbend.com/scala/2.12.13/scala-2.12.13.deb
LIBPREFIX: /usr/share/scala/lib
LIB_SCALATEST: https://repo1.maven.org/maven2/org/scalatest/scalatest_2.12/3.0.4/scalatest_2.12-3.0.4.jar
LIB_SCALACTIC: https://repo1.maven.org/maven2/org/scalactic/scalactic_2.12/3.0.4/scalactic_2.12-3.0.4.jar
before_script:
# Fix bug installing openjdk-11-jdk-headless's manuals
- mkdir -p /usr/share/man/man1/
- apt-get update -q
- apt-get install -y wget gettext
ant default-jdk-headless
libmockito-java libhamcrest-java junit4
# Install specific version of scala
- wget -qO scala.deb "${SCALA}"
- dpkg -i scala.deb
# link to the scala libs with the name `ant test` expects
- ln -s "${LIBPREFIX}/scala-xml_2.12-1.0.6.jar" "${LIBPREFIX}/scala-xml.jar"
# Download required scala libs
- wget -qO "${LIBPREFIX}/scalactic.jar" "${LIB_SCALACTIC}"
- wget -qO "${LIBPREFIX}/scalatest.jar" "${LIB_SCALATEST}"
# Point ant to the right directories
- echo scalatest.libs=/usr/share/scala/lib > override.properties
- echo junit.home=/usr/share/java >> override.properties
- echo hamcrest.home=/usr/share/java >> override.properties
- echo mockito.home=/usr/share/java >> override.properties
- echo build.built-by=GitHub Actions >> override.properties
script:
- ant test
only:
- master
- merge_requests
- tags
test:javadoc:
stage: test
image: debian:unstable-slim
variables:
SCALA: https://downloads.lightbend.com/scala/2.12.13/scala-2.12.13.deb
LIBPREFIX: /usr/share/scala/lib
LIB_SCALATEST: https://repo1.maven.org/maven2/org/scalatest/scalatest_2.12/3.0.4/scalatest_2.12-3.0.4.jar
LIB_SCALACTIC: https://repo1.maven.org/maven2/org/scalactic/scalactic_2.12/3.0.4/scalactic_2.12-3.0.4.jar
before_script:
# Fix bug installing openjdk-11-jdk-headless's manuals
- mkdir -p /usr/share/man/man1/
- apt-get update -q
- apt-get install -y wget gettext
ant openjdk-21-jdk-headless
libmockito-java libhamcrest-java junit4
# Install specific version of scala
- wget -qO scala.deb "${SCALA}"
- dpkg -i scala.deb
# link to the scala libs with the name `ant test` expects
- ln -s "${LIBPREFIX}/scala-xml_2.12-1.0.6.jar" "${LIBPREFIX}/scala-xml.jar"
# Download required scala libs
- wget -qO "${LIBPREFIX}/scalactic.jar" "${LIB_SCALACTIC}"
- wget -qO "${LIBPREFIX}/scalatest.jar" "${LIB_SCALATEST}"
# Point ant to the right directories
- echo scalatest.libs=/usr/share/scala/lib > override.properties
- echo junit.home=/usr/share/java >> override.properties
- echo hamcrest.home=/usr/share/java >> override.properties
- echo mockito.home=/usr/share/java >> override.properties
- echo build.built-by=GitHub Actions >> override.properties
script:
- ant javadoc
only:
- master
- merge_requests
- tags
# Make sure we can build a docker image
# It's cached for later jobs
build_docker:
stage: build
image: docker:24.0.7
services:
- docker:24.0.7-dind
script:
# Try to load latest branch image from local tar or from registry
- docker load -i ci-exports/$CI_COMMIT_REF_SLUG.tar || docker pull $CI_REGISTRY_IMAGE:latest || true
- docker build --cache-from $CI_REGISTRY_IMAGE:latest --tag $CI_REGISTRY_IMAGE:latest .
- mkdir -p ci-exports/
- echo docker save $CI_REGISTRY_IMAGE:latest > ci-exports/$CI_COMMIT_REF_SLUG.tar
variables:
# When using dind service, we need to instruct docker to talk with
# the daemon started inside of the service. The daemon is available
# with a network connection instead of the default
# /var/run/docker.sock socket. Docker 19.03 does this automatically
# by setting the DOCKER_HOST in
# https://github.com/docker-library/docker/blob/d45051476babc297257df490d22cbd806f1b11e4/19.03/docker-entrypoint.sh#L23-L29
#
# The 'docker' hostname is the alias of the service container as described at
# https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#accessing-the-services.
#
# Specify to Docker where to create the certificates, Docker will
# create them automatically on boot, and will create
# `/certs/client` that will be shared between the service and job
# container, thanks to volume mount from config.toml
DOCKER_TLS_CERTDIR: "/certs"
# Use TLS https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#tls-enabled
# DOCKER_HOST: tcp://docker:2376
cache:
# The same key should be used across branches
key: "$CI_COMMIT_REF_SLUG"
paths:
- ci-exports/
only:
- master
- merge_requests
- tags

View File

@ -1,50 +0,0 @@
# Just to try and prevent some noob disasters.
# Use mtn add --no-respect-ignore foo.jar to ignore this ignore list
# Temporary/build files
_jsp\.java$
\.bz2$
\.tar$
\.class$
\.diff$
\.exe$
\.fba$
\.gz$
\.jar$
\.out$
\.patch$
\.sig$
\.sud$
\.su2$
.\su3$
\.tar$
\.war$
.\deb$
\.zip$
\.torrent$
^\.
~$
web-fragment.xml
web-out.xml
# Temporary/build dirs
^build
^pkg-temp
/build
/classes
/dist
^installer/resources/locale/mo
/tmp
^apps/jetty/jettylib
# Debian-related
^debian/copyright
^debian/changelog
^.pc/
# Build property overrides
override.properties
# Reporting
sloccount.sc
^reports/

41
.travis.yml Normal file
View File

@ -0,0 +1,41 @@
language: java
dist: bionic
jdk:
- oraclejdk11
matrix:
include:
- jdk: oraclejdk11
addons:
sonarcloud:
organization: "i2p"
before_install:
- sed -i "1iplugins {\n id 'org.sonarqube' version '3.0'\n}\n" build.gradle
- jdk: openjdk8
before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
cache:
directories:
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
- $HOME/.sonar/cache/
- .gradle
env:
- SONAR_SCANNER_OPTS="-Xmx2048m"
script:
- travis_wait 45 ./tests/scripts/travis.sh
after_success:
- bash <(curl -s https://codecov.io/bash)
notifications:
irc:
channels:
- "chat.freenode.net#i2p-dev"
on_success: change
on_failure: always

View File

@ -1,4 +1,12 @@
[I2P.i2ptunnel]
;; warning - conversions for all Java bundles:
;; id->in, he->iw, iy, yi->ji
[main]
host = https://www.transifex.com
lang_map = ru_RU: ru, sv_SE: sv, tr_TR: tr, uk_UA: uk, zh_CN: zh, et_EE: et, id: in, he: iw
[o:otf:p:I2P:r:i2ptunnel]
file_filter = apps/i2ptunnel/locale/messages_<lang>.po
source_file = apps/i2ptunnel/locale/messages_en.po
source_lang = en
trans.ar = apps/i2ptunnel/locale/messages_ar.po
@ -6,10 +14,17 @@ trans.cs = apps/i2ptunnel/locale/messages_cs.po
trans.da = apps/i2ptunnel/locale/messages_da.po
trans.de = apps/i2ptunnel/locale/messages_de.po
trans.es = apps/i2ptunnel/locale/messages_es.po
trans.es_AR = apps/i2ptunnel/locale/messages_es_AR.po
trans.fa = apps/i2ptunnel/locale/messages_fa.po
trans.fi = apps/i2ptunnel/locale/messages_fi.po
trans.fr = apps/i2ptunnel/locale/messages_fr.po
trans.gan = apps/i2ptunnel/locale/messages_gan.po
trans.hu = apps/i2ptunnel/locale/messages_hu.po
;; Java converts id to in
trans.id = apps/i2ptunnel/locale/messages_in.po
trans.it = apps/i2ptunnel/locale/messages_it.po
trans.ja = apps/i2ptunnel/locale/messages_ja.po
trans.ko = apps/i2ptunnel/locale/messages_ko.po
trans.nb = apps/i2ptunnel/locale/messages_nb.po
trans.nl = apps/i2ptunnel/locale/messages_nl.po
trans.nn = apps/i2ptunnel/locale/messages_nn.po
@ -19,23 +34,37 @@ trans.pt_BR = apps/i2ptunnel/locale/messages_pt_BR.po
trans.ro = apps/i2ptunnel/locale/messages_ro.po
trans.ru_RU = apps/i2ptunnel/locale/messages_ru.po
trans.sk = apps/i2ptunnel/locale/messages_sk.po
trans.sq = apps/i2ptunnel/locale/messages_sq.po
trans.sv_SE = apps/i2ptunnel/locale/messages_sv.po
trans.tr_TR = apps/i2ptunnel/locale/messages_tr.po
trans.uk_UA = apps/i2ptunnel/locale/messages_uk.po
trans.vi = apps/i2ptunnel/locale/messages_vi.po
trans.zh_CN = apps/i2ptunnel/locale/messages_zh.po
trans.zh_TW = apps/i2ptunnel/locale/messages_zh_TW.po
[I2P.proxy]
[o:otf:p:I2P:r:proxy]
file_filter = apps/i2ptunnel/locale-proxy/messages_<lang>.po
source_file = apps/i2ptunnel/locale-proxy/messages_en.po
source_lang = en
trans.ar = apps/i2ptunnel/locale-proxy/messages_ar.po
trans.cs = apps/i2ptunnel/locale-proxy/messages_cs.po
trans.de = apps/i2ptunnel/locale-proxy/messages_de.po
trans.el = apps/i2ptunnel/locale-proxy/messages_el.po
trans.es = apps/i2ptunnel/locale-proxy/messages_es.po
trans.es_AR = apps/i2ptunnel/locale-proxy/messages_es_AR.po
trans.fa = apps/i2ptunnel/locale-proxy/messages_fa.po
trans.fi = apps/i2ptunnel/locale-proxy/messages_fi.po
trans.fr = apps/i2ptunnel/locale-proxy/messages_fr.po
trans.gan = apps/i2ptunnel/locale-proxy/messages_gan.po
trans.hu = apps/i2ptunnel/locale-proxy/messages_hu.po
;; Java converts id to in
trans.id = apps/i2ptunnel/locale-proxy/messages_in.po
trans.it = apps/i2ptunnel/locale-proxy/messages_it.po
trans.ja = apps/i2ptunnel/locale-proxy/messages_ja.po
trans.ko = apps/i2ptunnel/locale-proxy/messages_ko.po
trans.nb = apps/i2ptunnel/locale-proxy/messages_nb.po
trans.nl = apps/i2ptunnel/locale-proxy/messages_nl.po
trans.nn = apps/i2ptunnel/locale-proxy/messages_nn.po
trans.pl = apps/i2ptunnel/locale-proxy/messages_pl.po
trans.pt = apps/i2ptunnel/locale-proxy/messages_pt.po
trans.pt_BR = apps/i2ptunnel/locale-proxy/messages_pt_BR.po
@ -43,25 +72,118 @@ trans.ro = apps/i2ptunnel/locale-proxy/messages_ro.po
trans.ru_RU = apps/i2ptunnel/locale-proxy/messages_ru.po
trans.sk = apps/i2ptunnel/locale-proxy/messages_sk.po
trans.sv_SE = apps/i2ptunnel/locale-proxy/messages_sv.po
trans.tr_TR = apps/i2ptunnel/locale-proxy/messages_tr.po
trans.uk_UA = apps/i2ptunnel/locale-proxy/messages_uk.po
trans.vi = apps/i2ptunnel/locale-proxy/messages_vi.po
trans.zh_CN = apps/i2ptunnel/locale-proxy/messages_zh.po
trans.zh_TW = apps/i2ptunnel/locale-proxy/messages_zh_TW.po
[I2P.routerconsole]
[o:otf:p:I2P:r:core]
file_filter = core/locale/messages_<lang>.po
type = PO
source_file = core/locale/messages_en.po
source_lang = en
trans.ar = core/locale/messages_ar.po
trans.az = core/locale/messages_az.po
trans.cs = core/locale/messages_cs.po
trans.da = core/locale/messages_da.po
trans.de = core/locale/messages_de.po
trans.el = core/locale/messages_el.po
trans.es = core/locale/messages_es.po
trans.et_EE = core/locale/messages_et.po
trans.fa = core/locale/messages_fa.po
trans.fi = core/locale/messages_fi.po
trans.fr = core/locale/messages_fr.po
trans.gan = core/locale/messages_gan.po
trans.hi = core/locale/messages_hi.po
trans.hu = core/locale/messages_hu.po
;; Java converts id to in
trans.id = core/locale/messages_in.po
trans.it = core/locale/messages_it.po
trans.ja = core/locale/messages_ja.po
trans.ko = core/locale/messages_ko.po
trans.ku = core/locale/messages_ku.po
trans.nb = core/locale/messages_nb.po
trans.nl = core/locale/messages_nl.po
trans.pl = core/locale/messages_pl.po
trans.pt = core/locale/messages_pt.po
trans.pt_BR = core/locale/messages_pt_BR.po
trans.ro = core/locale/messages_ro.po
trans.ru_RU = core/locale/messages_ru.po
trans.sl = core/locale/messages_sl.po
trans.sv_SE = core/locale/messages_sv.po
trans.tk = core/locale/messages_tk.po
trans.tr_TR = core/locale/messages_tr.po
trans.uk_UA = core/locale/messages_uk.po
trans.vi = core/locale/messages_vi.po
trans.zh_CN = core/locale/messages_zh.po
trans.zh_TW = core/locale/messages_zh_TW.po
[o:otf:p:I2P:r:router]
file_filter = router/locale/messages_<lang>.po
type = PO
source_file = router/locale/messages_en.po
source_lang = en
trans.ar = router/locale/messages_ar.po
trans.az = router/locale/messages_az.po
trans.cs = router/locale/messages_cs.po
trans.da = router/locale/messages_da.po
trans.de = router/locale/messages_de.po
trans.el = router/locale/messages_el.po
trans.es = router/locale/messages_es.po
trans.es_AR = router/locale/messages_es_AR.po
trans.et_EE = router/locale/messages_et.po
trans.fa = router/locale/messages_fa.po
trans.fi = router/locale/messages_fi.po
trans.fr = router/locale/messages_fr.po
trans.gan = router/locale/messages_gan.po
trans.hi = router/locale/messages_hi.po
trans.hu = router/locale/messages_hu.po
;; Java converts id to in
trans.id = router/locale/messages_in.po
trans.it = router/locale/messages_it.po
trans.ja = router/locale/messages_ja.po
trans.ko = router/locale/messages_ko.po
trans.ku = router/locale/messages_ku.po
trans.nb = router/locale/messages_nb.po
trans.nl = router/locale/messages_nl.po
trans.pl = router/locale/messages_pl.po
trans.pt = router/locale/messages_pt.po
trans.pt_BR = router/locale/messages_pt_BR.po
trans.ro = router/locale/messages_ro.po
trans.ru_RU = router/locale/messages_ru.po
trans.sl = router/locale/messages_sl.po
trans.sv_SE = router/locale/messages_sv.po
trans.tk = router/locale/messages_tk.po
trans.tr_TR = router/locale/messages_tr.po
trans.uk_UA = router/locale/messages_uk.po
trans.vi = router/locale/messages_vi.po
trans.zh_CN = router/locale/messages_zh.po
trans.zh_TW = router/locale/messages_zh_TW.po
[o:otf:p:I2P:r:routerconsole]
file_filter = apps/routerconsole/locale/messages_<lang>.po
source_file = apps/routerconsole/locale/messages_en.po
source_lang = en
trans.ar = apps/routerconsole/locale/messages_ar.po
trans.az = apps/routerconsole/locale/messages_az.po
trans.cs = apps/routerconsole/locale/messages_cs.po
trans.da = apps/routerconsole/locale/messages_da.po
trans.de = apps/routerconsole/locale/messages_de.po
trans.el = apps/routerconsole/locale/messages_el.po
trans.es = apps/routerconsole/locale/messages_es.po
trans.es_AR = apps/routerconsole/locale/messages_es_AR.po
trans.et_EE = apps/routerconsole/locale/messages_et.po
trans.fa = apps/routerconsole/locale/messages_fa.po
trans.fi = apps/routerconsole/locale/messages_fi.po
trans.fr = apps/routerconsole/locale/messages_fr.po
trans.gan = apps/routerconsole/locale/messages_gan.po
trans.hu = apps/routerconsole/locale/messages_hu.po
;; Java converts id to in
trans.id = apps/routerconsole/locale/messages_in.po
trans.it = apps/routerconsole/locale/messages_it.po
trans.ja = apps/routerconsole/locale/messages_ja.po
trans.ko = apps/routerconsole/locale/messages_ko.po
trans.nb = apps/routerconsole/locale/messages_nb.po
trans.nl = apps/routerconsole/locale/messages_nl.po
trans.pl = apps/routerconsole/locale/messages_pl.po
@ -74,18 +196,35 @@ trans.tr_TR = apps/routerconsole/locale/messages_tr.po
trans.uk_UA = apps/routerconsole/locale/messages_uk.po
trans.vi = apps/routerconsole/locale/messages_vi.po
trans.zh_CN = apps/routerconsole/locale/messages_zh.po
trans.zh_TW = apps/routerconsole/locale/messages_zh_TW.po
[I2P.welcome]
[o:otf:p:I2P:r:welcome]
file_filter = apps/routerconsole/locale-news/messages_<lang>.po
source_file = apps/routerconsole/locale-news/messages_en.po
source_lang = en
trans.ar = apps/routerconsole/locale-news/messages_ar.po
trans.az = apps/routerconsole/locale-news/messages_az.po
trans.cs = apps/routerconsole/locale-news/messages_cs.po
trans.de = apps/routerconsole/locale-news/messages_de.po
trans.el = apps/routerconsole/locale-news/messages_el.po
trans.es = apps/routerconsole/locale-news/messages_es.po
trans.es_AR = apps/routerconsole/locale-news/messages_es_AR.po
trans.fa = apps/routerconsole/locale-news/messages_fa.po
trans.fi = apps/routerconsole/locale-news/messages_fi.po
trans.fr = apps/routerconsole/locale-news/messages_fr.po
trans.he = apps/routerconsole/locale-news/messages_he.po
trans.gan = apps/routerconsole/locale-news/messages_gan.po
trans.gl = apps/routerconsole/locale-news/messages_gl.po
;; Java converts he to iw
trans.he = apps/routerconsole/locale-news/messages_iw.po
trans.hi = apps/routerconsole/locale-news/messages_hi.po
trans.hu = apps/routerconsole/locale-news/messages_hu.po
;; Java converts id to in
trans.id = apps/routerconsole/locale-news/messages_in.po
trans.it = apps/routerconsole/locale-news/messages_it.po
trans.ja = apps/routerconsole/locale-news/messages_ja.po
trans.ko = apps/routerconsole/locale-news/messages_ko.po
trans.ku = apps/routerconsole/locale-news/messages_ku.po
trans.mg = apps/routerconsole/locale-news/messages_mg.po
trans.nb = apps/routerconsole/locale-news/messages_nb.po
trans.nl = apps/routerconsole/locale-news/messages_nl.po
trans.pl = apps/routerconsole/locale-news/messages_pl.po
@ -94,26 +233,48 @@ trans.pt_BR = apps/routerconsole/locale-news/messages_pt_BR.po
trans.ro = apps/routerconsole/locale-news/messages_ro.po
trans.ru_RU = apps/routerconsole/locale-news/messages_ru.po
trans.sk = apps/routerconsole/locale-news/messages_sk.po
trans.sl = apps/routerconsole/locale-news/messages_sl.po
trans.sq = apps/routerconsole/locale-news/messages_sq.po
trans.sr = apps/routerconsole/locale-news/messages_sr.po
trans.sv_SE = apps/routerconsole/locale-news/messages_sv.po
trans.tk = apps/routerconsole/locale-news/messages_tk.po
trans.tr_TR = apps/routerconsole/locale-news/messages_tr.po
trans.uk_UA = apps/routerconsole/locale-news/messages_uk.po
trans.zh_CN = apps/routerconsole/locale-news/messages_zh.po
trans.zh_TW = apps/routerconsole/locale-news/messages_zh_TW.po
[I2P.countries]
[o:otf:p:I2P:r:countries]
file_filter = apps/routerconsole/locale-countries/messages_<lang>.po
type = PO
source_file = apps/routerconsole/locale-countries/messages_en.po
source_lang = en
trans.ar = apps/routerconsole/locale-countries/messages_ar.po
trans.az = apps/routerconsole/locale-countries/messages_az.po
trans.bg = apps/routerconsole/locale-countries/messages_bg.po
trans.ca = apps/routerconsole/locale-countries/messages_ca.po
trans.cs = apps/routerconsole/locale-countries/messages_cs.po
trans.da = apps/routerconsole/locale-countries/messages_da.po
trans.de = apps/routerconsole/locale-countries/messages_de.po
trans.el = apps/routerconsole/locale-countries/messages_el.po
trans.es = apps/routerconsole/locale-countries/messages_es.po
trans.es_AR = apps/routerconsole/locale-countries/messages_es_AR.po
trans.et_EE = apps/routerconsole/locale-countries/messages_et.po
trans.fa = apps/routerconsole/locale-countries/messages_fa.po
trans.fi = apps/routerconsole/locale-countries/messages_fi.po
trans.fr = apps/routerconsole/locale-countries/messages_fr.po
trans.gl = apps/routerconsole/locale-countries/messages_gl.po
trans.hi = apps/routerconsole/locale-countries/messages_hi.po
trans.hr = apps/routerconsole/locale-countries/messages_hr.po
trans.hu = apps/routerconsole/locale-countries/messages_hu.po
;; Java converts he to iw
trans.he = apps/routerconsole/locale-countries/messages_iw.po
;; Java converts id to in
trans.id = apps/routerconsole/locale-countries/messages_in.po
trans.it = apps/routerconsole/locale-countries/messages_it.po
trans.ja = apps/routerconsole/locale-countries/messages_ja.po
trans.ko = apps/routerconsole/locale-countries/messages_ko.po
trans.ku = apps/routerconsole/locale-countries/messages_ku.po
trans.mg = apps/routerconsole/locale-countries/messages_mg.po
trans.nb = apps/routerconsole/locale-countries/messages_nb.po
trans.nl = apps/routerconsole/locale-countries/messages_nl.po
trans.pl = apps/routerconsole/locale-countries/messages_pl.po
@ -122,36 +283,56 @@ trans.pt_BR = apps/routerconsole/locale-countries/messages_pt_BR.po
trans.ro = apps/routerconsole/locale-countries/messages_ro.po
trans.ru_RU = apps/routerconsole/locale-countries/messages_ru.po
trans.sk = apps/routerconsole/locale-countries/messages_sk.po
trans.sl = apps/routerconsole/locale-countries/messages_sl.po
trans.sq = apps/routerconsole/locale-countries/messages_sq.po
trans.sr = apps/routerconsole/locale-countries/messages_sr.po
trans.sv_SE = apps/routerconsole/locale-countries/messages_sv.po
trans.uk_UA = apps/routerconsole/locale-countries/messages_uk.po
trans.tk = apps/routerconsole/locale-countries/messages_tk.po
trans.tr_TR = apps/routerconsole/locale-countries/messages_tr.po
trans.uk_UA = apps/routerconsole/locale-countries/messages_uk.po
trans.vi = apps/routerconsole/locale-countries/messages_vi.po
trans.zh_CN = apps/routerconsole/locale-countries/messages_zh.po
trans.zh_TW = apps/routerconsole/locale-countries/messages_zh_TW.po
[I2P.i2psnark]
[o:otf:p:I2P:r:i2psnark]
file_filter = apps/i2psnark/locale/messages_<lang>.po
source_file = apps/i2psnark/locale/messages_en.po
source_lang = en
trans.ar = apps/i2psnark/locale/messages_ar.po
trans.cs = apps/i2psnark/locale/messages_cs.po
trans.da = apps/i2psnark/locale/messages_da.po
trans.de = apps/i2psnark/locale/messages_de.po
trans.el = apps/i2psnark/locale/messages_el.po
trans.es = apps/i2psnark/locale/messages_es.po
trans.es_AR = apps/i2psnark/locale/messages_es_AR.po
trans.fa = apps/i2psnark/locale/messages_fa.po
trans.fi = apps/i2psnark/locale/messages_fi.po
trans.fr = apps/i2psnark/locale/messages_fr.po
trans.gan = apps/i2psnark/locale/messages_gan.po
trans.hu = apps/i2psnark/locale/messages_hu.po
;; Java converts id to in
trans.id = apps/i2psnark/locale/messages_in.po
trans.it = apps/i2psnark/locale/messages_it.po
trans.ja = apps/i2psnark/locale/messages_ja.po
trans.ko = apps/i2psnark/locale/messages_ko.po
trans.nb = apps/i2psnark/locale/messages_nb.po
trans.nl = apps/i2psnark/locale/messages_nl.po
trans.pl = apps/i2psnark/locale/messages_pl.po
trans.pt = apps/i2psnark/locale/messages_pt.po
trans.pt_BR = apps/i2psnark/locale/messages_pt_bR.po
trans.pt_BR = apps/i2psnark/locale/messages_pt_BR.po
trans.ro = apps/i2psnark/locale/messages_ro.po
trans.ru_RU = apps/i2psnark/locale/messages_ru.po
trans.sk = apps/i2psnark/locale/messages_sk.po
trans.sv_SE = apps/i2psnark/locale/messages_sv.po
trans.sq = apps/i2psnark/locale/messages_sq.po
trans.tr_TR = apps/i2psnark/locale/messages_tr.po
trans.uk_UA = apps/i2psnark/locale/messages_uk.po
trans.vi = apps/i2psnark/locale/messages_vi.po
trans.zh_CN = apps/i2psnark/locale/messages_zh.po
trans.zh_TW = apps/i2psnark/locale/messages_zh_TW.po
[I2P.susidns]
[o:otf:p:I2P:r:susidns]
file_filter = apps/susidns/locale/messages_<lang>.po
source_file = apps/susidns/locale/messages_en.po
source_lang = en
trans.ar = apps/susidns/locale/messages_ar.po
@ -160,10 +341,18 @@ trans.da = apps/susidns/locale/messages_da.po
trans.de = apps/susidns/locale/messages_de.po
trans.el = apps/susidns/locale/messages_el.po
trans.es = apps/susidns/locale/messages_es.po
trans.es_AR = apps/susidns/locale/messages_es_AR.po
trans.fa = apps/susidns/locale/messages_fa.po
trans.fi = apps/susidns/locale/messages_fi.po
trans.fr = apps/susidns/locale/messages_fr.po
trans.gan = apps/susidns/locale/messages_gan.po
trans.gl = apps/susidns/locale/messages_gl.po
trans.hu = apps/susidns/locale/messages_hu.po
;; Java converts id to in
trans.id = apps/susidns/locale/messages_in.po
trans.it = apps/susidns/locale/messages_it.po
trans.ja = apps/susidns/locale/messages_ja.po
trans.ko = apps/susidns/locale/messages_ko.po
trans.nl = apps/susidns/locale/messages_nl.po
trans.pl = apps/susidns/locale/messages_pl.po
trans.pt = apps/susidns/locale/messages_pt.po
@ -175,85 +364,162 @@ trans.tr_TR = apps/susidns/locale/messages_tr.po
trans.uk_UA = apps/susidns/locale/messages_uk.po
trans.vi = apps/susidns/locale/messages_vi.po
trans.zh_CN = apps/susidns/locale/messages_zh.po
trans.zh_TW = apps/susidns/locale/messages_zh_TW.po
[I2P.desktopgui]
[o:otf:p:I2P:r:desktopgui]
file_filter = apps/desktopgui/locale/messages_<lang>.po
source_file = apps/desktopgui/locale/messages_en.po
source_lang = en
trans.ar = apps/desktopgui/locale/messages_ar.po
trans.az = apps/desktopgui/locale/messages_az.po
trans.bg = apps/desktopgui/locale/messages_bg.po
trans.ca = apps/desktopgui/locale/messages_ca.po
trans.cs = apps/desktopgui/locale/messages_cs.po
trans.da = apps/desktopgui/locale/messages_da.po
trans.de = apps/desktopgui/locale/messages_de.po
trans.el = apps/desktopgui/locale/messages_el.po
trans.es = apps/desktopgui/locale/messages_es.po
trans.es_AR = apps/desktopgui/locale/messages_es_AR.po
trans.fa = apps/desktopgui/locale/messages_fa.po
trans.fi = apps/desktopgui/locale/messages_fi.po
trans.fr = apps/desktopgui/locale/messages_fr.po
trans.gan = apps/desktopgui/locale/messages_gan.po
trans.gl = apps/desktopgui/locale/messages_gl.po
trans.hi = apps/desktopgui/locale/messages_hi.po
trans.hu = apps/desktopgui/locale/messages_hu.po
;; Java converts id to in
trans.id = apps/desktopgui/locale/messages_in.po
trans.it = apps/desktopgui/locale/messages_it.po
trans.ja = apps/desktopgui/locale/messages_ja.po
trans.ko = apps/desktopgui/locale/messages_ko.po
trans.ku = apps/desktopgui/locale/messages_ku.po
trans.mg = apps/desktopgui/locale/messages_mg.po
trans.nb = apps/desktopgui/locale/messages_nb.po
trans.nl = apps/desktopgui/locale/messages_nl.po
trans.pl = apps/desktopgui/locale/messages_pl.po
trans.pt = apps/desktopgui/locale/messages_pt.po
trans.pt_BR = apps/desktopgui/locale/messages_pt_BR.po
trans.ro = apps/desktopgui/locale/messages_ro.po
trans.ru_RU = apps/desktopgui/locale/messages_ru.po
trans.sk = apps/desktopgui/locale/messages_sk.po
trans.sl = apps/desktopgui/locale/messages_sl.po
trans.sr = apps/desktopgui/locale/messages_sr.po
trans.sv_SE = apps/desktopgui/locale/messages_sv.po
trans.uk_UA = apps/desktopgui/locale/messages_uk.po
trans.sq = apps/desktopgui/locale/messages_sq.po
trans.tk = apps/desktopgui/locale/messages_tk.po
trans.tr_TR = apps/desktopgui/locale/messages_tr.po
trans.uk_UA = apps/desktopgui/locale/messages_uk.po
trans.vi = apps/desktopgui/locale/messages_vi.po
trans.zh_CN = apps/desktopgui/locale/messages_zh.po
trans.zh_TW = apps/desktopgui/locale/messages_zh_TW.po
[I2P.susimail]
[o:otf:p:I2P:r:susimail]
file_filter = apps/susimail/locale/messages_<lang>.po
source_file = apps/susimail/locale/messages_en.po
source_lang = en
trans.ar = apps/susimail/locale/messages_ar.po
trans.az = apps/susimail/locale/messages_az.po
trans.bg = apps/susimail/locale/messages_bg.po
trans.ca = apps/susimail/locale/messages_ca.po
trans.cs = apps/susimail/locale/messages_cs.po
trans.da = apps/susimail/locale/messages_da.po
trans.de = apps/susimail/locale/messages_de.po
trans.el = apps/susimail/locale/messages_el.po
trans.es = apps/susimail/locale/messages_es.po
trans.es_AR = apps/susimail/locale/messages_es_AR.po
trans.et_EE = apps/susimail/locale/messages_et.po
trans.fa = apps/susimail/locale/messages_fa.po
trans.fi = apps/susimail/locale/messages_fi.po
trans.fr = apps/susimail/locale/messages_fr.po
trans.gan = apps/susimail/locale/messages_gan.po
trans.gl = apps/susimail/locale/messages_gl.po
trans.hi = apps/susimail/locale/messages_hi.po
trans.hr = apps/susimail/locale/messages_hr.po
trans.hu = apps/susimail/locale/messages_hu.po
;; Java converts he to iw
trans.he = apps/susimail/locale/messages_iw.po
;; Java converts id to in
trans.id = apps/susimail/locale/messages_in.po
trans.it = apps/susimail/locale/messages_it.po
trans.ja = apps/susimail/locale/messages_ja.po
trans.ko = apps/susimail/locale/messages_ko.po
trans.ku = apps/susimail/locale/messages_ku.po
trans.mg = apps/susimail/locale/messages_mg.po
trans.nb = apps/susimail/locale/messages_nb.po
trans.nl = apps/susimail/locale/messages_nl.po
trans.ru_RU = apps/susimail/locale/messages_ru.po
trans.sv_SE = apps/susimail/locale/messages_sv.po
trans.pl = apps/susimail/locale/messages_pl.po
trans.pt = apps/susimail/locale/messages_pt.po
trans.pt_BR = apps/susimail/locale/messages_pt_BR.po
trans.ro = apps/susimail/locale/messages_ro.po
trans.ru_RU = apps/susimail/locale/messages_ru.po
trans.sk = apps/susimail/locale/messages_sk.po
trans.sl = apps/susimail/locale/messages_sl.po
trans.sq = apps/susimail/locale/messages_sq.po
trans.sr = apps/susimail/locale/messages_sr.po
trans.sv_SE = apps/susimail/locale/messages_sv.po
trans.tr_TR = apps/susimail/locale/messages_tr.po
trans.uk_UA = apps/susimail/locale/messages_uk.po
trans.vi = apps/susimail/locale/messages_vi.po
trans.zh_CN = apps/susimail/locale/messages_zh.po
trans.zh_TW = apps/susimail/locale/messages_zh_TW.po
[I2P.debconf]
[o:otf:p:I2P:r:debconf]
file_filter = debian/po/<lang>.po
source_file = debian/po/templates.pot
source_lang = en
trans.ar = debian/po/ar.po
trans.az = debian/po/az.po
trans.cs = debian/po/cs.po
trans.de = debian/po/de.po
trans.el = debian/po/el.po
trans.es = debian/po/es.po
trans.es_AR = debian/po/es_AR.po
trans.fi = debian/po/fi.po
trans.fr = debian/po/fr.po
trans.gl = debian/po/gl.po
trans.id = debian/po/id.po
trans.it = debian/po/it.po
trans.hu = debian/po/hu.po
trans.ja = debian/po/ja.po
trans.ko = debian/po/ko.po
trans.nb = debian/po/nb.po
trans.nl = debian/po/nl.po
trans.pl = debian/po/pl.po
trans.pt = debian/po/pt.po
trans.pt_BR = debian/po/pt_BR.po
trans.ro = debian/po/ro.po
trans.ru_RU = debian/po/ru.po
trans.sk = debian/po/sk.po
trans.sl = debian/po/sl.po
trans.sq = debian/po/sq.po
trans.sv_SE = debian/po/sv.po
trans.uk_UA = debian/po/uk.po
trans.tk = debian/po/tk.po
trans.tr_TR = debian/po/tr.po
trans.uk_UA = debian/po/uk.po
trans.zh_CN = debian/po/zh.po
trans.zh_TW = debian/po/zh_TW.po
[I2P.i2prouter-script]
[o:otf:p:I2P:r:i2prouter-script]
file_filter = installer/resources/locale/po/messages_<lang>.po
source_file = installer/resources/locale/po/messages_en.po
source_lang = en
trans.ar = installer/resources/locale/po/messages_ar.po
trans.az = installer/resources/locale/po/messages_az.po
trans.ca = installer/resources/locale/po/messages_ca.po
trans.cs = installer/resources/locale/po/messages_cs.po
trans.de = installer/resources/locale/po/messages_de.po
trans.es = installer/resources/locale/po/messages_es.po
trans.es_AR = installer/resources/locale/po/messages_es_AR.po
trans.fi = installer/resources/locale/po/messages_fi.po
trans.fr = installer/resources/locale/po/messages_fr.po
trans.gan = installer/resources/locale/po/messages_gan.po
trans.hu = installer/resources/locale/po/messages_hu.po
trans.id = installer/resources/locale/po/messages_id.po
trans.it = installer/resources/locale/po/messages_it.po
trans.pl = installer/resources/locale/po/messages_pl.po
trans.ja = installer/resources/locale/po/messages_ja.po
trans.ko = installer/resources/locale/po/messages_ko.po
trans.nb = installer/resources/locale/po/messages_nb.po
trans.nl = installer/resources/locale/po/messages_nl.po
trans.pl = installer/resources/locale/po/messages_pl.po
trans.pt = installer/resources/locale/po/messages_pt.po
trans.pt_BR = installer/resources/locale/po/messages_pt_BR.po
@ -262,40 +528,206 @@ trans.ru_RU = installer/resources/locale/po/messages_ru.po
trans.sk = installer/resources/locale/po/messages_sk.po
trans.sv_SE = installer/resources/locale/po/messages_sv.po
trans.tr_TR = installer/resources/locale/po/messages_tr.po
trans.uk_UA = installer/resources/locale/po/messages_uk.po
trans.zh_CN = installer/resources/locale/po/messages_zh.po
trans.zh_TW = installer/resources/locale/po/messages_zh_TW.po
[I2P.getopt]
[o:otf:p:I2P:r:getopt]
;;
;; Java properties files (when not read with our DataHelper methods) must be ISO-8859-1 encoded.
;; See https://docs.oracle.com/javase/6/docs/api/java/util/Properties.html
;; Several getopt translations from Transifex are ISO-8859-1 encoded.
;; So that all our source files are consistently UTF-8 encoded,
;; you may optionally convert them to ASCII with Unicode escapes after downloading.
;; Convert files with:
;; native2ascii -encoding iso-8859-1 foo.properties foo.properties.new
;; Then review that it looks right:
;; native2ascii -reverse -encoding UTF-8 foo.properties.new
;; Then copy it over:
;; mv foo.properties.new foo.properties
;; The following files from Transifex are known to be ISO-8859-1 encoded,
;; and should be escaped using native2ascii after downloading:
;; gl, pt, pt_BR, sq, sv, tr
;;
file_filter = core/java/src/gnu/getopt/MessagesBundle_<lang>.properties
source_file = core/java/src/gnu/getopt/MessagesBundle.properties
source_lang = en
type = PROPERTIES
trans.ar = core/java/src/gnu/getopt/MessagesBundle_ar.properties
trans.az = core/java/src/gnu/getopt/MessagesBundle_az.properties
trans.cs = core/java/src/gnu/getopt/MessagesBundle_cs.properties
trans.de = core/java/src/gnu/getopt/MessagesBundle_de.properties
trans.es = core/java/src/gnu/getopt/MessagesBundle_es.properties
trans.es_AR = core/java/src/gnu/getopt/MessagesBundle_es_AR.properties
trans.fi = core/java/src/gnu/getopt/MessagesBundle_fi.properties
trans.fr = core/java/src/gnu/getopt/MessagesBundle_fr.properties
trans.gl = core/java/src/gnu/getopt/MessagesBundle_gl.properties
trans.hu = core/java/src/gnu/getopt/MessagesBundle_hu.properties
;; Java converts id to in
trans.id = core/java/src/gnu/getopt/MessagesBundle_in.properties
trans.it = core/java/src/gnu/getopt/MessagesBundle_it.properties
trans.ja = core/java/src/gnu/getopt/MessagesBundle_ja.properties
trans.nl = core/java/src/gnu/getopt/MessagesBundle_nl.properties
trans.ko = core/java/src/gnu/getopt/MessagesBundle_ko.properties
trans.ku = core/java/src/gnu/getopt/MessagesBundle_ku.properties
trans.nb = core/java/src/gnu/getopt/MessagesBundle_nb.properties
trans.nl = core/java/src/gnu/getopt/MessagesBundle_nl.properties
trans.pl = core/java/src/gnu/getopt/MessagesBundle_pl.properties
trans.pt = core/java/src/gnu/getopt/MessagesBundle_pt.properties
trans.pt_BR = core/java/src/gnu/getopt/MessagesBundle_pt_BR.properties
trans.ro = core/java/src/gnu/getopt/MessagesBundle_ro.properties
trans.ru_RU = core/java/src/gnu/getopt/MessagesBundle_ru.properties
trans.sk = core/java/src/gnu/getopt/MessagesBundle_sk.properties
trans.sl = core/java/src/gnu/getopt/MessagesBundle_sl.properties
trans.sq = core/java/src/gnu/getopt/MessagesBundle_sq.properties
trans.sr = core/java/src/gnu/getopt/MessagesBundle_sr.properties
trans.sv_SE = core/java/src/gnu/getopt/MessagesBundle_sv.properties
trans.tr_TR = core/java/src/gnu/getopt/MessagesBundle_tr.properties
trans.uk_UA = core/java/src/gnu/getopt/MessagesBundle_uk.properties
trans.zh_CN = core/java/src/gnu/getopt/MessagesBundle_zh.properties
trans.zh_TW = core/java/src/gnu/getopt/MessagesBundle_zh_TW.properties
[I2P.streaming]
[o:otf:p:I2P:r:streaming]
file_filter = apps/ministreaming/locale/messages_<lang>.po
source_file = apps/ministreaming/locale/messages_en.po
source_lang = en
trans.ar = apps/ministreaming/locale/messages_ar.po
trans.az = apps/ministreaming/locale/messages_az.po
trans.ca = apps/ministreaming/locale/messages_ca.po
trans.cs = apps/ministreaming/locale/messages_cs.po
trans.de = apps/ministreaming/locale/messages_de.po
trans.es = apps/ministreaming/locale/messages_es.po
trans.es_AR = apps/ministreaming/locale/messages_es_AR.po
trans.fa = apps/ministreaming/locale/messages_fa.po
trans.fi = apps/ministreaming/locale/messages_fi.po
trans.fr = apps/ministreaming/locale/messages_fr.po
trans.gan = apps/ministreaming/locale/messages_gan.po
trans.gl = apps/ministreaming/locale/messages_gl.po
trans.hi = apps/ministreaming/locale/messages_hi.po
trans.hu = apps/ministreaming/locale/messages_hu.po
;; Java converts id to in
trans.id = apps/ministreaming/locale/messages_in.po
trans.it = apps/ministreaming/locale/messages_it.po
trans.ja = apps/ministreaming/locale/messages_ja.po
trans.ko = apps/ministreaming/locale/messages_ko.po
trans.nb = apps/ministreaming/locale/messages_nb.po
trans.nl = apps/ministreaming/locale/messages_nl.po
trans.pl = apps/ministreaming/locale/messages_pl.po
trans.pt = apps/ministreaming/locale/messages_pt.po
trans.pt_BR = apps/ministreaming/locale/messages_pt_BR.po
trans.ro = apps/ministreaming/locale/messages_ro.po
trans.ru_RU = apps/ministreaming/locale/messages_ru.po
trans.sl = apps/ministreaming/locale/messages_sl.po
trans.sv_SE = apps/ministreaming/locale/messages_sv.po
trans.tk = apps/ministreaming/locale/messages_tk.po
trans.tr_TR = apps/ministreaming/locale/messages_tr.po
trans.uk_UA = apps/ministreaming/locale/messages_uk.po
trans.zh_CN = apps/ministreaming/locale/messages_zh.po
trans.zh_TW = apps/ministreaming/locale/messages_zh_TW.po
[main]
host = https://www.transifex.com
[o:otf:p:I2P:r:manpages]
;;
;; after adding languages here, add to debian/*.manpages also
;; You must run installer/resources/poupdate-man.sh first.
;;
file_filter = installer/resources/locale-man/man_<lang>.po
type = PO
source_file = installer/resources/locale-man/man.pot
source_lang = en
trans.ar = installer/resources/locale-man/man_ar.po
trans.az = installer/resources/locale-man/man_az.po
trans.cs = installer/resources/locale-man/man_cs.po
trans.de = installer/resources/locale-man/man_de.po
trans.es = installer/resources/locale-man/man_es.po
trans.es_AR = installer/resources/locale-man/man_es_AR.po
trans.fi = installer/resources/locale-man/man_fi.po
trans.fr = installer/resources/locale-man/man_fr.po
trans.gan = installer/resources/locale-man/man_gan.po
trans.hu = installer/resources/locale-man/man_hu.po
trans.id = installer/resources/locale-man/man_id.po
trans.it = installer/resources/locale-man/man_it.po
trans.ja = installer/resources/locale-man/man_ja.po
trans.ko = installer/resources/locale-man/man_ko.po
trans.nl = installer/resources/locale-man/man_nl.po
trans.pl = installer/resources/locale-man/man_pl.po
trans.pt = installer/resources/locale-man/man_pt.po
trans.pt_BR = installer/resources/locale-man/man_pt_BR.po
trans.ro = installer/resources/locale-man/man_ro.po
trans.ru_RU = installer/resources/locale-man/man_ru.po
trans.sv_SE = installer/resources/locale-man/man_sv.po
trans.tr_TR = installer/resources/locale-man/man_tr.po
trans.zh_CN = installer/resources/locale-man/man_zh.po
trans.zh_TW = installer/resources/locale-man/man_zh_TW.po
[o:otf:p:I2P:r:eepsite]
;;
;; For any new translations, add links in installer/resources/eepsite/docroot/help/index.html
;; and copy new flags in build.xml copyflags-unlesspkg target,
;; and add to debian/i2p-router.links and debian-alt/*/i2p-router.links
;;
;; If gan, zh, or zh_TW are updated, restore the eepsite_zh.css line
;;
file_filter = installer/resources/eepsite/docroot/help/index_<lang>.po
type = HTML
source_file = installer/resources/eepsite/docroot/help/index.html
source_lang = en
;; File contains local changes to fix RTL issues.
;; Merge locally or make changes on TX side before re-enabling
;;trans.ar = installer/resources/eepsite/docroot/help/index_ar.html
trans.az = installer/resources/eepsite/docroot/help/index_az.html
trans.cs = installer/resources/eepsite/docroot/help/index_cs.html
trans.de = installer/resources/eepsite/docroot/help/index_de.html
trans.el = installer/resources/eepsite/docroot/help/index_el.html
trans.es = installer/resources/eepsite/docroot/help/index_es.html
trans.fa = installer/resources/eepsite/docroot/help/index_fa.html
trans.fr = installer/resources/eepsite/docroot/help/index_fr.html
trans.gan = installer/resources/eepsite/docroot/help/index_gan.html
trans.hu = installer/resources/eepsite/docroot/help/index_hu.html
;; Java converts id to in
trans.id = installer/resources/eepsite/docroot/help/index_in.html
trans.it = installer/resources/eepsite/docroot/help/index_it.html
trans.ja = installer/resources/eepsite/docroot/help/index_ja.html
;; not yet translated on TX, use old page
;;trans.nl = installer/resources/eepsite/docroot/help/index_nl.html
trans.pl = installer/resources/eepsite/docroot/help/index_pl.html
trans.pt = installer/resources/eepsite/docroot/help/index_pt.html
trans.pt_BR = installer/resources/eepsite/docroot/help/index_pt_BR.html
trans.ro = installer/resources/eepsite/docroot/help/index_ro.html
trans.ru_RU = installer/resources/eepsite/docroot/help/index_ru.html
trans.sv_SE = installer/resources/eepsite/docroot/help/index_sv.html
trans.tr_TR = installer/resources/eepsite/docroot/help/index_tr.html
trans.uk_UA = installer/resources/eepsite/docroot/help/index_uk.html
trans.zh_CN = installer/resources/eepsite/docroot/help/index_zh.html
trans.zh_TW = installer/resources/eepsite/docroot/help/index_zh_TW.html
[o:otf:p:I2P:r:readme]
;;
;; Text on /console
;;
;; NOTE: No support for country suffixes right now.
;; See ResourceHelper.java
;;
file_filter = apps/routerconsole/resources/docs/readme_<lang>.html
type = HTML
source_file = apps/routerconsole/resources/docs/readme.html
source_lang = en
trans.ar = apps/routerconsole/resources/docs/readme_ar.html
trans.cs = apps/routerconsole/resources/docs/readme_cs.html
trans.de = apps/routerconsole/resources/docs/readme_de.html
trans.fr = apps/routerconsole/resources/docs/readme_fr.html
trans.gan = apps/routerconsole/resources/docs/readme_gan.html
trans.hi = apps/routerconsole/resources/docs/readme_hi.html
trans.hu = apps/routerconsole/resources/docs/readme_hu.html
;; Java converts id to in
trans.id = apps/routerconsole/resources/docs/readme_in.html
trans.it = apps/routerconsole/resources/docs/readme_it.html
trans.ja = apps/routerconsole/resources/docs/readme_ja.html
trans.pl = apps/routerconsole/resources/docs/readme_pl.html
trans.pt = apps/routerconsole/resources/docs/readme_pt.html
trans.ro = apps/routerconsole/resources/docs/readme_ro.html
trans.ru_RU = apps/routerconsole/resources/docs/readme_ru.html
trans.sl = apps/routerconsole/resources/docs/readme_sl.html
trans.tr_TR = apps/routerconsole/resources/docs/readme_tr.html
trans.uk_UA = apps/routerconsole/resources/docs/readme_uk.html
trans.zh_CN = apps/routerconsole/resources/docs/readme_zh.html
trans.zh_TW = apps/routerconsole/resources/docs/readme_zh_TW.html

96
Docker.md Normal file
View File

@ -0,0 +1,96 @@
# I2P in Docker
### Very quick start
If you just want to give I2P a quick try or are using it on a home network, follow these steps:
1. Create two directories `i2pconfig` and `i2ptorrents`
2. Create an `.env` file containing the `EXT_PORT` environment variable.
3. Copy the following text and save it in a file `docker-compose.yml`
```
version: "3.5"
services:
i2p:
image: geti2p/i2p
ports:
- 127.0.0.1:4444:4444
- 127.0.0.1:6668:6668
- 127.0.0.1:7657:7657
- "$EXT_PORT":"$EXT_PORT"
- "$EXT_PORT":"$EXT_PORT"/udp
volumes:
- ./i2pconfig:/i2p/.i2p
- ./i2ptorrents:/i2psnark
```
4. Execute `docker-compose up`
5. Start a browser and go to `http://127.0.0.1:7657` to complete the setup wizard.
Note that this quick-start approach is not recommended for production deployments on remote servers. Please read the rest of this document for more information.
### Building an image
There is an i2P image available over at [DockerHub](https://hub.docker.com). If you do not want to use that one, you can build one yourself:
```
docker build -t geti2p/i2p .
```
### Running a container
#### Environment Variables
It is possible to set the IP address where the I2P router is accessible by setting
the `IP_ADDR` environment variable in your `docker run` command or your `docker-compose`
file. For example, if you want to make your I2P router listen on all addresses, then
you should pass `-e IP_ADDR=0.0.0.0` to your `docker run` command.
It is also possible to configure the memory available to the I2P router using
environment variables. To do this, use the: `JVM_XMX` environment variable by passing,
for example, `-e JVM_XMX=256m`.
For advanced configuration only, you can mount the configuration file via `-v ./router.config:/i2p/router.config` to access the settings mentioned in [the i2pd configuration](https://i2pd.readthedocs.io/en/latest/user-guide/configuration/).
#### Volumes
The container requires a volume for the configuration data to be mounted. Optionally, you can mount a separate volume for torrent ("i2psnark") downloads. See the example below.
#### Memory usage
By the default the image limits the memory available to the Java heap to 512MB. You can override that with the `JVM_XMX` environment variable.
#### Ports
There are several ports which are exposed by the image. You can choose which ones to publish depending on your specific needs.
|Port|Interface|Description|TCP/UDP|
|---|---|---|---|
|4444|127.0.0.1|HTTP Proxy|TCP|
|4445|127.0.0.1|HTTPS Proxy|TCP|
|6668|127.0.0.1|IRC Proxy|TCP|
|7654|127.0.0.1|I2CP Protocol|TCP|
|7656|127.0.0.1|SAM Bridge TCP|TCP|
|7657|127.0.0.1|Router console|TCP|
|7658|127.0.0.1|I2P Site|TCP|
|7659|127.0.0.1|SMTP Proxy|TCP|
|7660|127.0.0.1|POP Proxy|TCP|
|7652|LAN interface|UPnP|TCP|
|7653|LAN interface|UPnP|UDP|
|12345|0.0.0.0|I2NP Protocol|TCP and UDP|
You probably want at least the Router Console (7657) and the HTTP Proxy (4444). If you want I2P to be able to receive incoming connections from the internet, and hence not think it's firewalled, publish the I2NP Protocol port (12345) - but make sure you publish to a different random port, otherwise others may be able to guess you're running I2P in a Docker image.
#### Networking
A best-practices guide for cloud deployments is beyond the scope of this document, but in general you should try to minimize the number of published ports, while exposing only the `I2NP` ports to the internet. That means that the services in the list above which are bound to `127.0.0.1` (which include the router console) will need to be accessed via other methods like ssh tunneling or be manually configured to bind to a different interface.
#### Example
Here is an example container that mounts `i2phome` as home directory, `i2ptorrents` for torrents, and opens HTTP Proxy, IRC, Router Console and I2NP Protocols. It also limits the memory available to the JVM to 256MB.
```
docker build -t geti2p/i2p .
# I2NP port needs TCP and UDP. Change the 54321 to something random, greater than 1024.
docker run \
-e JVM_XMX=256m \
-e EXT_PORT=54321 \
-v i2phome:/i2p/.i2p \
-v i2ptorrents:/i2psnark \
-p 127.0.0.1:4444:4444 \
-p 127.0.0.1:6668:6668 \
-p 127.0.0.1:7657:7657 \
-p "$EXT_PORT":"$EXT_PORT" \
-p "$EXT_PORT":"$EXT_PORT"/udp \
geti2p/i2p:latest
```

40
Dockerfile Normal file
View File

@ -0,0 +1,40 @@
FROM alpine:latest as builder
ENV APP_HOME="/i2p"
ARG ANT_VERSION="1.10.15"
WORKDIR /tmp/build
COPY . .
RUN apk add --no-cache gettext tar bzip2 curl openjdk21 \
&& echo "build.built-by=Docker" >> override.properties \
&& curl https://dlcdn.apache.org//ant/binaries/apache-ant-${ANT_VERSION}-bin.tar.bz2 | tar -jxf - -C /opt \
&& /opt/apache-ant-${ANT_VERSION}/bin/ant preppkg-linux-only \
&& rm -rf pkg-temp/osid pkg-temp/lib/wrapper pkg-temp/lib/wrapper.*
FROM alpine:latest
ENV APP_HOME="/i2p"
RUN apk add openjdk21
WORKDIR ${APP_HOME}
COPY --from=builder /tmp/build/pkg-temp .
# "install" i2p by copying over installed files
COPY --chown=root:root docker/rootfs/ /
RUN chmod +x /startapp.sh
# Mount home and snark
VOLUME ["${APP_HOME}/.i2p"]
VOLUME ["/i2psnark"]
EXPOSE 7654 7656 7657 7658 4444 6668 7659 7660 4445 12345
# Metadata.
LABEL \
org.label-schema.name="i2p" \
org.label-schema.description="Docker container for I2P" \
org.label-schema.version="1.0" \
org.label-schema.vcs-url="https://github.com/i2p/i2p.i2p" \
org.label-schema.schema-version="1.0"
ENTRYPOINT ["/startapp.sh"]

View File

@ -11,11 +11,11 @@ you may use:
lynx http://localhost:7657/
to configure the router.
If you're having trouble, swing by http://forum.i2p/, check the
If you're having trouble, check the
website at https://geti2p.net/, or get on irc://irc.freenode.net/#i2p
I2P will create and store files and configuration data in the user directory
~/.i2p/ on Linux and %APPDATA%\I2P\ on Windows. This directory is created
~/.i2p/ on Linux and %LOCALAPPDATA%\I2P\ on Windows. This directory is created
when I2P is run for the first time. It also creates files in the system
temporary directory specified by the Java Virtual Machine.
To change the location of these directories, or to configure I2P to
@ -25,24 +25,23 @@ where there are comments labeled "PORTABLE". Do this before you
run I2P for the first time.
To start I2P:
(*nix): sh i2prouter start
(*nix, BSD, Mac): sh i2prouter start
(win*): I2P.exe
(non-x86 platforms PPC, ARM, etc): sh runplain.sh
(platforms without wrapper support): sh runplain.sh
To stop I2P (gracefully):
lynx http://localhost:7657/summaryframe (click "Shutdown")
or (*nix, BSD, Mac) sh i2prouter graceful
To stop I2P immediately:
sh i2prouter stop
(*nix, BSD, Mac) sh i2prouter stop
To uninstall I2P:
rm -rf $I2PInstallDir ~/.i2p
Supported JVMs:
All platforms: Java 1.6 or higher required; 1.7 or higher recommended
All platforms: Java 1.8 or higher required
Windows: OpenJDK or Oracle from http://java.com/download
Linux: OpenJDK or Oracle from http://java.com/download
FreeBSD: OpenJDK or Oracle from http://java.com/download
Raspberry Pi: Oracle 8 Early Access https://jdk8.java.net/download.html
PowerPC: IBM SDK 7 http://www.ibm.com/developerworks/java/jdk/linux/download.html
Other operating systems and JVMs: See https://trac.i2p2.de/wiki/java or https://geti2p.net/download
Other operating systems and JVMs: See https://geti2p.net/download

View File

@ -1,11 +1,13 @@
I2P source installation instructions
Prerequisites to build from source:
Java SDK (preferably Oracle/Sun or OpenJDK) 1.6.0 or higher
Java SDK (preferably Oracle or OpenJDK) 8 or higher
Non-linux operating systems and JVMs: See https://trac.i2p2.de/wiki/java
Apache Ant 1.7.0 or higher
Certain subsystems for embedded (core, router, mstreaming, streaming, i2ptunnel) require only Java 1.6
Apache Ant 1.9.8 or higher
The xgettext, msgfmt, and msgmerge tools installed
from the GNU gettext package http://www.gnu.org/software/gettext/
from the GNU gettext package http://www.gnu.org/software/gettext/
Build environment must use a UTF-8 locale.
To build and install I2P from source, you must first build
and package up the appropriate installer by running:
@ -40,29 +42,30 @@ or on Windows, just double-click on i2pinstall.exe.
Or move the i2pupdate.zip file into an existing installation directory and restart.
To start I2P:
(*nix): sh i2prouter start
(*nix, BSD, Mac): sh i2prouter start
(win*): I2P.exe or i2prouter.bat
(non-x86 platforms PPC, ARM, etc): sh runplain.sh
(platforms without wrapper support): sh runplain.sh
To install I2P as a system service:
(*nix) sh i2prouter install
(*nix, BSD, Mac) sh i2prouter install
(win*) install_i2p_service_winnt.bat
To uninstall I2P as a system service:
(*nix) sh i2prouter remove
(*nix, BSD, Mac) sh i2prouter remove
(win*) uninstall_i2p-service_winnt.bat
To stop I2P (gracefully):
lynx http://localhost:7657/summaryframe (click "Shutdown")
or (*nix, BSD, Mac) sh i2prouter graceful
To stop I2P immediately:
sh i2prouter stop
(*nix, BSD, Mac) sh i2prouter stop
To uninstall I2P:
rm -rf $I2PInstallDir ~/.i2p
Supported JVMs:
Windows: Latest available from http://java.com/download (1.5+ supported)
Linux: Latest available from http://java.com/download (1.5+ supported)
FreeBSD: 1.5-compatible (NIO required)
Other operating systems and JVMs: See http://trac.i2p2.de/wiki/java
All platforms: Java 1.8 or higher required
Windows: Latest available from http://java.com/download
Linux: Latest available from http://java.com/download
Other operating systems and JVMs: See https://geti2p.net/download

View File

@ -29,15 +29,15 @@ POSSIBILITY OF SUCH DAMAGES.
LICENSES
--------
Core (i2p.jar):
Core API (i2p.jar):
Public domain except as listed below:
ElGamal and DSA code:
Copyright (c) 2003, TheCrypto
See licenses/LICENSE-ElGamalDSA.txt
SHA256 and HMAC:
Copyright (c) 2000 - 2004 The Legion Of The Bouncy Castle
ElGamal:
Copyright (c) 2000 - 2013 The Legion of the Bouncy Castle Inc. (http://www.bouncycastle.org)
See licenses/LICENSE-SHA256.txt
AES code:
@ -54,13 +54,14 @@ Public domain except as listed below:
PRNG:
Copyright (C) 2001, 2002, Free Software Foundation, Inc.
See licenses/LICENSE-LGPLv2.1.txt
See licenses/LICENSE-LGPLv2.1.txt or /usr/share/common-licenses/LGPL-2.1
HashCash code:
Copyright 2006 Gregory Rubin grrubin@gmail.com
See licenses/LICENSE-HashCash.txt
GettextResource from gettext v0.18:
GettextResource from gettext v0.19.8:
(not included in most distribution packages)
Copyright (C) 2001, 2007 Free Software Foundation, Inc.
See licenses/LICENSE-LGPLv2.1.txt
@ -68,18 +69,37 @@ Public domain except as listed below:
Contains some code Copyright 2006 Sun Microsystems, Inc.
See licenses/LICENSE-InstallCert.txt
BlockFile:
Copyright (c) 2006, Matthew Estes
See licenses/LICENSE-BlockFile.txt
SipHashInline:
Copyright 2012 Hiroshi Nakamura <nahi@ruby-lang.org>
See licenses/LICENSE-Apache2.0.txt
Getopt:
(not included in most distribution packages)
Copyright (c) 1998 by Aaron M. Renn (arenn@urbanophile.com)
See licenses/LICENSE-LGPLv2.1.txt
EdDSA-Java:
See licenses/LICENSE-CC0-1.0-Universal.txt
HostnameVerifier:
From Apache HttpClient 4.4.1 and HttpCore 4.4.1
See licenses/LICENSE-Apache2.0.txt
json-simple 2.3.0
(not included in most distribution packages)
Copyright 2016 Clifton Labs
See licenses/LICENSE-Apache2.0.txt
Noise library:
Copyright (C) 2016 Southern Storm Software, Pty Ltd.
See licenses/LICENSE-Noise.txt
MiniDNS library 1.0.0
This software may be used under the terms of (at your choice)
- LGPL version 2 (or later) (see licenses/LICENSE-LGPL2.1.txt)
- Apache Software licence (see licenses/LICENSE-Apache2.0.txt)
- DWTFYWTPL
Router (router.jar):
Public domain except as listed below:
@ -87,17 +107,37 @@ Public domain except as listed below:
From freenet
See licenses/LICENSE-GPLv2.txt
UPnP subsystem (CyberLink) 2.1:
UPnP subsystem (CyberLink) 3.0:
Copyright (C) 2003-2010 Satoshi Konno
See licenses/LICENSE-UPnP.txt
GeoIP: GeoLite databases are licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
http://creativecommons.org/licenses/by-sa/3.0/
This product includes GeoLite data created by MaxMind, available from http://www.maxmind.com/
GeoIP API 1.3.1:
See licenses/LICENSE-LGPLv2.1.txt
GeoIP2-java 2.12.0:
See licenses/LICENSE-Apache2.0.txt
Maxmind-DB-Reader-java 1.2.2:
See licenses/LICENSE-Apache2.0.txt
Noise library:
Copyright (C) 2016 Southern Storm Software, Pty Ltd.
See licenses/LICENSE-Noise.txt
SparseArray:
Copyright (C) 2006 The Android Open Source Project
See licenses/LICENSE-Apache2.0.txt
ML-KEM:
Copyright (c) 2000-2023 The Legion Of The Bouncy Castle Inc. (https://www.bouncycastle.org)
See licenses/LICENSE-Bouncycastle.txt
Installer:
(not included in distribution packages)
Launch4j 3.0.1:
(Launch4j is only included in the upstream source package and Windows binaries.
Not applicable for non-Windows binaries or Debian/Launchpad packages.)
Copyright (c) 2004, 2008 Grzegorz Kowal
See licenses/LICENSE-Launch4j.txt (in binary packages)
See installer/lib/launch4j/LICENSE.txt (in source packages)
@ -110,7 +150,7 @@ Installer:
See licenses/LICENSE-Apache2.0.txt
See licenses/NOTICE-Commons-Logging.txt
XStream (http://xstream.codehaus.org/)
XStream (http://xstream.github.io/)
Copyright (c) 2003-2004, Joe Walnes
See licenses/LICENSE-XStream.txt
@ -136,120 +176,183 @@ Installer:
See licenses/LICENSE-Apache2.0.txt
GeoIP Data:
(not included in most distribution packages)
IP Geolocation by DB-IP https://db-ip.com/
See https://creativecommons.org/licenses/by/4.0/
Java Service Wrapper Community Edition 32-bit 3.5.25:
Copyright (C) 1999-2011 Tanuki Software, Ltd. All Rights Reserved.
Launchers:
(not included in distribution packages)
Copyright (c) 2002-2018 EPFL, Lausanne / Lightbend, Inc. , unless otherwise specified.
See licenses/LICENSE-Scala.md
Java Service Wrapper Community Edition 3.5.60:
(Windows: 3.5.25)
(not included in most distribution packages)
Copyright (C) 1999-2024 Tanuki Software, Ltd. All Rights Reserved.
See licenses/LICENSE-Wrapper.txt
Jbigi Libraries (jbigi.jar):
JNI code public domain.
JNI code: public domain.
GMP 4.3.2 / 5.0.2:
Copyright 1991, 1996, 1999, 2000, 2007 Free Software Foundation, Inc.
See licenses/LICENSE-LGPLv3.txt
GMP 6.0.0 / 6.1.2 / 6.2.0:
See licenses/LICENSE-GPLv2.txt
Applications:
Addressbook:
Addressbook (addressbook.jar):
Copyright (c) 2004 Ragnarok
See licenses/LICENSE-Addressbook.txt
BlockFile:
Copyright (c) 2006, Matthew Estes
See licenses/LICENSE-BlockFile.txt
BOB:
Copyright (C) sponge
See licenses/COPYING-BOB.txt
Desktopgui (desktopgui.jar):
Copyright (c) Mathias De Maré
See licenses/LICENSE-DesktopGUI.txt
I2PSnark:
Glassfish Standard Tag Library (JSTL) 1.2 (commons-el.jar):
(not included in most distribution packages)
Common Development and Distribution License (CDDL) version 1.0 + GNU General Public License (GPL) version 2
See https://glassfish.dev.java.net/public/CDDL+GPL.html
See licenses/LICENSE-GPLv2.txt
I2PControl
See licenses/LICENSE-Apache2.0.txt
Includes jBCrypt:
Copyright (c) 2006 Damien Miller <djm@mindrot.org>
See licenses/LICENSE-jBCrypt.txt
Includes jsonrpc2 1.38.1 (base) 1.11 (server)
See licenses/LICENSE-Apache2.0.txt
I2PSnark (i2psnark.jar, i2psnark.war):
Copyright (C) 2003 Mark J. Wielaard
GPLv2 (or any later version)
See licenses/LICENSE-GPLv2.txt
Silk icons: See licenses/LICENSE-SilkIcons.txt
I2PTunnel:
I2PTunnel (i2ptunnel.jar, i2ptunnel.war):
(c) 2003 - 2004 mihi
GPLv2 (or any later version) with exception.
See licenses/LICENSE-I2PTunnel.txt
See licenses/LICENSE-GPLv2.txt
I2PTunnel SOCKS Proxy:
Copyright (c) 2004 by human
GPLv2 (or any later version) with exception.
See licenses/LICENSE-I2PTunnel.txt
See licenses/LICENSE-GPLv2.txt
I2PTunnel UDP and Streamr (i2ptunnel.jar):
By welterde.
See licenses/LICENSE-GPLv2.txt
I2PTunnel SOCKS Proxy:
Copyright (c) 2004 by human
GPLv2 (or any later version) with exception.
See licenses/LICENSE-I2PTunnel.txt
See licenses/LICENSE-GPLv2.txt
Imagegen (imagegen.war):
Identicon:
Copyright (c) 2007-2014 Don Park <donpark@docuverse.com>
See licenses/LICENSE-Identicon.txt
RandomArt:
Copyright (c) 2000, 2001 Markus Friedl. All rights reserved.
Copyright (c) 2008 Alexander von Gernler. All rights reserved.
See licenses/LICENSE-BSD.txt
Zxing 3.4.1:
See licenses/LICENSE-Apache2.0.txt
I2PTunnel UDP and Streamr:
By welterde.
See licenses/LICENSE-GPLv2.txt
Jetty 8.1.16.v20140903:
Jetty 9.3.30.v20211001 (jetty-*.jar, org.mortbay.*.jar):
(not included in most distribution packages, except for jetty-i2p.jar)
See licenses/ABOUT-Jetty.html
See licenses/NOTICE-Jetty.html
See licenses/LICENSE-Apache2.0.txt
See licenses/LICENSE-ECLIPSE-1.0.html
See licenses/NOTICE-Commons-Logging.txt
JRobin 1.5.9.1:
RRD4J 3.10 (jrobin.jar):
Copyright (c) 2001-2005 Sasa Markovic and Ciaran Treanor.
Copyright (c) 2011 The OpenNMS Group, Inc.
Copyright 2011 The RRD4J Authors.
See licenses/LICENSE-Apache2.0.txt
See licenses/LICENSE-LGPLv2.1.txt
Ministreaming Lib:
Ministreaming Lib (mstreaming.jar):
By mihi.
See licenses/LICENSE-BSD.txt
Proxyscript:
Proxyscript (i2pProxy.pac):
(not included in distribution packages)
By Cervantes.
Public domain.
Router console:
Router console (routerconsole.jar, routerconsole.war):
Public domain.
Router Console themes:
Flag icons:
- Jersey and EU flag icons: public domain, courtesy Xrmap flag
collection http://www.arvernes.com/wiki/index.php/Xrmap
- Guernsey and Isle of Man flags from the Open Clip Art Library, released into the public domain
- Curaçao, courtesy of David Benbennick, released into the public domain
- All other flag icons: public domain, courtesy mjames@gmail.com http://www.famfamfam.com/
Silk icons: See licenses/LICENSE-SilkIcons.txt
FatCow icons: See licenses/LICENSE-FatCowIcons.txt
Fugue Icons: See licenses/LICENSE-FugueIcons.txt
Feather icons: Copyright (c) 2013-2017 Cole Bemis; see licenses/LICENSE-Feather.txt
Fontawesome icons: Copyright (c) 2018 @fontawesome(company) see licenses/LICENSE-fontawesome.txt
GeoIP Data:
This product includes GeoLite data created by MaxMind, available from http://www.maxmind.com/
See licenses/LICENSE-GeoIP.txt
Router Console unthemed, light, and dark theme logos:
Copyright (c) 2019 The Invisible Internet Project. All rights reserved.
Creative Commons Attribution-ShareAlike 4.0 International License
See https://creativecommons.org/licenses/by-sa/4.0/
Router Console and I2PSnark themes:
"Man with hat over face" & related images licensed under a Creative Commons 2.0 license.
Original photos by Florian Kuhlmann. http://www.flickr.com/photos/floriankuhlmann/3117758155
Some images licensed under a Creative Commons 2.0 license.
Silk icons: See licenses/LICENSE-SilkIcons.txt
I2PSnark light theme:
"Creative Commons Cat" licensed under a Creative Commons Attribution 3.0 Unported License.
Original photo by Boaz Arad. http://www.luxphile.com/2011/01/creative-commons-cat.html
Router Console M-Lab subsystem:
Copyright 2010 Vuze, Inc. All rights reserved.
See licenses/LICENSE-GPLv2.txt
SAM:
Router Console NDT subsystem:
Copyright (c) 2003 University of Chicago. All rights reserved.
See licenses/LICENSE-NDT.txt
Notice: I2P has changed specified portions of the Software, including the package edu.internet2.ndt.
Router Console Iframe-resizer 4.3.9:
Copyright (c) 2013-2023 David J. Bradshaw
See licenses/LICENSE-Iframe-resizer.txt
Router Console country coordinates:
Adapted from Google Dataset Publishing Language to convert to Mercator
CC BY 4.0 https://creativecommons.org/licenses/by/4.0/
SAM (sam.jar):
Public domain.
Streaming Lib:
Streaming Lib (streaming.jar):
Public domain.
SusiDNS:
SusiDNS (susidns.war):
Copyright (C) 2005 <susi23@mail.i2p>
GPLv2 (or any later version)
See licenses/LICENSE-GPLv2.txt
Uses Glassfish Standard Tag Library (JSTL) 1.2:
Common Development and Distribution License (CDDL) version 1.0 + GNU General Public License (GPL) version 2
See https://glassfish.dev.java.net/public/CDDL+GPL.html
See licenses/LICENSE-GPLv2.txt
SusiMail:
SusiMail (susimail.war):
Copyright (C) 2004-2005 <susi23@mail.i2p>
GPLv2 (or any later version)
See licenses/LICENSE-GPLv2.txt
Systray:
Public domain.
Bundles systray4j-2.4.1:
See licenses/LICENSE-LGPLv2.1.txt
SusiMail Pagedown:
Original Markdown Copyright (c) 2004-2005 John Gruber
Original Showdown code copyright (c) 2007 John Fraser
Modifications and bugfixes (c) 2009 Dana Robinson
Modifications and bugfixes (c) 2009-2014 Stack Exchange Inc.
See licenses/LICENSE-pagedown.txt
Tomcat 6.0.41:
Copyright 1999-2014 The Apache Software Foundation
Systray (systray.jar):
Public domain.
Tomcat 9.0.88 (jasper-runtime.jar):
(not included in most distribution packages)
Copyright 1999-2024 The Apache Software Foundation
See licenses/LICENSE-Apache2.0.txt
See licenses/NOTICE-Tomcat.txt
@ -263,24 +366,7 @@ distributions. See the source package for the additional license information.
Admin Manager:
Public domain
BOB Demos:
Copyright (C) sponge
DWTFYWTPL
Desktopgui
Copyright (c) Mathias De Maré
See apps/desktopgui/LICENSE
SAM C Library:
Copyright (c) 2004, Matthew P. Cashdollar <mpc@innographx.com>
See apps/sam/c/doc/license.txt
SAM C# Library:
Public domain.
See apps/sam/csharp/README
SAM Perl Library:
See licenses/LICENSE-GPLv2.txt
SAM Python Library:
Public domain.
Gradle wrapper 8.5:
(not included in most distribution packages)
Copyright (c) 2023 the original author or authors.
See licenses/LICENSE-Apache2.0.txt

View File

@ -1,132 +0,0 @@
# Makefile for building native I2P binaries and libraries with GCJ
#
# WARNING: Do not use this yet, as it may explode (etc).
#
GCJ=gcj #/usr/local/gcc-4.0.2/bin/gcj
EXTRA_LD_PATH= #/usr/local/gcc-4.0.2/lib
ANT=ant #/opt/apache-ant-1.6.5/bin/ant
ANT_TARGET=build2
NATIVE_DIR=native
##
# Define what jar files get into libi2p.so. The current setup is
# *incredibly* lazy, throwing everything in the .so, rather than
# give each .jar file its own .so.
# i2p.jar: base SDK
# mstreaming.jar: streaming API
# streaming.jar: full streaming lib implementation
# i2ptunnel.jar: I2PTunnel proxy
# sam.jar: SAM bridge and API
# i2psnark.jar: bittorrent client
# router.jar: full I2P router
# jbigi.jar: collection of native optimized GMP routines for crypto
JAR_BASE=i2p.jar mstreaming.jar streaming.jar
JAR_CLIENTS=i2ptunnel.jar sam.jar
JAR_ROUTER=router.jar
JAR_JBIGI=jbigi.jar
JAR_CONSOLE=\
javax.servlet.jar \
commons-el.jar \
commons-logging.jar \
jasper-runtime.jar \
jasper-compiler.jar \
org.mortbay.jetty.jar \
routerconsole.jar
LIBI2P_JARS=${JAR_BASE} ${JAR_CLIENTS} ${JAR_ROUTER} ${JAR_JBIGI}
LIBSAM_JARS=${JAR_BASE} sam.jar
LIBROUTER_JARS=i2p.jar ${JAR_ROUTER} ${JAR_JBIGI}
LIBCONSOLE_JARS=${LIBROUTER_JARS} ${JAR_CONSOLE}
LIBSNARK_JARS=${LIBROUTER_JARS} i2psnark.jar
# update:
# similar error with gcj 4.3.3.
#
# unfortunately, its not quite ready for most end users, as the
# ${JAR_CONSOLE} fails to compile with:
# org/apache/commons/logging/impl/LogKitLogger.java: In class 'org.apache.commons.logging.impl.LogKitLogger':
# .../LogKitLogger.java: In constructor '(java.lang.String)':
# .../LogKitLogger.java:91: error: cannot find file for class org.apache.log.Hierarchy
# .../LogKitLogger.java:91: error: cannot find file for class org.apache.log.Hierarchy
# .../LogKitLogger.java:104: error: cannot find file for class org.apache.log.Hierarchy
# .../LogKitLogger.java:104: confused by earlier errors, bailing out
#${JAR_CONSOLE}\
#${JAR_XML} \
#${JAR_SUCKER}
#${JAR_CONSOLE}
SYSTEM_PROPS=-DloggerFilenameOverride=logs/log-router-@.txt \
-Dorg.mortbay.http.Version.paranoid=true \
-Dorg.mortbay.util.FileResource.checkAliases=false \
-Dorg.mortbay.xml.XmlParser.NotValidating=true
#SYSTEM_PROPS=-Di2p.weakPRNG=true
OPTIMIZE=-O2
#OPTIMIZE=-O3
LD_LIBRARY_PATH=${EXTRA_LD_PATH}:.
all: jars native
@echo "* Build complete"
jars:
@${ANT} ${ANT_TARGET}
clean: native_clean
native: native_clean native_shared
@echo "* Native code build in ${NATIVE}"
native_clean:
@rm -rf ${NATIVE_DIR}
@mkdir ${NATIVE_DIR}
native_shared: libi2p.so
@cd build ; ${GCJ} ${OPTIMIZE} -fjni -L../${NATIVE_DIR} -li2p ${SYSTEM_PROPS} -o ../${NATIVE_DIR}/i2p_dsa --main=net.i2p.crypto.DSAEngine
@echo "* i2p_dsa is a simple test app with the DSA engine and Fortuna PRNG to make sure crypto is working"
@cd build ; ${GCJ} ${OPTIMIZE} -fjni -L../${NATIVE_DIR} -li2p ${SYSTEM_PROPS} -o ../${NATIVE_DIR}/prng --main=gnu.crypto.prng.FortunaStandalone
@cd build ; ${GCJ} ${OPTIMIZE} -fjni -L../${NATIVE_DIR} -li2p ${SYSTEM_PROPS} -o ../${NATIVE_DIR}/i2ptunnel --main=net.i2p.i2ptunnel.I2PTunnel
@echo "* i2ptunnel is mihi's I2PTunnel CLI"
@echo " run it as ./i2ptunnel -cli to avoid awt complaints"
@cd build ; ${GCJ} ${OPTIMIZE} -fjni -L../${NATIVE_DIR} -li2p ${SYSTEM_PROPS} -o ../${NATIVE_DIR}/i2ptunnelctl --main=net.i2p.i2ptunnel.TunnelControllerGroup
@echo "* i2ptunnelctl is a controller for I2PTunnel, reading i2ptunnel.config"
@echo " and launching the appropriate proxies"
#@cd build ; ${GCJ} ${OPTIMIZE} -fjni -L../${NATIVE_DIR} -li2p ${SYSTEM_PROPS} -o ../${NATIVE_DIR}/i2psnark --main=org.klomp.snark.Snark
#@echo "* i2psnark is an anonymous bittorrent client"
@cd build ; ${GCJ} ${OPTIMIZE} -fjni -L../${NATIVE_DIR} -li2p ${SYSTEM_PROPS} -o ../${NATIVE_DIR}/i2prouter --main=net.i2p.router.Router
@echo "* i2prouter is the main I2P router"
@echo " it can be used, and while the router console won't load,"
@echo " i2ptunnel will, so it will start all the proxies defined in i2ptunnel.config"
libi2p.so:
@echo "* Building $@"
@(cd build ; time ${GCJ} ${OPTIMIZE} -fPIC -fjni -shared -o ../${NATIVE_DIR}/$@ ${LIBI2P_JARS} ; cd .. )
@ls -l ${NATIVE_DIR}/$@
@echo "* $@ built"
sam: jars libi2psam.so
libi2psam.so:
@echo "* Building $@"
@rm -f ${NATIVE_DIR}/$@
@(cd build ; time ${GCJ} ${OPTIMIZE} -fPIC -fjni -shared -o ../${NATIVE_DIR}/$@ ${LIBSAM_JARS} ; cd .. )
@ls -l ${NATIVE_DIR}/$@
@echo "* $@ built"
router: jars libi2prouter.so
libi2prouter.so:
@echo "* Building $@"
@rm -f ${NATIVE_DIR}/$@
@(cd build ; time ${GCJ} ${OPTIMIZE} -fPIC -fjni -shared -o ../${NATIVE_DIR}/$@ ${LIBROUTER_JARS} ; cd .. )
@ls -l ${NATIVE_DIR}/$@
@echo "* $@ built"
console: jars libi2pconsole.so
# doesn't work, see above
libi2pconsole.so:
@echo "* Building $@"
@rm -f ${NATIVE_DIR}/$@
@(cd build ; time ${GCJ} ${OPTIMIZE} -fPIC -fjni -shared -o ../${NATIVE_DIR}/$@ ${LIBCONSOLE_JARS} ; cd .. )
@ls -l ${NATIVE_DIR}/$@
@echo "* $@ built"

85
README.md Normal file
View File

@ -0,0 +1,85 @@
# I2P
This is the source code for the reference Java implementation of I2P.
Latest release: [https://geti2p.net/download](https://geti2p.net/download)
## Installing
See [INSTALL.txt](INSTALL.txt) or [https://geti2p.net/download](https://geti2p.net/download) for installation instructions.
## Documentation
[https://geti2p.net/how](https://geti2p.net/how)
FAQ: [https://geti2p.net/faq](https://geti2p.net/faq)
API: [http://docs.i2p-projekt.de/javadoc/](http://docs.i2p-projekt.de/javadoc/)
or run 'ant javadoc' then start at build/javadoc/index.html
## How to contribute / Hack on I2P
Please check out [HACKING.md](docs/HACKING.md) and other documents in the docs directory.
## Building packages from source
To get development branch from source control: [https://geti2p.net/newdevelopers](https://geti2p.net/newdevelopers)
### Prerequisites
- Java SDK (preferably Oracle or OpenJDK) 8 or higher
- Non-linux operating systems and JVMs: See [https://trac.i2p2.de/wiki/java](https://trac.i2p2.de/wiki/java)
- Certain subsystems for embedded (core, router, mstreaming, streaming, i2ptunnel)
require only Java 6
- Apache Ant 1.9.8 or higher
- The xgettext, msgfmt, and msgmerge tools installed from the GNU gettext package
[http://www.gnu.org/software/gettext/](http://www.gnu.org/software/gettext/)
- Build environment must use a UTF-8 locale.
### Ant build process
On x86 systems do:
ant pkg
On non-x86, use one of the following instead:
ant installer-linux
ant installer-freebsd
ant installer-osx
Run 'ant' with no arguments to see other build options.
### Gradle build process
Full builds of installers or updates are not yet possible, but the code can be
compiled with:
./gradlew assemble
This will download dependencies over the clearnet by default, including Gradle
itself. To download through a SOCKS proxy (e.g. Tor), add the following lines to
your `~/.gradle/gradle.properties`:
systemProp.socksProxyHost=localhost
systemProp.socksProxyPort=9150
### Development builds
Automatic CI builds are available at the [continuous integration](https://github.com/i2p/i2p.i2p/actions/workflows/ant.yml) page.
### Docker
For more information how to run I2P in Docker, see [Docker.md](Docker.md)
## Contact info
Need help? See the IRC channel #i2p on irc.freenode.net
Bug reports: [https://i2pgit.org/i2p-hackers/i2p.i2p/-/issues](https://i2pgit.org/i2p-hackers/i2p.i2p/-/issues) [http://git.idk.i2p/i2p-hackers/i2p.i2p/-/issues](http://git.idk.i2p/i2p-hackers/i2p.i2p/-/issues)
Contact information, security issues, press inquiries: [https://geti2p.net/en/contact](https://geti2p.net/en/contact)
Twitter: [@i2p](https://twitter.com/i2p), [@geti2p](https://twitter.com/GetI2P)
## Licenses
See [LICENSE.txt](LICENSE.txt)

View File

@ -1,9 +1,11 @@
Prerequisites to build from source:
Java SDK (preferably Oracle/Sun or OpenJDK) 1.6.0 or higher
Java SDK (preferably Oracle or OpenJDK) 8 or higher
Non-linux operating systems and JVMs: See https://trac.i2p2.de/wiki/java
Apache Ant 1.7.0 or higher
Certain subsystems for embedded (core, router, mstreaming, streaming, i2ptunnel) require only Java 6
Apache Ant 1.9.8 or higher
The xgettext, msgfmt, and msgmerge tools installed
from the GNU gettext package http://www.gnu.org/software/gettext/
Build environment must use a UTF-8 locale.
To build:
On x86 systems do:
@ -17,9 +19,20 @@ To build:
Run 'ant' with no arguments to see other build options.
See INSTALL.txt or https://geti2p.net/download for installation instructions.
Gradle build system:
Full builds are not yet possible, but the command is:
./gradlew assemble
gradlew will download dependencies over the clearnet by default, including
Gradle itself. To download over Tor, create a gradle.properties file
containing:
systemProp.socksProxyHost=localhost
systemProp.socksProxyPort=9150
Documentation:
https://geti2p.net/how
API: run 'ant javadoc' then start at build/javadoc/index.html
API: http://docs.i2p-projekt.de/javadoc/
or run 'ant javadoc' then start at build/javadoc/index.html
Latest release:
https://geti2p.net/download
@ -32,7 +45,16 @@ FAQ:
Need help?
IRC irc.freenode.net #i2p
http://forum.i2p/
Bug reports:
https://i2pgit.org/i2p-hackers/i2p.i2p/-/issues
http://git.idk.i2p/i2p-hackers/i2p.i2p/-/issues
Contact information, security issues, press inquiries:
https://geti2p.net/en/contact
Twitter:
@i2p, @geti2p
Licenses:
See LICENSE.txt

View File

@ -49,7 +49,7 @@ config /etc/rc.d/rc.i2p.new
config $INST_DIR/wrapper.config.new
if [ -e /var/log/packages/i2p-base* ]; then
echo "Warning: This package supercedes the 'i2p-base' package." >&2
echo "Warning: This package supersedes the 'i2p-base' package." >&2
echo
echo "You may want to 'removepkg i2p-base'" >&2
echo "and check the contents of /etc/rc.d/rc.local*" >&2

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry combineaccessrules="false" kind="src" path="/i2p_sdk"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry combineaccessrules="false" kind="src" path="/ministreaming"/>
<classpathentry kind="output" path="build"/>
</classpath>

View File

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>BOB</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -1,69 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- You may freely edit this file. See commented blocks below for -->
<!-- some examples of how to customize the build. -->
<!-- (If you delete it and reopen the project it will be recreated.) -->
<project name="echoclient" default="default" basedir=".">
<description>Builds, tests, and runs the project echoclient.</description>
<import file="nbproject/build-impl.xml"/>
<!--
There exist several targets which are by default empty and which can be
used for execution of your tasks. These targets are usually executed
before and after some main targets. They are:
-pre-init: called before initialization of project properties
-post-init: called after initialization of project properties
-pre-compile: called before javac compilation
-post-compile: called after javac compilation
-pre-compile-single: called before javac compilation of single file
-post-compile-single: called after javac compilation of single file
-pre-compile-test: called before javac compilation of JUnit tests
-post-compile-test: called after javac compilation of JUnit tests
-pre-compile-test-single: called before javac compilation of single JUnit test
-post-compile-test-single: called after javac compilation of single JUunit test
-pre-jar: called before JAR building
-post-jar: called after JAR building
-post-clean: called after cleaning build products
(Targets beginning with '-' are not intended to be called on their own.)
Example of inserting an obfuscator after compilation could look like this:
<target name="-post-compile">
<obfuscate>
<fileset dir="${build.classes.dir}"/>
</obfuscate>
</target>
For list of available properties check the imported
nbproject/build-impl.xml file.
Another way to customize the build is by overriding existing main targets.
The targets of interest are:
-init-macrodef-javac: defines macro for javac compilation
-init-macrodef-junit: defines macro for junit execution
-init-macrodef-debug: defines macro for class debugging
-init-macrodef-java: defines macro for class execution
-do-jar-with-manifest: JAR building (if you are using a manifest)
-do-jar-without-manifest: JAR building (if you are not using a manifest)
run: execution of project
-javadoc-build: Javadoc generation
test-report: JUnit report generation
An example of overriding the target for project execution could look like this:
<target name="run" depends="echoclient-impl.jar">
<exec dir="bin" executable="launcher.exe">
<arg file="${dist.jar}"/>
</exec>
</target>
Notice that the overridden target depends on the jar target and not only on
the compile target as the regular run target does. Again, for a list of available
properties which you can use, check the target you are overriding in the
nbproject/build-impl.xml file.
-->
</project>

View File

@ -1,5 +0,0 @@
#!/bin/bash
(
cd dist
java -jar echoclient.jar main 37338 testclient $1
)

View File

@ -1,3 +0,0 @@
Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build

View File

@ -1,629 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
*** GENERATED FROM project.xml - DO NOT EDIT ***
*** EDIT ../build.xml INSTEAD ***
For the purpose of easier reading the script
is divided into following sections:
- initialization
- compilation
- jar
- execution
- debugging
- javadoc
- junit compilation
- junit execution
- junit debugging
- applet
- cleanup
-->
<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="echoclient-impl">
<target depends="test,jar,javadoc" description="Build and test whole project." name="default"/>
<!--
======================
INITIALIZATION SECTION
======================
-->
<target name="-pre-init">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="-pre-init" name="-init-private">
<property file="nbproject/private/config.properties"/>
<property file="nbproject/private/configs/${config}.properties"/>
<property file="nbproject/private/private.properties"/>
</target>
<target depends="-pre-init,-init-private" name="-init-user">
<property file="${user.properties.file}"/>
<!-- The two properties below are usually overridden -->
<!-- by the active platform. Just a fallback. -->
<property name="default.javac.source" value="1.4"/>
<property name="default.javac.target" value="1.4"/>
</target>
<target depends="-pre-init,-init-private,-init-user" name="-init-project">
<property file="nbproject/configs/${config}.properties"/>
<property file="nbproject/project.properties"/>
</target>
<target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
<available file="${manifest.file}" property="manifest.available"/>
<condition property="manifest.available+main.class">
<and>
<isset property="manifest.available"/>
<isset property="main.class"/>
<not>
<equals arg1="${main.class}" arg2="" trim="true"/>
</not>
</and>
</condition>
<condition property="manifest.available+main.class+mkdist.available">
<and>
<istrue value="${manifest.available+main.class}"/>
<isset property="libs.CopyLibs.classpath"/>
</and>
</condition>
<condition property="have.tests">
<or>
<available file="${test.src.dir}"/>
</or>
</condition>
<condition property="have.sources">
<or>
<available file="${src.dir}"/>
</or>
</condition>
<condition property="netbeans.home+have.tests">
<and>
<isset property="netbeans.home"/>
<isset property="have.tests"/>
</and>
</condition>
<condition property="no.javadoc.preview">
<and>
<isset property="javadoc.preview"/>
<isfalse value="${javadoc.preview}"/>
</and>
</condition>
<property name="run.jvmargs" value=""/>
<property name="javac.compilerargs" value=""/>
<property name="work.dir" value="${basedir}"/>
<condition property="no.deps">
<and>
<istrue value="${no.dependencies}"/>
</and>
</condition>
<property name="javac.debug" value="true"/>
<property name="javadoc.preview" value="true"/>
<property name="application.args" value=""/>
<property name="source.encoding" value="${file.encoding}"/>
<condition property="javadoc.encoding.used" value="${javadoc.encoding}">
<and>
<isset property="javadoc.encoding"/>
<not>
<equals arg1="${javadoc.encoding}" arg2=""/>
</not>
</and>
</condition>
<property name="javadoc.encoding.used" value="${source.encoding}"/>
<property name="includes" value="**"/>
<property name="excludes" value=""/>
<property name="do.depend" value="false"/>
<condition property="do.depend.true">
<istrue value="${do.depend}"/>
</condition>
<condition else="" property="javac.compilerargs.jaxws" value="-Djava.endorsed.dirs='${jaxws.endorsed.dir}'">
<and>
<isset property="jaxws.endorsed.dir"/>
<available file="nbproject/jaxws-build.xml"/>
</and>
</condition>
</target>
<target name="-post-init">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
<fail unless="src.dir">Must set src.dir</fail>
<fail unless="test.src.dir">Must set test.src.dir</fail>
<fail unless="build.dir">Must set build.dir</fail>
<fail unless="dist.dir">Must set dist.dir</fail>
<fail unless="build.classes.dir">Must set build.classes.dir</fail>
<fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
<fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
<fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
<fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
<fail unless="dist.jar">Must set dist.jar</fail>
</target>
<target name="-init-macrodef-property">
<macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1">
<attribute name="name"/>
<attribute name="value"/>
<sequential>
<property name="@{name}" value="${@{value}}"/>
</sequential>
</macrodef>
</target>
<target name="-init-macrodef-javac">
<macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${src.dir}" name="srcdir"/>
<attribute default="${build.classes.dir}" name="destdir"/>
<attribute default="${javac.classpath}" name="classpath"/>
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="${javac.debug}" name="debug"/>
<attribute default="" name="sourcepath"/>
<element name="customize" optional="true"/>
<sequential>
<javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}">
<classpath>
<path path="@{classpath}"/>
</classpath>
<compilerarg line="${javac.compilerargs} ${javac.compilerargs.jaxws}"/>
<customize/>
</javac>
</sequential>
</macrodef>
<macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${src.dir}" name="srcdir"/>
<attribute default="${build.classes.dir}" name="destdir"/>
<attribute default="${javac.classpath}" name="classpath"/>
<sequential>
<depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
<classpath>
<path path="@{classpath}"/>
</classpath>
</depend>
</sequential>
</macrodef>
<macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${build.classes.dir}" name="destdir"/>
<sequential>
<fail unless="javac.includes">Must set javac.includes</fail>
<pathconvert pathsep="," property="javac.includes.binary">
<path>
<filelist dir="@{destdir}" files="${javac.includes}"/>
</path>
<globmapper from="*.java" to="*.class"/>
</pathconvert>
<delete>
<files includes="${javac.includes.binary}"/>
</delete>
</sequential>
</macrodef>
</target>
<target name="-init-macrodef-junit">
<macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<sequential>
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true">
<batchtest todir="${build.test.results.dir}">
<fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
<filename name="@{testincludes}"/>
</fileset>
</batchtest>
<classpath>
<path path="${run.test.classpath}"/>
</classpath>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<formatter type="brief" usefile="false"/>
<formatter type="xml"/>
<jvmarg line="${run.jvmargs}"/>
</junit>
</sequential>
</macrodef>
</target>
<target name="-init-macrodef-nbjpda">
<macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
<attribute default="${main.class}" name="name"/>
<attribute default="${debug.classpath}" name="classpath"/>
<attribute default="" name="stopclassname"/>
<sequential>
<nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="dt_socket">
<classpath>
<path path="@{classpath}"/>
</classpath>
</nbjpdastart>
</sequential>
</macrodef>
<macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1">
<attribute default="${build.classes.dir}" name="dir"/>
<sequential>
<nbjpdareload>
<fileset dir="@{dir}" includes="${fix.classes}">
<include name="${fix.includes}*.class"/>
</fileset>
</nbjpdareload>
</sequential>
</macrodef>
</target>
<target name="-init-debug-args">
<property name="version-output" value="java version &quot;${ant.java.version}"/>
<condition property="have-jdk-older-than-1.4">
<or>
<contains string="${version-output}" substring="java version &quot;1.0"/>
<contains string="${version-output}" substring="java version &quot;1.1"/>
<contains string="${version-output}" substring="java version &quot;1.2"/>
<contains string="${version-output}" substring="java version &quot;1.3"/>
</or>
</condition>
<condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none">
<istrue value="${have-jdk-older-than-1.4}"/>
</condition>
</target>
<target depends="-init-debug-args" name="-init-macrodef-debug">
<macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${main.class}" name="classname"/>
<attribute default="${debug.classpath}" name="classpath"/>
<element name="customize" optional="true"/>
<sequential>
<java classname="@{classname}" dir="${work.dir}" fork="true">
<jvmarg line="${debug-args-line}"/>
<jvmarg value="-Xrunjdwp:transport=dt_socket,address=${jpda.address}"/>
<jvmarg line="${run.jvmargs}"/>
<classpath>
<path path="@{classpath}"/>
</classpath>
<syspropertyset>
<propertyref prefix="run-sys-prop."/>
<mapper from="run-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<customize/>
</java>
</sequential>
</macrodef>
</target>
<target name="-init-macrodef-java">
<macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
<attribute default="${main.class}" name="classname"/>
<element name="customize" optional="true"/>
<sequential>
<java classname="@{classname}" dir="${work.dir}" fork="true">
<jvmarg line="${run.jvmargs}"/>
<classpath>
<path path="${run.classpath}"/>
</classpath>
<syspropertyset>
<propertyref prefix="run-sys-prop."/>
<mapper from="run-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<customize/>
</java>
</sequential>
</macrodef>
</target>
<target name="-init-presetdef-jar">
<presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
<jar compress="${jar.compress}" jarfile="${dist.jar}">
<j2seproject1:fileset dir="${build.classes.dir}"/>
</jar>
</presetdef>
</target>
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-junit,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar" name="init"/>
<!--
===================
COMPILATION SECTION
===================
-->
<target depends="init" name="deps-jar" unless="no.deps"/>
<target depends="init,deps-jar" name="-pre-pre-compile">
<mkdir dir="${build.classes.dir}"/>
</target>
<target name="-pre-compile">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target if="do.depend.true" name="-compile-depend">
<j2seproject3:depend/>
</target>
<target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-compile-depend" if="have.sources" name="-do-compile">
<j2seproject3:javac/>
<copy todir="${build.classes.dir}">
<fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
</target>
<target name="-post-compile">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/>
<target name="-pre-compile-single">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
<j2seproject3:force-recompile/>
<j2seproject3:javac excludes="" includes="${javac.includes}" sourcepath="${src.dir}"/>
</target>
<target name="-post-compile-single">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,deps-jar,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/>
<!--
====================
JAR BUILDING SECTION
====================
-->
<target depends="init" name="-pre-pre-jar">
<dirname file="${dist.jar}" property="dist.jar.dir"/>
<mkdir dir="${dist.jar.dir}"/>
</target>
<target name="-pre-jar">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-pre-jar,-pre-jar" name="-do-jar-without-manifest" unless="manifest.available">
<j2seproject1:jar/>
</target>
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class">
<j2seproject1:jar manifest="${manifest.file}"/>
</target>
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class" name="-do-jar-with-mainclass" unless="manifest.available+main.class+mkdist.available">
<j2seproject1:jar manifest="${manifest.file}">
<j2seproject1:manifest>
<j2seproject1:attribute name="Main-Class" value="${main.class}"/>
</j2seproject1:manifest>
</j2seproject1:jar>
<echo>To run this application from the command line without Ant, try:</echo>
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
<property location="${dist.jar}" name="dist.jar.resolved"/>
<pathconvert property="run.classpath.with.dist.jar">
<path path="${run.classpath}"/>
<map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
</pathconvert>
<echo>java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo>
</target>
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class+mkdist.available" name="-do-jar-with-libraries">
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
<pathconvert property="run.classpath.without.build.classes.dir">
<path path="${run.classpath}"/>
<map from="${build.classes.dir.resolved}" to=""/>
</pathconvert>
<pathconvert pathsep=" " property="jar.classpath">
<path path="${run.classpath.without.build.classes.dir}"/>
<chainedmapper>
<flattenmapper/>
<globmapper from="*" to="lib/*"/>
</chainedmapper>
</pathconvert>
<taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
<copylibs compress="${jar.compress}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
<fileset dir="${build.classes.dir}"/>
<manifest>
<attribute name="Main-Class" value="${main.class}"/>
<attribute name="Class-Path" value="${jar.classpath}"/>
</manifest>
</copylibs>
<echo>To run this application from the command line without Ant, try:</echo>
<property location="${dist.jar}" name="dist.jar.resolved"/>
<echo>java -jar "${dist.jar.resolved}"</echo>
</target>
<target name="-post-jar">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries,-post-jar" description="Build JAR." name="jar"/>
<!--
=================
EXECUTION SECTION
=================
-->
<target depends="init,compile" description="Run a main class." name="run">
<j2seproject1:java>
<customize>
<arg line="${application.args}"/>
</customize>
</j2seproject1:java>
</target>
<target name="-do-not-recompile">
<property name="javac.includes.binary" value=""/>
</target>
<target depends="init,-do-not-recompile,compile-single" name="run-single">
<fail unless="run.class">Must select one file in the IDE or set run.class</fail>
<j2seproject1:java classname="${run.class}"/>
</target>
<!--
=================
DEBUGGING SECTION
=================
-->
<target depends="init" if="netbeans.home" name="-debug-start-debugger">
<j2seproject1:nbjpdastart name="${debug.class}"/>
</target>
<target depends="init,compile" name="-debug-start-debuggee">
<j2seproject3:debug>
<customize>
<arg line="${application.args}"/>
</customize>
</j2seproject3:debug>
</target>
<target depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/>
<target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto">
<j2seproject1:nbjpdastart stopclassname="${main.class}"/>
</target>
<target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/>
<target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single">
<fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
<j2seproject3:debug classname="${debug.class}"/>
</target>
<target depends="init,-do-not-recompile,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/>
<target depends="init" name="-pre-debug-fix">
<fail unless="fix.includes">Must set fix.includes</fail>
<property name="javac.includes" value="${fix.includes}.java"/>
</target>
<target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix">
<j2seproject1:nbjpdareload/>
</target>
<target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/>
<!--
===============
JAVADOC SECTION
===============
-->
<target depends="init" name="-javadoc-build">
<mkdir dir="${dist.javadoc.dir}"/>
<javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
<classpath>
<path path="${javac.classpath}"/>
</classpath>
<fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
</javadoc>
</target>
<target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview">
<nbbrowse file="${dist.javadoc.dir}/index.html"/>
</target>
<target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/>
<!--
=========================
JUNIT COMPILATION SECTION
=========================
-->
<target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
<mkdir dir="${build.test.classes.dir}"/>
</target>
<target name="-pre-compile-test">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target if="do.depend.true" name="-compile-test-depend">
<j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
</target>
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
<j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
<copy todir="${build.test.classes.dir}">
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
</target>
<target name="-post-compile-test">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/>
<target name="-pre-compile-test-single">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
<j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
<j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"/>
<copy todir="${build.test.classes.dir}">
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
</target>
<target name="-post-compile-test-single">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
<!--
=======================
JUNIT EXECUTION SECTION
=======================
-->
<target depends="init" if="have.tests" name="-pre-test-run">
<mkdir dir="${build.test.results.dir}"/>
</target>
<target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
<j2seproject3:junit testincludes="**/*Test.java"/>
</target>
<target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
<fail if="tests.failed">Some tests failed; see details above.</fail>
</target>
<target depends="init" if="have.tests" name="test-report"/>
<target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
<target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/>
<target depends="init" if="have.tests" name="-pre-test-run-single">
<mkdir dir="${build.test.results.dir}"/>
</target>
<target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
<fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
<j2seproject3:junit excludes="" includes="${test.includes}"/>
</target>
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
<fail if="tests.failed">Some tests failed; see details above.</fail>
</target>
<target depends="init,-do-not-recompile,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
<!--
=======================
JUNIT DEBUGGING SECTION
=======================
-->
<target depends="init,compile-test" if="have.tests" name="-debug-start-debuggee-test">
<fail unless="test.class">Must select one file in the IDE or set test.class</fail>
<property location="${build.test.results.dir}/TEST-${test.class}.xml" name="test.report.file"/>
<delete file="${test.report.file}"/>
<mkdir dir="${build.test.results.dir}"/>
<j2seproject3:debug classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner" classpath="${ant.home}/lib/ant.jar:${ant.home}/lib/ant-junit.jar:${debug.test.classpath}">
<customize>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<arg value="${test.class}"/>
<arg value="showoutput=true"/>
<arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.BriefJUnitResultFormatter"/>
<arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,${test.report.file}"/>
</customize>
</j2seproject3:debug>
</target>
<target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
<j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
</target>
<target depends="init,-do-not-recompile,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
<target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
<j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/>
</target>
<target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/>
<!--
=========================
APPLET EXECUTION SECTION
=========================
-->
<target depends="init,compile-single" name="run-applet">
<fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
<j2seproject1:java classname="sun.applet.AppletViewer">
<customize>
<arg value="${applet.url}"/>
</customize>
</j2seproject1:java>
</target>
<!--
=========================
APPLET DEBUGGING SECTION
=========================
-->
<target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet">
<fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
<j2seproject3:debug classname="sun.applet.AppletViewer">
<customize>
<arg value="${applet.url}"/>
</customize>
</j2seproject3:debug>
</target>
<target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/>
<!--
===============
CLEANUP SECTION
===============
-->
<target depends="init" name="deps-clean" unless="no.deps"/>
<target depends="init" name="-do-clean">
<delete dir="${build.dir}"/>
<delete dir="${dist.dir}"/>
</target>
<target name="-post-clean">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/>
</project>

View File

@ -1,8 +0,0 @@
build.xml.data.CRC32=8ce3cee9
build.xml.script.CRC32=d1de2df3
build.xml.stylesheet.CRC32=be360661
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
nbproject/build-impl.xml.data.CRC32=8ce3cee9
nbproject/build-impl.xml.script.CRC32=22d1fbbb
nbproject/build-impl.xml.stylesheet.CRC32=487672f9

View File

@ -1,2 +0,0 @@
jaxws.endorsed.dir=/usr/local/netbeans-6.1/java2/modules/ext/jaxws21/api
user.properties.file=/root/.netbeans/6.1/build.properties

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/1"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/1">
<file>file:/root/NetBeansProjects/BOB/Demos/echo/echoclient/src/net/i2p/BOB/Demos/echo/echoclient/Main.java</file>
</open-files>
</project-private>

View File

@ -1,60 +0,0 @@
build.classes.dir=${build.dir}/classes
build.classes.excludes=**/*.java,**/*.form
# This directory is removed when the project is cleaned:
build.dir=build
build.generated.dir=${build.dir}/generated
# Only compile against the classpath explicitly listed here:
build.sysclasspath=ignore
build.test.classes.dir=${build.dir}/test/classes
build.test.results.dir=${build.dir}/test/results
debug.classpath=\
${run.classpath}
debug.test.classpath=\
${run.test.classpath}
# This directory is removed when the project is cleaned:
dist.dir=dist
dist.jar=${dist.dir}/echoclient.jar
dist.javadoc.dir=${dist.dir}/javadoc
excludes=
file.reference.BOB.jar=../../../dist/BOB.jar
includes=**
jar.compress=false
javac.classpath=
# Space-separated list of extra javac options
javac.compilerargs=
javac.deprecation=false
javac.source=1.5
javac.target=1.5
javac.test.classpath=\
${javac.classpath}:\
${build.classes.dir}:\
${libs.junit.classpath}:\
${libs.junit_4.classpath}
javadoc.additionalparam=
javadoc.author=false
javadoc.encoding=${source.encoding}
javadoc.noindex=false
javadoc.nonavbar=false
javadoc.notree=false
javadoc.private=false
javadoc.splitindex=true
javadoc.use=true
javadoc.version=false
javadoc.windowtitle=
main.class=net.i2p.BOB.Demos.echo.echoclient.Main
manifest.file=manifest.mf
meta.inf.dir=${src.dir}/META-INF
platform.active=default_platform
run.classpath=\
${javac.classpath}:\
${build.classes.dir}
# Space-separated list of JVM arguments used when running the project
# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value
# or test-sys-prop.name=value to set system properties for unit tests):
run.jvmargs=
run.test.classpath=\
${javac.test.classpath}:\
${build.test.classes.dir}
source.encoding=UTF-8
src.dir=src
test.src.dir=test

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.java.j2seproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/j2se-project/3">
<name>echoclient</name>
<minimum-ant-version>1.6.5</minimum-ant-version>
<source-roots>
<root id="src.dir"/>
</source-roots>
<test-roots>
<root id="test.src.dir"/>
</test-roots>
</data>
</configuration>
</project>

View File

@ -1,193 +0,0 @@
/**
* WTFPL
* Version 2, December 2004
*
* Copyright (C) sponge
* Planet Earth
*
* See...
*
* http://sam.zoy.org/wtfpl/
* and
* http://en.wikipedia.org/wiki/WTFPL
*
* ...for any additional details and license questions.
*/
package net.i2p.BOB.Demos.echo.echoclient;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author sponge
*/
public class Main {
public static String Lread(InputStream in) throws IOException {
String S;
int b;
char c;
S = new String();
while(true) {
b = in.read();
if(b == 13) {
//skip CR
continue;
}
if(b < 20 || b > 126) {
// exit on anything not legal
break;
}
c = (char)(b & 0x7f); // We only care about ASCII
S = new String(S + c);
}
return S;
}
/**
* Check for "ERROR" and if so, throw RuntimeException
* @param line
* @throws java.lang.RuntimeException
*/
static void checkline(String line) throws RuntimeException {
System.out.println(line); // print status
if(line.startsWith("ERROR")) {
throw new RuntimeException(line);
}
}
static void wrtxt(OutputStream CMDout, String s) throws IOException {
CMDout.write(s.getBytes());
CMDout.write('\n');
CMDout.flush();
}
static void setupconn(String[] args) throws UnknownHostException, IOException, RuntimeException {
String line;
Socket CMDsock = new Socket("localhost", 0xB0B);
InputStream CMDin = CMDsock.getInputStream();
OutputStream CMDout = CMDsock.getOutputStream();
// setup the tunnel.
line = Lread(CMDin);
System.out.println(line); // print the banner
line = Lread(CMDin);
System.out.println(line); // print initial status, should always be "OK"
try {
wrtxt(CMDout, "status " + args[2]);
line = Lread(CMDin); // get the status of this nickname, if it's an error, create it
checkline(line);
} catch(RuntimeException rte) {
wrtxt(CMDout, "setnick " + args[2]);
line = Lread(CMDin); // create a new nickname
checkline(line);
wrtxt(CMDout, "newkeys");
line = Lread(CMDin); // set up new keys
checkline(line);
wrtxt(CMDout, "inport " + args[1]);
line = Lread(CMDin); // set the port we connect in on
checkline(line);
}
wrtxt(CMDout, "getnick " + args[2]);
line = Lread(CMDin); // Set to our nick
try {
checkline(line);
} catch(RuntimeException rte) {
System.out.println("Continuing on existing tunnel..");
return;
}
wrtxt(CMDout, "start");
line = Lread(CMDin); // an error here is OK
System.out.println(line); // print status
CMDsock.close(); // we no longer need this particular socket
}
static void deleteconn(String[] args) throws UnknownHostException, IOException, RuntimeException {
String line;
// Wait for things to flush
try {
Thread.sleep(10000);
} catch(InterruptedException ex) {
// nop
}
Socket CMDsock = new Socket("localhost", 0xB0B);
InputStream CMDin = CMDsock.getInputStream();
OutputStream CMDout = CMDsock.getOutputStream();
// delete the tunnel.
line = Lread(CMDin);
System.out.println(line); // print the banner
line = Lread(CMDin);
System.out.println(line); // print initial status, should always be "OK"
wrtxt(CMDout, "getnick " + args[2]); // Set to our nick
line = Lread(CMDin);
checkline(line);
wrtxt(CMDout, "stop");
line = Lread(CMDin);
checkline(line);
try {
Thread.sleep(2000); //sleep for 2000 ms (Two seconds)
} catch(Exception e) {
// nop
}
wrtxt(CMDout, "clear");
line = Lread(CMDin);
while(line.startsWith("ERROR")) {
wrtxt(CMDout, "clear");
line = Lread(CMDin);
}
System.out.println(line); // print status
CMDsock.close(); // we no longer need this particular socket
}
static void chatter(String[] args) throws UnknownHostException, IOException, RuntimeException {
String line;
Socket sock = new Socket("localhost", Integer.parseInt(args[1]));
InputStream in = sock.getInputStream();
OutputStreamWriter out = new OutputStreamWriter(sock.getOutputStream());
out.write(args[3] + "\n"); // send out the i2p address to connect to
out.flush();
System.out.println("Connecting to " + args[3]);
line = Lread(in); // get server greeting
System.out.println("Got " + line); // show user
out.write("Test complete.\n"); // send something back
out.flush(); // make sure it's sent.
sock.close(); // done.
}
/**
*
* @param args tunnelport tunnelnickname I2Pdestkey
*/
public static void main(String[] args) {
// I'm lazy, and want to exit on any failures.
try {
setupconn(args); // talk to BOB, set up an outbound port
chatter(args); // talk over the connection
} catch(UnknownHostException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch(IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
try {
deleteconn(args);
} catch(UnknownHostException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch(IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch(RuntimeException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}

View File

@ -1,69 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- You may freely edit this file. See commented blocks below for -->
<!-- some examples of how to customize the build. -->
<!-- (If you delete it and reopen the project it will be recreated.) -->
<project name="echoserver" default="default" basedir=".">
<description>Builds, tests, and runs the project echoserver.</description>
<import file="nbproject/build-impl.xml"/>
<!--
There exist several targets which are by default empty and which can be
used for execution of your tasks. These targets are usually executed
before and after some main targets. They are:
-pre-init: called before initialization of project properties
-post-init: called after initialization of project properties
-pre-compile: called before javac compilation
-post-compile: called after javac compilation
-pre-compile-single: called before javac compilation of single file
-post-compile-single: called after javac compilation of single file
-pre-compile-test: called before javac compilation of JUnit tests
-post-compile-test: called after javac compilation of JUnit tests
-pre-compile-test-single: called before javac compilation of single JUnit test
-post-compile-test-single: called after javac compilation of single JUunit test
-pre-jar: called before JAR building
-post-jar: called after JAR building
-post-clean: called after cleaning build products
(Targets beginning with '-' are not intended to be called on their own.)
Example of inserting an obfuscator after compilation could look like this:
<target name="-post-compile">
<obfuscate>
<fileset dir="${build.classes.dir}"/>
</obfuscate>
</target>
For list of available properties check the imported
nbproject/build-impl.xml file.
Another way to customize the build is by overriding existing main targets.
The targets of interest are:
-init-macrodef-javac: defines macro for javac compilation
-init-macrodef-junit: defines macro for junit execution
-init-macrodef-debug: defines macro for class debugging
-init-macrodef-java: defines macro for class execution
-do-jar-with-manifest: JAR building (if you are using a manifest)
-do-jar-without-manifest: JAR building (if you are not using a manifest)
run: execution of project
-javadoc-build: Javadoc generation
test-report: JUnit report generation
An example of overriding the target for project execution could look like this:
<target name="run" depends="echoserver-impl.jar">
<exec dir="bin" executable="launcher.exe">
<arg file="${dist.jar}"/>
</exec>
</target>
Notice that the overridden target depends on the jar target and not only on
the compile target as the regular run target does. Again, for a list of available
properties which you can use, check the target you are overriding in the
nbproject/build-impl.xml file.
-->
</project>

View File

@ -1,3 +0,0 @@
Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build

View File

@ -1,629 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
*** GENERATED FROM project.xml - DO NOT EDIT ***
*** EDIT ../build.xml INSTEAD ***
For the purpose of easier reading the script
is divided into following sections:
- initialization
- compilation
- jar
- execution
- debugging
- javadoc
- junit compilation
- junit execution
- junit debugging
- applet
- cleanup
-->
<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="echoserver-impl">
<target depends="test,jar,javadoc" description="Build and test whole project." name="default"/>
<!--
======================
INITIALIZATION SECTION
======================
-->
<target name="-pre-init">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="-pre-init" name="-init-private">
<property file="nbproject/private/config.properties"/>
<property file="nbproject/private/configs/${config}.properties"/>
<property file="nbproject/private/private.properties"/>
</target>
<target depends="-pre-init,-init-private" name="-init-user">
<property file="${user.properties.file}"/>
<!-- The two properties below are usually overridden -->
<!-- by the active platform. Just a fallback. -->
<property name="default.javac.source" value="1.4"/>
<property name="default.javac.target" value="1.4"/>
</target>
<target depends="-pre-init,-init-private,-init-user" name="-init-project">
<property file="nbproject/configs/${config}.properties"/>
<property file="nbproject/project.properties"/>
</target>
<target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
<available file="${manifest.file}" property="manifest.available"/>
<condition property="manifest.available+main.class">
<and>
<isset property="manifest.available"/>
<isset property="main.class"/>
<not>
<equals arg1="${main.class}" arg2="" trim="true"/>
</not>
</and>
</condition>
<condition property="manifest.available+main.class+mkdist.available">
<and>
<istrue value="${manifest.available+main.class}"/>
<isset property="libs.CopyLibs.classpath"/>
</and>
</condition>
<condition property="have.tests">
<or>
<available file="${test.src.dir}"/>
</or>
</condition>
<condition property="have.sources">
<or>
<available file="${src.dir}"/>
</or>
</condition>
<condition property="netbeans.home+have.tests">
<and>
<isset property="netbeans.home"/>
<isset property="have.tests"/>
</and>
</condition>
<condition property="no.javadoc.preview">
<and>
<isset property="javadoc.preview"/>
<isfalse value="${javadoc.preview}"/>
</and>
</condition>
<property name="run.jvmargs" value=""/>
<property name="javac.compilerargs" value=""/>
<property name="work.dir" value="${basedir}"/>
<condition property="no.deps">
<and>
<istrue value="${no.dependencies}"/>
</and>
</condition>
<property name="javac.debug" value="true"/>
<property name="javadoc.preview" value="true"/>
<property name="application.args" value=""/>
<property name="source.encoding" value="${file.encoding}"/>
<condition property="javadoc.encoding.used" value="${javadoc.encoding}">
<and>
<isset property="javadoc.encoding"/>
<not>
<equals arg1="${javadoc.encoding}" arg2=""/>
</not>
</and>
</condition>
<property name="javadoc.encoding.used" value="${source.encoding}"/>
<property name="includes" value="**"/>
<property name="excludes" value=""/>
<property name="do.depend" value="false"/>
<condition property="do.depend.true">
<istrue value="${do.depend}"/>
</condition>
<condition else="" property="javac.compilerargs.jaxws" value="-Djava.endorsed.dirs='${jaxws.endorsed.dir}'">
<and>
<isset property="jaxws.endorsed.dir"/>
<available file="nbproject/jaxws-build.xml"/>
</and>
</condition>
</target>
<target name="-post-init">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
<fail unless="src.dir">Must set src.dir</fail>
<fail unless="test.src.dir">Must set test.src.dir</fail>
<fail unless="build.dir">Must set build.dir</fail>
<fail unless="dist.dir">Must set dist.dir</fail>
<fail unless="build.classes.dir">Must set build.classes.dir</fail>
<fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
<fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
<fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
<fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
<fail unless="dist.jar">Must set dist.jar</fail>
</target>
<target name="-init-macrodef-property">
<macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1">
<attribute name="name"/>
<attribute name="value"/>
<sequential>
<property name="@{name}" value="${@{value}}"/>
</sequential>
</macrodef>
</target>
<target name="-init-macrodef-javac">
<macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${src.dir}" name="srcdir"/>
<attribute default="${build.classes.dir}" name="destdir"/>
<attribute default="${javac.classpath}" name="classpath"/>
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="${javac.debug}" name="debug"/>
<attribute default="" name="sourcepath"/>
<element name="customize" optional="true"/>
<sequential>
<javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}">
<classpath>
<path path="@{classpath}"/>
</classpath>
<compilerarg line="${javac.compilerargs} ${javac.compilerargs.jaxws}"/>
<customize/>
</javac>
</sequential>
</macrodef>
<macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${src.dir}" name="srcdir"/>
<attribute default="${build.classes.dir}" name="destdir"/>
<attribute default="${javac.classpath}" name="classpath"/>
<sequential>
<depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
<classpath>
<path path="@{classpath}"/>
</classpath>
</depend>
</sequential>
</macrodef>
<macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${build.classes.dir}" name="destdir"/>
<sequential>
<fail unless="javac.includes">Must set javac.includes</fail>
<pathconvert pathsep="," property="javac.includes.binary">
<path>
<filelist dir="@{destdir}" files="${javac.includes}"/>
</path>
<globmapper from="*.java" to="*.class"/>
</pathconvert>
<delete>
<files includes="${javac.includes.binary}"/>
</delete>
</sequential>
</macrodef>
</target>
<target name="-init-macrodef-junit">
<macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<sequential>
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true">
<batchtest todir="${build.test.results.dir}">
<fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
<filename name="@{testincludes}"/>
</fileset>
</batchtest>
<classpath>
<path path="${run.test.classpath}"/>
</classpath>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<formatter type="brief" usefile="false"/>
<formatter type="xml"/>
<jvmarg line="${run.jvmargs}"/>
</junit>
</sequential>
</macrodef>
</target>
<target name="-init-macrodef-nbjpda">
<macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
<attribute default="${main.class}" name="name"/>
<attribute default="${debug.classpath}" name="classpath"/>
<attribute default="" name="stopclassname"/>
<sequential>
<nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="dt_socket">
<classpath>
<path path="@{classpath}"/>
</classpath>
</nbjpdastart>
</sequential>
</macrodef>
<macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1">
<attribute default="${build.classes.dir}" name="dir"/>
<sequential>
<nbjpdareload>
<fileset dir="@{dir}" includes="${fix.classes}">
<include name="${fix.includes}*.class"/>
</fileset>
</nbjpdareload>
</sequential>
</macrodef>
</target>
<target name="-init-debug-args">
<property name="version-output" value="java version &quot;${ant.java.version}"/>
<condition property="have-jdk-older-than-1.4">
<or>
<contains string="${version-output}" substring="java version &quot;1.0"/>
<contains string="${version-output}" substring="java version &quot;1.1"/>
<contains string="${version-output}" substring="java version &quot;1.2"/>
<contains string="${version-output}" substring="java version &quot;1.3"/>
</or>
</condition>
<condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none">
<istrue value="${have-jdk-older-than-1.4}"/>
</condition>
</target>
<target depends="-init-debug-args" name="-init-macrodef-debug">
<macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${main.class}" name="classname"/>
<attribute default="${debug.classpath}" name="classpath"/>
<element name="customize" optional="true"/>
<sequential>
<java classname="@{classname}" dir="${work.dir}" fork="true">
<jvmarg line="${debug-args-line}"/>
<jvmarg value="-Xrunjdwp:transport=dt_socket,address=${jpda.address}"/>
<jvmarg line="${run.jvmargs}"/>
<classpath>
<path path="@{classpath}"/>
</classpath>
<syspropertyset>
<propertyref prefix="run-sys-prop."/>
<mapper from="run-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<customize/>
</java>
</sequential>
</macrodef>
</target>
<target name="-init-macrodef-java">
<macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
<attribute default="${main.class}" name="classname"/>
<element name="customize" optional="true"/>
<sequential>
<java classname="@{classname}" dir="${work.dir}" fork="true">
<jvmarg line="${run.jvmargs}"/>
<classpath>
<path path="${run.classpath}"/>
</classpath>
<syspropertyset>
<propertyref prefix="run-sys-prop."/>
<mapper from="run-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<customize/>
</java>
</sequential>
</macrodef>
</target>
<target name="-init-presetdef-jar">
<presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
<jar compress="${jar.compress}" jarfile="${dist.jar}">
<j2seproject1:fileset dir="${build.classes.dir}"/>
</jar>
</presetdef>
</target>
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-junit,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar" name="init"/>
<!--
===================
COMPILATION SECTION
===================
-->
<target depends="init" name="deps-jar" unless="no.deps"/>
<target depends="init,deps-jar" name="-pre-pre-compile">
<mkdir dir="${build.classes.dir}"/>
</target>
<target name="-pre-compile">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target if="do.depend.true" name="-compile-depend">
<j2seproject3:depend/>
</target>
<target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-compile-depend" if="have.sources" name="-do-compile">
<j2seproject3:javac/>
<copy todir="${build.classes.dir}">
<fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
</target>
<target name="-post-compile">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/>
<target name="-pre-compile-single">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
<j2seproject3:force-recompile/>
<j2seproject3:javac excludes="" includes="${javac.includes}" sourcepath="${src.dir}"/>
</target>
<target name="-post-compile-single">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,deps-jar,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/>
<!--
====================
JAR BUILDING SECTION
====================
-->
<target depends="init" name="-pre-pre-jar">
<dirname file="${dist.jar}" property="dist.jar.dir"/>
<mkdir dir="${dist.jar.dir}"/>
</target>
<target name="-pre-jar">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-pre-jar,-pre-jar" name="-do-jar-without-manifest" unless="manifest.available">
<j2seproject1:jar/>
</target>
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class">
<j2seproject1:jar manifest="${manifest.file}"/>
</target>
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class" name="-do-jar-with-mainclass" unless="manifest.available+main.class+mkdist.available">
<j2seproject1:jar manifest="${manifest.file}">
<j2seproject1:manifest>
<j2seproject1:attribute name="Main-Class" value="${main.class}"/>
</j2seproject1:manifest>
</j2seproject1:jar>
<echo>To run this application from the command line without Ant, try:</echo>
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
<property location="${dist.jar}" name="dist.jar.resolved"/>
<pathconvert property="run.classpath.with.dist.jar">
<path path="${run.classpath}"/>
<map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
</pathconvert>
<echo>java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo>
</target>
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class+mkdist.available" name="-do-jar-with-libraries">
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
<pathconvert property="run.classpath.without.build.classes.dir">
<path path="${run.classpath}"/>
<map from="${build.classes.dir.resolved}" to=""/>
</pathconvert>
<pathconvert pathsep=" " property="jar.classpath">
<path path="${run.classpath.without.build.classes.dir}"/>
<chainedmapper>
<flattenmapper/>
<globmapper from="*" to="lib/*"/>
</chainedmapper>
</pathconvert>
<taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
<copylibs compress="${jar.compress}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
<fileset dir="${build.classes.dir}"/>
<manifest>
<attribute name="Main-Class" value="${main.class}"/>
<attribute name="Class-Path" value="${jar.classpath}"/>
</manifest>
</copylibs>
<echo>To run this application from the command line without Ant, try:</echo>
<property location="${dist.jar}" name="dist.jar.resolved"/>
<echo>java -jar "${dist.jar.resolved}"</echo>
</target>
<target name="-post-jar">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries,-post-jar" description="Build JAR." name="jar"/>
<!--
=================
EXECUTION SECTION
=================
-->
<target depends="init,compile" description="Run a main class." name="run">
<j2seproject1:java>
<customize>
<arg line="${application.args}"/>
</customize>
</j2seproject1:java>
</target>
<target name="-do-not-recompile">
<property name="javac.includes.binary" value=""/>
</target>
<target depends="init,-do-not-recompile,compile-single" name="run-single">
<fail unless="run.class">Must select one file in the IDE or set run.class</fail>
<j2seproject1:java classname="${run.class}"/>
</target>
<!--
=================
DEBUGGING SECTION
=================
-->
<target depends="init" if="netbeans.home" name="-debug-start-debugger">
<j2seproject1:nbjpdastart name="${debug.class}"/>
</target>
<target depends="init,compile" name="-debug-start-debuggee">
<j2seproject3:debug>
<customize>
<arg line="${application.args}"/>
</customize>
</j2seproject3:debug>
</target>
<target depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/>
<target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto">
<j2seproject1:nbjpdastart stopclassname="${main.class}"/>
</target>
<target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/>
<target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single">
<fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
<j2seproject3:debug classname="${debug.class}"/>
</target>
<target depends="init,-do-not-recompile,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/>
<target depends="init" name="-pre-debug-fix">
<fail unless="fix.includes">Must set fix.includes</fail>
<property name="javac.includes" value="${fix.includes}.java"/>
</target>
<target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix">
<j2seproject1:nbjpdareload/>
</target>
<target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/>
<!--
===============
JAVADOC SECTION
===============
-->
<target depends="init" name="-javadoc-build">
<mkdir dir="${dist.javadoc.dir}"/>
<javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
<classpath>
<path path="${javac.classpath}"/>
</classpath>
<fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
</javadoc>
</target>
<target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview">
<nbbrowse file="${dist.javadoc.dir}/index.html"/>
</target>
<target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/>
<!--
=========================
JUNIT COMPILATION SECTION
=========================
-->
<target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
<mkdir dir="${build.test.classes.dir}"/>
</target>
<target name="-pre-compile-test">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target if="do.depend.true" name="-compile-test-depend">
<j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
</target>
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
<j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
<copy todir="${build.test.classes.dir}">
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
</target>
<target name="-post-compile-test">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/>
<target name="-pre-compile-test-single">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
<j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
<j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"/>
<copy todir="${build.test.classes.dir}">
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
</target>
<target name="-post-compile-test-single">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
<!--
=======================
JUNIT EXECUTION SECTION
=======================
-->
<target depends="init" if="have.tests" name="-pre-test-run">
<mkdir dir="${build.test.results.dir}"/>
</target>
<target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
<j2seproject3:junit testincludes="**/*Test.java"/>
</target>
<target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
<fail if="tests.failed">Some tests failed; see details above.</fail>
</target>
<target depends="init" if="have.tests" name="test-report"/>
<target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
<target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/>
<target depends="init" if="have.tests" name="-pre-test-run-single">
<mkdir dir="${build.test.results.dir}"/>
</target>
<target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
<fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
<j2seproject3:junit excludes="" includes="${test.includes}"/>
</target>
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
<fail if="tests.failed">Some tests failed; see details above.</fail>
</target>
<target depends="init,-do-not-recompile,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
<!--
=======================
JUNIT DEBUGGING SECTION
=======================
-->
<target depends="init,compile-test" if="have.tests" name="-debug-start-debuggee-test">
<fail unless="test.class">Must select one file in the IDE or set test.class</fail>
<property location="${build.test.results.dir}/TEST-${test.class}.xml" name="test.report.file"/>
<delete file="${test.report.file}"/>
<mkdir dir="${build.test.results.dir}"/>
<j2seproject3:debug classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner" classpath="${ant.home}/lib/ant.jar:${ant.home}/lib/ant-junit.jar:${debug.test.classpath}">
<customize>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<arg value="${test.class}"/>
<arg value="showoutput=true"/>
<arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.BriefJUnitResultFormatter"/>
<arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,${test.report.file}"/>
</customize>
</j2seproject3:debug>
</target>
<target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
<j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
</target>
<target depends="init,-do-not-recompile,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
<target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
<j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/>
</target>
<target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/>
<!--
=========================
APPLET EXECUTION SECTION
=========================
-->
<target depends="init,compile-single" name="run-applet">
<fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
<j2seproject1:java classname="sun.applet.AppletViewer">
<customize>
<arg value="${applet.url}"/>
</customize>
</j2seproject1:java>
</target>
<!--
=========================
APPLET DEBUGGING SECTION
=========================
-->
<target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet">
<fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
<j2seproject3:debug classname="sun.applet.AppletViewer">
<customize>
<arg value="${applet.url}"/>
</customize>
</j2seproject3:debug>
</target>
<target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/>
<!--
===============
CLEANUP SECTION
===============
-->
<target depends="init" name="deps-clean" unless="no.deps"/>
<target depends="init" name="-do-clean">
<delete dir="${build.dir}"/>
<delete dir="${dist.dir}"/>
</target>
<target name="-post-clean">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/>
</project>

View File

@ -1,8 +0,0 @@
build.xml.data.CRC32=4ce39738
build.xml.script.CRC32=c1deb82c
build.xml.stylesheet.CRC32=be360661
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
nbproject/build-impl.xml.data.CRC32=4ce39738
nbproject/build-impl.xml.script.CRC32=555cdd2d
nbproject/build-impl.xml.stylesheet.CRC32=487672f9

View File

@ -1,2 +0,0 @@
jaxws.endorsed.dir=/usr/local/netbeans-6.1/java2/modules/ext/jaxws21/api
user.properties.file=/root/.netbeans/6.1/build.properties

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/1">
<file>file:/root/NetBeansProjects/BOB/Demos/echo/echoserver/src/net/i2p/BOB/Demos/echo/echoserver/Main.java</file>
</open-files>
</project-private>

View File

@ -1,60 +0,0 @@
build.classes.dir=${build.dir}/classes
build.classes.excludes=**/*.java,**/*.form
# This directory is removed when the project is cleaned:
build.dir=build
build.generated.dir=${build.dir}/generated
# Only compile against the classpath explicitly listed here:
build.sysclasspath=ignore
build.test.classes.dir=${build.dir}/test/classes
build.test.results.dir=${build.dir}/test/results
debug.classpath=\
${run.classpath}
debug.test.classpath=\
${run.test.classpath}
# This directory is removed when the project is cleaned:
dist.dir=dist
dist.jar=${dist.dir}/echoserver.jar
dist.javadoc.dir=${dist.dir}/javadoc
excludes=
file.reference.BOB.jar=../../../dist/BOB.jar
includes=**
jar.compress=false
javac.classpath=
# Space-separated list of extra javac options
javac.compilerargs=
javac.deprecation=false
javac.source=1.5
javac.target=1.5
javac.test.classpath=\
${javac.classpath}:\
${build.classes.dir}:\
${libs.junit.classpath}:\
${libs.junit_4.classpath}
javadoc.additionalparam=
javadoc.author=false
javadoc.encoding=${source.encoding}
javadoc.noindex=false
javadoc.nonavbar=false
javadoc.notree=false
javadoc.private=false
javadoc.splitindex=true
javadoc.use=true
javadoc.version=false
javadoc.windowtitle=
main.class=net.i2p.BOB.Demos.echo.echoserver.Main
manifest.file=manifest.mf
meta.inf.dir=${src.dir}/META-INF
platform.active=default_platform
run.classpath=\
${javac.classpath}:\
${build.classes.dir}
# Space-separated list of JVM arguments used when running the project
# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value
# or test-sys-prop.name=value to set system properties for unit tests):
run.jvmargs=
run.test.classpath=\
${javac.test.classpath}:\
${build.test.classes.dir}
source.encoding=UTF-8
src.dir=src
test.src.dir=test

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.java.j2seproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/j2se-project/3">
<name>echoserver</name>
<minimum-ant-version>1.6.5</minimum-ant-version>
<source-roots>
<root id="src.dir"/>
</source-roots>
<test-roots>
<root id="test.src.dir"/>
</test-roots>
</data>
</configuration>
</project>

View File

@ -1,4 +0,0 @@
(
cd dist
java -jar echoserver.jar main 37337 testserver
)

View File

@ -1,189 +0,0 @@
/**
* WTFPL
* Version 2, December 2004
*
* Copyright (C) sponge
* Planet Earth
*
* See...
*
* http://sam.zoy.org/wtfpl/
* and
* http://en.wikipedia.org/wiki/WTFPL
*
* ...for any additional details and license questions.
*/
package net.i2p.BOB.Demos.echo.echoserver;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author sponge
*/
public class Main {
public static String Lread(InputStream in) throws IOException {
String S;
int b;
char c;
S = new String();
while(true) {
b = in.read();
if(b < 20) {
break;
}
c = (char)(b & 0x7f); // We only care about ASCII
S = new String(S + c);
}
return S;
}
/**
* Check for "ERROR" and if so, throw RuntimeException
* @param line
* @throws java.lang.RuntimeException
*/
static void checkline(String line) throws RuntimeException {
System.out.println(line); // print status
if(line.startsWith("ERROR")) {
throw new RuntimeException(line);
}
}
static void wrtxt(OutputStream CMDout, String s) throws IOException {
CMDout.write(s.getBytes());
CMDout.write('\n');
CMDout.flush();
}
static void setupconn(String[] args) throws UnknownHostException, IOException, RuntimeException {
String line;
Socket CMDsock = new Socket("localhost", 0xB0B);
InputStream CMDin = CMDsock.getInputStream();
OutputStream CMDout = CMDsock.getOutputStream();
// setup the tunnel.
line = Lread(CMDin);
System.out.println(line); // print the banner
line = Lread(CMDin);
System.out.println(line); // print initial status, should always be "OK"
try {
wrtxt(CMDout, "status " + args[2]);
line =Lread(CMDin); // get the status of this nickname, if it's an error, create it
checkline(line);
} catch(RuntimeException rte) {
wrtxt(CMDout, "setnick " + args[2]);
line =Lread(CMDin); // create a new nickname
checkline(line);
wrtxt(CMDout, "newkeys ");
line =Lread(CMDin); // set up new keys
checkline(line);
wrtxt(CMDout, "outport " + args[1]);
line = Lread(CMDin); // set the port we connect out on
checkline(line);
}
wrtxt(CMDout, "getnick " + args[2]);
line = Lread(CMDin); // Set to our nick
checkline(line);
wrtxt(CMDout, "start ");
line = Lread(CMDin); // an error here is OK
System.out.println(line); // print status
CMDsock.close(); // we no longer need this particular socket
}
static void deleteconn(String[] args) throws UnknownHostException, IOException, RuntimeException {
String line;
Socket CMDsock = new Socket("localhost", 0xB0B);
InputStream CMDin = CMDsock.getInputStream();
OutputStream CMDout = CMDsock.getOutputStream();
// delete the tunnel.
line = Lread(CMDin);
System.out.println(line); // print the banner
line = Lread(CMDin);
System.out.println(line); // print initial status, should always be "OK"
wrtxt(CMDout, "getnick " + args[2]); // Set to our nick
line = Lread(CMDin);
checkline(line);
wrtxt(CMDout, "stop");
line = Lread(CMDin);
checkline(line);
try {
Thread.sleep(2000); //sleep for 2000 ms (Two seconds)
} catch(Exception e) {
// nop
}
wrtxt(CMDout, "clear");
line = Lread(CMDin);
while(line.startsWith("ERROR")) {
wrtxt(CMDout, "clear");
line = Lread(CMDin);
}
System.out.println(line); // print status
CMDsock.close(); // we no longer need this particular socket
}
static void chatter(Socket sock) throws UnknownHostException, IOException, RuntimeException {
String line;
InputStream in = sock.getInputStream();
OutputStreamWriter out = new OutputStreamWriter(new BufferedOutputStream(sock.getOutputStream()));
line = Lread(in); // get remote I2P address
System.out.println("Connect from: " + line); // show user
out.write("Hello, You are connecting from " + line + "\n"); // send greeting
out.flush(); // make sure it's sent.
line = Lread(in); // get test text from client
System.out.println("Got "+line); // show user
sock.close(); // done.
}
private static void serverlistener(String[] args) throws UnknownHostException, IOException, RuntimeException {
ServerSocket listener = new ServerSocket(Integer.parseInt(args[1]), 10, InetAddress.getByName("localhost"));
Socket server;
while(true) {
server = listener.accept();
chatter(server);
}
}
/**
*
* @param args tunnelport tunnelnickname
*/
public static void main(String[] args) {
// I'm lazy, and want to exit on any failures.
try {
setupconn(args); // talk to BOB, set up an inbound port
serverlistener(args); // talk over the connection
} catch(UnknownHostException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch(IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
try {
deleteconn(args);
} catch(UnknownHostException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch(IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch(RuntimeException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}

View File

@ -1,14 +0,0 @@
#bob.config
#Tue Dec 30 00:00:00 UTC 2008
# Please leave this file here for testing.
# Thank you,
# Sponge
i2cp.tcp.port=7654
BOB.host=localhost
inbound.lengthVariance=0
i2cp.messageReliability=BestEffort
BOB.port=45678
outbound.length=1
inbound.length=1
outbound.lengthVariance=0
i2cp.tcp.host=localhost

View File

@ -1,115 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- You may freely edit this file. See commented blocks below for -->
<!-- some examples of how to customize the build. -->
<!-- (If you delete it and reopen the project it will be recreated.) -->
<!-- By default, only the Clean and Build commands use this build script. -->
<!-- Commands such as Run, Debug, and Test only use this build script if -->
<!-- the Compile on Save feature is turned off for the project. -->
<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
<!-- in the project's Project Properties dialog box.-->
<project name="BOB" default="default" basedir=".">
<description>Builds, tests, and runs the project BOB.</description>
<import file="nbproject/build-impl.xml"/>
<!--
There exist several targets which are by default empty and which can be
used for execution of your tasks. These targets are usually executed
before and after some main targets. They are:
-pre-init: called before initialization of project properties
-post-init: called after initialization of project properties
-pre-compile: called before javac compilation
-post-compile: called after javac compilation
-pre-compile-single: called before javac compilation of single file
-post-compile-single: called after javac compilation of single file
-pre-compile-test: called before javac compilation of JUnit tests
-post-compile-test: called after javac compilation of JUnit tests
-pre-compile-test-single: called before javac compilation of single JUnit test
-post-compile-test-single: called after javac compilation of single JUunit test
-pre-jar: called before JAR building
-post-jar: called after JAR building
-post-clean: called after cleaning build products
(Targets beginning with '-' are not intended to be called on their own.)
Example of inserting an obfuscator after compilation could look like this:
<target name="-post-compile">
<obfuscate>
<fileset dir="${build.classes.dir}"/>
</obfuscate>
</target>
For list of available properties check the imported
nbproject/build-impl.xml file.
Another way to customize the build is by overriding existing main targets.
The targets of interest are:
-init-macrodef-javac: defines macro for javac compilation
-init-macrodef-junit: defines macro for junit execution
-init-macrodef-debug: defines macro for class debugging
-init-macrodef-java: defines macro for class execution
-do-jar-with-manifest: JAR building (if you are using a manifest)
-do-jar-without-manifest: JAR building (if you are not using a manifest)
run: execution of project
-javadoc-build: Javadoc generation
test-report: JUnit report generation
An example of overriding the target for project execution could look like this:
<target name="run" depends="BOB-impl.jar">
<exec dir="bin" executable="launcher.exe">
<arg file="${dist.jar}"/>
</exec>
</target>
Notice that the overridden target depends on the jar target and not only on
the compile target as the regular run target does. Again, for a list of available
properties which you can use, check the target you are overriding in the
nbproject/build-impl.xml file.
-->
<target depends="jar" description="Build BOB into a SINGLE JAR." name="onejar">
<!-- Make needed working dirs -->
<mkdir dir="${dist.dir}/lib" />
<mkdir dir="${dist.dir}/classes" />
<!-- Copy jars -->
<copy todir="${dist.dir}/lib" flatten="true" >
<path>
<pathelement path="${javac.classpath}" />
</path>
</copy>
<copy todir="${dist.dir}/lib" file="../../build/jbigi.jar" />
<!-- Extract the classes inside the jar files -->
<unjar dest="${dist.dir}/classes" >
<fileset dir="${dist.dir}/lib" >
<include name="**/*.jar" />
</fileset>
</unjar>
<!-- Recombine the classes into a new jar file -->
<jar jarfile="${dist.dir}/lib/all-in-one.jar" >
<fileset dir="${dist.dir}/classes" />
</jar>
<!-- Clean up work area -->
<delete dir="${dist.dir}/classes" followsymlinks="false" includeemptydirs="true"/>
<!-- Make the single jar file -->
<jar jarfile="dist/BOB-one.jar" >
<zipfileset src="${dist.jar}" excludes="META-INF/*" />
<zipfileset src="${dist.dir}/lib/all-in-one.jar" excludes="**/META-INF/*" />
<manifest>
<attribute name="Main-Class" value="net.i2p.BOB.Main" />
</manifest>
</jar>
<!-- Clean up the fake jar file -->
<delete file="${dist.dir}/lib/all-in-one.jar" />
</target>
</project>

View File

@ -1,3 +0,0 @@
Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build

View File

@ -1,642 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
*** GENERATED FROM project.xml - DO NOT EDIT ***
*** EDIT ../build.xml INSTEAD ***
For the purpose of easier reading the script
is divided into following sections:
- initialization
- compilation
- jar
- execution
- debugging
- javadoc
- junit compilation
- junit execution
- junit debugging
- applet
- cleanup
-->
<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="BOB-impl">
<target depends="test,jar,javadoc" description="Build and test whole project." name="default"/>
<!--
======================
INITIALIZATION SECTION
======================
-->
<target name="-pre-init">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="-pre-init" name="-init-private">
<property file="nbproject/private/config.properties"/>
<property file="nbproject/private/configs/${config}.properties"/>
<property file="nbproject/private/private.properties"/>
</target>
<target depends="-pre-init,-init-private" name="-init-user">
<property file="${user.properties.file}"/>
<!-- The two properties below are usually overridden -->
<!-- by the active platform. Just a fallback. -->
<property name="default.javac.source" value="1.4"/>
<property name="default.javac.target" value="1.4"/>
</target>
<target depends="-pre-init,-init-private,-init-user" name="-init-project">
<property file="nbproject/configs/${config}.properties"/>
<property file="nbproject/project.properties"/>
</target>
<target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
<available file="${manifest.file}" property="manifest.available"/>
<condition property="manifest.available+main.class">
<and>
<isset property="manifest.available"/>
<isset property="main.class"/>
<not>
<equals arg1="${main.class}" arg2="" trim="true"/>
</not>
</and>
</condition>
<condition property="manifest.available+main.class+mkdist.available">
<and>
<istrue value="${manifest.available+main.class}"/>
<isset property="libs.CopyLibs.classpath"/>
</and>
</condition>
<condition property="have.tests">
<or>
<available file="${test.src.dir}"/>
</or>
</condition>
<condition property="have.sources">
<or>
<available file="${src.dir}"/>
</or>
</condition>
<condition property="netbeans.home+have.tests">
<and>
<isset property="netbeans.home"/>
<isset property="have.tests"/>
</and>
</condition>
<condition property="no.javadoc.preview">
<and>
<isset property="javadoc.preview"/>
<isfalse value="${javadoc.preview}"/>
</and>
</condition>
<property name="run.jvmargs" value=""/>
<property name="javac.compilerargs" value=""/>
<property name="work.dir" value="${basedir}"/>
<condition property="no.deps">
<and>
<istrue value="${no.dependencies}"/>
</and>
</condition>
<property name="javac.debug" value="true"/>
<property name="javadoc.preview" value="true"/>
<property name="application.args" value=""/>
<property name="source.encoding" value="${file.encoding}"/>
<condition property="javadoc.encoding.used" value="${javadoc.encoding}">
<and>
<isset property="javadoc.encoding"/>
<not>
<equals arg1="${javadoc.encoding}" arg2=""/>
</not>
</and>
</condition>
<property name="javadoc.encoding.used" value="${source.encoding}"/>
<property name="includes" value="**"/>
<property name="excludes" value=""/>
<property name="do.depend" value="false"/>
<condition property="do.depend.true">
<istrue value="${do.depend}"/>
</condition>
<condition else="" property="javac.compilerargs.jaxws" value="-Djava.endorsed.dirs='${jaxws.endorsed.dir}'">
<and>
<isset property="jaxws.endorsed.dir"/>
<available file="nbproject/jaxws-build.xml"/>
</and>
</condition>
</target>
<target name="-post-init">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
<fail unless="src.dir">Must set src.dir</fail>
<fail unless="test.src.dir">Must set test.src.dir</fail>
<fail unless="build.dir">Must set build.dir</fail>
<fail unless="dist.dir">Must set dist.dir</fail>
<fail unless="build.classes.dir">Must set build.classes.dir</fail>
<fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
<fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
<fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
<fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
<fail unless="dist.jar">Must set dist.jar</fail>
</target>
<target name="-init-macrodef-property">
<macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1">
<attribute name="name"/>
<attribute name="value"/>
<sequential>
<property name="@{name}" value="${@{value}}"/>
</sequential>
</macrodef>
</target>
<target name="-init-macrodef-javac">
<macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${src.dir}" name="srcdir"/>
<attribute default="${build.classes.dir}" name="destdir"/>
<attribute default="${javac.classpath}" name="classpath"/>
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="${javac.debug}" name="debug"/>
<attribute default="/does/not/exist" name="sourcepath"/>
<element name="customize" optional="true"/>
<sequential>
<javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}">
<classpath>
<path path="@{classpath}"/>
</classpath>
<compilerarg line="${javac.compilerargs} ${javac.compilerargs.jaxws}"/>
<customize/>
</javac>
</sequential>
</macrodef>
<macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${src.dir}" name="srcdir"/>
<attribute default="${build.classes.dir}" name="destdir"/>
<attribute default="${javac.classpath}" name="classpath"/>
<sequential>
<depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
<classpath>
<path path="@{classpath}"/>
</classpath>
</depend>
</sequential>
</macrodef>
<macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${build.classes.dir}" name="destdir"/>
<sequential>
<fail unless="javac.includes">Must set javac.includes</fail>
<pathconvert pathsep="," property="javac.includes.binary">
<path>
<filelist dir="@{destdir}" files="${javac.includes}"/>
</path>
<globmapper from="*.java" to="*.class"/>
</pathconvert>
<delete>
<files includes="${javac.includes.binary}"/>
</delete>
</sequential>
</macrodef>
</target>
<target name="-init-macrodef-junit">
<macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<sequential>
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true">
<batchtest todir="${build.test.results.dir}">
<fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
<filename name="@{testincludes}"/>
</fileset>
</batchtest>
<classpath>
<path path="${run.test.classpath}"/>
</classpath>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<formatter type="brief" usefile="false"/>
<formatter type="xml"/>
<jvmarg line="${run.jvmargs}"/>
</junit>
</sequential>
</macrodef>
</target>
<target depends="-init-debug-args" name="-init-macrodef-nbjpda">
<macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
<attribute default="${main.class}" name="name"/>
<attribute default="${debug.classpath}" name="classpath"/>
<attribute default="" name="stopclassname"/>
<sequential>
<nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}">
<classpath>
<path path="@{classpath}"/>
</classpath>
</nbjpdastart>
</sequential>
</macrodef>
<macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1">
<attribute default="${build.classes.dir}" name="dir"/>
<sequential>
<nbjpdareload>
<fileset dir="@{dir}" includes="${fix.classes}">
<include name="${fix.includes}*.class"/>
</fileset>
</nbjpdareload>
</sequential>
</macrodef>
</target>
<target name="-init-debug-args">
<property name="version-output" value="java version &quot;${ant.java.version}"/>
<condition property="have-jdk-older-than-1.4">
<or>
<contains string="${version-output}" substring="java version &quot;1.0"/>
<contains string="${version-output}" substring="java version &quot;1.1"/>
<contains string="${version-output}" substring="java version &quot;1.2"/>
<contains string="${version-output}" substring="java version &quot;1.3"/>
</or>
</condition>
<condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none">
<istrue value="${have-jdk-older-than-1.4}"/>
</condition>
<condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem">
<os family="windows"/>
</condition>
<condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}">
<isset property="debug.transport"/>
</condition>
</target>
<target depends="-init-debug-args" name="-init-macrodef-debug">
<macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${main.class}" name="classname"/>
<attribute default="${debug.classpath}" name="classpath"/>
<element name="customize" optional="true"/>
<sequential>
<java classname="@{classname}" dir="${work.dir}" fork="true">
<jvmarg line="${debug-args-line}"/>
<jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
<jvmarg line="${run.jvmargs}"/>
<classpath>
<path path="@{classpath}"/>
</classpath>
<syspropertyset>
<propertyref prefix="run-sys-prop."/>
<mapper from="run-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<customize/>
</java>
</sequential>
</macrodef>
</target>
<target name="-init-macrodef-java">
<macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
<attribute default="${main.class}" name="classname"/>
<element name="customize" optional="true"/>
<sequential>
<java classname="@{classname}" dir="${work.dir}" fork="true">
<jvmarg line="${run.jvmargs}"/>
<classpath>
<path path="${run.classpath}"/>
</classpath>
<syspropertyset>
<propertyref prefix="run-sys-prop."/>
<mapper from="run-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<customize/>
</java>
</sequential>
</macrodef>
</target>
<target name="-init-presetdef-jar">
<presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
<jar compress="${jar.compress}" jarfile="${dist.jar}">
<j2seproject1:fileset dir="${build.classes.dir}"/>
</jar>
</presetdef>
</target>
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-junit,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar" name="init"/>
<!--
===================
COMPILATION SECTION
===================
-->
<target depends="init" name="deps-jar" unless="no.deps"/>
<target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/>
<target depends="init" name="-check-automatic-build">
<available file="${build.classes.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/>
</target>
<target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build">
<antcall target="clean"/>
</target>
<target depends="init,deps-jar" name="-pre-pre-compile">
<mkdir dir="${build.classes.dir}"/>
</target>
<target name="-pre-compile">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target if="do.depend.true" name="-compile-depend">
<j2seproject3:depend/>
</target>
<target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-compile-depend" if="have.sources" name="-do-compile">
<j2seproject3:javac/>
<copy todir="${build.classes.dir}">
<fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
</target>
<target name="-post-compile">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/>
<target name="-pre-compile-single">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
<j2seproject3:force-recompile/>
<j2seproject3:javac excludes="" includes="${javac.includes}" sourcepath="${src.dir}"/>
</target>
<target name="-post-compile-single">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/>
<!--
====================
JAR BUILDING SECTION
====================
-->
<target depends="init" name="-pre-pre-jar">
<dirname file="${dist.jar}" property="dist.jar.dir"/>
<mkdir dir="${dist.jar.dir}"/>
</target>
<target name="-pre-jar">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-pre-jar,-pre-jar" name="-do-jar-without-manifest" unless="manifest.available">
<j2seproject1:jar/>
</target>
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class">
<j2seproject1:jar manifest="${manifest.file}"/>
</target>
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class" name="-do-jar-with-mainclass" unless="manifest.available+main.class+mkdist.available">
<j2seproject1:jar manifest="${manifest.file}">
<j2seproject1:manifest>
<j2seproject1:attribute name="Main-Class" value="${main.class}"/>
</j2seproject1:manifest>
</j2seproject1:jar>
<echo>To run this application from the command line without Ant, try:</echo>
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
<property location="${dist.jar}" name="dist.jar.resolved"/>
<pathconvert property="run.classpath.with.dist.jar">
<path path="${run.classpath}"/>
<map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
</pathconvert>
<echo>java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo>
</target>
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class+mkdist.available" name="-do-jar-with-libraries">
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
<pathconvert property="run.classpath.without.build.classes.dir">
<path path="${run.classpath}"/>
<map from="${build.classes.dir.resolved}" to=""/>
</pathconvert>
<pathconvert pathsep=" " property="jar.classpath">
<path path="${run.classpath.without.build.classes.dir}"/>
<chainedmapper>
<flattenmapper/>
<globmapper from="*" to="lib/*"/>
</chainedmapper>
</pathconvert>
<taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
<copylibs compress="${jar.compress}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
<fileset dir="${build.classes.dir}"/>
<manifest>
<attribute name="Main-Class" value="${main.class}"/>
<attribute name="Class-Path" value="${jar.classpath}"/>
</manifest>
</copylibs>
<echo>To run this application from the command line without Ant, try:</echo>
<property location="${dist.jar}" name="dist.jar.resolved"/>
<echo>java -jar "${dist.jar.resolved}"</echo>
</target>
<target name="-post-jar">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries,-post-jar" description="Build JAR." name="jar"/>
<!--
=================
EXECUTION SECTION
=================
-->
<target depends="init,compile" description="Run a main class." name="run">
<j2seproject1:java>
<customize>
<arg line="${application.args}"/>
</customize>
</j2seproject1:java>
</target>
<target name="-do-not-recompile">
<property name="javac.includes.binary" value=""/>
</target>
<target depends="init,-do-not-recompile,compile-single" name="run-single">
<fail unless="run.class">Must select one file in the IDE or set run.class</fail>
<j2seproject1:java classname="${run.class}"/>
</target>
<!--
=================
DEBUGGING SECTION
=================
-->
<target depends="init" if="netbeans.home" name="-debug-start-debugger">
<j2seproject1:nbjpdastart name="${debug.class}"/>
</target>
<target depends="init,compile" name="-debug-start-debuggee">
<j2seproject3:debug>
<customize>
<arg line="${application.args}"/>
</customize>
</j2seproject3:debug>
</target>
<target depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/>
<target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto">
<j2seproject1:nbjpdastart stopclassname="${main.class}"/>
</target>
<target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/>
<target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single">
<fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
<j2seproject3:debug classname="${debug.class}"/>
</target>
<target depends="init,-do-not-recompile,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/>
<target depends="init" name="-pre-debug-fix">
<fail unless="fix.includes">Must set fix.includes</fail>
<property name="javac.includes" value="${fix.includes}.java"/>
</target>
<target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix">
<j2seproject1:nbjpdareload/>
</target>
<target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/>
<!--
===============
JAVADOC SECTION
===============
-->
<target depends="init" name="-javadoc-build">
<mkdir dir="${dist.javadoc.dir}"/>
<javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
<classpath>
<path path="${javac.classpath}"/>
</classpath>
<fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
</javadoc>
</target>
<target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview">
<nbbrowse file="${dist.javadoc.dir}/index.html"/>
</target>
<target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/>
<!--
=========================
JUNIT COMPILATION SECTION
=========================
-->
<target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
<mkdir dir="${build.test.classes.dir}"/>
</target>
<target name="-pre-compile-test">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target if="do.depend.true" name="-compile-test-depend">
<j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
</target>
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
<j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
<copy todir="${build.test.classes.dir}">
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
</target>
<target name="-post-compile-test">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/>
<target name="-pre-compile-test-single">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
<j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
<j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"/>
<copy todir="${build.test.classes.dir}">
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
</target>
<target name="-post-compile-test-single">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
<!--
=======================
JUNIT EXECUTION SECTION
=======================
-->
<target depends="init" if="have.tests" name="-pre-test-run">
<mkdir dir="${build.test.results.dir}"/>
</target>
<target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
<j2seproject3:junit testincludes="**/*Test.java"/>
</target>
<target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
<fail if="tests.failed">Some tests failed; see details above.</fail>
</target>
<target depends="init" if="have.tests" name="test-report"/>
<target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
<target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/>
<target depends="init" if="have.tests" name="-pre-test-run-single">
<mkdir dir="${build.test.results.dir}"/>
</target>
<target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
<fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
<j2seproject3:junit excludes="" includes="${test.includes}"/>
</target>
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
<fail if="tests.failed">Some tests failed; see details above.</fail>
</target>
<target depends="init,-do-not-recompile,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
<!--
=======================
JUNIT DEBUGGING SECTION
=======================
-->
<target depends="init,compile-test" if="have.tests" name="-debug-start-debuggee-test">
<fail unless="test.class">Must select one file in the IDE or set test.class</fail>
<property location="${build.test.results.dir}/TEST-${test.class}.xml" name="test.report.file"/>
<delete file="${test.report.file}"/>
<mkdir dir="${build.test.results.dir}"/>
<j2seproject3:debug classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner" classpath="${ant.home}/lib/ant.jar:${ant.home}/lib/ant-junit.jar:${debug.test.classpath}">
<customize>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<arg value="${test.class}"/>
<arg value="showoutput=true"/>
<arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.BriefJUnitResultFormatter"/>
<arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,${test.report.file}"/>
</customize>
</j2seproject3:debug>
</target>
<target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
<j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
</target>
<target depends="init,-do-not-recompile,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
<target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
<j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/>
</target>
<target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/>
<!--
=========================
APPLET EXECUTION SECTION
=========================
-->
<target depends="init,compile-single" name="run-applet">
<fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
<j2seproject1:java classname="sun.applet.AppletViewer">
<customize>
<arg value="${applet.url}"/>
</customize>
</j2seproject1:java>
</target>
<!--
=========================
APPLET DEBUGGING SECTION
=========================
-->
<target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet">
<fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
<j2seproject3:debug classname="sun.applet.AppletViewer">
<customize>
<arg value="${applet.url}"/>
</customize>
</j2seproject3:debug>
</target>
<target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/>
<!--
===============
CLEANUP SECTION
===============
-->
<target depends="init" name="deps-clean" unless="no.deps"/>
<target depends="init" name="-do-clean">
<delete dir="${build.dir}"/>
<delete dir="${dist.dir}"/>
</target>
<target name="-post-clean">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/>
</project>

View File

@ -1,8 +0,0 @@
build.xml.data.CRC32=209349b6
build.xml.script.CRC32=403e69e6
build.xml.stylesheet.CRC32=958a1d3e
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
nbproject/build-impl.xml.data.CRC32=209349b6
nbproject/build-impl.xml.script.CRC32=c51e188e
nbproject/build-impl.xml.stylesheet.CRC32=65b8de21

View File

@ -1,92 +0,0 @@
application.homepage=http://bob.i2p/
application.title=BOB
application.vendor=Sponge
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.expand-tabs=false
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.indent-shift-width=8
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.spaces-per-tab=8
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.tab-size=8
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width=80
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.usedProfile=project
build.classes.dir=${build.dir}/classes
build.classes.excludes=**/*.java,**/*.form
# This directory is removed when the project is cleaned:
build.dir=build
build.generated.dir=${build.dir}/generated
build.generated.sources.dir=${build.dir}/generated-sources
# Only compile against the classpath explicitly listed here:
build.sysclasspath=ignore
build.test.classes.dir=${build.dir}/test/classes
build.test.results.dir=${build.dir}/test/results
debug.classpath=\
${run.classpath}
debug.test.classpath=\
${run.test.classpath}
# This directory is removed when the project is cleaned:
dist.dir=dist
dist.jar=${dist.dir}/BOB.jar
dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath=
excludes=**/*.html,**/*.txt
file.reference.build-javadoc=../../i2p.i2p/build/javadoc
file.reference.i2p.jar=../../core/java/build/i2p.jar
file.reference.i2ptunnel.jar=../i2ptunnel/java/build/i2ptunnel.jar
file.reference.jbigi.jar=../../build/jbigi.jar
file.reference.mstreaming.jar=../ministreaming/java/build/mstreaming.jar
file.reference.router.jar=../../router/java/build/router.jar
file.reference.streaming.jar=../streaming/java/build/streaming.jar
file.reference.wrapper.jar=../../installer/lib/wrapper/all/wrapper.jar
includes=**
jar.compress=true
javac.classpath=\
${file.reference.router.jar}:\
${file.reference.i2ptunnel.jar}:\
${file.reference.mstreaming.jar}:\
${file.reference.streaming.jar}:\
${file.reference.wrapper.jar}:\
${file.reference.i2p.jar}:\
${file.reference.router.jar}
# Space-separated list of extra javac options
javac.compilerargs=
javac.deprecation=false
javac.source=1.5
javac.target=1.5
javac.test.classpath=\
${javac.classpath}:\
${build.classes.dir}:\
${libs.junit.classpath}:\
${libs.junit_4.classpath}
javadoc.additionalparam=
javadoc.author=false
javadoc.encoding=${source.encoding}
javadoc.noindex=false
javadoc.nonavbar=false
javadoc.notree=false
javadoc.private=false
javadoc.splitindex=true
javadoc.use=true
javadoc.version=false
javadoc.windowtitle=
jaxbwiz.endorsed.dirs="${netbeans.home}/../ide12/modules/ext/jaxb/api"
jnlp.codebase.type=local
jnlp.codebase.url=file:/usblv/NetBeansProjects/i2p.i2p/apps/BOB/dist
jnlp.descriptor=application
jnlp.enabled=false
jnlp.offline-allowed=false
jnlp.signed=false
main.class=net.i2p.BOB.Main
manifest.file=manifest.mf
meta.inf.dir=${src.dir}/META-INF
platform.active=default_platform
run.classpath=\
${javac.classpath}:\
${build.classes.dir}
# Space-separated list of JVM arguments used when running the project
# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value
# or test-sys-prop.name=value to set system properties for unit tests):
run.jvmargs=
run.test.classpath=\
${javac.test.classpath}:\
${build.test.classes.dir}
source.encoding=UTF-8
src.dir=src
test.src.dir=test

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.java.j2seproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/j2se-project/3">
<name>BOB</name>
<minimum-ant-version>1.6.5</minimum-ant-version>
<source-roots>
<root id="src.dir"/>
</source-roots>
<test-roots>
<root id="test.src.dir"/>
</test-roots>
</data>
</configuration>
</project>

View File

@ -1,524 +0,0 @@
/**
* WTFPL
* Version 2, December 2004
*
* Copyright (C) sponge
* Planet Earth
*
* See...
*
* http://sam.zoy.org/wtfpl/
* and
* http://en.wikipedia.org/wiki/WTFPL
*
* ...for any additional details and license questions.
*/
package net.i2p.BOB;
import static net.i2p.app.ClientAppState.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.ConnectException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketTimeoutException;
import java.net.URL;
import java.util.Arrays;
import java.util.Properties;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.jar.Attributes;
import java.util.jar.Manifest;
import net.i2p.I2PAppContext;
import net.i2p.app.*;
import net.i2p.client.I2PClient;
import net.i2p.util.I2PAppThread;
import net.i2p.util.SimpleScheduler;
import net.i2p.util.SimpleTimer2;
/**
* <span style="font-size:8px;font-family:courier;color:#EEEEEE;background-color:#000000">
* ################################################################################<br>
* ############################.#..........#..#..........##########################<br>
* #######################......................................###################<br>
* ####################...........................#.......#........################<br>
* #################..................##...................#.........##############<br>
* ###############................###...####.....#..###.....#.........#############<br>
* #############...........###..#..###...#####...###.##........#.......############<br>
* ###########................#......##...#####...##..##.......#..#........########<br>
* ##########.........................#....##.##..#...##.....................######<br>
* #########...................................#....#.........................#####<br>
* ########.........................................#...............#..........####<br>
* ########.........................................#..........#######..........###<br>
* #######.................................................############..........##<br>
* #######..........................................####################.........##<br>
* #######............####################......########################.........##<br>
* ######.............###############################################.##.........##<br>
* ######............################################################..##........##<br>
* ######............################################################..##........##<br>
* ######.............##############################################..##.........##<br>
* ######............##############################################...##..........#<br>
* ######............#..###########################################...##..........#<br>
* ######.............#############################################....#..........#<br>
* #######...........###############################################..##.........##<br>
* #######...........#####.#.#.#.########################.....#.####...##........##<br>
* ######............#..............##################.................##.........#<br>
* ######................####.........###############........#####......##........#<br>
* ######..............####..#.........############.......##.#.######...##.......##<br>
* ######.................#.####.........########...........##....###...##.......##<br>
* #######....#....###...................#######...............#...###..##.......##<br>
* #######.........###..###.....###.......######.##.#####.........####..##.......##<br>
* #######.....#...##############.........############......###########.###......##<br>
* #######....##...##########.......##...##############......#.############.....###<br>
* ########....#..########......######...##################################....####<br>
* ########....##.####################...##################################....####<br>
* ########..#.##..###################..##################################..#..####<br>
* ##########..###..#################...##################################...#.####<br>
* #########....##...##############....########..#####.################.##..#.#####<br>
* ############.##....##########.......#########.###.......###########..#.#########<br>
* ###############.....#######...#.......########.....##.....######.....###########<br>
* ###############......###....##..........##.......######....#.........#.#########<br>
* ##############............##..................##########..............##########<br>
* ##############..............................##########..#.............##########<br>
* ###############.......##..................#####..............####....###########<br>
* ###############.......#####.......#.............####.....#######.....###########<br>
* ################...#...####......##################.....########....############<br>
* ################...##..#####.........####.##.....#....##########....############<br>
* ##################..##..####...........#####.#....############.....#############<br>
* ##################......#####.................################....##############<br>
* ###################.....####..........##########..###########....###############<br>
* ####################..#..#..........................########.....###############<br>
* #####################.##.......###.................########....#################<br>
* ######################.........#.......#.##.###############....#################<br>
* #############.#######...............#####################....###################<br>
* ###..#.....##...####..........#.....####################....####################<br>
* ####......##........................##################....######################<br>
* #.##...###..............###.........###############......#######################<br>
* #...###..##............######...........................########################<br>
* ##.......###..........##########....#...#...........############################<br>
* ##.........##.......############################################################<br>
* ###........##.....##############################################################<br>
* ####.............###############################################################<br>
* ######.........#################################################################<br>
* #########....###################################################################<br>
* ################################################################################<br>
* </span>
* BOB, main command socket listener, launches the command parser engine.
*
* @author sponge
*/
public class BOB implements Runnable, ClientApp {
public final static String PROP_CONFIG_LOCATION = "BOB.config";
public final static String PROP_BOB_PORT = "BOB.port";
public final static String PROP_BOB_HOST = "BOB.host";
public final static String PROP_CFG_VER = "BOB.CFG.VER";
/** unused when started via the ClientApp interface */
private static BOB _bob;
private final NamedDB database;
private final Properties props = new Properties();
private final AtomicBoolean spin = new AtomicBoolean(true);
private static final String P_RUNNING = "RUNNING";
private static final String P_STARTING = "STARTING";
private static final String P_STOPPING = "STOPPING";
private final AtomicBoolean lock = new AtomicBoolean(false);
// no longer used.
// private static int maxConnections = 0;
private final Logger _log;
private final ClientAppManager _mgr;
private final String[] _args;
private volatile ClientAppState _state = UNINITIALIZED;
private volatile ServerSocket listener;
private volatile Thread _runner;
/**
* Stop BOB gracefully
* @deprecated unused
*/
public synchronized static void stop() {
if (_bob != null)
_bob.shutdown(null);
}
/**
* For ClientApp interface.
* Does NOT open the listener socket or start threads; caller must call startup()
*
* @param mgr may be null
* @param args non-null
* @throws Exception on bad args
* @since 0.9.10
*/
public BOB(I2PAppContext context, ClientAppManager mgr, String[] args) {
// If we were run from command line, log to stdout
boolean logToStdout = false;
URL classResource = BOB.class.getResource("BOB.class");
if (classResource != null) {
String classPath = classResource.toString();
if (classPath.startsWith("jar")) {
String manifestPath = classPath.substring(0, classPath.lastIndexOf("!") + 1) +
"/META-INF/MANIFEST.MF";
try {
Manifest manifest = new Manifest(new URL(manifestPath).openStream());
Attributes attrs = manifest.getMainAttributes();
String mainClass = attrs.getValue("Main-Class");
if ("net.i2p.BOB.Main".equals(mainClass))
logToStdout = true;
} catch (IOException ioe) {}
}
}
_log = new Logger(context.logManager().getLog(BOB.class), logToStdout);
_mgr = mgr;
_args = args;
_state = INITIALIZED;
database = new NamedDB();
loadConfig();
}
/**
* Listen for incoming connections and handle them
*
* @param args
*/
public synchronized static void main(String[] args) {
try {
_bob = new BOB(I2PAppContext.getGlobalContext(), null, args);
_bob.startup();
} catch (RuntimeException e) {
e.printStackTrace();
throw e;
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
/**
* @since 0.9.10
*/
private void loadConfig() {
int i = 0;
boolean save = false;
// Set up all defaults to be passed forward to other threads.
// Re-reading the config file in each thread is pretty damn stupid.
String configLocation = System.getProperty(PROP_CONFIG_LOCATION, "bob.config");
// This is here just to ensure there is no interference with our threadgroups.
SimpleScheduler Y1 = SimpleScheduler.getInstance();
SimpleTimer2 Y2 = SimpleTimer2.getInstance();
i = Y1.hashCode();
i = Y2.hashCode();
{
File cfg = new File(configLocation);
if (!cfg.isAbsolute()) {
cfg = new File(I2PAppContext.getGlobalContext().getConfigDir(), configLocation);
}
FileInputStream fi = null;
try {
fi = new FileInputStream(cfg);
props.load(fi);
} catch (FileNotFoundException fnfe) {
_log.warn("Unable to load up the BOB config file " + cfg.getAbsolutePath() + ", Using defaults.", fnfe);
save = true;
} catch (IOException ioe) {
_log.warn("IOException on BOB config file " + cfg.getAbsolutePath() + ", using defaults.", ioe);
} finally {
if (fi != null) try { fi.close(); } catch (IOException ioe) {}
}
}
// Global router and client API configurations that are missing are set to defaults here.
if (!props.containsKey(I2PClient.PROP_TCP_HOST)) {
props.setProperty(I2PClient.PROP_TCP_HOST, "localhost");
save = true;
}
if (!props.containsKey(I2PClient.PROP_TCP_PORT)) {
props.setProperty(I2PClient.PROP_TCP_PORT, "7654");
save = true;
}
if (!props.containsKey(PROP_BOB_PORT)) {
props.setProperty(PROP_BOB_PORT, "2827"); // 0xB0B
save = true;
}
if (!props.containsKey("inbound.length")) {
props.setProperty("inbound.length", "1");
save = true;
}
if (!props.containsKey("outbound.length")) {
props.setProperty("outbound.length", "1");
save = true;
}
if (!props.containsKey("inbound.lengthVariance")) {
props.setProperty("inbound.lengthVariance", "0");
save = true;
}
if (!props.containsKey("outbound.lengthVariance")) {
props.setProperty("outbound.lengthVariance", "0");
save = true;
}
if (!props.containsKey(PROP_BOB_HOST)) {
props.setProperty(PROP_BOB_HOST, "localhost");
save = true;
}
// PROP_RELIABILITY_NONE, PROP_RELIABILITY_BEST_EFFORT, PROP_RELIABILITY_GUARANTEED
if (!props.containsKey(PROP_CFG_VER)) {
props.setProperty(I2PClient.PROP_RELIABILITY, I2PClient.PROP_RELIABILITY_NONE);
props.setProperty(PROP_CFG_VER,"1");
save = true;
}
if (save) {
File cfg = new File(configLocation);
if (!cfg.isAbsolute()) {
cfg = new File(I2PAppContext.getGlobalContext().getConfigDir(), configLocation);
}
FileOutputStream fo = null;
try {
_log.warn("Writing new defaults file " + cfg.getAbsolutePath());
fo = new FileOutputStream(cfg);
props.store(fo, cfg.getAbsolutePath());
} catch (IOException ioe) {
_log.error("IOException on BOB config file " + cfg.getAbsolutePath(), ioe);
} finally {
if (fo != null) try { fo.close(); } catch (IOException ioe) {}
}
}
}
/**
* @since 0.9.10
*/
private void startListener() throws IOException {
listener = new ServerSocket(Integer.parseInt(props.getProperty(PROP_BOB_PORT)), 10, InetAddress.getByName(props.getProperty(PROP_BOB_HOST)));
listener.setSoTimeout(500); // .5 sec
}
/**
* @since 0.9.10
*/
private void startThread() {
I2PAppThread t = new I2PAppThread(this, "BOBListener");
t.start();
_runner = t;
}
/**
* @since 0.9.10
*/
public void run() {
if (listener == null) return;
changeState(RUNNING);
_log.info("BOB is now running.");
if (_mgr != null)
_mgr.register(this);
int i = 0;
boolean g = false;
spin.set(true);
try {
Socket server = null;
while (spin.get()) {
//DoCMDS connection;
try {
server = listener.accept();
server.setKeepAlive(true);
g = true;
} catch (ConnectException ce) {
g = false;
} catch (SocketTimeoutException ste) {
g = false;
}
if (g) {
DoCMDS conn_c = new DoCMDS(spin, lock, server, props, database, _log);
Thread t = new Thread(conn_c);
t.setName("BOB.DoCMDS " + i);
t.start();
i++;
}
}
changeState(STOPPING);
} catch (Exception e) {
if (spin.get())
_log.error("Unexpected error while listening for connections", e);
else
e = null;
changeState(STOPPING, e);
} finally {
_log.info("BOB is now shutting down...");
// Clean up everything.
try {
listener.close();
} catch (Exception ex) {
// nop
}
// Find all our "BOB.DoCMDS" threads, wait for them to be finished.
// We could order them to stop, but that could cause nasty issues in the locks.
visitAllThreads();
database.getReadLock();
int all = database.getcount();
database.releaseReadLock();
NamedDB nickinfo;
for (i = 0; i < all; i++) {
database.getReadLock();
nickinfo = (NamedDB) database.getnext(i);
nickinfo.getReadLock();
if (nickinfo.get(P_RUNNING).equals(Boolean.TRUE) && nickinfo.get(P_STOPPING).equals(Boolean.FALSE) && nickinfo.get(P_STARTING).equals(Boolean.FALSE)) {
nickinfo.releaseReadLock();
database.releaseReadLock();
database.getWriteLock();
nickinfo.getWriteLock();
nickinfo.add(P_STOPPING, Boolean.valueOf(true));
nickinfo.releaseWriteLock();
database.releaseWriteLock();
} else {
nickinfo.releaseReadLock();
database.releaseReadLock();
}
}
changeState(STOPPED);
_log.info("BOB is now stopped.");
}
}
/**
* Find the root thread group,
* then find all theads with certain names and wait for them all to be dead.
*
*/
private static void visitAllThreads() {
ThreadGroup root = Thread.currentThread().getThreadGroup().getParent();
while (root.getParent() != null) {
root = root.getParent();
}
// Visit each thread group
waitjoin(root, 0, root.getName());
}
private static void waitjoin(ThreadGroup group, int level, String tn) {
// Get threads in `group'
int numThreads = group.activeCount();
Thread[] threads = new Thread[numThreads * 2];
numThreads = group.enumerate(threads, false);
// Enumerate each thread in `group' and wait for it to stop if it is one of ours.
for (int i = 0; i < numThreads; i++) {
// Get thread
Thread thread = threads[i];
if (thread.getName().startsWith("BOB.DoCMDS ")) {
try {
if (thread.isAlive()) {
try {
thread.join();
} catch (InterruptedException ex) {
}
}
} catch (SecurityException se) {
//nop
}
}
}
// Get thread subgroups of `group'
int numGroups = group.activeGroupCount();
ThreadGroup[] groups = new ThreadGroup[numGroups * 2];
numGroups = group.enumerate(groups, false);
// Recursively visit each subgroup
for (int i = 0; i < numGroups; i++) {
waitjoin(groups[i], level + 1, groups[i].getName());
}
}
////// begin ClientApp interface
/**
* @since 0.9.10
*/
@Override
public void startup() throws IOException {
if (_state != INITIALIZED)
return;
changeState(STARTING);
try {
startListener();
} catch (IOException e) {
_log.error("Error starting BOB on"
+ props.getProperty(PROP_BOB_HOST)
+ ":" + props.getProperty(PROP_BOB_PORT), e);
changeState(START_FAILED, e);
throw e;
}
startThread();
}
/**
* @since 0.9.10
*/
@Override
public void shutdown(String[] args) {
if (_state != RUNNING)
return;
changeState(STOPPING);
spin.set(false);
if (_runner != null)
_runner.interrupt();
else
changeState(STOPPED);
}
/**
* @since 0.9.10
*/
@Override
public ClientAppState getState() {
return _state;
}
/**
* @since 0.9.10
*/
@Override
public String getName() {
return "BOB";
}
/**
* @since 0.9.10
*/
@Override
public String getDisplayName() {
return "BOB " + Arrays.toString(_args);
}
////// end ClientApp interface
////// begin ClientApp helpers
/**
* @since 0.9.10
*/
private void changeState(ClientAppState state) {
changeState(state, null);
}
/**
* @since 0.9.10
*/
private synchronized void changeState(ClientAppState state, Exception e) {
_state = state;
if (_mgr != null)
_mgr.notify(this, state, null, e);
}
////// end ClientApp helpers
}

File diff suppressed because it is too large Load Diff

View File

@ -1,99 +0,0 @@
/**
* WTFPL
* Version 2, December 2004
*
* Copyright (C) sponge
* Planet Earth
*
* See...
*
* http://sam.zoy.org/wtfpl/
* and
* http://en.wikipedia.org/wiki/WTFPL
*
* ...for any additional details and license questions.
*/
package net.i2p.BOB;
import java.net.ConnectException;
import java.net.SocketTimeoutException;
import java.util.concurrent.atomic.AtomicBoolean;
import net.i2p.I2PException;
import net.i2p.client.streaming.I2PServerSocket;
import net.i2p.client.streaming.I2PSocket;
import net.i2p.client.streaming.I2PSocketManager;
/**
* Listen on I2P and connect to TCP
*
* @author sponge
*/
public class I2Plistener implements Runnable {
private NamedDB info, database;
private Logger _log;
public I2PSocketManager socketManager;
public I2PServerSocket serverSocket;
private AtomicBoolean lives;
/**
* Constructor
* @param SS
* @param S
* @param info
* @param database
* @param _log
*/
I2Plistener(I2PServerSocket SS, I2PSocketManager S, NamedDB info, NamedDB database, Logger _log, AtomicBoolean lives) {
this.database = database;
this.info = info;
this._log = _log;
this.socketManager = S;
this.serverSocket = SS;
this.lives = lives;
}
/**
* Simply listen on I2P port, and thread connections
*
*/
public void run() {
boolean g = false;
I2PSocket sessSocket = null;
int conn = 0;
try {
try {
serverSocket.setSoTimeout(50);
while (lives.get()) {
try {
sessSocket = serverSocket.accept();
g = true;
} catch (ConnectException ce) {
g = false;
} catch (SocketTimeoutException ste) {
g = false;
}
if (g) {
g = false;
conn++;
// toss the connection to a new thread.
I2PtoTCP conn_c = new I2PtoTCP(sessSocket, info, database, lives);
Thread t = new Thread(conn_c, Thread.currentThread().getName() + " I2PtoTCP " + conn);
t.start();
}
}
} catch (I2PException e) {
// bad stuff
System.out.println("Exception " + e);
}
} finally {
try {
serverSocket.close();
} catch (I2PException ex) {
}
// System.out.println("I2Plistener: Close");
}
}
}

View File

@ -1,174 +0,0 @@
/**
* WTFPL
* Version 2, December 2004
*
* Copyright (C) sponge
* Planet Earth
*
* See...
*
* http://sam.zoy.org/wtfpl/
* and
* http://en.wikipedia.org/wiki/WTFPL
*
* ...for any additional details and license questions.
*/
package net.i2p.BOB;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.concurrent.atomic.AtomicBoolean;
import net.i2p.client.streaming.I2PSocket;
/**
* Process I2P->TCP
*
* @author sponge
*/
public class I2PtoTCP implements Runnable {
private I2PSocket I2P;
private NamedDB info, database;
private Socket sock;
private AtomicBoolean lives;
/**
* Constructor
*
* @param I2Psock
* @param info
* @param database
*/
I2PtoTCP(I2PSocket I2Psock, NamedDB info, NamedDB database, AtomicBoolean lives) {
this.I2P = I2Psock;
this.info = info;
this.database = database;
this.lives = lives;
}
private void rlock() {
database.getReadLock();
info.getReadLock();
}
private void runlock() {
database.releaseReadLock();
info.releaseReadLock();
}
/**
* I2P stream to TCP stream thread starter
*
*/
public void run() {
String host;
int port;
boolean tell;
InputStream in = null;
OutputStream out = null;
InputStream Iin = null;
OutputStream Iout = null;
Thread t = null;
Thread q = null;
try {
die:
{
try {
try {
rlock();
} catch (Exception e) {
break die;
}
try {
host = info.get("OUTHOST").toString();
port = Integer.parseInt(info.get("OUTPORT").toString());
tell = info.get("QUIET").equals(Boolean.FALSE);
} catch (Exception e) {
runlock();
break die;
}
try {
runlock();
} catch (Exception e) {
break die;
}
sock = new Socket(host, port);
sock.setKeepAlive(true);
// make readers/writers
in = sock.getInputStream();
out = sock.getOutputStream();
Iin = I2P.getInputStream();
Iout = I2P.getOutputStream();
I2P.setReadTimeout(0); // temp bugfix, this *SHOULD* be the default
if (tell) {
// tell who is connecting
out.write(I2P.getPeerDestination().toBase64().getBytes());
out.write(10); // nl
out.flush(); // not really needed, but...
}
// setup to cross the streams
TCPio conn_c = new TCPio(in, Iout, lives); // app -> I2P
TCPio conn_a = new TCPio(Iin, out, lives); // I2P -> app
t = new Thread(conn_c, Thread.currentThread().getName() + " TCPioA");
q = new Thread(conn_a, Thread.currentThread().getName() + " TCPioB");
// Fire!
t.start();
q.start();
while (t.isAlive() && q.isAlive() && lives.get()) { // AND is used here to kill off the other thread
try {
Thread.sleep(10); //sleep for 10 ms
} catch (InterruptedException e) {
break die;
}
}
// System.out.println("I2PtoTCP: Going away...");
} catch (Exception e) {
// System.out.println("I2PtoTCP: Owch! damn!");
break die;
}
} // die
} finally {
try {
in.close();
} catch (Exception ex) {
}
try {
out.close();
} catch (Exception ex) {
}
try {
Iin.close();
} catch (Exception ex) {
}
try {
Iout.close();
} catch (Exception ex) {
}
try {
t.interrupt();
} catch (Exception e) {
}
try {
q.interrupt();
} catch (Exception e) {
}
try {
// System.out.println("I2PtoTCP: Close I2P");
I2P.close();
} catch (Exception e) {
tell = false;
}
//System.out.println("I2PtoTCP: Closed I2P");
try {
// System.out.println("I2PtoTCP: Close sock");
sock.close();
} catch (Exception e) {
tell = false;
}
// System.out.println("I2PtoTCP: Done");
}
}
}

View File

@ -1,46 +0,0 @@
/**
* WTFPL
* Version 2, December 2004
*
* Copyright (C) sponge
* Planet Earth
*
* See...
*
* http://sam.zoy.org/wtfpl/
* and
* http://en.wikipedia.org/wiki/WTFPL
*
* ...for any additional details and license questions.
*/
package net.i2p.BOB;
import java.util.Map;
import java.util.Properties;
/**
* Sets of "friendly" utilities to make life easier.
* Any "Lifted" code will apear here, and credits given.
* It's better to "Lift" a small chunk of "free" code than add in piles of
* code we don't need, and don't want.
*
* @author sponge
*/
public class Lifted {
/**
* Copy a set of properties from one Property to another.
* Lifted from Apache Derby code svn repository.
* Liscenced as follows:
* http://svn.apache.org/repos/asf/db/derby/code/trunk/LICENSE
*
* @param src_prop Source set of properties to copy from.
* @param dest_prop Dest Properties to copy into.
*
**/
public static void copyProperties(Properties src_prop, Properties dest_prop) {
for (Map.Entry<Object, Object> e : src_prop.entrySet()) {
dest_prop.put((String)e.getKey(), (String)e.getValue());
}
}
}

View File

@ -1,44 +0,0 @@
package net.i2p.BOB;
import net.i2p.util.Log;
public class Logger {
public Log log;
private boolean logToStdout;
public Logger(Log log, boolean logToStdout) {
this.log = log;
this.logToStdout = logToStdout;
}
public void info(String msg) {
if (logToStdout)
System.out.println("INFO: " + msg);
if (log.shouldLog(Log.INFO))
log.info(msg);
}
public void warn(String msg) {
warn(msg, null);
}
public void warn(String msg, Throwable e) {
if (logToStdout) {
System.out.println("WARNING: " + msg);
if (e != null)
e.printStackTrace();
}
if (log.shouldLog(Log.WARN))
log.warn(msg, e);
}
public void error(String msg, Throwable e) {
if (logToStdout) {
System.out.println("ERROR: " + msg);
if (e != null)
e.printStackTrace();
}
if (log.shouldLog(Log.ERROR))
log.error(msg, e);
}
}

View File

@ -1,426 +0,0 @@
/**
* WTFPL
* Version 2, December 2004
*
* Copyright (C) sponge
* Planet Earth
*
* See...
*
* http://sam.zoy.org/wtfpl/
* and
* http://en.wikipedia.org/wiki/WTFPL
*
* ...for any additional details and license questions.
*/
package net.i2p.BOB;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.util.Properties;
import java.util.concurrent.atomic.AtomicBoolean;
import net.i2p.I2PException;
import net.i2p.client.I2PClient;
import net.i2p.client.streaming.I2PServerSocket;
import net.i2p.client.streaming.I2PSocketManager;
import net.i2p.client.streaming.I2PSocketManagerFactory;
import net.i2p.util.Log;
/**
*
* Multiplex listeners for TCP and I2P
*
* @author sponge
*/
public class MUXlisten implements Runnable {
private NamedDB database, info;
private Logger _log;
private I2PSocketManager socketManager;
private ByteArrayInputStream prikey;
private ThreadGroup tg;
private String N;
private ServerSocket listener = null;
private int backlog = 50; // should this be more? less?
boolean go_out;
boolean come_in;
private AtomicBoolean lock;
private AtomicBoolean lives;
/**
* Constructor Will fail if INPORT is occupied.
*
* @param info DB entry for this tunnel
* @param database master database of tunnels
* @param _log
* @throws net.i2p.I2PException
* @throws java.io.IOException
*/
MUXlisten(AtomicBoolean lock, NamedDB database, NamedDB info, Logger _log) throws I2PException, IOException, RuntimeException {
try {
int port = 0;
InetAddress host = null;
this.lock = lock;
this.tg = null;
this.database = database;
this.info = info;
this._log = _log;
lives = new AtomicBoolean(false);
this.database.getWriteLock();
this.info.getWriteLock();
this.info.add("STARTING", Boolean.valueOf(true));
this.info.releaseWriteLock();
this.database.releaseWriteLock();
this.database.getReadLock();
this.info.getReadLock();
N = this.info.get("NICKNAME").toString();
prikey = new ByteArrayInputStream((byte[]) info.get("KEYS"));
// Make a new copy so that anything else won't muck with our database.
Properties R = (Properties) info.get("PROPERTIES");
Properties Q = new Properties();
Lifted.copyProperties(R, Q);
this.database.releaseReadLock();
this.info.releaseReadLock();
this.database.getReadLock();
this.info.getReadLock();
this.go_out = info.exists("OUTPORT");
this.come_in = info.exists("INPORT");
if (this.come_in) {
port = Integer.parseInt(info.get("INPORT").toString());
host = InetAddress.getByName(info.get("INHOST").toString());
}
this.database.releaseReadLock();
this.info.releaseReadLock();
String i2cpHost = Q.getProperty(I2PClient.PROP_TCP_HOST, "127.0.0.1");
int i2cpPort = 7654;
String i2cpPortStr = Q.getProperty(I2PClient.PROP_TCP_PORT, "7654");
try {
i2cpPort = Integer.parseInt(i2cpPortStr);
} catch (NumberFormatException nfe) {
throw new IllegalArgumentException("Invalid I2CP port specified [" + i2cpPortStr + "]");
}
if (this.come_in) {
this.listener = new ServerSocket(port, backlog, host);
}
socketManager = I2PSocketManagerFactory.createManager(
prikey, i2cpHost, i2cpPort, Q);
} catch (IOException e) {
// Something went bad.
this.database.getWriteLock();
this.info.getWriteLock();
this.info.add("STARTING", Boolean.valueOf(false));
this.info.releaseWriteLock();
this.database.releaseWriteLock();
throw new IOException(e.toString());
} catch (RuntimeException e) {
// Something went bad.
this.database.getWriteLock();
this.info.getWriteLock();
this.info.add("STARTING", Boolean.valueOf(false));
this.info.releaseWriteLock();
this.database.releaseWriteLock();
throw new RuntimeException(e);
} catch (Exception e) {
// Something else went bad.
this.database.getWriteLock();
this.info.getWriteLock();
this.info.add("STARTING", Boolean.valueOf(false));
this.info.releaseWriteLock();
this.database.releaseWriteLock();
e.printStackTrace();
throw new RuntimeException(e);
}
}
private void rlock() throws Exception {
database.getReadLock();
info.getReadLock();
}
private void runlock() throws Exception {
database.releaseReadLock();
info.releaseReadLock();
}
private void wlock() throws Exception {
database.getWriteLock();
info.getWriteLock();
}
private void wunlock() throws Exception {
info.releaseWriteLock();
database.releaseWriteLock();
}
/**
* MUX sockets, fire off a thread to connect, get destination info, and do I/O
*
*/
public void run() {
I2PServerSocket SS = null;
Thread t = null;
Thread q = null;
try {
try {
wlock();
try {
info.add("RUNNING", Boolean.valueOf(true));
} catch (Exception e) {
lock.set(false);
wunlock();
return;
}
} catch (Exception e) {
lock.set(false);
return;
}
try {
wunlock();
} catch (Exception e) {
lock.set(false);
return;
}
lives.set(true);
lock.set(false);
quit:
{
try {
tg = new ThreadGroup(N);
{
// toss the connections to a new threads.
// will wrap with TCP and UDP when UDP works
if (go_out) {
// I2P -> TCP
SS = socketManager.getServerSocket();
I2Plistener conn = new I2Plistener(SS, socketManager, info, database, _log, lives);
t = new Thread(tg, conn, "BOBI2Plistener " + N);
t.start();
}
if (come_in) {
// TCP -> I2P
TCPlistener conn = new TCPlistener(listener, socketManager, info, database, _log, lives);
q = new Thread(tg, conn, "BOBTCPlistener " + N);
q.start();
}
try {
wlock();
try {
info.add("STARTING", Boolean.valueOf(false));
} catch (Exception e) {
wunlock();
break quit;
}
} catch (Exception e) {
break quit;
}
try {
wunlock();
} catch (Exception e) {
break quit;
}
boolean spin = true;
while (spin && lives.get()) {
try {
Thread.sleep(1000); //sleep for 1 second
} catch (InterruptedException e) {
break quit;
}
try {
rlock();
try {
spin = info.get("STOPPING").equals(Boolean.FALSE);
} catch (Exception e) {
runlock();
break quit;
}
} catch (Exception e) {
break quit;
}
try {
runlock();
} catch (Exception e) {
break quit;
}
}
} // die
} catch (Exception e) {
// System.out.println("MUXlisten: Caught an exception" + e);
break quit;
}
} // quit
} finally {
lives.set(false);
// Some grace time.
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
}
try {
wlock();
try {
info.add("STARTING", Boolean.valueOf(false));
info.add("STOPPING", Boolean.valueOf(true));
info.add("RUNNING", Boolean.valueOf(false));
} catch (Exception e) {
lock.set(false);
wunlock();
return;
}
wunlock();
} catch (Exception e) {
}
// Start cleanup.
while (!lock.compareAndSet(false, true)) {
// wait
}
if (SS != null) {
try {
SS.close();
} catch (I2PException ex) {
}
}
if (listener != null) {
try {
listener.close();
} catch (IOException e) {
}
}
// Some grace time.
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
}
// Hopefully nuke stuff here...
{
String groupName = tg.getName();
try {
_log.warn("destroySocketManager " + groupName);
socketManager.destroySocketManager();
_log.warn("destroySocketManager Successful" + groupName);
} catch (Exception e) {
// nop
_log.warn("destroySocketManager Failed" + groupName);
_log.warn(e.toString());
}
}
// zero out everything.
try {
wlock();
try {
info.add("STARTING", Boolean.valueOf(false));
info.add("STOPPING", Boolean.valueOf(false));
info.add("RUNNING", Boolean.valueOf(false));
} catch (Exception e) {
lock.set(false);
wunlock();
return;
}
wunlock();
} catch (Exception e) {
}
lock.set(false); // Should we force waiting for all threads??
// Wait around till all threads are collected.
if (tg != null) {
String groupName = tg.getName();
// System.out.println("BOB: MUXlisten: Starting thread collection for: " + groupName);
_log.warn("BOB: MUXlisten: Starting thread collection for: " + groupName);
if (tg.activeCount() + tg.activeGroupCount() != 0) {
// visit(tg, 0, groupName);
int foo = tg.activeCount() + tg.activeGroupCount();
// hopefully no longer needed!
// int bar = lives;
// System.out.println("BOB: MUXlisten: Waiting on threads for " + groupName);
// System.out.println("\nBOB: MUXlisten: ThreadGroup dump BEGIN " + groupName);
// visit(tg, 0, groupName);
// System.out.println("BOB: MUXlisten: ThreadGroup dump END " + groupName + "\n");
// Happily spin forever :-(
while (foo != 0) {
foo = tg.activeCount() + tg.activeGroupCount();
// if (lives != bar && lives != 0) {
// System.out.println("\nBOB: MUXlisten: ThreadGroup dump BEGIN " + groupName);
// visit(tg, 0, groupName);
// System.out.println("BOB: MUXlisten: ThreadGroup dump END " + groupName + "\n");
// }
// bar = lives;
try {
Thread.sleep(100); //sleep for 100 ms (One tenth second)
} catch (InterruptedException ex) {
// nop
}
}
}
// System.out.println("BOB: MUXlisten: Threads went away. Success: " + groupName);
_log.warn("BOB: MUXlisten: Threads went away. Success: " + groupName);
tg.destroy();
// Zap reference to the ThreadGroup so the JVM can GC it.
tg = null;
}
try {
socketManager.destroySocketManager();
} catch (Exception e) {
// nop
}
}
}
// Debugging... None of this is normally used.
/**
* Find the root thread group and print them all.
*
*/
private void visitAllThreads() {
ThreadGroup root = Thread.currentThread().getThreadGroup().getParent();
while (root.getParent() != null) {
root = root.getParent();
}
// Visit each thread group
visit(root, 0, root.getName());
}
/**
* Recursively visits all thread groups under `group' and dumps them.
* @param group ThreadGroup to visit
* @param level Current level
*/
private static void visit(ThreadGroup group, int level, String tn) {
// Get threads in `group'
int numThreads = group.activeCount();
Thread[] threads = new Thread[numThreads * 2];
numThreads = group.enumerate(threads, false);
String indent = "------------------------------------".substring(0, level) + "-> ";
// Enumerate each thread in `group' and print it.
for (int i = 0; i < numThreads; i++) {
// Get thread
Thread thread = threads[i];
System.out.println("BOB: MUXlisten: " + tn + ": " + indent + thread.toString());
}
// Get thread subgroups of `group'
int numGroups = group.activeGroupCount();
ThreadGroup[] groups = new ThreadGroup[numGroups * 2];
numGroups = group.enumerate(groups, false);
// Recursively visit each subgroup
for (int i = 0; i < numGroups; i++) {
visit(groups[i], level + 1, groups[i].getName());
}
}
}

View File

@ -1,42 +0,0 @@
/**
* WTFPL
* Version 2, December 2004
*
* Copyright (C) sponge
* Planet Earth
*
* See...
*
* http://sam.zoy.org/wtfpl/
* and
* http://en.wikipedia.org/wiki/WTFPL
*
* ...for any additional details and license questions.
*/
package net.i2p.BOB;
import net.i2p.util.SimpleScheduler;
import net.i2p.util.SimpleTimer2;
/**
* Start from command line
*
* @author sponge
*
*/
public class Main {
/**
* @param args the command line arguments, these are not used yet
*/
public static void main(String[] args) {
// THINK THINK THINK THINK THINK THINK
SimpleScheduler Y1 = SimpleScheduler.getInstance();
SimpleTimer2 Y2 = SimpleTimer2.getInstance();
BOB.main(args);
Y2.stop();
Y1.stop();
}
}

View File

@ -1,186 +0,0 @@
/**
* WTFPL
* Version 2, December 2004
*
* Copyright (C) sponge
* Planet Earth
*
* See...
*
* http://sam.zoy.org/wtfpl/
* and
* http://en.wikipedia.org/wiki/WTFPL
*
* ...for any additional details and license questions.
*/
package net.i2p.BOB;
/**
* Internal database to relate nicknames to options to values
*
* @author sponge
*/
public class NamedDB {
private volatile Object[][] data;
private int index, writersWaiting, readers;
/**
* make initial NULL object
*
*/
public NamedDB() {
this.data = new Object[1][2];
}
synchronized public void getReadLock() {
while ((writersWaiting != 0)) {
try {
wait();
} catch (InterruptedException ie) {
}
}
readers++;
}
synchronized public void releaseReadLock() {
readers--;
notifyAll();
}
synchronized public void getWriteLock() {
writersWaiting++;
while (readers != 0 && writersWaiting != 1) {
try {
wait();
} catch (InterruptedException ie) {
}
}
}
synchronized public void releaseWriteLock() {
writersWaiting--;
notifyAll();
}
/**
* Find objects in the array, returns it's index or throws exception
* @param key
* @return an objects index
* @throws ArrayIndexOutOfBoundsException when key does not exist
*/
public int idx(Object key) throws ArrayIndexOutOfBoundsException {
for (int i = 0; i < index; i++) {
if (key.equals(data[i][0])) {
return i;
}
}
throw new ArrayIndexOutOfBoundsException("Can't locate key for index");
}
/**
* Delete an object from array if it exists
*
* @param key
*/
public void kill(Object key) {
int i, j, k, l;
Object[][] olddata;
int didsomething = 0;
try {
k = idx(key);
} catch (ArrayIndexOutOfBoundsException b) {
return;
}
olddata = new Object[index + 2][2];
// copy to olddata, skipping 'k'
for (i = 0, l = 0; l < index; i++, l++) {
if (i == k) {
l++;
didsomething++;
}
for (j = 0; j < 2; j++) {
olddata[i][j] = data[l][j];
}
}
index -= didsomething;
data = olddata;
}
/**
* Add object to the array, deletes the old one if it exists
*
* @param key
* @param val
*/
public void add(Object key, Object val) {
Object[][] olddata;
int i, j;
i = 0;
kill(key);
olddata = new Object[index + 2][2];
// copy to olddata
for (i = 0; i < index; i++) {
for (j = 0; j < 2; j++) {
olddata[i][j] = data[i][j];
}
}
data = olddata;
data[index++] = new Object[]{key, val};
}
/**
* Get the object, and return it, throws RuntimeException
*
* @param key
* @return Object
* @throws java.lang.RuntimeException
*/
public Object get(Object key) throws RuntimeException {
for (int i = 0; i < index; i++) {
if (key.equals(data[i][0])) {
return data[i][1];
}
}
throw new RuntimeException("Key not found");
}
/**
* returns true if an object exists, else returns false
*
* @param key
* @return true if an object exists, else returns false
*/
public boolean exists(Object key) {
for (int i = 0; i < index; i++) {
if (key.equals(data[i][0])) {
return true;
}
}
return false;
}
/**
*
* @param i index
* @return an indexed Object
* @throws java.lang.RuntimeException
*/
public Object getnext(int i) throws RuntimeException {
if (i < index && i > -1) {
return data[i][1];
}
throw new RuntimeException("No more data");
}
/**
* @return the count of how many objects
*/
public int getcount() {
return index;
}
}

View File

@ -1,121 +0,0 @@
/**
* WTFPL
* Version 2, December 2004
*
* Copyright (C) sponge
* Planet Earth
*
* See...
*
* http://sam.zoy.org/wtfpl/
* and
* http://en.wikipedia.org/wiki/WTFPL
*
* ...for any additional details and license questions.
*/
package net.i2p.BOB;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.concurrent.atomic.AtomicBoolean;
/**
* Shove data from one stream to the other.
*
* @author sponge
*/
public class TCPio implements Runnable {
private InputStream Ain;
private OutputStream Aout;
private AtomicBoolean lives;
/**
* Constructor
*
* @param Ain InputStream
* @param Aout OutputStream
*
* param database
*/
TCPio(InputStream Ain, OutputStream Aout, AtomicBoolean lives) {
this.Ain = Ain;
this.Aout = Aout;
this.lives = lives;
}
/**
* Copy from source to destination...
* and yes, we are totally OK to block here on writes,
* The OS has buffers, and I intend to use them.
* We send an interrupt signal to the threadgroup to
* unwedge any pending writes.
*
*/
public void run() {
/*
* NOTE:
* The write method of OutputStream calls the write method of
* one argument on each of the bytes to be written out.
* Subclasses are encouraged to override this method and provide
* a more efficient implementation.
*
* So, is this really a performance problem?
* Should we expand to several bytes?
* I don't believe there would be any gain, since read method
* has the same reccomendations. If anyone has a better way to
* do this, I'm interested in performance improvements.
*
* --Sponge
*
* Tested with 128 bytes, and there was no performance gain.
* 8192 bytes did lower load average across many connections.
* Should I raise it higer? The correct thing to do would be to
* override... perhaps use NTCP, but I2P's streaming lib lacks
* anything NTCP compatable.
*
* --Sponge
*/
int b;
byte a[] = new byte[8192];
try {
try {
while (lives.get()) {
b = Ain.read(a, 0, 8192);
if (b > 0) {
Aout.write(a, 0, b);
} else if (b == 0) {
while(Ain.available() == 0) {
Thread.sleep(20);
}
} else {
/* according to the specs:
*
* The total number of bytes read into the buffer,
* or -1 if there is no more data because the end of
* the stream has been reached.
*
*/
// System.out.println("TCPio: End Of Stream");
break;
}
}
} catch (Exception e) {
}
// System.out.println("TCPio: Leaving.");
} finally {
// Eject!!! Eject!!!
//System.out.println("TCPio: Caught an exception " + e);
try {
Ain.close();
} catch (IOException ex) {
}
try {
Aout.close();
} catch (IOException ex) {
}
}
}
}

View File

@ -1,94 +0,0 @@
/**
* WTFPL
* Version 2, December 2004
*
* Copyright (C) sponge
* Planet Earth
*
* See...
*
* http://sam.zoy.org/wtfpl/
* and
* http://en.wikipedia.org/wiki/WTFPL
*
* ...for any additional details and license questions.
*/
package net.i2p.BOB;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketTimeoutException;
import java.util.concurrent.atomic.AtomicBoolean;
import net.i2p.client.streaming.I2PServerSocket;
import net.i2p.client.streaming.I2PSocketManager;
/**
* Listen on TCP port and connect to I2P
*
* @author sponge
*/
public class TCPlistener implements Runnable {
private NamedDB info, database;
private Logger _log;
public I2PSocketManager socketManager;
public I2PServerSocket serverSocket;
private ServerSocket listener;
private AtomicBoolean lives;
/**
* Constructor
* @param S
* @param info
* @param database
* @param _log
*/
TCPlistener(ServerSocket listener, I2PSocketManager S, NamedDB info, NamedDB database, Logger _log, AtomicBoolean lives) {
this.database = database;
this.info = info;
this._log = _log;
this.socketManager = S;
this.listener = listener;
this.lives = lives;
}
/**
* Simply listen on TCP port, and thread connections
*
*/
public void run() {
boolean g = false;
int conn = 0;
Socket server = null;
try {
try {
listener.setSoTimeout(50); // We don't block, we cycle and check.
while (lives.get()) {
try {
server = listener.accept();
server.setKeepAlive(true);
g = true;
} catch (SocketTimeoutException ste) {
g = false;
}
if (g) {
conn++;
// toss the connection to a new thread.
TCPtoI2P conn_c = new TCPtoI2P(socketManager, server, info, database, lives);
Thread t = new Thread(conn_c, Thread.currentThread().getName() + " TCPtoI2P " + conn);
t.start();
g = false;
}
}
} catch (IOException ioe) {
}
} finally {
try {
listener.close();
} catch (IOException ex) {
}
//System.out.println("TCPlistener: " + Thread.currentThread().getName() + "Done.");
}
}
}

View File

@ -1,234 +0,0 @@
/**
* WTFPL
* Version 2, December 2004
*
* Copyright (C) sponge
* Planet Earth
*
* See...
*
* http://sam.zoy.org/wtfpl/
* and
* http://en.wikipedia.org/wiki/WTFPL
*
* ...for any additional details and license questions.
*/
package net.i2p.BOB;
import java.io.IOException;
import java.io.InputStream;
import java.io.InterruptedIOException;
import java.io.OutputStream;
import java.net.ConnectException;
import java.net.NoRouteToHostException;
import java.net.Socket;
import java.util.Locale;
import java.util.concurrent.atomic.AtomicBoolean;
import net.i2p.I2PException;
import net.i2p.client.streaming.I2PSocket;
import net.i2p.client.streaming.I2PSocketManager;
import net.i2p.data.DataFormatException;
import net.i2p.data.Destination;
//import net.i2p.i2ptunnel.I2PTunnel;
import net.i2p.I2PAppContext;
/**
*
* Process TCP->I2P
*
* @author sponge
*/
public class TCPtoI2P implements Runnable {
private I2PSocket I2P;
private NamedDB info, database;
private Socket sock;
private I2PSocketManager socketManager;
private AtomicBoolean lives;
/**
* Constructor
* @param i2p
* @param socket
* param info
* param database
*/
TCPtoI2P(I2PSocketManager i2p, Socket socket, NamedDB info, NamedDB database, AtomicBoolean lives) {
this.sock = socket;
this.info = info;
this.database = database;
this.socketManager = i2p;
this.lives = lives;
}
/**
* This is a more forgiving readline,
* it works on unbuffered streams
*
* @param in
* @return line of text as a String
* @throws IOException
*/
private static String lnRead(InputStream in) throws IOException {
StringBuilder builder = new StringBuilder();
int b;
char c;
while (true) {
b = in.read();
if (b == 13) {
//skip CR
continue;
}
if (b < 20 || b > 126) {
// exit on anything not legal
break;
}
c = (char) (b & 0x7f); // We only care about ASCII
builder.append(c);
}
return builder.toString();
}
/**
* Print an error message to out
*
* @param e
* @param out
* @throws java.io.IOException
*/
private void Emsg(String e, OutputStream out) throws IOException {
// Debugging System.out.println("ERROR TCPtoI2P: " + e);
out.write("ERROR ".concat(e).getBytes("UTF-8"));
out.write(13);
out.write(10);
out.flush();
}
private void rlock() {
database.getReadLock();
info.getReadLock();
}
private void runlock() {
info.releaseReadLock();
database.releaseReadLock();
}
/**
* TCP stream to I2P stream thread starter
*
*/
public void run() {
String line, input;
InputStream Iin = null;
OutputStream Iout = null;
InputStream in = null;
OutputStream out = null;
Thread t = null;
Thread q = null;
try {
try {
in = sock.getInputStream();
out = sock.getOutputStream();
line = lnRead(in);
input = line.toLowerCase(Locale.US);
Destination dest = null;
if (input.endsWith(".i2p")) {
//dest = I2PTunnel.destFromName(input);
dest = I2PAppContext.getGlobalContext().namingService().lookup(input);
if (dest != null) {
line = dest.toBase64();
} else {
Emsg("Can't find destination: " + input, out);
return;
}
}
dest = new Destination();
dest.fromBase64(line);
try {
// get a client socket
I2P = socketManager.connect(dest);
I2P.setReadTimeout(0); // temp bugfix, this *SHOULD* be the default
// make readers/writers
Iin = I2P.getInputStream();
Iout = I2P.getOutputStream();
// setup to cross the streams
TCPio conn_c = new TCPio(in, Iout, lives); // app -> I2P
TCPio conn_a = new TCPio(Iin, out, lives); // I2P -> app
t = new Thread(conn_c, Thread.currentThread().getName() + " TCPioA");
q = new Thread(conn_a, Thread.currentThread().getName() + " TCPioB");
// Fire!
t.start();
q.start();
while (t.isAlive() && q.isAlive() && lives.get()) { // AND is used here to kill off the other thread
Thread.sleep(10); //sleep for 10 ms
}
} catch (I2PException e) {
Emsg(e.toString(), out);
} catch (ConnectException e) {
Emsg(e.toString(), out);
} catch (NoRouteToHostException e) {
Emsg(e.toString(), out);
}
} catch (InterruptedIOException e) {
// We're breaking away.
} catch (InterruptedException e) {
// ditto
} catch (IOException e) {
try {
Emsg(e.toString(), out);
} catch (IOException ex) {
// ditto
}
} catch (DataFormatException e) {
try {
Emsg(e.toString(), out);
} catch (IOException ex) {
// ditto
}
}
} finally {
try {
t.interrupt();
} catch (Exception e) {
}
try {
q.interrupt();
} catch (Exception e) {
}
try {
in.close();
} catch (Exception e) {
}
try {
out.close();
} catch (Exception e) {
}
try {
Iin.close();
} catch (Exception e) {
}
try {
Iout.close();
} catch (Exception e) {
}
try {
// System.out.println("TCPtoI2P: Close I2P");
I2P.close();
} catch (Exception e) {
}
try {
// System.out.println("TCPtoI2P: Close sock");
sock.close();
} catch (Exception e) {
}
}
// System.out.println("TCPtoI2P: Done.");
}
}

View File

@ -1,138 +0,0 @@
/**
* WTFPL
* Version 2, December 2004
*
* Copyright (C) sponge
* Planet Earth
*
* See...
*
* http://sam.zoy.org/wtfpl/
* and
* http://en.wikipedia.org/wiki/WTFPL
*
* ...for any additional details and license questions.
*/
package net.i2p.BOB;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import net.i2p.client.I2PSession;
import net.i2p.client.I2PSessionException;
import net.i2p.client.I2PSessionListener;
import net.i2p.data.Destination;
import net.i2p.util.Log;
/**
* UDP IO on I2P
*
* FIX ME: Untested, and incomplete!
* I have no personal need to UDP yet,
* however alot of p2p apps pretty much demand it.
* The skeletal frame is here, just needs to be finished.
*
* @author sponge
*/
public class UDPIOthread implements I2PSessionListener, Runnable {
private NamedDB info;
private Log _log;
private Socket socket;
private DataInputStream in;
private DataOutputStream out;
private I2PSession _session;
private Destination _peerDestination;
private boolean up;
/**
* Constructor
* @param info
* @param _log
* @param socket
* @param _session
*/
UDPIOthread(NamedDB info, Log _log, Socket socket, I2PSession _session) {
this.info = info;
this._log = _log;
this.socket = socket;
this._session = _session;
}
/**
*
*/
public void run() {
byte data[] = new byte[1024];
up = true;
try {
in = new DataInputStream(socket.getInputStream());
out = new DataOutputStream(socket.getOutputStream());
while (up) {
int c = in.read(data);
// Note: could do a loopback test here with a wrapper.
boolean ok = _session.sendMessage(_peerDestination, data, 0, c);
if (!ok) {
up = false; // Is this the right thing to do??
}
}
} catch (IOException ioe) {
_log.error("Error running", ioe);
} catch (I2PSessionException ise) {
_log.error("Error communicating", ise);
// } catch(DataFormatException dfe) {
// _log.error("Peer destination file is not valid", dfe);
} finally {
if (_session != null) {
try {
_session.destroySession();
} catch (I2PSessionException ise) {
// ignored
}
}
}
}
/**
*
* @param session
* @param msgId
* @param size
*/
public void messageAvailable(I2PSession session, int msgId, long size) {
// _log.debug("Message available: id = " + msgId + " size = " + size);
try {
byte msg[] = session.receiveMessage(msgId);
if (msg != null) {
out.write(msg);
out.flush();
}
} catch (I2PSessionException ise) {
up = false;
} catch (IOException ioe) {
up = false;
}
}
// Great, can these be used to kill ourselves.
/** required by {@link I2PSessionListener I2PSessionListener} to notify of disconnect */
public void disconnected(I2PSession session) {
_log.debug("Disconnected");
// up = false;
}
/** required by {@link I2PSessionListener I2PSessionListener} to notify of error */
public void errorOccurred(I2PSession session, String message, Throwable error) {
_log.debug("Error occurred: " + message, error);
// up = false;
}
/** required by {@link I2PSessionListener I2PSessionListener} to notify of abuse */
public void reportAbuse(I2PSession session, int severity) {
_log.debug("Abuse reported of severity " + severity);
// up = false;
}
}

View File

@ -1,21 +0,0 @@
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) sponge
Planet Earth
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.
See...
http://sam.zoy.org/wtfpl/
and
http://en.wikipedia.org/wiki/WTFPL
...for any additional details and license questions.

View File

@ -1,5 +0,0 @@
<html>
<body>
<p>BOB, the Basic Open Bridge, allows TCP applications to talk over I2P.</p>
</body>
</html>

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="java/src"/>
<classpathentry combineaccessrules="false" kind="src" path="/i2p_sdk"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="/jetty/jettylib/javax.servlet.jar"/>
<classpathentry kind="output" path="build"/>
</classpath>

View File

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>addressbook</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -1,43 +0,0 @@
addressbook v2.0.2 - A simple name resolution mechanism for I2P
addressbook is a simple implementation of subscribable address books for I2P.
Addresses are stored in userhosts.txt and a second copy of the address book is
placed on your eepsite as hosts.txt.
subscriptions.txt contains a list of urls to check for new addresses.
Since the urls are checked in order, and conflicting addresses are not added,
addressbook.subscriptions can be considered to be ranked in order of trust.
The system created by addressbook is similar to the early days of DNS,
when everyone ran a local name server. The major difference is the lack of
authority. Name cannot be guaranteed to be globally unique, but in practise
they probably will be, for a variety of social reasons.
Requirements
************
i2p with a running http proxy
Installation and Usage
**********************
1. Unzip addressbook-%ver.zip into your i2p directory.
2. Restart your router.
The addressbook daemon will automatically run while the router is up.
Aside from the daemon itself, the other elements of the addressbook interface
are the config.txt, myhosts.txt, and subscriptions.txt files found in the addressbook
directory.
config.txt is the configuration file for addressbook.
myhosts.txt is the addressbook master address book. Addresses placed in this file
take precidence over those in the router address book and in remote address books.
If changes are made to this file, they will be reflected in the router address book
and published address book after the next update. Do not make changes directly to the
router address book, as they could be lost during an update.
subscriptions.txt is the subscription list for addressbook. Each entry is an absolute
url to a file in hosts.txt format. Since the list is checked in order, url's should be
listed in order of trust.

View File

@ -0,0 +1,22 @@
apply plugin:'war'
sourceSets {
main {
java {
srcDir 'java/src'
}
}
}
dependencies {
providedCompile project(':core')
providedCompile project(':apps:jetty')
}
war {
rootSpec.exclude('**/*.class')
}
artifacts {
archives war
}

View File

@ -1,5 +1,5 @@
<?xml version="1.0"?>
<project name="addressbook" default="war" basedir=".">
<project name="addressbook" default="all" basedir=".">
<property name="src" value="java/src"/>
<property name="build" value="build"/>
@ -7,7 +7,11 @@
<property name="jar" value="addressbook.jar"/>
<property name="war" value="addressbook.war"/>
<property name="javac.compilerargs" value="" />
<property name="javac.version" value="1.6" />
<property name="javac.version" value="1.8" />
<property name="javac.release" value="8" />
<property name="manifest.classpath.name" value="Class-Path" />
<target name="all" depends="jar, emptyWar"/>
<target name="init">
<mkdir dir="${build}"/>
@ -36,24 +40,12 @@
</depend>
</target>
<target name="dependServlet" if="depend.available">
<depend
cache="../../build"
srcdir="${src}"
destdir="${build}" >
<!-- Depend on classes instead of jars where available -->
<classpath>
<pathelement location="../../core/java/build/obj" />
<pathelement location="../jetty/jettylib/javax.servlet.jar" />
</classpath>
</depend>
</target>
<target name="compile" depends="init, depend">
<target name="compile" depends="init, depend, warUpToDate">
<javac debug="true" deprecation="on" source="${javac.version}" target="${javac.version}"
release="${javac.release}"
includeAntRuntime="false"
srcdir="${src}" destdir="${build}"
excludes="net/i2p/addressbook/Servlet.java">
encoding="UTF-8"
srcdir="${src}" destdir="${build}">
<compilerarg line="${javac.compilerargs}" />
<classpath>
<pathelement location="../../core/java/build/i2p.jar" />
@ -61,78 +53,67 @@
</javac>
</target>
<target name="compileServlet" depends="init, dependServlet, compile">
<javac debug="true" deprecation="on" source="${javac.version}" target="${javac.version}"
includeAntRuntime="false"
srcdir="${src}" destdir="${build}"
includes="net/i2p/addressbook/Servlet.java">
<compilerarg line="${javac.compilerargs}" />
<classpath>
<pathelement location="../../core/java/build/i2p.jar" />
<pathelement location="../jetty/jettylib/javax.servlet.jar" />
</classpath>
</javac>
</target>
<!-- unused for now (except for Android), as we oddly ship addressbook as a .war -->
<target name="jar" depends="compile, changes">
<!-- set if unset -->
<property name="workspace.changes" value="" />
<property name="workspace.changes.tr" value="" />
<jar basedir="${build}" destfile="${dist}/${jar}">
<manifest>
<attribute name="Main-Class" value="addressbook.Daemon"/>
<attribute name="Implementation-Version" value="${full.version}" />
<attribute name="Built-By" value="${build.built-by}" />
<attribute name="Build-Date" value="${build.timestamp}" />
<attribute name="Base-Revision" value="${workspace.version}" />
<attribute name="Workspace-Changes" value="${workspace.changes}" />
</manifest>
</jar>
</target>
<target name="war" depends="compileServlet, changes, warUpToDate" unless="war.uptodate">
<mkdir dir="${dist}/tmp"/>
<mkdir dir="${dist}/tmp/WEB-INF"/>
<mkdir dir="${dist}/tmp/WEB-INF/classes"/>
<copy todir="${dist}/tmp/WEB-INF/classes">
<fileset dir="${build}"/>
</copy>
<!-- set if unset -->
<property name="workspace.changes.tr" value="" />
<war basedir="${dist}/tmp" webxml="web.xml" destfile="${dist}/${war}">
<manifest>
<attribute name="${manifest.classpath.name}" value="i2p.jar" />
<attribute name="Main-Class" value="net.i2p.addressbook.CommandLine"/>
<attribute name="Specification-Title" value="I2P Address Book" />
<attribute name="Specification-Version" value="${api.version}" />
<attribute name="Specification-Vendor" value="The I2P Project https://geti2p.net/" />
<attribute name="Implementation-Title" value="I2P Java Address Book" />
<attribute name="Implementation-Version" value="${full.version}" />
<attribute name="Implementation-Vendor" value="The I2P Project https://geti2p.net/" />
<attribute name="Built-By" value="${build.built-by}" />
<attribute name="Build-Date" value="${build.timestamp}" />
<attribute name="Base-Revision" value="${workspace.version}" />
<attribute name="Workspace-Changes" value="${workspace.changes.tr}" />
<attribute name="X-Compile-Source-JDK" value="${javac.version}" />
<attribute name="X-Compile-Target-JDK" value="${javac.version}" />
</manifest>
</war>
<delete dir="${dist}/tmp"/>
</jar>
</target>
<target name="emptyWar" depends="init">
<jar destfile="${dist}/${war}" >
<manifest>
<attribute name="Note" value="Intentionally empty" />
</manifest>
</jar>
</target>
<!-- actually the jar -->
<target name="warUpToDate">
<uptodate property="war.uptodate" targetfile="${dist}/${war}">
<srcfiles dir= "." includes="${build}/**/*.class, web.xml"/>
<uptodate property="war.uptodate" targetfile="${dist}/${jar}">
<srcfiles dir= "." includes="${build}/**/*.class"/>
</uptodate>
<condition property="shouldListChanges" >
<and>
<not>
<isset property="war.uptodate" />
</not>
<isset property="mtn.available" />
<isset property="git.available" />
</and>
</condition>
</target>
<target name="changes" depends="warUpToDate" if="shouldListChanges" >
<exec executable="mtn" outputproperty="workspace.changes" errorproperty="mtn.error2" failifexecutionfails="false" >
<arg value="list" />
<arg value="changed" />
<arg value="." />
</exec>
<exec executable="git" outputproperty="workspace.changes" errorproperty="mtn.error2" failifexecutionfails="false" >
<arg value="status" />
<arg value="-s" />
<arg value="--porcelain" />
<arg value="-uno" />
<arg value="." />
</exec>
<!-- trim flags -->
<exec executable="sed" inputstring="${workspace.changes}" outputproperty="workspace.changes.sed" errorproperty="mtn.error2" failifexecutionfails="false" >
<arg value="-e" />
<arg value="s/^[MTADRCU ]*//" />
</exec>
<!-- \n in an attribute value generates an invalid manifest -->
<exec executable="tr" inputstring="${workspace.changes}" outputproperty="workspace.changes.tr" errorproperty="mtn.error2" failifexecutionfails="false" >
<exec executable="tr" inputstring="${workspace.changes.sed}" outputproperty="workspace.changes.tr" errorproperty="mtn.error2" failifexecutionfails="false" >
<arg value="-s" />
<arg value="[:space:]" />
<arg value="," />

View File

@ -1,48 +0,0 @@
# This is the configuration file for addressbook.
#
# Options
# *******
# All paths are realitive to i2p/addressbook. Default value for
# each option is given in parentheses.
#
# proxy_host The hostname of your I2P http proxy.
# (localhost)
#
# proxy_port The port of your I2P http proxy. (4444)
#
# master_addressbook The path to your master address book, used for local
# changes only. (myhosts.txt)
#
# router_addressbook The path to the address book used by the router.
# Contains the addresses from your master address book
# and your subscribed address books. (../userhosts.txt)
#
# private_addressbook The path to the private address book used by the router.
# This is used only by the router and SusiDNS.
# It is not published by addressbook. (../privatehosts.txt)
#
# published_addressbook The path to the copy of your address book made
# available on i2p. (../eepsite/docroot/hosts.txt)
#
# log The path to your addressbook log. (log.txt)
#
# subscriptions The path to your subscription file. (subscriptions.txt)
#
# etags The path to the etags header storage file. (etags)
#
# last_modified The path to the last-modified header storage file.
# (last_modified)
#
# update_delay The time (in hours) between each update. (1)
proxy_host=localhost
proxy_port=4444
master_addressbook=myhosts.txt
router_addressbook=../userhosts.txt
private_addressbook=../privatehosts.txt
published_addressbook=../eepsite/docroot/hosts.txt
log=log.txt
subscriptions=subscriptions.txt
etags=etags
last_modified=last_modified
update_delay=1

View File

@ -27,8 +27,10 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.regex.Pattern;
import net.i2p.I2PAppContext;
import net.i2p.client.naming.HostTxtEntry;
import net.i2p.util.EepGet;
import net.i2p.util.SecureFile;
@ -37,18 +39,40 @@ import net.i2p.util.SecureFile;
* destinations. AddressBooks can be created from local and remote files, merged
* together, and written out to local files.
*
* Methods are NOT thread-safe.
*
* @author Ragnarok
*
*/
class AddressBook {
class AddressBook implements Iterable<Map.Entry<String, HostTxtEntry>> {
private final String location;
/** either addresses or subFile will be non-null, but not both */
private final Map<String, String> addresses;
private final Map<String, HostTxtEntry> addresses;
private final File subFile;
private boolean modified;
private static final boolean DEBUG = false;
private static final int MIN_DEST_LENGTH = 516;
private static final int MAX_DEST_LENGTH = MIN_DEST_LENGTH + 100; // longer than any known cert type for now
/**
* 5-67 chars lower/upper case
*/
private static final Pattern HOST_PATTERN =
Pattern.compile("^[0-9a-zA-Z\\.-]{5,67}$");
/**
* 52 chars lower/upper case
* Always ends in 'a' or 'q'
*/
private static final Pattern B32_PATTERN =
Pattern.compile("^[2-7a-zA-Z]{51}[aAqQ]$");
/** not a complete qualification, just a quick check */
private static final Pattern B64_PATTERN =
Pattern.compile("^[0-9a-zA-Z~-]{" + MIN_DEST_LENGTH + ',' + MAX_DEST_LENGTH + "}={0,2}$");
/**
* Construct an AddressBook from the contents of the Map addresses.
*
@ -56,7 +80,7 @@ class AddressBook {
* A Map containing human readable addresses as keys, mapped to
* base64 i2p destinations.
*/
public AddressBook(Map<String, String> addresses) {
public AddressBook(Map<String, HostTxtEntry> addresses) {
this.addresses = addresses;
this.subFile = null;
this.location = null;
@ -86,7 +110,7 @@ class AddressBook {
new File("addressbook.tmp").delete();
}
*/
static final long MAX_SUB_SIZE = 3 * 1024 * 1024l; //about 5,000 hosts
static final long MAX_SUB_SIZE = 5 * 1024 * 1024l; //about 8,000 hosts
/**
* Construct an AddressBook from the Subscription subscription. If the
@ -107,13 +131,22 @@ class AddressBook {
* @param proxyPort port number of proxy
*/
public AddressBook(Subscription subscription, String proxyHost, int proxyPort) {
Map<String, String> a = null;
Map<String, HostTxtEntry> a = null;
File subf = null;
File tmp = null;
try {
File tmp = SecureFile.createTempFile("addressbook", null, I2PAppContext.getGlobalContext().getTempDir());
tmp = SecureFile.createTempFile("addressbook", null, I2PAppContext.getGlobalContext().getTempDir());
// Apache 2.4 mod_deflate etag bug workaround
// strip -gzip from the etag
// Gitlab #454
String loc = subscription.getLocation();
String etag = subscription.getEtag();
if (loc.startsWith("http://i2p-projekt.i2p/") && etag != null && etag.endsWith("-gzip\""))
etag = etag.substring(0, etag.length() - 6) + '"';
EepGet get = new EepGet(I2PAppContext.getGlobalContext(), true,
proxyHost, proxyPort, 0, -1l, MAX_SUB_SIZE, tmp.getAbsolutePath(), null,
subscription.getLocation(), true, subscription.getEtag(), subscription.getLastModified(), null);
loc, true, etag, subscription.getLastModified(), null);
if (get.fetch()) {
subscription.setEtag(get.getETag());
subscription.setLastModified(get.getLastModified());
@ -124,6 +157,8 @@ class AddressBook {
tmp.delete();
}
} catch (IOException ioe) {
if (tmp != null)
tmp.delete();
a = Collections.emptyMap();
}
this.addresses = a;
@ -144,23 +179,40 @@ class AddressBook {
*/
public AddressBook(File file) {
this.location = file.toString();
Map<String, String> a;
Map<String, HostTxtEntry> a;
try {
a = ConfigParser.parse(file);
a = HostTxtParser.parse(file);
} catch (IOException exp) {
a = new HashMap<String, String>();
a = new HashMap<String, HostTxtEntry>();
}
this.addresses = a;
this.subFile = null;
}
/**
* Test only.
*
* @param testsubfile path to a file containing the simulated fetch of a subscription
* @since 0.9.26
*/
public AddressBook(String testsubfile) {
this.location = testsubfile;
this.addresses = null;
this.subFile = new File(testsubfile);
}
/**
* Return an iterator over the addresses in the AddressBook.
* @since 0.8.7
*/
public Iterator<Map.Entry<String, String>> iterator() {
if (this.subFile != null)
return new ConfigIterator(this.subFile);
public Iterator<Map.Entry<String, HostTxtEntry>> iterator() {
if (this.subFile != null) {
try {
return new HostTxtIterator(this.subFile);
} catch (IOException ioe) {
return new HostTxtIterator();
}
}
return this.addresses.entrySet().iterator();
}
@ -201,28 +253,26 @@ class AddressBook {
return "Map containing " + this.addresses.size() + " entries";
}
private static final int MIN_DEST_LENGTH = 516;
private static final int MAX_DEST_LENGTH = MIN_DEST_LENGTH + 100; // longer than any known cert type for now
/**
* Do basic validation of the hostname
* hostname was already converted to lower case by ConfigParser.parse()
* Do basic validation of the address
* address was already converted to lower case by HostTxtParser.parse()
*/
public static boolean isValidKey(String host) {
return
host.endsWith(".i2p") &&
host.length() > 4 &&
host.length() <= 67 && // 63 + ".i2p"
host.endsWith(".i2p") &&
host.length() > 4 &&
host.length() <= 67 && // 63 + ".i2p"
(! host.startsWith(".")) &&
(! host.startsWith("-")) &&
host.indexOf(".-") < 0 &&
host.indexOf("-.") < 0 &&
host.indexOf("..") < 0 &&
host.indexOf("..") < 0 &&
// IDN - basic check, not complete validation
(host.indexOf("--") < 0 || host.startsWith("xn--") || host.indexOf(".xn--") > 0) &&
host.replaceAll("[a-z0-9.-]", "").length() == 0 &&
HOST_PATTERN.matcher(host).matches() &&
// Base32 spoofing (52chars.i2p)
(! (host.length() == 56 && host.substring(0,52).replaceAll("[a-z2-7]", "").length() == 0)) &&
// We didn't do it this way, we use a .b32.i2p suffix, but let's prohibit it anyway
(! (host.length() == 56 && B32_PATTERN.matcher(host.substring(0,52)).matches())) &&
// ... or maybe we do Base32 this way ...
(! host.equals("b32.i2p")) &&
(! host.endsWith(".b32.i2p")) &&
@ -233,20 +283,20 @@ class AddressBook {
(! host.endsWith(".proxy.i2p")) &&
(! host.endsWith(".router.i2p")) &&
(! host.endsWith(".console.i2p"))
;
;
}
/**
* Do basic validation of the b64 dest, without bothering to instantiate it
*/
private static boolean isValidDest(String dest) {
return
return
// null cert ends with AAAA but other zero-length certs would be AA
((dest.length() == MIN_DEST_LENGTH && dest.endsWith("AA")) ||
(dest.length() > MIN_DEST_LENGTH && dest.length() <= MAX_DEST_LENGTH)) &&
// B64 comes in groups of 2, 3, or 4 chars, but never 1
((dest.length() % 4) != 1) &&
dest.replaceAll("[a-zA-Z0-9~-]", "").length() == 0
((dest.length() == MIN_DEST_LENGTH && dest.endsWith("AA")) ||
(dest.length() > MIN_DEST_LENGTH && dest.length() <= MAX_DEST_LENGTH)) &&
// B64 comes in groups of 2, 3, or 4 chars, but never 1
((dest.length() % 4) != 1) &&
B64_PATTERN.matcher(dest).matches()
;
}
@ -267,15 +317,25 @@ class AddressBook {
public void merge(AddressBook other, boolean overwrite, Log log) {
if (this.addresses == null)
throw new IllegalStateException();
for (Iterator<Map.Entry<String, String>> iter = other.iterator(); iter.hasNext(); ) {
Map.Entry<String, String> entry = iter.next();
String otherKey = entry.getKey();
String otherValue = entry.getValue();
Iterator<Map.Entry<String, HostTxtEntry>> iter = other.iterator();
try {
merge2(other, iter, overwrite, log);
} finally {
if (iter instanceof HostTxtIterator)
((HostTxtIterator) iter).close();
}
}
if (isValidKey(otherKey) && isValidDest(otherValue)) {
private void merge2(AddressBook other, Iterator<Map.Entry<String, HostTxtEntry>> iter, boolean overwrite, Log log) {
while(iter.hasNext()) {
Map.Entry<String, HostTxtEntry> entry = iter.next();
String otherKey = entry.getKey();
HostTxtEntry otherValue = entry.getValue();
if (isValidKey(otherKey) && isValidDest(otherValue.getDest())) {
if (this.addresses.containsKey(otherKey) && !overwrite) {
if (DEBUG && log != null &&
!this.addresses.get(otherKey).equals(otherValue)) {
!this.addresses.get(otherKey).equals(otherValue.getDest())) {
log.append("Conflict for " + otherKey + " from "
+ other.location
+ ". Destination in remote address book is "
@ -308,7 +368,7 @@ class AddressBook {
throw new IllegalStateException();
if (this.modified) {
try {
ConfigParser.write(this.addresses, file);
HostTxtParser.write(this.addresses, file);
} catch (IOException exp) {
System.err.println("Error writing addressbook " + file.getAbsolutePath() + " : " + exp.toString());
}
@ -328,8 +388,26 @@ class AddressBook {
this.write(new File(this.location));
}
@Override
protected void finalize() {
delete();
/****
public static void main(String[] args) {
String[] tests = { "foo.i2p",
"3bnipzzu67cdq2rcygyxz52xhvy6ylokn4zfrk36ywn6pixmaoza.b32.i2p",
"9rhEy4dT9fMlcSOhDzfWRxCV2aen4Zp4eSthOf5f9gVKMa4PtQJ-wEzm2KEYeDXkbM6wEDvMQ6ou4LIniSE6bSAwy7fokiXk5oabels-sJmftnQWRbZyyXEAsLc3gpJJvp9km7kDyZ0z0YGL5tf3S~OaWdptB5tSBOAOjm6ramcYZMWhyUqm~xSL1JyXUqWEHRYwhoDJNL6-L516VpDYVigMBpIwskjeFGcqK8BqWAe0bRwxIiFTPN6Ck8SDzQvS1l1Yj-zfzg3X3gOknzwR8nrHUkjsWtEB6nhbOr8AR21C9Hs0a7MUJvSe2NOuBoNTrtxT76jDruI78JcG5r~WKl6M12yM-SqeBNE9hQn2QCHeHAKju7FdRCbqaZ99IwyjfwvZbkiYYQVN1xlUuGaXrj98XDzK7GORYdH-PrVGfEbMXQ40KLHUWHz8w4tQXAOQrCHEichod0RIzuuxo3XltCWKrf1xGZhkAo9bk2qXi6digCijvYNaKmQdXZYWW~RtAAAA",
"6IZTYacjlXjSAxu-uXEO5oGsj-f4tfePHEvGjs5pu-AMXMwD7-xFdi8kdobDMJp9yRAl96U7yLl~0t9zHeqqYmNeZnDSkTmAcSC2PT45ZJDXBobKi1~a77zuqfPwnzEatYfW3GL1JQAEkAmiwNJoG7ThTZ3zT7W9ekVJpHi9mivpTbaI~rALLfuAg~Mvr60nntZHjqhEZuiU4dTXrmc5nykl~UaMnBdwHL4jKmoN5CotqHyLYZfp74fdD-Oq4SkhuBhU8wkBIM3lz3Ul1o6-s0lNUMdYJq1CyxnyP7jeekdfAlSx4P4sU4M0dPaYvPdOFWPWwBuEh0pCs5Mj01B2xeEBhpV~xSLn6ru5Vq98TrmaR33KHxd76OYYFsWwzVbBuMVSd800XpBghGFucGw01YHYsPh3Afb01sXbf8Nb1bkxCy~DsrmoH4Ww3bpx66JhRTWvg5al3oWlCX51CnJUqaaK~dPL-pBvAyLKIA5aYvl8ca66jtA7AFDxsOb2texBBQAEAAcAAA==",
"te9Ky7XvVcLLr5vQqvfmOasg915P3-ddP3iDqpMMk7v5ufFKobLAX~1k-E4WVsJVlkYvkHVOjxix-uT1IdewKmLd81s5wZtz0GQ3ZC6p0C3S2cOxz7kQqf7QYSR0BrhZC~2du3-GdQO9TqNmsnHrah5lOZf0LN2JFEFPqg8ZB5JNm3JjJeSqePBRk3zAUogNaNK3voB1MVI0ZROKopXAJM4XMERNqI8tIH4ngGtV41SEJJ5pUFrrTx~EiUPqmSEaEA6UDYZiqd23ZlewZ31ExXQj97zvkuhKCoS9A9MNkzZejJhP-TEXWF8~KHur9f51H--EhwZ42Aj69-3GuNjsMdTwglG5zyIfhd2OspxJrXzCPqIV2sXn80IbPgwxHu0CKIJ6X43B5vTyVu87QDI13MIRNGWNZY5KmM5pilGP7jPkOs4xQDo4NHzpuJR5igjWgJIBPU6fI9Pzq~BMzjLiZOMp8xNWey1zKC96L0eX4of1MG~oUvq0qmIHGNa1TlUwBQAEAAEAAA==",
"(*&(*&(*&(*",
"9rhEy4dT9fMlcSOhDzfWRxCV2aen4Zp4eSthOf5f9gVKMa4PtQJ-wEzm2KEYeDXkbM6wEDvMQ6ou4LIniSE6bSAwy7fokiXk5oabels-sJmftnQWRbZyyXEAsLc3gpJJvp9km7kDyZ0z0YGL5tf3S~OaWdptB5tSBOAOjm6ramcYZMWhyUqm~xSL1JyXUqWEHRYwhoDJNL6-L516VpDYVigMBpIwskjeFGcqK8BqWAe0bRwxIiFTPN6Ck8SDzQvS1l1Yj-zfzg3X3gOknzwR8nrHUkjsWtEB6nhbOr8AR21C9Hs0a7MUJvSe2NOuBoNTrtxT76jDruI78JcG5r~WKl6M12yM-SqeBNE9hQn2QCHeHAKju7FdRCbqaZ99IwyjfwvZbkiYYQVN1xlUuGaXrj98XDzK7GORYdH-PrVGfEbMXQ40KLHUWHz8w4tQXAOQrCHEichod0RIzuuxo3XltCWKrf1xGZhkAo9bk2qXi6digCijvYNaKmQdXZYWW~RtAAA",
"6IZTYacjlXjSAxu-uXEO5oGsj-f4tfePHEvGjs5pu-AMXMwD7-xFdi8kdobDMJp9yRAl96U7yLl~0t9zHeqqYmNeZnDSkTmAcSC2PT45ZJDXBobKi1~a77zuqfPwnzEatYfW3GL1JQAEkAmiwNJoG7ThTZ3zT7W9ekVJpHi9mivpTbaI~rALLfuAg~Mvr60nntZHjqhEZuiU4dTXrmc5nykl~UaMnBdwHL4jKmoN5CotqHyLYZfp74fdD-Oq4SkhuBhU8wkBIM3lz3Ul1o6-s0lNUMdYJq1CyxnyP7jeekdfAlSx4P4sU4M0dPaYvPdOFWPWwBuEh0pCs5Mj01B2xeEBhpV~xSLn6ru5Vq98TrmaR33KHxd76OYYFsWwzVbBuMVSd800XpBghGFucGw01YHYsPh3Afb01sXbf8Nb1bkxCy~DsrmoH4Ww3bpx66JhRTWvg5al3oWlCX51CnJUqaaK~dPL-pBvAyLKIA5aYvl8ca66jtA7AFDxsOb2texBBQAEAAcAAA===",
"!e9Ky7XvVcLLr5vQqvfmOasg915P3-ddP3iDqpMMk7v5ufFKobLAX~1k-E4WVsJVlkYvkHVOjxix-uT1IdewKmLd81s5wZtz0GQ3ZC6p0C3S2cOxz7kQqf7QYSR0BrhZC~2du3-GdQO9TqNmsnHrah5lOZf0LN2JFEFPqg8ZB5JNm3JjJeSqePBRk3zAUogNaNK3voB1MVI0ZROKopXAJM4XMERNqI8tIH4ngGtV41SEJJ5pUFrrTx~EiUPqmSEaEA6UDYZiqd23ZlewZ31ExXQj97zvkuhKCoS9A9MNkzZejJhP-TEXWF8~KHur9f51H--EhwZ42Aj69-3GuNjsMdTwglG5zyIfhd2OspxJrXzCPqIV2sXn80IbPgwxHu0CKIJ6X43B5vTyVu87QDI13MIRNGWNZY5KmM5pilGP7jPkOs4xQDo4NHzpuJR5igjWgJIBPU6fI9Pzq~BMzjLiZOMp8xNWey1zKC96L0eX4of1MG~oUvq0qmIHGNa1TlUwBQAEAAEAAA==",
"x"
};
for (String s : tests) {
test(s);
}
}
public static void test(String s) {
System.out.println(s + " valid host? " + isValidKey(s) + " valid dest? " + isValidDest(s));
}
****/
}

View File

@ -0,0 +1,42 @@
package net.i2p.addressbook;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import net.i2p.CoreVersion;
/**
* Simple command line access to various utilities.
* Not a public API. Subject to change.
* Apps and plugins should use specific classes.
*
* @since 0.9.55
*/
public class CommandLine extends net.i2p.util.CommandLine {
protected static final List<String> ACLASSES = Arrays.asList(new String[] {
"net.i2p.addressbook.HostTxtParser",
"net.i2p.router.naming.BlockfileNamingService",
"net.metanotion.io.block.BlockFile",
});
protected CommandLine() {}
public static void main(String args[]) {
List<String> classes = new ArrayList<String>(ACLASSES.size() + CLASSES.size());
classes.addAll(ACLASSES);
classes.addAll(CLASSES);
if (args.length > 0) {
exec(args, classes);
}
usage(classes);
System.exit(1);
}
private static void usage(List<String> classes) {
System.err.println("I2P Address book version " + CoreVersion.VERSION + '\n' +
"USAGE: java -jar /path/to/addressbook.jar command [args]");
printCommands(classes);
}
}

View File

@ -1,146 +0,0 @@
/*
* Copyright (c) 2004 Ragnarok
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package net.i2p.addressbook;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
import java.util.NoSuchElementException;
/**
* A class to iterate through a hosts.txt or config file without
* reading the whole thing into memory.
* Keys are always converted to lower case.
*
* Callers should iterate all the way through or call close()
* to ensure the underlying stream is closed.
*
* @since 0.8.7
*/
class ConfigIterator implements Iterator<Map.Entry<String, String>> {
private BufferedReader input;
private ConfigEntry next;
/**
* A dummy iterator in which hasNext() is always false.
*/
public ConfigIterator() {}
/**
* An iterator over the key/value pairs in the file.
*/
public ConfigIterator(File file) {
try {
FileInputStream fileStream = new FileInputStream(file);
input = new BufferedReader(new InputStreamReader(fileStream));
} catch (IOException ioe) {}
}
public boolean hasNext() {
if (input == null)
return false;
if (next != null)
return true;
try {
String inputLine = input.readLine();
while (inputLine != null) {
inputLine = ConfigParser.stripComments(inputLine);
String[] splitLine = inputLine.split("=");
if (splitLine.length == 2) {
next = new ConfigEntry(splitLine[0].trim().toLowerCase(Locale.US), splitLine[1].trim());
return true;
}
inputLine = input.readLine();
}
} catch (IOException ioe) {}
try { input.close(); } catch (IOException ioe) {}
input = null;
next = null;
return false;
}
public Map.Entry<String, String> next() {
if (!hasNext())
throw new NoSuchElementException();
Map.Entry<String, String> rv = next;
next = null;
return rv;
}
public void remove() {
throw new UnsupportedOperationException();
}
public void close() {
if (input != null) {
try { input.close(); } catch (IOException ioe) {}
}
}
@Override
protected void finalize() {
close();
}
/**
* The object returned by the iterator.
*/
private static class ConfigEntry implements Map.Entry<String, String> {
private final String key;
private final String value;
public ConfigEntry(String k, String v) {
key = k;
value = v;
}
public String getKey() {
return key;
}
public String getValue() {
return value;
}
public String setValue(String v) {
throw new UnsupportedOperationException();
}
public int hashCode() {
return key.hashCode() ^ value.hashCode();
}
public boolean equals(Object o) {
if (!(o instanceof Map.Entry))
return false;
@SuppressWarnings("unchecked")
Map.Entry<Object, Object> e = (Map.Entry<Object, Object>) o;
return key.equals(e.getKey()) && value.equals(e.getValue());
}
}
}

View File

@ -29,12 +29,13 @@ import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import net.i2p.data.DataHelper;
import net.i2p.util.SecureFile;
import net.i2p.util.SecureFileOutputStream;
import net.i2p.util.SystemVersion;
@ -43,8 +44,7 @@ import net.i2p.util.SystemVersion;
* Utility class providing methods to parse and write files in config file
* format, and subscription file format.
*
* TODO: Change file encoding from default to UTF-8?
* Or switch to the DataHelper loadProps/storeProps methods?
* TODO: switch to the DataHelper loadProps/storeProps methods?
*
* @author Ragnarok
*/
@ -87,20 +87,23 @@ class ConfigParser {
* if the BufferedReader cannot be read.
*
*/
public static Map<String, String> parse(BufferedReader input) throws IOException {
Map<String, String> result = new HashMap<String, String>();
String inputLine;
inputLine = input.readLine();
while (inputLine != null) {
inputLine = stripComments(inputLine);
String[] splitLine = inputLine.split("=");
if (splitLine.length == 2) {
result.put(splitLine[0].trim().toLowerCase(Locale.US), splitLine[1].trim());
private static Map<String, String> parse(BufferedReader input) throws IOException {
try {
Map<String, String> result = new HashMap<String, String>();
String inputLine;
while ((inputLine = input.readLine()) != null) {
inputLine = stripComments(inputLine);
if (inputLine.length() == 0)
continue;
String[] splitLine = DataHelper.split(inputLine, "=", 2);
if (splitLine.length == 2) {
result.put(splitLine[0].trim().toLowerCase(Locale.US), splitLine[1].trim());
}
}
inputLine = input.readLine();
return result;
} finally {
try { input.close(); } catch (IOException ioe) {}
}
input.close();
return result;
}
/**
@ -113,15 +116,21 @@ class ConfigParser {
* @throws IOException
* if file cannot be read.
*/
public static Map<String, String> parse(File file) throws IOException {
FileInputStream fileStream = new FileInputStream(file);
BufferedReader input = new BufferedReader(new InputStreamReader(
fileStream));
Map<String, String> rv = parse(input);
public static Map<String, String> parse(File file) throws IOException {
FileInputStream fileStream = null;
try {
fileStream.close();
} catch (IOException ioe) {}
return rv;
fileStream = new FileInputStream(file);
BufferedReader input = new BufferedReader(new InputStreamReader(
fileStream, "UTF-8"));
Map<String, String> rv = parse(input);
return rv;
} finally {
if (fileStream != null) {
try {
fileStream.close();
} catch (IOException ioe) {}
}
}
}
/**
@ -134,11 +143,13 @@ class ConfigParser {
* @throws IOException
* if file cannot be read.
*/
public static Map<String, String> parse(String string) throws IOException {
/****
public static Map<String, String> parse(String string) throws IOException {
StringReader stringReader = new StringReader(string);
BufferedReader input = new BufferedReader(stringReader);
return parse(input);
}
****/
/**
* Return a Map using the contents of the File file. If file cannot be read,
@ -151,10 +162,14 @@ class ConfigParser {
* @return A Map containing the key, value pairs from file, or if file
* cannot be read, map.
*/
public static Map<String, String> parse(File file, Map<String, String> map) {
Map<String, String> result;
public static Map<String, String> parse(File file, Map<String, String> map) {
Map<String, String> result;
try {
result = parse(file);
// migrate
String local = result.remove("master_addressbook");
if (local != null)
result.put("local_addressbook", local);
for (Map.Entry<String, String> entry : map.entrySet()) {
if (!result.containsKey(entry.getKey()))
result.put(entry.getKey(), entry.getValue());
@ -178,19 +193,21 @@ class ConfigParser {
* @throws IOException
* if input cannot be read.
*/
public static List<String> parseSubscriptions(BufferedReader input)
private static List<String> parseSubscriptions(BufferedReader input)
throws IOException {
List<String> result = new LinkedList<String>();
String inputLine = input.readLine();
while (inputLine != null) {
inputLine = stripComments(inputLine).trim();
if (inputLine.length() > 0) {
result.add(inputLine);
try {
List<String> result = new ArrayList<String>(4);
String inputLine;
while ((inputLine = input.readLine()) != null) {
inputLine = stripComments(inputLine).trim();
if (inputLine.length() > 0) {
result.add(inputLine);
}
}
inputLine = input.readLine();
return result;
} finally {
try { input.close(); } catch (IOException ioe) {}
}
input.close();
return result;
}
/**
@ -202,15 +219,21 @@ class ConfigParser {
* @throws IOException
* if file cannot be read.
*/
public static List<String> parseSubscriptions(File file) throws IOException {
FileInputStream fileStream = new FileInputStream(file);
BufferedReader input = new BufferedReader(new InputStreamReader(
fileStream));
List<String> rv = parseSubscriptions(input);
private static List<String> parseSubscriptions(File file) throws IOException {
FileInputStream fileStream = null;
try {
fileStream.close();
} catch (IOException ioe) {}
return rv;
fileStream = new FileInputStream(file);
BufferedReader input = new BufferedReader(new InputStreamReader(
fileStream, "UTF-8"));
List<String> rv = parseSubscriptions(input);
return rv;
} finally {
if (fileStream != null) {
try {
fileStream.close();
} catch (IOException ioe) {}
}
}
}
/**
@ -222,11 +245,13 @@ class ConfigParser {
* @throws IOException
* if string cannot be read.
*/
/****
public static List<String> parseSubscriptions(String string) throws IOException {
StringReader stringReader = new StringReader(string);
BufferedReader input = new BufferedReader(stringReader);
return parseSubscriptions(input);
}
****/
/**
* Return a List using the contents of the File file. If file cannot be
@ -276,12 +301,15 @@ class ConfigParser {
* @throws IOException
* if the BufferedWriter cannot be written to.
*/
public static void write(Map<String, String> map, BufferedWriter output) throws IOException {
for (Map.Entry<String, String> entry : map.entrySet()) {
output.write(entry.getKey() + '=' + entry.getValue());
output.newLine();
private static void write(Map<String, String> map, BufferedWriter output) throws IOException {
try {
for (Map.Entry<String, String> entry : map.entrySet()) {
output.write(entry.getKey() + '=' + entry.getValue());
output.newLine();
}
} finally {
try { output.close(); } catch (IOException ioe) {}
}
output.close();
}
/**
@ -298,7 +326,7 @@ class ConfigParser {
* @throws IOException
* if file cannot be written to.
*/
public static void write(Map<String, String> map, File file) throws IOException {
public static void write(Map<String, String> map, File file) throws IOException {
boolean success = false;
if (!isWindows) {
File tmp = SecureFile.createTempFile("temp-", ".tmp", file.getAbsoluteFile().getParentFile());
@ -326,13 +354,16 @@ class ConfigParser {
* @throws IOException
* if output cannot be written to.
*/
public static void writeSubscriptions(List<String> list, BufferedWriter output)
private static void writeSubscriptions(List<String> list, BufferedWriter output)
throws IOException {
for (String s : list) {
output.write(s);
output.newLine();
try {
for (String s : list) {
output.write(s);
output.newLine();
}
} finally {
try { output.close(); } catch (IOException ioe) {}
}
output.close();
}
/**
@ -346,7 +377,7 @@ class ConfigParser {
* @throws IOException
* if output cannot be written to.
*/
public static void writeSubscriptions(List<String> list, File file)
private static void writeSubscriptions(List<String> list, File file)
throws IOException {
writeSubscriptions(list, new BufferedWriter(
new OutputStreamWriter(new SecureFileOutputStream(file), "UTF-8")));

View File

@ -23,43 +23,55 @@ package net.i2p.addressbook;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import net.i2p.I2PAppContext;
import net.i2p.app.ClientAppManager;
import net.i2p.client.naming.HostTxtEntry;
import net.i2p.client.naming.NamingService;
import net.i2p.client.naming.SingleFileNamingService;
import net.i2p.data.DataFormatException;
import net.i2p.data.Destination;
import net.i2p.util.OrderedProperties;
import net.i2p.util.PortMapper;
import net.i2p.util.SecureDirectory;
import net.i2p.util.SystemVersion;
import net.i2p.util.Translate;
/**
* Main class of addressbook. Performs updates, and runs the main loop.
* As of 0.9.30, package private, run with DaemonThread.
*
* @author Ragnarok
*
*/
public class Daemon {
class Daemon {
public static final String VERSION = "2.0.4";
private static final Daemon _instance = new Daemon();
private volatile boolean _running;
private static final boolean DEBUG = false;
// If you change this, change in SusiDNS SubscriptionBean also
private static final String DEFAULT_SUB = "http://i2p-projekt.i2p/hosts.txt";
/** @since 0.9.12 */
static final String OLD_DEFAULT_SUB = "http://www.i2p2.i2p/hosts.txt";
/** Any properties we receive from the subscription, we store to the
* addressbook with this prefix, so it knows it's part of the signature.
* This is also chosen so that it can't be spoofed.
*/
private static final String RCVD_PROP_PREFIX = "=";
private static final boolean MUST_VALIDATE = false;
/**
* Update the router and published address books using remote data from the
* subscribed address books listed in subscriptions.
*
* @param master
* The master AddressBook. This address book is never
* @param local
* The local AddressBook. This address book is never
* overwritten, so it is safe for the user to write to.
* It is only merged to the published addressbook.
* May be null.
@ -68,7 +80,7 @@ public class Daemon {
* client applications.
* @param published
* The published AddressBook. This address book is published on
* the user's eepsite so that others may subscribe to it.
* the user's I2P Site so that others may subscribe to it.
* May be null.
* If non-null, overwrite with the new addressbook.
* @param subscriptions
@ -78,17 +90,16 @@ public class Daemon {
* The log to write changes and conflicts to.
* May be null.
*/
public static void update(AddressBook master, AddressBook router,
public static void update(AddressBook local, AddressBook router,
File published, SubscriptionList subscriptions, Log log) {
Iterator<AddressBook> iter = subscriptions.iterator();
while (iter.hasNext()) {
for (AddressBook book : subscriptions) {
// yes, the EepGet fetch() is done in next()
router.merge(iter.next(), false, log);
router.merge(book, false, log);
}
router.write();
if (published != null) {
if (master != null)
router.merge(master, true, null);
if (local != null)
router.merge(local, true, null);
router.write(published);
}
subscriptions.write();
@ -97,13 +108,13 @@ public class Daemon {
/**
* Update the router and published address books using remote data from the
* subscribed address books listed in subscriptions.
* Merging of the "master" addressbook is NOT supported.
* Merging of the "local" addressbook is NOT supported.
*
* @param router
* The NamingService to update, generally the root NamingService from the context.
* @param published
* The published AddressBook. This address book is published on
* the user's eepsite so that others may subscribe to it.
* the user's I2P Site so that others may subscribe to it.
* May be null.
* If non-null, overwrite with the new addressbook.
* @param subscriptions
@ -122,106 +133,607 @@ public class Daemon {
// This also has the advantage of not flushing the NamingService's LRU cache.
String nsClass = router.getClass().getSimpleName();
boolean isTextFile = nsClass.equals("HostsTxtNamingService") || nsClass.equals("SingleFileNamingService");
Set<String> knownNames = null;
Set<String> knownNames;
if (isTextFile) {
// load the hostname set
Properties opts = new Properties();
opts.setProperty("file", "hosts.txt");
knownNames = router.getNames(opts);
} else {
knownNames = null;
}
NamingService publishedNS;
if (published != null) {
publishedNS = new SingleFileNamingService(I2PAppContext.getGlobalContext(), published.getAbsolutePath());
} else {
publishedNS = null;
}
NamingService publishedNS = null;
Iterator<AddressBook> iter = subscriptions.iterator();
while (iter.hasNext()) {
// yes, the EepGet fetch() is done in next()
long start = System.currentTimeMillis();
AddressBook sub = iter.next();
long end = System.currentTimeMillis();
AddressBook addressbook = iter.next();
// SubscriptionIterator puts in a dummy AddressBook with no location if no fetch is done
if (DEBUG && log != null && sub.getLocation() != null)
log.append("Fetch of " + sub.getLocation() + " took " + (end - start));
start = end;
if (DEBUG && log != null && addressbook.getLocation() != null) {
long end = System.currentTimeMillis();
log.append("Fetch of " + addressbook.getLocation() + " took " + (end - start));
}
Iterator<Map.Entry<String, HostTxtEntry>> iter2 = addressbook.iterator();
try {
update(router, knownNames, publishedNS, addressbook, iter2, log);
} finally {
if (iter2 instanceof HostTxtIterator)
((HostTxtIterator) iter2).close();
addressbook.delete();
}
} // subscriptions
subscriptions.write();
}
/**
* @param knownNames only non-null if router book is a text file
* @param publishedNS only non-null if we have a published address book
* @since 0.9.33 split out from above
*/
private static void update(NamingService router, Set<String> knownNames,
NamingService publishedNS, AddressBook addressbook,
Iterator<Map.Entry<String, HostTxtEntry>> iter, Log log) {
long start = DEBUG ? System.currentTimeMillis() : 0;
int old = 0, nnew = 0, invalid = 0, conflict = 0, total = 0;
for (Iterator<Map.Entry<String, String>> eIter = sub.iterator(); eIter.hasNext(); ) {
Map.Entry<String, String> entry = eIter.next();
int deleted = 0;
String newname = null;
while(iter.hasNext()) {
Map.Entry<String, HostTxtEntry> entry = iter.next();
total++;
// may be null for 'remove' entries
String key = entry.getKey();
boolean isKnown;
Destination oldDest = null;
if (isTextFile) {
if (knownNames == null) {
// load the hostname set
Properties opts = new Properties();
opts.setProperty("file", "hosts.txt");
knownNames = router.getNames(opts);
}
isKnown = knownNames.contains(key);
// NOT set for text file NamingService
Destination oldDest;
if (knownNames != null) {
oldDest = null;
isKnown = key != null ? knownNames.contains(key) : false;
} else {
oldDest = router.lookup(key);
oldDest = key != null ? router.lookup(key) : null;
isKnown = oldDest != null;
}
try {
if (!isKnown) {
if (AddressBook.isValidKey(key)) {
Destination dest = new Destination(entry.getValue());
Properties props = new Properties();
props.setProperty("s", sub.getLocation());
HostTxtEntry he = entry.getValue();
Properties hprops = he.getProps();
boolean mustValidate = MUST_VALIDATE || hprops != null;
String action = hprops != null ? hprops.getProperty(HostTxtEntry.PROP_ACTION) : null;
if (key == null && !he.hasValidRemoveSig()) {
if (log != null) {
log.append("Bad signature of action " + action + " for key " +
hprops.getProperty(HostTxtEntry.PROP_NAME) +
". From: " + addressbook.getLocation());
}
invalid++;
} else if (key != null && mustValidate && !he.hasValidSig()) {
if (log != null) {
log.append("Bad signature of action " + action + " for key " + key +
". From: " + addressbook.getLocation());
}
invalid++;
} else if (action != null || !isKnown) {
if (key != null && AddressBook.isValidKey(key)) {
Destination dest = new Destination(he.getDest());
Properties props = new OrderedProperties();
props.setProperty("s", addressbook.getLocation());
boolean allowExistingKeyInPublished = false;
if (mustValidate) {
// sig checked above
props.setProperty("v", "true");
}
if (hprops != null) {
// merge in all the received properties
for (Map.Entry<Object, Object> e : hprops.entrySet()) {
// Add prefix to indicate received property
props.setProperty(RCVD_PROP_PREFIX + e.getKey(), (String) e.getValue());
}
}
if (action != null) {
// Process commands. hprops is non-null.
// Must handle isKnown in each case.
if (action.equals(HostTxtEntry.ACTION_ADDDEST)) {
// Add an alternate destination (new crypto) for existing hostname
// Requires new NamingService support if the key exists
String polddest = hprops.getProperty(HostTxtEntry.PROP_OLDDEST);
if (polddest != null) {
Destination pod = new Destination(polddest);
List<Destination> pod2 = router.lookupAll(key);
if (pod2 == null) {
// we didn't know it before, so we'll add it
// check inner sig anyway
if (!he.hasValidInnerSig()) {
logInner(log, action, key, addressbook);
invalid++;
continue;
}
} else if (pod2.contains(dest)) {
// we knew it before, with the same dest
old++;
continue;
} else if (pod2.contains(pod)) {
// checks out, so verify the inner sig
if (!he.hasValidInnerSig()) {
logInner(log, action, key, addressbook);
invalid++;
continue;
}
// TODO Requires NamingService support
// if (isTextFile), do we replace or not? check sigType.isAvailable()
boolean success = router.addDestination(key, dest, props);
if (log != null) {
if (success)
log.append("Additional address for " + key +
" added to address book. From: " + addressbook.getLocation());
else
log.append("Failed to add additional address for " + key +
" From: " + addressbook.getLocation());
}
// now update the published addressbook
// ditto
if (publishedNS != null) {
// FIXME this fails, no support in SFNS
success = publishedNS.addDestination(key, dest, props);
if (log != null && !success)
log.append("Add to published address book " + publishedNS.getName() + " failed for " + key);
}
if (nnew == 0)
newname = key;
nnew++;
continue;
} else {
// mismatch, disallow
logMismatch(log, action, key, pod2, he.getDest(), addressbook);
invalid++;
continue;
}
} else {
logMissing(log, action, key, addressbook);
invalid++;
continue;
}
} else if (action.equals(HostTxtEntry.ACTION_ADDNAME)) {
// Add an alias for an existing hostname, same dest
if (isKnown) {
// could be same or different dest
old++;
continue;
}
String poldname = hprops.getProperty(HostTxtEntry.PROP_OLDNAME);
if (poldname != null) {
List<Destination> pod = router.lookupAll(poldname);
if (pod == null) {
// we didn't have the old one, so we'll add the new one
} else if (pod.contains(dest)) {
// checks out, so we'll add the new one
} else {
// mismatch, disallow
logMismatch(log, action, key, pod, he.getDest(), addressbook);
invalid++;
continue;
}
} else {
logMissing(log, action, key, addressbook);
invalid++;
continue;
}
} else if (action.equals(HostTxtEntry.ACTION_ADDSUBDOMAIN)) {
// add a subdomain with verification
if (isKnown) {
old++;
continue;
}
String polddest = hprops.getProperty(HostTxtEntry.PROP_OLDDEST);
String poldname = hprops.getProperty(HostTxtEntry.PROP_OLDNAME);
if (polddest != null && poldname != null) {
// check for valid subdomain
if (!AddressBook.isValidKey(poldname) ||
key.indexOf('.' + poldname) <= 0) {
if (log != null)
log.append("Action: " + action + " failed because" +
" old name " + poldname +
" is invalid" +
". From: " + addressbook.getLocation());
invalid++;
continue;
}
Destination pod = new Destination(polddest);
List<Destination> pod2 = router.lookupAll(poldname);
if (pod2 == null) {
// we didn't have the old name
// check inner sig anyway
if (!he.hasValidInnerSig()) {
logInner(log, action, key, addressbook);
invalid++;
continue;
}
} else if (pod2.contains(pod)) {
// checks out, so verify the inner sig
if (!he.hasValidInnerSig()) {
logInner(log, action, key, addressbook);
invalid++;
continue;
}
} else {
// mismatch, disallow
logMismatch(log, action, key, pod2, polddest, addressbook);
invalid++;
continue;
}
} else {
logMissing(log, action, key, addressbook);
invalid++;
continue;
}
} else if (action.equals(HostTxtEntry.ACTION_CHANGEDEST)) {
// change destination on an existing entry
// This removes all previous destinations under that hostname,
// is this what we want?
String polddest = hprops.getProperty(HostTxtEntry.PROP_OLDDEST);
if (polddest != null) {
Destination pod = new Destination(polddest);
List<Destination> pod2 = router.lookupAll(key);
if (pod2 == null) {
// we didn't have the old name
// check inner sig anyway
if (!he.hasValidInnerSig()) {
logInner(log, action, key, addressbook);
invalid++;
continue;
}
} else if (pod2.contains(dest)) {
// we already have the new dest
old++;
continue;
} else if (pod2.contains(pod)) {
// checks out, so verify the inner sig
if (!he.hasValidInnerSig()) {
logInner(log, action, key, addressbook);
invalid++;
continue;
}
if (log != null) {
if (pod2.size() == 1)
log.append("Changing destination for " + key +
". From: " + addressbook.getLocation());
else
log.append("Replacing " + pod2.size() + " destinations for " + key +
". From: " + addressbook.getLocation());
}
allowExistingKeyInPublished = true;
props.setProperty("m", Long.toString(I2PAppContext.getGlobalContext().clock().now()));
} else {
// mismatch, disallow
logMismatch(log, action, key, pod2, polddest, addressbook);
invalid++;
continue;
}
} else {
logMissing(log, action, key, addressbook);
invalid++;
continue;
}
} else if (action.equals(HostTxtEntry.ACTION_CHANGENAME)) {
// Delete old name, replace with new
// This removes all previous destinations under that hostname,
// is this what we want?
if (isKnown) {
old++;
continue;
}
String poldname = hprops.getProperty(HostTxtEntry.PROP_OLDNAME);
if (poldname != null) {
List<Destination> pod = router.lookupAll(poldname);
if (pod == null) {
// we didn't have the old name
} else if (pod.contains(dest)) {
// checks out, so we'll delete it
if (knownNames != null)
knownNames.remove(poldname);
boolean success = router.remove(poldname, dest);
if (success)
deleted++;
if (log != null) {
if (success)
log.append("Removed: " + poldname +
" to be replaced with " + key +
". From: " + addressbook.getLocation());
else
log.append("Remove failed for: " + poldname +
" to be replaced with " + key +
". From: " + addressbook.getLocation());
}
// now update the published addressbook
if (publishedNS != null) {
success = publishedNS.remove(poldname, dest);
if (log != null && !success)
log.append("Remove from published address book " + publishedNS.getName() + " failed for " + poldname);
}
} else {
// mismatch, disallow
logMismatch(log, action, key, pod, he.getDest(), addressbook);
continue;
}
} else {
logMissing(log, action, key, addressbook);
invalid++;
continue;
}
} else if (action.equals(HostTxtEntry.ACTION_REMOVE) ||
action.equals(HostTxtEntry.ACTION_REMOVEALL)) {
// w/o name=dest handled below
if (log != null)
log.append("Action: " + action + " with name=dest invalid" +
". From: " + addressbook.getLocation());
invalid++;
continue;
} else if (action.equals(HostTxtEntry.ACTION_UPDATE)) {
if (isKnown) {
allowExistingKeyInPublished = true;
props.setProperty("m", Long.toString(I2PAppContext.getGlobalContext().clock().now()));
}
} else {
if (log != null)
log.append("Action: " + action + " unrecognized" +
". From: " + addressbook.getLocation());
invalid++;
continue;
}
} // action != null
boolean success = router.put(key, dest, props);
if (log != null) {
if (success)
log.append("New address " + key +
" added to address book. From: " + sub.getLocation());
" added to address book. From: " + addressbook.getLocation());
else
log.append("Save to naming service " + router + " failed for new key " + key);
}
// now update the published addressbook
if (published != null) {
if (publishedNS == null)
publishedNS = new SingleFileNamingService(I2PAppContext.getGlobalContext(), published.getAbsolutePath());
success = publishedNS.putIfAbsent(key, dest);
if (publishedNS != null) {
if (allowExistingKeyInPublished)
success = publishedNS.put(key, dest, props);
else
success = publishedNS.putIfAbsent(key, dest, props);
if (log != null && !success) {
try {
log.append("Save to published address book " + published.getCanonicalPath() + " failed for new key " + key);
} catch (IOException ioe) {}
log.append("Save to published address book " + publishedNS.getName() + " failed for new key " + key);
}
}
if (isTextFile)
if (knownNames != null) {
// keep track for later dup check
knownNames.add(key);
}
if (nnew == 0)
newname = key;
nnew++;
} else if (key == null) {
// 'remove' actions
// isKnown is false
if (action != null) {
// Process commands. hprops is non-null.
if (action.equals(HostTxtEntry.ACTION_REMOVE)) {
// delete this entry
String polddest = hprops.getProperty(HostTxtEntry.PROP_DEST);
String poldname = hprops.getProperty(HostTxtEntry.PROP_NAME);
if (polddest != null && poldname != null) {
Destination pod = new Destination(polddest);
List<Destination> pod2 = router.lookupAll(poldname);
if (pod2 != null && pod2.contains(pod)) {
if (knownNames != null && pod2.size() == 1)
knownNames.remove(poldname);
boolean success = router.remove(poldname, pod);
if (success)
deleted++;
if (log != null) {
if (success)
log.append("Removed: " + poldname +
" as requested" +
". From: " + addressbook.getLocation());
else
log.append("Remove failed for: " + poldname +
" as requested" +
". From: " + addressbook.getLocation());
}
// now update the published addressbook
if (publishedNS != null) {
success = publishedNS.remove(poldname, pod);
if (log != null && !success)
log.append("Remove from published address book " + publishedNS.getName() + " failed for " + poldname);
}
} else if (pod2 != null) {
// mismatch, disallow
logMismatch(log, action, key, pod2, polddest, addressbook);
invalid++;
} else {
old++;
}
} else {
logMissing(log, action, "delete", addressbook);
invalid++;
}
} else if (action.equals(HostTxtEntry.ACTION_REMOVEALL)) {
// delete all entries with this destination
String polddest = hprops.getProperty(HostTxtEntry.PROP_DEST);
// oldname is optional, but nice because not all books support reverse lookup
if (polddest != null) {
Destination pod = new Destination(polddest);
String poldname = hprops.getProperty(HostTxtEntry.PROP_NAME);
if (poldname != null) {
List<Destination> pod2 = router.lookupAll(poldname);
if (pod2 != null && pod2.contains(pod)) {
if (knownNames != null)
knownNames.remove(poldname);
boolean success = router.remove(poldname, pod);
if (success)
deleted++;
if (log != null) {
if (success)
log.append("Removed: " + poldname +
" as requested" +
". From: " + addressbook.getLocation());
else
log.append("Remove failed for: " + poldname +
" as requested" +
". From: " + addressbook.getLocation());
}
// now update the published addressbook
if (publishedNS != null) {
success = publishedNS.remove(poldname, pod);
if (log != null && !success)
log.append("Remove from published address book " + publishedNS.getName() + " failed for " + poldname);
}
} else if (pod2 != null) {
// mismatch, disallow
logMismatch(log, action, key, pod2, polddest, addressbook);
invalid++;
} else {
old++;
}
}
// reverse lookup, delete all
List<String> revs = router.reverseLookupAll(pod);
if (revs != null) {
for (String rev : revs) {
if (knownNames != null)
knownNames.remove(rev);
boolean success = router.remove(rev, pod);
if (success)
deleted++;
if (log != null) {
if (success)
log.append("Removed: " + rev +
" as requested" +
". From: " + addressbook.getLocation());
else
log.append("Remove failed for: " + rev +
" as requested" +
". From: " + addressbook.getLocation());
}
// now update the published addressbook
if (publishedNS != null) {
success = publishedNS.remove(rev, pod);
if (log != null && !success)
log.append("Remove from published address book " + publishedNS.getName() + " failed for " + rev);
}
}
}
} else {
logMissing(log, action, "delete", addressbook);
invalid++;
}
} else {
if (log != null)
log.append("Action: " + action + " w/o name=dest unrecognized" +
". From: " + addressbook.getLocation());
invalid++;
}
continue;
} else {
if (log != null)
log.append("No action in command line" +
". From: " + addressbook.getLocation());
invalid++;
continue;
}
} else if (log != null) {
log.append("Bad hostname " + key + " from "
+ sub.getLocation());
log.append("Bad hostname " + key + ". From: "
+ addressbook.getLocation());
invalid++;
}
/****
} else if (false && DEBUG && log != null) {
// lookup the conflict if we haven't yet (O(n**2) for text file)
if (isTextFile)
oldDest = router.lookup(key);
if (oldDest != null && !oldDest.toBase64().equals(entry.getValue())) {
log.append("Conflict for " + key + " from "
+ sub.getLocation()
log.append("Conflict for " + key + ". From: "
+ addressbook.getLocation()
+ ". Destination in remote address book is "
+ entry.getValue());
conflict++;
} else {
old++;
}
****/
} else {
old++;
}
} catch (DataFormatException dfe) {
if (log != null)
log.append("Invalid b64 for " + key + " From: " + sub.getLocation());
log.append("Invalid b64 for " + key + " From: " + addressbook.getLocation());
invalid++;
}
total++;
}
} // entries
if (DEBUG && log != null && total > 0) {
log.append("Merge of " + sub.getLocation() + " into " + router +
log.append("Merge of " + addressbook.getLocation() + " into " + router +
" took " + (System.currentTimeMillis() - start) + " ms with " +
total + " total, " +
nnew + " new, " +
old + " old, " +
deleted + " deleted, " +
invalid + " invalid, " +
conflict + " conflicts");
}
sub.delete();
if (nnew > 0) {
ClientAppManager cmgr = I2PAppContext.getGlobalContext().clientAppManager();
if (cmgr != null) {
int nc = cmgr.getBubbleCount(PortMapper.SVC_SUSIDNS) + nnew;
String msg = ngettext("{0} new host", "{0} new hosts", nc);
if (nc == 1)
msg += ": " + newname;
cmgr.setBubble(PortMapper.SVC_SUSIDNS, nc, msg);
}
}
}
/**
* translate (ngettext) from the routerconsole bundle
* @since 0.9.66
*/
private static String ngettext(String s, String p, int n) {
return Translate.getString(n, s, p, I2PAppContext.getGlobalContext(), "net.i2p.router.web.messages");
}
/** @since 0.9.26 */
private static void logInner(Log log, String action, String name, AddressBook addressbook) {
if (log != null) {
log.append("Action: " + action + " failed because" +
" inner signature for key " + name +
" failed" +
". From: " + addressbook.getLocation());
}
}
/** @since 0.9.26 */
private static void logMissing(Log log, String action, String name, AddressBook addressbook) {
if (log != null) {
log.append("Action: " + action + " for " + name +
" failed, missing required parameters" +
". From: " + addressbook.getLocation());
}
}
/** @since 0.9.26 */
private static void logMismatch(Log log, String action, String name, List<Destination> dests,
String olddest, AddressBook addressbook) {
if (log != null) {
StringBuilder buf = new StringBuilder(16);
final int sz = dests.size();
for (int i = 0; i < sz; i++) {
buf.append(dests.get(i).toBase64(), 0, 6);
if (i != sz - 1)
buf.append(", ");
}
log.append("Action: " + action + " failed because" +
" destinations for " + name +
" (" + buf + ')' +
" do not include" +
" (" + olddest.substring(0, 6) + ')' +
". From: " + addressbook.getLocation());
}
subscriptions.write();
}
/**
@ -236,16 +748,12 @@ public class Daemon {
File published = null;
boolean should_publish = Boolean.parseBoolean(settings.get("should_publish"));
if (should_publish)
published = new File(home, settings
.get("published_addressbook"));
File subscriptionFile = new File(home, settings
.get("subscriptions"));
published = new File(home, settings.get("published_addressbook"));
File subscriptionFile = new File(home, settings.get("subscriptions"));
File logFile = new File(home, settings.get("log"));
File etagsFile = new File(home, settings.get("etags"));
File lastModifiedFile = new File(home, settings
.get("last_modified"));
File lastFetchedFile = new File(home, settings
.get("last_fetched"));
File lastModifiedFile = new File(home, settings.get("last_modified"));
File lastFetchedFile = new File(home, settings.get("last_fetched"));
long delay;
try {
delay = Long.parseLong(settings.get("update_delay"));
@ -254,13 +762,14 @@ public class Daemon {
}
delay *= 60 * 60 * 1000;
List<String> defaultSubs = new LinkedList<String>();
List<String> defaultSubs = new ArrayList<String>(4);
// defaultSubs.add("http://i2p/NF2RLVUxVulR3IqK0sGJR0dHQcGXAzwa6rEO4WAWYXOHw-DoZhKnlbf1nzHXwMEJoex5nFTyiNMqxJMWlY54cvU~UenZdkyQQeUSBZXyuSweflUXFqKN-y8xIoK2w9Ylq1k8IcrAFDsITyOzjUKoOPfVq34rKNDo7fYyis4kT5bAHy~2N1EVMs34pi2RFabATIOBk38Qhab57Umpa6yEoE~rbyR~suDRvD7gjBvBiIKFqhFueXsR2uSrPB-yzwAGofTXuklofK3DdKspciclTVzqbDjsk5UXfu2nTrC1agkhLyqlOfjhyqC~t1IXm-Vs2o7911k7KKLGjB4lmH508YJ7G9fLAUyjuB-wwwhejoWqvg7oWvqo4oIok8LG6ECR71C3dzCvIjY2QcrhoaazA9G4zcGMm6NKND-H4XY6tUWhpB~5GefB3YczOqMbHq4wi0O9MzBFrOJEOs3X4hwboKWANf7DT5PZKJZ5KorQPsYRSq0E3wSOsFCSsdVCKUGsAAAA/i2p/hosts.txt");
defaultSubs.add(DEFAULT_SUB);
SubscriptionList subscriptions = new SubscriptionList(subscriptionFile,
etagsFile, lastModifiedFile, lastFetchedFile, delay, defaultSubs, settings
.get("proxy_host"), Integer.parseInt(settings.get("proxy_port")));
etagsFile, lastModifiedFile, lastFetchedFile,
delay, defaultSubs, settings.get("proxy_host"),
Integer.parseInt(settings.get("proxy_port")));
Log log = SystemVersion.isAndroid() ? null : new Log(logFile);
// If false, add hosts via naming service; if true, write hosts.txt file directly
@ -268,17 +777,17 @@ public class Daemon {
if (Boolean.parseBoolean(settings.get("update_direct"))) {
// Direct hosts.txt access
File routerFile = new File(home, settings.get("router_addressbook"));
AddressBook master;
AddressBook local;
if (should_publish) {
File masterFile = new File(home, settings.get("master_addressbook"));
master = new AddressBook(masterFile);
File localFile = new File(home, settings.get("local_addressbook"));
local = new AddressBook(localFile);
} else {
master = null;
local = null;
}
AddressBook router = new AddressBook(routerFile);
update(master, router, published, subscriptions, log);
update(local, router, published, subscriptions, log);
} else {
// Naming service - no merging of master to router and published is supported.
// Naming service - no merging of local to router and published is supported.
update(getNamingService(settings.get("naming_service")), published, subscriptions, log);
}
}
@ -319,14 +828,35 @@ public class Daemon {
* others are ignored.
*/
public static void main(String[] args) {
_instance.run(args);
Daemon daemon = new Daemon();
if (args.length > 0 && args[0].equals("test"))
daemon.test(args);
else
daemon.run(args);
}
/** @since 0.9.26 */
public static void test(String[] args) {
Properties ctxProps = new Properties();
String PROP_FORCE = "i2p.naming.blockfile.writeInAppContext";
ctxProps.setProperty(PROP_FORCE, "true");
I2PAppContext ctx = new I2PAppContext(ctxProps);
NamingService ns = getNamingService("hosts.txt");
File published = new File("test-published.txt");
Log log = new Log(new File("test-log.txt"));
SubscriptionList subscriptions = new SubscriptionList("test-sub.txt");
update(ns, published, subscriptions, log);
ctx.logManager().flush();
}
/**
* @param args may be null
*/
public void run(String[] args) {
_running = true;
String settingsLocation = "config.txt";
File homeFile;
if (args.length > 0) {
if (args != null && args.length > 0) {
homeFile = new SecureDirectory(args[0]);
if (!homeFile.isAbsolute())
homeFile = new SecureDirectory(I2PAppContext.getGlobalContext().getRouterDir(), args[0]);
@ -337,7 +867,7 @@ public class Daemon {
Map<String, String> defaultSettings = new HashMap<String, String>();
defaultSettings.put("proxy_host", "127.0.0.1");
defaultSettings.put("proxy_port", "4444");
defaultSettings.put("master_addressbook", "../userhosts.txt");
defaultSettings.put("local_addressbook", "../userhosts.txt");
defaultSettings.put("router_addressbook", "../hosts.txt");
defaultSettings.put("published_addressbook", "../eepsite/docroot/hosts.txt");
defaultSettings.put("should_publish", "false");
@ -352,10 +882,10 @@ public class Daemon {
if (!homeFile.exists()) {
boolean created = homeFile.mkdirs();
if (created)
System.out.println("INFO: Addressbook directory " + homeFile.getName() + " created");
else
System.out.println("ERROR: Addressbook directory " + homeFile.getName() + " could not be created");
if (!created)
System.out.println("ERROR: Addressbook directory " + homeFile.getAbsolutePath() + " could not be created");
//else
// System.out.println("INFO: Addressbook directory " + homeFile.getAbsolutePath() + " created");
}
File settingsFile = new File(homeFile, settingsLocation);
@ -364,7 +894,7 @@ public class Daemon {
// wait
try {
Thread.sleep(5*60*1000 + I2PAppContext.getGlobalContext().random().nextLong(5*60*1000));
// Static method, and redundent Thread.currentThread().sleep(5*60*1000);
// Static method, and redundant Thread.currentThread().sleep(5*60*1000);
} catch (InterruptedException ie) {}
while (_running) {
@ -390,14 +920,14 @@ public class Daemon {
* Call this to get the addressbook to reread its config and
* refetch its subscriptions.
*/
public static void wakeup() {
synchronized (_instance) {
_instance.notifyAll();
public void wakeup() {
synchronized (this) {
notifyAll();
}
}
public static void stop() {
_instance._running = false;
public void stop() {
_running = false;
wakeup();
}
}

View File

@ -25,6 +25,7 @@ import java.util.Properties;
import net.i2p.I2PAppContext;
import net.i2p.client.naming.NamingServiceUpdater;
import net.i2p.util.I2PAppThread;
/**
* A thread that waits five minutes, then runs the addressbook daemon.
@ -32,9 +33,10 @@ import net.i2p.client.naming.NamingServiceUpdater;
* @author Ragnarok
*
*/
public class DaemonThread extends Thread implements NamingServiceUpdater {
public class DaemonThread extends I2PAppThread implements NamingServiceUpdater {
private String[] args;
private final String[] args;
private final Daemon daemon;
/**
* Construct a DaemonThread with the command line arguments args.
@ -43,6 +45,7 @@ public class DaemonThread extends Thread implements NamingServiceUpdater {
*/
public DaemonThread(String[] args) {
this.args = args;
daemon = new Daemon();
}
/* (non-Javadoc)
@ -55,18 +58,28 @@ public class DaemonThread extends Thread implements NamingServiceUpdater {
//} catch (InterruptedException exp) {
//}
I2PAppContext.getGlobalContext().namingService().registerUpdater(this);
Daemon.main(this.args);
I2PAppContext.getGlobalContext().namingService().unregisterUpdater(this);
try {
if (args != null && args.length > 0 && args[0].equals("test"))
daemon.test(args);
else
daemon.run(args);
} finally {
I2PAppContext.getGlobalContext().namingService().unregisterUpdater(this);
}
}
public void halt() {
Daemon.stop();
daemon.stop();
interrupt();
}
/**
* The NamingServiceUpdater interface
* @param options ignored
* The NamingServiceUpdater interface.
* While this may be called directly, the recommended way
* is to call I2PAppContext.namingService().requestUpdate(Properties)
* which will call this.
*
* @param options ignored, may be null
* @since 0.8.7
*/
public void update(Properties options) {

View File

@ -0,0 +1,149 @@
/*
* Copyright (c) 2004 Ragnarok
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package net.i2p.addressbook;
import java.io.BufferedReader;
import java.io.Closeable;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
import java.util.NoSuchElementException;
import net.i2p.client.naming.HostTxtEntry;
import net.i2p.data.DataHelper;
/**
* A class to iterate through a hosts.txt or config file without
* reading the whole thing into memory.
* Keys are always converted to lower case.
*
* Callers should iterate all the way through or call close()
* to ensure the underlying stream is closed.
*
* This is not used for config files.
* It is only used for subscriptions.
*
* @since 0.8.7, renamed from ConfigIterator in 0.9.26
*/
class HostTxtIterator implements Iterator<Map.Entry<String, HostTxtEntry>>, Closeable {
private BufferedReader input;
private MapEntry next;
/**
* A dummy iterator in which hasNext() is always false.
*/
public HostTxtIterator() {}
/**
* An iterator over the key/value pairs in the file.
*/
public HostTxtIterator(File file) throws IOException {
FileInputStream fileStream = new FileInputStream(file);
input = new BufferedReader(new InputStreamReader(fileStream, "UTF-8"));
}
public boolean hasNext() {
if (input == null)
return false;
if (next != null)
return true;
try {
String inputLine;
while ((inputLine = input.readLine()) != null) {
HostTxtEntry he = HostTxtParser.parse(inputLine, true);
if (he == null)
continue;
next = new MapEntry(he.getName(), he);
return true;
}
} catch (IOException ioe) {}
try { input.close(); } catch (IOException ioe) {}
input = null;
next = null;
return false;
}
/**
* 'remove' entries will be returned with a null key,
* and the value will contain a null name, null dest,
* and non-null props.
*/
public Map.Entry<String, HostTxtEntry> next() {
if (!hasNext())
throw new NoSuchElementException();
Map.Entry<String, HostTxtEntry> rv = next;
next = null;
return rv;
}
public void remove() {
throw new UnsupportedOperationException();
}
public void close() {
if (input != null) {
try { input.close(); } catch (IOException ioe) {}
}
}
/**
* The object returned by the iterator.
*/
private static class MapEntry implements Map.Entry<String, HostTxtEntry> {
private final String key;
private final HostTxtEntry value;
public MapEntry(String k, HostTxtEntry v) {
key = k;
value = v;
}
public String getKey() {
return key;
}
public HostTxtEntry getValue() {
return value;
}
public HostTxtEntry setValue(HostTxtEntry v) {
throw new UnsupportedOperationException();
}
public int hashCode() {
return key.hashCode() ^ value.hashCode();
}
public boolean equals(Object o) {
if (!(o instanceof Map.Entry))
return false;
@SuppressWarnings("unchecked")
Map.Entry<Object, Object> e = (Map.Entry<Object, Object>) o;
return key.equals(e.getKey()) && value.equals(e.getValue());
}
}
}

View File

@ -0,0 +1,326 @@
package net.i2p.addressbook;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
import net.i2p.client.naming.HostTxtEntry;
import net.i2p.data.DataHelper;
import net.i2p.data.Destination;
import net.i2p.util.SecureFile;
import net.i2p.util.SecureFileOutputStream;
import net.i2p.util.SystemVersion;
/**
* Utility class providing methods to parse and write files in a hosts.txt file
* format, and subscription file format.
*
* @since 0.9.26 modified from ConfigParser, public since 0.9.55 for CLI
*/
public class HostTxtParser {
private static final boolean isWindows = SystemVersion.isWindows();
/**
* Return a Map using the contents of BufferedReader input. input must have
* a single key, value pair on each line, in the format: key=value. Lines
* starting with '#' or ';' are considered comments, and ignored. Lines that
* are obviously not in the format key=value are also ignored.
* The key is converted to lower case.
*
* Returned map will not contain null ("remove") entries.
*
* @param input
* A BufferedReader with lines in key=value format to parse into
* a Map.
* @return A Map containing the key, value pairs from input.
* @throws IOException
* if the BufferedReader cannot be read.
*
*/
private static Map<String, HostTxtEntry> parse(BufferedReader input) throws IOException {
try {
Map<String, HostTxtEntry> result = new HashMap<String, HostTxtEntry>();
String inputLine;
while ((inputLine = input.readLine()) != null) {
HostTxtEntry he = parse(inputLine, false);
if (he == null)
continue;
result.put(he.getName(), he);
}
return result;
} finally {
try { input.close(); } catch (IOException ioe) {}
}
}
/**
* Return a HostTxtEntry from the contents of the inputLine.
*
* @param inputLine key=value[#!k1=v1#k2=v2...]
* @param allowCommandOnly if true, a line starting with #! will return
* a HostTxtEntry with a null name and dest and non-null props.
* If false, these lines will return null.
* @return null if no entry found or on error
*/
public static HostTxtEntry parse(String inputLine, boolean allowCommandOnly) {
if (inputLine.startsWith(";"))
return null;
int comment = inputLine.indexOf('#');
String kv;
String sprops;
if (comment >= 0) {
int shebang = inputLine.indexOf(HostTxtEntry.PROPS_SEPARATOR);
if (shebang == comment && shebang + 2 < inputLine.length()) {
if (comment == 0 && !allowCommandOnly)
return null;
sprops = inputLine.substring(shebang + 2);
} else {
if (comment == 0)
return null;
sprops = null;
}
kv = inputLine.substring(0, comment);
} else {
sprops = null;
kv = inputLine;
}
String name, dest;
if (comment != 0) {
// we have a name=dest
String[] splitLine = DataHelper.split(kv, "=", 2);
if (splitLine.length < 2)
return null;
name = splitLine[0].trim().toLowerCase(Locale.US);
dest = splitLine[1].trim();
if (name.length() == 0 || dest.length() == 0)
return null;
} else {
// line starts with #!, rv will contain props only
name = null;
dest = null;
}
HostTxtEntry he;
if (sprops != null) {
try {
he = new HostTxtEntry(name, dest, sprops);
} catch (IllegalArgumentException iae) {
return null;
}
} else {
he = new HostTxtEntry(name, dest);
}
return he;
}
/**
* Return a Map using the contents of the File file. See parse(BufferedReader)
* for details of the input format.
*
* Returned map will not contain null ("remove") entries.
*
* @param file
* A File to parse.
* @return A Map containing the key, value pairs from file.
* @throws IOException
* if file cannot be read.
*/
public static Map<String, HostTxtEntry> parse(File file) throws IOException {
FileInputStream fileStream = null;
try {
fileStream = new FileInputStream(file);
BufferedReader input = new BufferedReader(new InputStreamReader(
fileStream, "UTF-8"));
Map<String, HostTxtEntry> rv = parse(input);
return rv;
} finally {
if (fileStream != null) {
try {
fileStream.close();
} catch (IOException ioe) {}
}
}
}
/**
* Return a Map using the contents of the File file. If file cannot be read,
* use map instead, and write the result to where file should have been.
*
* Returned map will not contain null ("remove") entries.
*
* @param file
* A File to attempt to parse.
* @param map
* A Map containing values to use as defaults.
* @return A Map containing the key, value pairs from file, or if file
* cannot be read, map.
*/
public static Map<String, HostTxtEntry> parse(File file, Map<String, HostTxtEntry> map) {
Map<String, HostTxtEntry> result;
try {
result = parse(file);
for (Map.Entry<String, HostTxtEntry> entry : map.entrySet()) {
if (!result.containsKey(entry.getKey()))
result.put(entry.getKey(), entry.getValue());
}
} catch (IOException exp) {
result = map;
try {
write(result, file);
} catch (IOException exp2) {
}
}
return result;
}
/**
* Write contents of Map map to BufferedWriter output. Output is written
* with one key, value pair on each line, in the format: key=value.
*
* @param map
* A Map to write to output.
* @param output
* A BufferedWriter to write the Map to.
* @throws IOException
* if the BufferedWriter cannot be written to.
*/
private static void write(Map<String, HostTxtEntry> map, BufferedWriter output) throws IOException {
try {
for (Map.Entry<String, HostTxtEntry> entry : map.entrySet()) {
entry.getValue().write(output);
}
} finally {
try { output.close(); } catch (IOException ioe) {}
}
}
/**
* Write contents of Map map to the File file. Output is written
* with one key, value pair on each line, in the format: key=value.
* Write to a temp file in the same directory and then rename, to not corrupt
* simultaneous accesses by the router. Except on Windows where renameTo()
* will fail if the target exists.
*
* @param map
* A Map to write to file.
* @param file
* A File to write the Map to.
* @throws IOException
* if file cannot be written to.
*/
public static void write(Map<String, HostTxtEntry> map, File file) throws IOException {
boolean success = false;
if (!isWindows) {
File tmp = SecureFile.createTempFile("temp-", ".tmp", file.getAbsoluteFile().getParentFile());
write(map, new BufferedWriter(new OutputStreamWriter(new SecureFileOutputStream(tmp), "UTF-8")));
success = tmp.renameTo(file);
if (!success) {
tmp.delete();
//System.out.println("Warning: addressbook rename fail from " + tmp + " to " + file);
}
}
if (!success) {
// hmm, that didn't work, try it the old way
write(map, new BufferedWriter(new OutputStreamWriter(new SecureFileOutputStream(file), "UTF-8")));
}
}
/**
* Usage: HostTxtParser [-q] validate example.i2p=b64dest[#!key1=val1#key2=val2]
*/
public static void main(String[] args) throws Exception {
boolean quiet = false;
if (args.length > 0 && args[0].equals("-q")) {
quiet = true;
args = java.util.Arrays.copyOfRange(args, 1, args.length);
}
if (args.length != 2 || !args[0].equals("validate")) {
System.err.println("Usage: HostTxtParser validate example.i2p=b64dest[#!key1=val1#key2=val2]");
System.exit(1);
}
HostTxtEntry e = parse(args[1].trim(), false);
if (e == null) {
if (!quiet)
System.err.println("Bad format");
System.exit(2);
}
if (!e.hasValidSig()) {
if (!quiet) {
System.err.println("Bad signature for " + e.getName());
String dest = e.getDest();
try {
Destination d = new Destination(dest);
System.err.println(dest);
System.err.println(d.toString());
} catch (Exception ex) {
System.err.println("Invalid destination: " + dest);
}
Properties p = e.getProps();
if (p != null) {
for (Map.Entry<?,?> m : p.entrySet()) {
System.err.println(m.getKey() + "=" + m.getValue());
}
}
}
System.exit(3);
}
Properties p = e.getProps();
if (p != null) {
if (p.containsKey(HostTxtEntry.PROP_ACTION) ||
p.containsKey(HostTxtEntry.PROP_OLDDEST) ||
p.containsKey(HostTxtEntry.PROP_OLDNAME) ||
p.containsKey(HostTxtEntry.PROP_OLDSIG)) {
if (!e.hasValidSig()) {
if (!quiet) {
System.err.println("Bad inner signature for " + e.getName());
for (Map.Entry<?,?> m : p.entrySet()) {
System.err.println(m.getKey() + "=" + m.getValue());
}
}
System.exit(4);
}
}
}
if (!quiet) {
System.err.println("Good signature for " + e.getName());
try {
String dest = e.getDest();
Destination d = new Destination(dest);
System.err.println(dest);
System.err.println(d.toString());
} catch (Exception ex) {}
if (p != null) {
for (Map.Entry<?,?> m : p.entrySet()) {
System.err.println(m.getKey() + "=" + m.getValue());
}
}
}
System.exit(0);
}
/****
public static void test(String[] args) throws Exception {
File f = new File("tmp-hosts.txt");
Map<String, HostTxtEntry> map = parse(f);
for (HostTxtEntry e : map.values()) {
System.out.println("Host: " + e.getName() +
"\nDest: " + e.getDest() +
"\nAction: " + (e.getProps() != null ? e.getProps().getProperty("action") : "(none)") +
"\nValid Inner? " + e.hasValidInnerSig() +
"\nValid? " + e.hasValidSig() +
'\n');
}
}
****/
}

View File

@ -23,10 +23,14 @@ package net.i2p.addressbook;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.Date;
import net.i2p.I2PAppContext;
import net.i2p.data.DataHelper;
import net.i2p.util.SecureFileOutputStream;
/**
* A simple log with automatic time stamping.
*
@ -35,7 +39,7 @@ import java.util.Date;
*/
class Log {
private File file;
private final File file;
/**
* Construct a Log instance that writes to the File file.
@ -56,9 +60,9 @@ class Log {
public void append(String entry) {
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new FileWriter(this.file,
true));
String timestamp = new Date().toString();
bw = new BufferedWriter(new OutputStreamWriter(new SecureFileOutputStream(this.file,
true), "UTF-8"));
String timestamp = DataHelper.formatTime(I2PAppContext.getGlobalContext().clock().now());
bw.write(timestamp + " -- " + entry);
bw.newLine();
} catch (IOException exp) {
@ -73,7 +77,9 @@ class Log {
*
* @return The File that the log is writing to.
*/
/****
public File getFile() {
return this.file;
}
****/
}

View File

@ -1,98 +0,0 @@
/*
* Copyright (c) 2004 Ragnarok
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package net.i2p.addressbook;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* A wrapper for addressbook to allow it to be started as a web application.
*
* This was a GenericServlet, we make it an HttpServlet solely to provide a hook
* for SusiDNS to wake us up when the subscription list changes.
*
* @author Ragnarok
*
*/
public class Servlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private transient DaemonThread thread;
//private String nonce;
//private static final String PROP_NONCE = "addressbook.nonce";
/**
* Hack to allow susidns to kick the daemon when the subscription list changes.
* URL must be /addressbook/ with wakeup param set, and nonce param set from system property.
*
* (non-Javadoc)
* see javax.servlet.Servlet#service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
*/
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
//System.err.println("Got request nonce = " + request.getParameter("nonce"));
//if (this.thread != null && request.getParameter("wakeup") != null &&
// this.nonce != null && this.nonce.equals(request.getParameter("nonce"))) {
// //System.err.println("Sending interrupt");
// this.thread.interrupt();
// // no output
//} else {
PrintWriter out = response.getWriter();
out.write("I2P addressbook OK");
//}
}
/* (non-Javadoc)
* @see javax.servlet.Servlet#init(javax.servlet.ServletConfig)
*/
@Override
public void init(ServletConfig config) {
try {
super.init(config);
} catch (ServletException exp) {
System.err.println("Addressbook init exception: " + exp);
}
//this.nonce = "" + Math.abs((new Random()).nextLong());
// put the nonce where susidns can get it
//System.setProperty(PROP_NONCE, this.nonce);
String[] args = new String[1];
args[0] = config.getInitParameter("home");
this.thread = new DaemonThread(args);
this.thread.setDaemon(true);
this.thread.setName("Addressbook");
this.thread.start();
//System.out.println("INFO: Starting Addressbook " + Daemon.VERSION);
//System.out.println("INFO: config root under " + args[0]);
}
@Override
public void destroy() {
this.thread.halt();
super.destroy();
}
}

View File

@ -29,10 +29,8 @@ package net.i2p.addressbook;
*/
class Subscription {
private String location;
private final String location;
private String etag;
private String lastModified;
private long lastFetched;
@ -41,14 +39,15 @@ class Subscription {
* was last read at the time represented by etag and lastModified.
*
* @param location
* A String representing a url to a remote address book.
* A String representing a url to a remote address book. Non-null.
* @param etag
* The etag header that we recieved the last time we read this
* subscription.
* The etag header that we received the last time we read this
* subscription. May be null.
* @param lastModified
* the last-modified header we recieved the last time we read
* this subscription.
* @param lastFetched when the subscription was last fetched (Java time, as a String)
* the last-modified header we received the last time we read
* this subscription. May be null.
* @param lastFetched when the subscription was last fetched (Java time, as a String).
* May be null.
*/
public Subscription(String location, String etag, String lastModified, String lastFetched) {
this.location = location;
@ -71,7 +70,7 @@ class Subscription {
}
/**
* Return the etag header that we recieved the last time we read this
* Return the etag header that we received the last time we read this
* subscription.
*
* @return A String containing the etag header.
@ -91,7 +90,7 @@ class Subscription {
}
/**
* Return the last-modified header that we recieved the last time we read
* Return the last-modified header that we received the last time we read
* this subscription.
*
* @return A String containing the last-modified header.

View File

@ -26,6 +26,8 @@ import java.util.Iterator;
import java.util.List;
import net.i2p.I2PAppContext;
import net.i2p.client.naming.HostTxtEntry;
import net.i2p.util.PortMapper;
/**
* An iterator over the subscriptions in a SubscriptionList. Note that this iterator
@ -36,9 +38,9 @@ import net.i2p.I2PAppContext;
*/
class SubscriptionIterator implements Iterator<AddressBook> {
private Iterator<Subscription> subIterator;
private String proxyHost;
private int proxyPort;
private final Iterator<Subscription> subIterator;
private final String proxyHost;
private final int proxyPort;
private final long delay;
/**
@ -69,11 +71,17 @@ class SubscriptionIterator implements Iterator<AddressBook> {
* Yes, the EepGet fetch() is done in here in next().
*
* see java.util.Iterator#next()
* @return an AddressBook (empty if the minimum delay has not been met)
* @return non-null AddressBook (empty if the minimum delay has not been met,
* or there is no proxy tunnel, or the fetch otherwise fails)
*/
public AddressBook next() {
Subscription sub = this.subIterator.next();
if (sub.getLastFetched() + this.delay < I2PAppContext.getGlobalContext().clock().now()) {
if (sub.getLocation().startsWith("file:")) {
// test only
return new AddressBook(sub.getLocation().substring(5));
} else if (sub.getLastFetched() + this.delay < I2PAppContext.getGlobalContext().clock().now() &&
I2PAppContext.getGlobalContext().portMapper().getPort(PortMapper.SVC_HTTP_PROXY) >= 0 &&
!I2PAppContext.getGlobalContext().getBooleanProperty("i2p.vmCommSystem")) {
//System.err.println("Fetching addressbook from " + sub.getLocation());
return new AddressBook(sub, this.proxyHost, this.proxyPort);
} else {
@ -81,7 +89,7 @@ class SubscriptionIterator implements Iterator<AddressBook> {
// DataHelper.formatDuration(I2PAppContext.getGlobalContext().clock().now() - sub.getLastFetched()) +
// " ago but the minimum delay is " +
// DataHelper.formatDuration(this.delay));
return new AddressBook(Collections.<String, String> emptyMap());
return new AddressBook(Collections.<String, HostTxtEntry>emptyMap());
}
}

View File

@ -23,8 +23,9 @@ package net.i2p.addressbook;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@ -34,19 +35,15 @@ import java.util.Map;
* @author Ragnarok
*
*/
class SubscriptionList {
class SubscriptionList implements Iterable<AddressBook> {
private List<Subscription> subscriptions;
private File etagsFile;
private File lastModifiedFile;
private File lastFetchedFile;
private final List<Subscription> subscriptions;
private final File etagsFile;
private final File lastModifiedFile;
private final File lastFetchedFile;
private final long delay;
private String proxyHost;
private int proxyPort;
private final String proxyHost;
private final int proxyPort;
/**
* Construct a SubscriptionList using the urls from locationsFile and, if
@ -69,7 +66,7 @@ class SubscriptionList {
public SubscriptionList(File locationsFile, File etagsFile,
File lastModifiedFile, File lastFetchedFile, long delay, List<String> defaultSubs, String proxyHost,
int proxyPort) {
this.subscriptions = new LinkedList<Subscription>();
this.subscriptions = new ArrayList<Subscription>(4);
this.etagsFile = etagsFile;
this.lastModifiedFile = lastModifiedFile;
this.lastFetchedFile = lastFetchedFile;
@ -84,17 +81,17 @@ class SubscriptionList {
try {
etags = ConfigParser.parse(etagsFile);
} catch (IOException exp) {
etags = new HashMap<String, String>();
etags = Collections.<String, String>emptyMap();
}
try {
lastModified = ConfigParser.parse(lastModifiedFile);
} catch (IOException exp) {
lastModified = new HashMap<String, String>();
lastModified = Collections.<String, String>emptyMap();
}
try {
lastFetched = ConfigParser.parse(lastFetchedFile);
} catch (IOException exp) {
lastFetched = new HashMap<String, String>();
lastFetched = Collections.<String, String>emptyMap();
}
for (String location : locations) {
this.subscriptions.add(new Subscription(location, etags.get(location),
@ -103,6 +100,24 @@ class SubscriptionList {
}
}
/**
* Testing only.
*
* @param hoststxt path to a local file used as the test 'subscription' input
* @since 0.9.26
*/
public SubscriptionList(String hoststxt) {
File dummy = new File("/dev/null");
this.etagsFile = dummy;
this.lastModifiedFile = dummy;
this.lastFetchedFile = dummy;
this.delay = 0;
this.proxyHost = "127.0.0.1";
this.proxyPort = 4444;
Subscription sub = new Subscription("file:" + hoststxt, null, null, null);
this.subscriptions = Collections.singletonList(sub);
}
/**
* Return an iterator over the AddressBooks represented by the Subscriptions
* in this SubscriptionList.
@ -121,9 +136,10 @@ class SubscriptionList {
* won't be read back correctly; the '=' should be escaped.
*/
public void write() {
Map<String, String> etags = new HashMap<String, String>();
Map<String, String> lastModified = new HashMap<String, String>();
Map<String, String> lastFetched = new HashMap<String, String>();
int sz = subscriptions.size();
Map<String, String> etags = new HashMap<String, String>(sz);
Map<String, String> lastModified = new HashMap<String, String>(sz);
Map<String, String> lastFetched = new HashMap<String, String>(sz);
for (Subscription sub : this.subscriptions) {
if (sub.getEtag() != null) {
etags.put(sub.getLocation(), sub.getEtag());
@ -131,13 +147,16 @@ class SubscriptionList {
if (sub.getLastModified() != null) {
lastModified.put(sub.getLocation(), sub.getLastModified());
}
lastFetched.put(sub.getLocation(), "" + sub.getLastFetched());
lastFetched.put(sub.getLocation(), Long.toString(sub.getLastFetched()));
}
try {
ConfigParser.write(etags, this.etagsFile);
} catch (IOException exp) {}
try {
ConfigParser.write(lastModified, this.lastModifiedFile);
} catch (IOException exp) {}
try {
ConfigParser.write(lastFetched, this.lastFetchedFile);
} catch (IOException exp) {
}
} catch (IOException exp) {}
}
}

View File

@ -0,0 +1,11 @@
<html>
<body>
<p>
The addressbook application, which fetches hosts.txt files from subscription URLs via
HTTP and adds new hosts to the local database.
While implemented as a webapp, this application contains no user interface.
May also be packaged as a jar, as is done for Android.
The webapp named 'addressbook' in the console is actually SusiDNS.
</p>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@
<html>
<body>
<p>
The BlockfileNamingService based on the Metanotion BlockFile Database.
This is the default NamingService for the router.
</p>
</body>
</html>

View File

@ -36,8 +36,8 @@ import java.io.IOException;
import java.io.RandomAccessFile;
public class RAIFile implements RandomAccessInterface, DataInput, DataOutput {
private File f;
private RandomAccessFile delegate;
private final File f;
private final RandomAccessFile delegate;
private final boolean r, w;
public RAIFile(RandomAccessFile file) throws FileNotFoundException {

View File

@ -28,9 +28,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.metanotion.io;
import java.io.Closeable;
import java.io.IOException;
public interface RandomAccessInterface {
public interface RandomAccessInterface extends Closeable {
public long getFilePointer() throws IOException;
public long length() throws IOException;
public int read() throws IOException;

View File

@ -28,7 +28,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.metanotion.io;
public interface Serializer {
public byte[] getBytes(Object o);
public Object construct(byte[] b);
public interface Serializer<T> {
public byte[] getBytes(T o);
public T construct(byte[] b);
}

View File

@ -28,11 +28,15 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.metanotion.io.block;
import java.io.Closeable;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.Set;
import net.metanotion.io.RAIFile;
@ -64,7 +68,7 @@ import net.i2p.util.Log;
* Pages are 1 KB and are numbered starting from 1.
* e.g. the Metaindex skiplist is at offset 1024 bytes
*/
public class BlockFile {
public class BlockFile implements Closeable {
public static final int PAGESIZE = 1024;
public static final long OFFSET_MOUNTED = 20;
public final Log log = I2PAppContext.getGlobalContext().logManager().getLog(BlockFile.class);
@ -93,7 +97,7 @@ public class BlockFile {
/** I2P was the file locked when we opened it? */
private final boolean _wasMounted;
private final BSkipList metaIndex;
private final BSkipList<String, Integer> metaIndex;
private boolean _isClosed;
/** cached list of free pages, only valid if freListStart > 0 */
private FreeListBlock flb;
@ -140,14 +144,17 @@ public class BlockFile {
return;
}
boolean init = !(new File(args[0])).exists();
RAIFile raif = null;
BlockFile bf = null;
try {
RAIFile raif = new RAIFile(new File(args[0]), true, true);
BlockFile bf = new BlockFile(raif, init);
raif = new RAIFile(new File(args[0]), true, true);
bf = new BlockFile(raif, init);
bf.bfck(true);
bf.close();
raif.close();
} catch (Exception e) {
} catch (IOException e) {
e.printStackTrace();
} finally {
if (bf != null) try { bf.close(); } catch (IOException ioe) {}
if (raif != null) try { raif.close(); } catch (IOException ioe) {}
}
}
@ -319,7 +326,7 @@ public class BlockFile {
if (rai.canWrite())
mount();
metaIndex = new BSkipList(spanSize, this, METAINDEX_PAGE, new StringBytes(), new IntBytes());
metaIndex = new BSkipList<String, Integer>(spanSize, this, METAINDEX_PAGE, new StringBytes(), new IntBytes());
}
/**
@ -333,7 +340,7 @@ public class BlockFile {
/**
* Go to any page but the superblock.
* Page 1 is the superblock, must use file.seek(0) to get there.
* @param page >= 2
* @param page &gt;= 2
*/
public static void pageSeek(RandomAccessInterface file, int page) throws IOException {
if (page < METAINDEX_PAGE)
@ -430,18 +437,25 @@ public class BlockFile {
}
/**
* Open a skiplist if it exists.
* Returns null if the skiplist does not exist.
* Empty skiplists are not preserved after close.
*
* If the file is writable, this runs an integrity check and repair
* on first open.
*
* @return null if not found
*/
public BSkipList getIndex(String name, Serializer key, Serializer val) throws IOException {
@SuppressWarnings("unchecked")
public <K extends Comparable<? super K>, V> BSkipList<K, V> getIndex(String name, Serializer<K> key, Serializer<V> val) throws IOException {
// added I2P
BSkipList bsl = openIndices.get(name);
BSkipList<K, V> bsl = (BSkipList<K, V>) openIndices.get(name);
if (bsl != null)
return bsl;
Integer page = (Integer) metaIndex.get(name);
Integer page = metaIndex.get(name);
if (page == null) { return null; }
bsl = new BSkipList(spanSize, this, page.intValue(), key, val, true);
bsl = new BSkipList<K, V>(spanSize, this, page.intValue(), key, val, true);
if (file.canWrite()) {
log.info("Checking skiplist " + name + " in blockfile " + file);
if (bsl.bslck(true, false))
@ -453,25 +467,43 @@ public class BlockFile {
return bsl;
}
public BSkipList makeIndex(String name, Serializer key, Serializer val) throws IOException {
/**
* Create and open a new skiplist if it does not exist.
* Throws IOException if it already exists.
*
* @throws IOException if already exists or other errors
*/
public <K extends Comparable<? super K>, V> BSkipList<K, V> makeIndex(String name, Serializer<K> key, Serializer<V> val) throws IOException {
if(metaIndex.get(name) != null) { throw new IOException("Index already exists"); }
int page = allocPage();
metaIndex.put(name, Integer.valueOf(page));
BSkipList.init(this, page, spanSize);
BSkipList bsl = new BSkipList(spanSize, this, page, key, val, true);
BSkipList<K, V> bsl = new BSkipList<K, V>(spanSize, this, page, key, val, true);
openIndices.put(name, bsl);
return bsl;
}
/**
* Delete a skiplist if it exists.
* Must be open. Throws IOException if exists but is closed.
* Broken before 0.9.26.
*
* @throws IOException if it is closed.
*/
public void delIndex(String name) throws IOException {
Integer page = (Integer) metaIndex.remove(name);
if (page == null) { return; }
Serializer nb = new IdentityBytes();
BSkipList bsl = new BSkipList(spanSize, this, page.intValue(), nb, nb, true);
if (metaIndex.get(name) == null)
return;
BSkipList bsl = openIndices.get(name);
if (bsl == null)
throw new IOException("Cannot delete closed skiplist, open it first: " + name);
bsl.delete();
openIndices.remove(name);
metaIndex.remove(name);
}
/**
* Close a skiplist if it is open.
*
* Added I2P
*/
public void closeIndex(String name) {
@ -481,8 +513,75 @@ public class BlockFile {
}
/**
* Reformat a skiplist with new Serializers if it exists.
* The skiplist must be closed.
* Throws IOException if the skiplist is open.
* The skiplist will remain closed after completion.
*
* @throws IOException if it is open or on errors
* @since 0.9.26
*/
public <K extends Comparable<? super K>, V> void reformatIndex(String name, Serializer<K> oldKey, Serializer<V> oldVal,
Serializer<K> newKey, Serializer<V> newVal) throws IOException {
if (openIndices.containsKey(name))
throw new IOException("Cannot reformat open skiplist " + name);
BSkipList<K, V> old = getIndex(name, oldKey, oldVal);
if (old == null)
return;
long start = System.currentTimeMillis();
String tmpName = "---tmp---" + name + "---tmp---";
BSkipList<K, V> tmp = getIndex(tmpName, newKey, newVal);
if (tmp != null) {
log.logAlways(Log.WARN, "Continuing on aborted reformat of list " + name);
} else {
tmp = makeIndex(tmpName, newKey, newVal);
}
// It could be much more efficient to do this at the
// SkipSpan layer but that's way too hard.
final int loop = 32;
List<K> keys = new ArrayList<K>(loop);
List<V> vals = new ArrayList<V>(loop);
while (true) {
SkipIterator<K, V> iter = old.iterator();
for (int i = 0; iter.hasNext() && i < loop; i++) {
try {
keys.add(iter.nextKey());
vals.add(iter.next());
} catch (NoSuchElementException nsee) {
throw new IOException("Unable to reformat corrupt list " + name, nsee);
}
}
// save state, as deleting corrupts the iterator
boolean done = !iter.hasNext();
for (int i = 0; i < keys.size(); i++) {
tmp.put(keys.get(i), vals.get(i));
}
for (int i = keys.size() - 1; i >= 0; i--) {
old.remove(keys.get(i));
}
if (done)
break;
keys.clear();
vals.clear();
}
delIndex(name);
closeIndex(name);
closeIndex(tmpName);
Integer page = metaIndex.get(tmpName);
metaIndex.put(name, page);
metaIndex.remove(tmpName);
if (log.shouldWarn())
log.warn("reformatted list: " + name + " in " +
(System.currentTimeMillis() - start) + "ms");
}
/**
* Closes all open skiplists and then the blockfile itself.
*
* Note (I2P)
* Does NOT close the RAF / RAI.
* Does NOT close the RAF / RAI.
*/
public void close() throws IOException {
// added I2P
@ -491,12 +590,7 @@ public class BlockFile {
_isClosed = true;
metaIndex.close();
Set<String> oi = openIndices.keySet();
Iterator<String> i = oi.iterator();
Object k;
while(i.hasNext()) {
k = i.next();
BSkipList bsl = openIndices.get(k);
for (BSkipList bsl : openIndices.values()) {
bsl.close();
}
@ -538,9 +632,15 @@ public class BlockFile {
try {
// This uses IdentityBytes, so the value class won't be right, but at least
// it won't fail the out-of-order check
Serializer keyser = slname.equals("%%__REVERSE__%%") ? new IntBytes() : new UTF8StringBytes();
BSkipList bsl = getIndex(slname, keyser, new IdentityBytes());
if (bsl == null) {
boolean fail;
if (slname.equals("%%__REVERSE__%%")) {
Serializer<Integer> keyser = new IntBytes();
fail = getIndex(slname, keyser, new IdentityBytes()) == null;
} else {
Serializer<String> keyser = new UTF8StringBytes();
fail = getIndex(slname, keyser, new IdentityBytes()) == null;
}
if (fail) {
log.error("Can't find list? " + slname);
continue;
}

View File

@ -0,0 +1,439 @@
/*
Copyright (c) 2006, Matthew Estes
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of Metanotion Software nor the names of its
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.metanotion.io.block.index;
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import net.metanotion.io.block.BlockFile;
import net.metanotion.util.skiplist.SkipList;
import net.metanotion.util.skiplist.SkipLevels;
import net.metanotion.util.skiplist.SkipSpan;
import net.i2p.util.Log;
/**
* On-disk format:
*<pre>
* Magic number (long)
* max height (unsigned short)
* non-null height (unsigned short)
* span page (unsigned int)
* height number of level pages (unsigned ints)
*</pre>
*
* Always fits on one page.
*/
public class BSkipLevels<K extends Comparable<? super K>, V> extends SkipLevels<K, V> {
private static final long MAGIC = 0x42534c6576656c73l; // "BSLevels"
static final int HEADER_LEN = 16;
public final int levelPage;
public final int spanPage;
public final BlockFile bf;
private final BSkipList<K, V> bsl;
private boolean isKilled;
// the level pages, passed from the constructor to initializeLevels(),
// NOT kept up to date
private final int[] lps;
/**
* Non-recursive initializer initializeLevels()
* MUST be called on the first BSkipLevel in the skiplist
* after the constructor, unless it's a new empty
* level and init() was previously called.
*/
@SuppressWarnings("unchecked")
public BSkipLevels(BlockFile bf, int levelPage, BSkipList<K, V> bsl) throws IOException {
this.levelPage = levelPage;
this.bf = bf;
this.bsl = bsl;
BlockFile.pageSeek(bf.file, levelPage);
long magic = bf.file.readLong();
if (magic != MAGIC)
throw new IOException("Bad SkipLevels magic number 0x" + Long.toHexString(magic) + " on page " + levelPage);
bsl.levelHash.put(Integer.valueOf(this.levelPage), this);
int maxLen = bf.file.readUnsignedShort();
int nonNull = bf.file.readUnsignedShort();
if(maxLen < 1 || maxLen > MAX_SIZE || nonNull > maxLen)
throw new IOException("Invalid Level Skip size " + nonNull + " / " + maxLen);
spanPage = bf.file.readUnsignedInt();
bottom = bsl.spanHash.get(Integer.valueOf(spanPage));
if (bottom == null) {
// FIXME recover better?
bf.log.error("No span found in cache???");
throw new IOException("No span found in cache???");
}
this.levels = (BSkipLevels<K, V>[]) new BSkipLevels[maxLen];
if (bf.log.shouldLog(Log.DEBUG))
bf.log.debug("Reading New BSkipLevels with " + nonNull + " / " + maxLen + " valid levels page " + levelPage +
" in skiplist " + bsl);
// We have to read now because new BSkipLevels() will move the file pointer
lps = new int[nonNull];
for(int i = 0; i < nonNull; i++) {
lps[i] = bf.file.readUnsignedInt();
}
}
/**
* Non-recursive initializer.
* MUST be called on the first BSkipLevel in the skiplist
* after the constructor, unless it's a new empty
* level and init() was previously called.
* Only call on the first skiplevel in the list!
*
* @since 0.9.20
*/
public void initializeLevels() {
List<BSkipLevels<K, V>> toInit = new ArrayList<BSkipLevels<K, V>>(32);
List<BSkipLevels<K, V>> nextInit = new ArrayList<BSkipLevels<K, V>>(32);
initializeLevels(toInit);
while (!toInit.isEmpty()) {
for (BSkipLevels<K, V> bsl : toInit) {
bsl.initializeLevels(nextInit);
}
List<BSkipLevels<K, V>> tmp = toInit;
toInit = nextInit;
nextInit = tmp;
nextInit.clear();
}
}
/**
* Non-recursive initializer.
* MUST be called after constructor.
*
* @param nextInit out parameter, next levels to initialize
* @since 0.9.20
*/
private void initializeLevels(List<BSkipLevels<K, V>> nextInit) {
boolean fail = false;
for(int i = 0; i < lps.length; i++) {
int lp = lps[i];
if(lp != 0) {
levels[i] = bsl.levelHash.get(Integer.valueOf(lp));
if(levels[i] == null) {
try {
BSkipLevels<K, V> lev = new BSkipLevels<K, V>(bf, lp, bsl);
levels[i] = lev;
nextInit.add(lev);
} catch (IOException ioe) {
bf.log.error("Corrupt database, bad level " + i +
" at page " + lp, ioe);
levels[i] = null;
fail = true;
continue;
}
}
K ourKey = key();
K nextKey = levels[i].key();
if (ourKey != null && nextKey != null &&
ourKey.compareTo(nextKey) >= 0) {
bf.log.warn("Corrupt database, level out of order " + this +
' ' + print() +
" i = " + i + ' ' + levels[i]);
// This will be fixed in blvlfix() via BlockFile.getIndex()
//levels[i] = null;
//fail = true;
}
// TODO also check that the level[] array is not out-of-order
} else {
if (bf.log.shouldLog(Log.WARN))
bf.log.warn(this + " i = " + i + " of " +
lps.length + " / " + levels.length +
" valid levels but page is zero");
levels[i] = null;
fail = true;
}
}
if (fail && bf.file.canWrite()) {
// corruption is actually fixed in blvlfix() via BlockFile.getIndex()
// after instantiation is complete
bf.log.error("Repairing corruption of " + this +
' ' + print());
flush();
// if the removed levels have no other links to them, they and their data
// are lost forever, but the alternative is infinite loops / stack overflows
// in SkipSpan.
}
}
public static void init(BlockFile bf, int page, int spanPage, int maxHeight) throws IOException {
BlockFile.pageSeek(bf.file, page);
bf.file.writeLong(MAGIC);
bf.file.writeShort((short) maxHeight);
bf.file.writeShort(0);
bf.file.writeInt(spanPage);
}
@Override
public void flush() {
if (isKilled) {
bf.log.error("Already killed!! " + this, new Exception());
return;
}
try {
BlockFile.pageSeek(bf.file, levelPage);
bf.file.writeLong(MAGIC);
bf.file.writeShort((short) levels.length);
int i = 0;
for( ; i < levels.length; i++) {
if(levels[i] == null)
break;
}
bf.file.writeShort(i);
bf.file.writeInt(((BSkipSpan<K, V>) bottom).page);
for(int j = 0; j < i; j++) {
bf.file.writeInt(((BSkipLevels<K, V>) levels[j]).levelPage);
}
} catch (IOException ioe) { throw new RuntimeException("Error writing to database", ioe); }
}
@Override
public void killInstance() {
if (isKilled) {
bf.log.error("Already killed!! " + this, new Exception());
return;
}
if (bf.log.shouldLog(Log.DEBUG))
bf.log.debug("Killing " + this + ' ' + print() /* , new Exception() */ );
isKilled = true;
bsl.levelHash.remove(Integer.valueOf(levelPage));
bf.freePage(levelPage);
}
@Override
public SkipLevels<K, V> newInstance(int levels, SkipSpan<K, V> ss, SkipList<K, V> sl) {
try {
BSkipSpan<K, V> bss = (BSkipSpan<K, V>) ss;
BSkipList<K, V> bsl = (BSkipList<K, V>) sl;
int page = bf.allocPage();
BSkipLevels.init(bf, page, bss.page, levels);
if (bf.log.shouldLog(Log.DEBUG))
bf.log.debug("New BSkipLevels height " + levels + " page " + page);
return new BSkipLevels<K, V>(bf, page, bsl);
// do not need to call initLevels() here
} catch (IOException ioe) { throw new RuntimeException("Error creating database page", ioe); }
}
/**
* Run an integrity check on the skiplevels from the first,
* or just fix it if fix == true.
* Only call from the first level.
* @return true if the levels were modified.
*/
@Override
public boolean blvlck(boolean fix) {
if (fix)
return blvlfix();
return blvlck(fix, 0, null);
}
/**
* Fix the levels.
* Only call from the first level.
* Primarily to fix nulls in levels caused by previous SkipLevels bug.
* This should handle dups and loops and out-of-order levels too,
* but those may cause problems before this in the constructor.
* This is fast enough to call every time the skiplist is opened.
* @return true if the levels were modified.
* @since 0.8.8
*/
private boolean blvlfix() {
TreeSet<SkipLevels<K, V>> lvls = new TreeSet<SkipLevels<K, V>>(new LevelComparator<K, V>());
if (bf.log.shouldLog(Log.DEBUG))
bf.log.debug("Starting level search");
getAllLevels(this, lvls);
if (bf.log.shouldLog(Log.DEBUG))
bf.log.debug("Finished level search, found " + lvls.size() + " levels");
if (!this.equals(lvls.last())) {
bf.log.error("First level is out of order! " + print());
// TODO switch stack and other fields for the skiplist - hard to test
}
// traverse the levels, back-to-front
boolean rv = false;
SkipLevels<K, V> after = null;
for (SkipLevels<K, V> lv : lvls) {
boolean modified = false;
if (bf.log.shouldLog(Log.DEBUG))
bf.log.debug("Checking " + lv.print());
if (after != null) {
int min = Math.min(after.levels.length, lv.levels.length);
for (int i = 0; i < min; i++) {
SkipLevels<K, V> cur = lv.levels[i];
if (cur != after) {
if (cur != null)
bf.log.warn("Level " + i + " was wrong, fixing for " + lv.print());
else
bf.log.warn("Level " + i + " was null, fixing for " + lv.print());
lv.levels[i] = after;
modified = true;
}
}
} else {
// last one
for (int i = 0; i < lv.levels.length; i++) {
if (lv.levels[i] != null) {
lv.levels[i] = null;
bf.log.warn("Last level " + i + " was non-null, fixing for " + lv.print());
modified = true;
}
}
}
if (modified) {
lv.flush();
rv = true;
}
after = lv;
}
if (bf.log.shouldLog(Log.INFO))
bf.log.info("Checked " + lvls.size() + " levels");
return rv;
}
/**
* Breadth-first, sortof
* We assume everything is findable from the root level
* @param l non-null
* @param lvlSet out parameter, the result
* @since 0.8.8
*/
private void getAllLevels(SkipLevels<K, V> l, Set<SkipLevels<K, V>> lvlSet) {
if (bf.log.shouldLog(Log.DEBUG))
bf.log.debug("GAL " + l.print());
// Do level 0 without recursion, on the assumption everything is findable
// from the root
SkipLevels<K, V> cur = l;
while (cur != null && lvlSet.add(cur)) {
if (bf.log.shouldLog(Log.DEBUG))
bf.log.debug("Adding " + cur.print());
if (!cur.equals(this) && cur.key() == null && bf.log.shouldLog(Log.WARN))
bf.log.debug("Null KEY!!! " + cur.print());
cur = cur.levels[0];
}
// If there were no nulls at level 0 in the middle,
// i.e. there are no problems, this won't find anything
for (int i = 1; i < l.levels.length; i++) {
SkipLevels<K, V> lv = l.levels[i];
if (lv != null && !lvlSet.contains(lv))
getAllLevels(lv, lvlSet);
}
}
/**
* For sorting levels in blvlfix()
* Sorts in REVERSE order.
* @since 0.8.8
*/
private static class LevelComparator<K extends Comparable<? super K>, V> implements Comparator<SkipLevels<K, V>>, Serializable {
public int compare(SkipLevels<K, V> l, SkipLevels<K, V> r) {
K lk = l.key();
K rk = r.key();
if (lk == null && rk == null)
return 0;
if (lk == null)
return 1;
if (rk == null)
return -1;
// reverse!
return rk.compareTo(lk);
}
}
/*
* Recursively walk through the levels at level 0
* This needs work.
*/
@Override
@SuppressWarnings("unchecked")
public boolean blvlck(boolean fix, int width, SkipLevels<K, V>[] prevLevels) {
bf.log.warn(" Skip level at width " + width);
bf.log.warn(" levels " + this.levels.length);
bf.log.warn(" first key " + this.key());
bf.log.warn(" spanPage " + this.spanPage);
bf.log.warn(" levelPage " + this.levelPage);
SkipLevels<K, V> higher = null;
for (int i = levels.length - 1; i >= 0; i--) {
if (levels[i] != null) {
bf.log.info(" level " + i + " -> " + levels[i].key() + " ");
if (higher != null) {
if (higher.key().compareTo(key()) < 0)
bf.log.warn(" Higher level has lower key " + higher.key());
}
} else {
bf.log.info(" level " + i + " empty");
if (higher != null)
bf.log.warn(" Higher level is not empty, key is " + higher.key());
}
}
if (prevLevels != null) {
int min = Math.min(prevLevels.length, levels.length);
for (int i = 0; i < min; i++) {
if (prevLevels[i] == this) {
prevLevels[i] = levels[i];
} else if (prevLevels[i] != null) {
// skipping over us
bf.log.warn(" Previous levels is non-null " + prevLevels[i].key() + " but not pointing to us at level " + i);
// replace so we only get one error
prevLevels[i] = levels[i];
} else {
// dead end in the middle
if (levels[i] != null) {
bf.log.warn(" Previous levels is null but we are non-null " + levels[i].key() + " at level " + i);
// replace so we only get one error
prevLevels[i] = levels[i];
}
}
}
} else {
prevLevels = (SkipLevels<K, V>[]) new SkipLevels[levels.length];
System.arraycopy(levels, 0, prevLevels, 0, levels.length);
}
if (levels[0] != null)
levels[0].blvlck(fix, width + 1, prevLevels);
return false;
}
@Override
public String toString() {
String rv = "BSLevel height: " + levels.length + " page: " + levelPage + " span: " + bottom +
" in skiplist " + bsl;
if (isKilled)
rv += " KILLED";
return rv;
}
}

View File

@ -28,6 +28,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.metanotion.io.block.index;
import java.io.Closeable;
import java.io.IOException;
import java.util.HashMap;
@ -50,7 +51,7 @@ import net.i2p.util.Log;
*
* Always fits on one page.
*/
public class BSkipList extends SkipList {
public class BSkipList<K extends Comparable<? super K>, V> extends SkipList<K, V> implements Closeable {
private static final long MAGIC = 0x536b69704c697374l; // "SkipList"
public int firstSpanPage = 0;
public int firstLevelPage = 0;
@ -58,16 +59,16 @@ public class BSkipList extends SkipList {
public final BlockFile bf;
private boolean isClosed;
final HashMap<Integer, BSkipSpan> spanHash = new HashMap<Integer, BSkipSpan>();
final HashMap<Integer, SkipLevels> levelHash = new HashMap<Integer, SkipLevels>();
final HashMap<Integer, BSkipSpan<K, V>> spanHash = new HashMap<Integer, BSkipSpan<K, V>>();
final HashMap<Integer, SkipLevels<K, V>> levelHash = new HashMap<Integer, SkipLevels<K, V>>();
private final boolean fileOnly;
public BSkipList(int spanSize, BlockFile bf, int skipPage, Serializer key, Serializer val) throws IOException {
public BSkipList(int spanSize, BlockFile bf, int skipPage, Serializer<K> key, Serializer<V> val) throws IOException {
this(spanSize, bf, skipPage, key, val, false);
}
public BSkipList(int spanSize, BlockFile bf, int skipPage, Serializer key, Serializer val, boolean fileOnly) throws IOException {
public BSkipList(int spanSize, BlockFile bf, int skipPage, Serializer<K> key, Serializer<V> val, boolean fileOnly) throws IOException {
if(spanSize < 1) { throw new RuntimeException("Span size too small"); }
this.skipPage = skipPage;
@ -88,10 +89,12 @@ public class BSkipList extends SkipList {
this.fileOnly = fileOnly;
if (fileOnly)
first = new IBSkipSpan(bf, this, firstSpanPage, key, val);
first = new IBSkipSpan<K, V>(bf, this, firstSpanPage, key, val);
else
first = new BSkipSpan(bf, this, firstSpanPage, key, val);
stack = new BSkipLevels(bf, firstLevelPage, this);
first = new BSkipSpan<K, V>(bf, this, firstSpanPage, key, val);
BSkipLevels<K, V> bstack = new BSkipLevels<K, V>(bf, firstLevelPage, this);
bstack.initializeLevels();
stack = bstack;
int total = 0;
for (BSkipSpan ss : spanHash.values()) {
total += ss.nKeys;
@ -101,7 +104,8 @@ public class BSkipList extends SkipList {
if (bf.file.canWrite() &&
(levelCount != levelHash.size() || spans != spanHash.size() || size != total)) {
if (bf.log.shouldLog(Log.WARN))
bf.log.warn("On-disk counts were " + levelCount + " / " + spans + " / " + size + ", correcting");
bf.log.warn("On-disk counts were " + levelCount + " levels / " + spans +
" spans / " + size + " entries, correcting to " + total + " entries");
size = total;
flush();
}
@ -148,7 +152,6 @@ public class BSkipList extends SkipList {
curLevel.killInstance();
curLevel = nextLevel;
}
stack.killInstance();
SkipSpan curSpan = first;
while(curSpan != null) {
@ -197,33 +200,36 @@ public class BSkipList extends SkipList {
}
@Override
public SkipIterator iterator() {
public SkipIterator<K, V> iterator() {
if (!this.fileOnly)
return super.iterator();
return new IBSkipIterator(first, 0);
return new IBSkipIterator<K, V>(first, 0);
}
@Override
public SkipIterator min() {
/****
//@Override
public SkipIterator<K, V> min() {
return iterator();
}
@Override
public SkipIterator max() {
//@Override
public SkipIterator<K, V> max() {
if (!this.fileOnly)
return super.max();
SkipSpan ss = stack.getEnd();
return new IBSkipIterator(ss, ss.nKeys - 1);
SkipSpan<K, V> ss = stack.getEnd();
return new IBSkipIterator<K, V>(ss, ss.nKeys - 1);
}
****/
/** find */
@Override
public SkipIterator find(Comparable key) {
public SkipIterator<K, V> find(K key) {
if (!this.fileOnly)
return super.find(key);
int[] search = new int[1];
SkipSpan ss = stack.getSpan(stack.levels.length - 1, key, search);
SkipSpan<K, V> ss = stack.getSpan(stack.levels.length - 1, key, search);
if(search[0] < 0) { search[0] = -1 * (search[0] + 1); }
return new IBSkipIterator(ss, search[0]);
return new IBSkipIterator<K, V>(ss, search[0]);
}
/**

View File

@ -59,19 +59,19 @@ import net.i2p.util.Log;
* next overflow page (unsigned int)
*</pre>
*/
public class BSkipSpan extends SkipSpan {
public class BSkipSpan<K extends Comparable<? super K>, V> extends SkipSpan<K, V> {
protected static final int MAGIC = 0x5370616e; // "Span"
protected static final int HEADER_LEN = 20;
public static final int CONT_HEADER_LEN = 8;
protected final BlockFile bf;
private final BSkipList bsl;
private final BSkipList<K, V> bsl;
protected int page;
protected int overflowPage;
protected int prevPage;
protected int nextPage;
protected Serializer keySer;
protected Serializer valSer;
protected int nextPage = 0;
protected Serializer<K> keySer;
protected Serializer<V> valSer;
// I2P
protected int spanSize;
@ -88,11 +88,11 @@ public class BSkipSpan extends SkipSpan {
}
@Override
public SkipSpan newInstance(SkipList sl) {
public SkipSpan<K, V> newInstance(SkipList<K, V> sl) {
try {
int newPage = bf.allocPage();
init(bf, newPage, bf.spanSize);
return new BSkipSpan(bf, (BSkipList) sl, newPage, keySer, valSer);
return new BSkipSpan<K, V>(bf, (BSkipList<K, V>) sl, newPage, keySer, valSer);
} catch (IOException ioe) { throw new RuntimeException("Error creating database page", ioe); }
}
@ -237,7 +237,8 @@ public class BSkipSpan extends SkipSpan {
//bsl.flush();
}
private static void load(BSkipSpan bss, BlockFile bf, BSkipList bsl, int spanPage, Serializer key, Serializer val) throws IOException {
private static <X extends Comparable<? super X>, Y> void load(BSkipSpan<X, Y> bss, BlockFile bf, BSkipList<X, Y> bsl,
int spanPage, Serializer<X> key, Serializer<Y> val) throws IOException {
loadInit(bss, bf, bsl, spanPage, key, val);
bss.loadData();
}
@ -246,7 +247,8 @@ public class BSkipSpan extends SkipSpan {
* I2P - first half of load()
* Only read the span headers
*/
protected static void loadInit(BSkipSpan bss, BlockFile bf, BSkipList bsl, int spanPage, Serializer key, Serializer val) throws IOException {
protected static <X extends Comparable<? super X>, Y> void loadInit(BSkipSpan<X, Y> bss, BlockFile bf, BSkipList<X, Y> bsl,
int spanPage, Serializer<X> key, Serializer<Y> val) throws IOException {
if (bss.isKilled)
throw new IOException("Already killed!! " + bss);
bss.page = spanPage;
@ -285,11 +287,12 @@ public class BSkipSpan extends SkipSpan {
* Load the whole span's keys and values into memory
* @param flushOnError set to false if you are going to flush anyway
*/
@SuppressWarnings("unchecked")
protected void loadData(boolean flushOnError) throws IOException {
if (isKilled)
throw new IOException("Already killed!! " + this);
this.keys = new Comparable[this.spanSize];
this.vals = new Object[this.spanSize];
this.keys = (K[]) new Comparable[this.spanSize];
this.vals = (V[]) new Object[this.spanSize];
int ksz, vsz;
int curPage = this.page;
@ -327,8 +330,21 @@ public class BSkipSpan extends SkipSpan {
break;
}
// System.out.println("i=" + i + ", Page " + curPage + ", offset " + pageCounter[0] + " ksz " + ksz + " vsz " + vsz);
this.keys[i] = (Comparable) this.keySer.construct(k);
this.vals[i] = this.valSer.construct(v);
try {
this.keys[i] = this.keySer.construct(k);
this.vals[i] = this.valSer.construct(v);
} catch (Exception e) {
// It's important to catch unchecked exceptions here,
// so we can repair corruption below.
// Ideally, the value deserializers should not throw
// unchecked exceptions, and always return null, but
// Destination can throw some IllegalArgumentExceptions.
if (this.keys[i] != null)
bf.log.error("Error loading key " + this.keys[i], e);
else
bf.log.error("Error loading entry " + i, e);
}
// Drop bad entry without throwing exception
if (this.keys[i] == null || this.vals[i] == null) {
bf.log.error("Null deserialized data in entry " + i + " page " + curPage +
@ -377,31 +393,31 @@ public class BSkipSpan extends SkipSpan {
}
}
protected BSkipSpan(BlockFile bf, BSkipList bsl) {
protected BSkipSpan(BlockFile bf, BSkipList<K, V> bsl) {
this.bf = bf;
this.bsl = bsl;
}
public BSkipSpan(BlockFile bf, BSkipList bsl, int spanPage, Serializer key, Serializer val) throws IOException {
public BSkipSpan(BlockFile bf, BSkipList<K, V> bsl, int spanPage, Serializer<K> key, Serializer<V> val) throws IOException {
this.bf = bf;
this.bsl = bsl;
BSkipSpan.load(this, bf, bsl, spanPage, key, val);
this.next = null;
this.prev = null;
BSkipSpan bss = this;
BSkipSpan<K, V> bss = this;
// findbugs ok (set in load() above)
int np = nextPage;
while(np != 0) {
BSkipSpan temp = bsl.spanHash.get(Integer.valueOf(np));
BSkipSpan<K, V> temp = bsl.spanHash.get(Integer.valueOf(np));
if(temp != null) {
bss.next = temp;
break;
}
bss.next = new BSkipSpan(bf, bsl);
bss.next = new BSkipSpan<K, V>(bf, bsl);
bss.next.next = null;
bss.next.prev = bss;
bss = (BSkipSpan) bss.next;
bss = (BSkipSpan<K, V>) bss.next;
BSkipSpan.load(bss, bf, bsl, np, key, val);
np = bss.nextPage;
@ -411,15 +427,15 @@ public class BSkipSpan extends SkipSpan {
bss = this;
np = prevPage;
while(np != 0) {
BSkipSpan temp = bsl.spanHash.get(Integer.valueOf(np));
BSkipSpan<K, V> temp = bsl.spanHash.get(Integer.valueOf(np));
if(temp != null) {
bss.prev = temp;
break;
}
bss.prev = new BSkipSpan(bf, bsl);
bss.prev = new BSkipSpan<K, V>(bf, bsl);
bss.prev.next = bss;
bss.prev.prev = null;
bss = (BSkipSpan) bss.prev;
bss = (BSkipSpan<K, V>) bss.prev;
BSkipSpan.load(bss, bf, bsl, np, key, val);
np = bss.prevPage;

View File

@ -41,9 +41,9 @@ import net.metanotion.util.skiplist.SkipSpan;
If the caller does not iterate all the way through, the last span
will remain in memory.
*/
public class IBSkipIterator extends SkipIterator {
public class IBSkipIterator<K extends Comparable<? super K>, V> extends SkipIterator<K, V> {
public IBSkipIterator(SkipSpan ss, int index) {
public IBSkipIterator(SkipSpan<K, V> ss, int index) {
super(ss, index);
}
@ -53,8 +53,8 @@ public class IBSkipIterator extends SkipIterator {
* @throws RuntimeException on IOE
*/
@Override
public Object next() {
Object o;
public V next() {
V o;
if(index < ss.nKeys) {
if (ss.vals == null) {
try {
@ -90,7 +90,7 @@ public class IBSkipIterator extends SkipIterator {
* @throws RuntimeException on IOE
*/
@Override
public Comparable nextKey() {
public K nextKey() {
if(index < ss.nKeys) {
if (ss.keys == null) {
try {
@ -110,7 +110,7 @@ public class IBSkipIterator extends SkipIterator {
* @throws RuntimeException on IOE
*/
@Override
public Object previous() {
public V previous() {
if(index > 0) {
index--;
} else if(ss.prev != null) {

View File

@ -54,21 +54,22 @@ import net.i2p.util.Log;
*
* @author zzz
*/
public class IBSkipSpan extends BSkipSpan {
public class IBSkipSpan<K extends Comparable<? super K>, V> extends BSkipSpan<K, V> {
private Comparable firstKey;
private K firstKey;
@Override
public SkipSpan newInstance(SkipList sl) {
@SuppressWarnings("unchecked")
public SkipSpan<K, V> newInstance(SkipList<K, V> sl) {
if (bf.log.shouldLog(Log.DEBUG))
bf.log.debug("Splitting page " + this.page + " containing " + this.nKeys + '/' + this.spanSize);
try {
int newPage = bf.allocPage();
init(bf, newPage, bf.spanSize);
SkipSpan rv = new IBSkipSpan(bf, (BSkipList) sl, newPage, keySer, valSer);
SkipSpan<K, V> rv = new IBSkipSpan<K, V>(bf, (BSkipList<K, V>) sl, newPage, keySer, valSer);
// this is called after a split, so we need the data arrays initialized
rv.keys = new Comparable[bf.spanSize];
rv.vals = new Object[bf.spanSize];
rv.keys = (K[]) new Comparable[bf.spanSize];
rv.vals = (V[]) new Object[bf.spanSize];
return rv;
} catch (IOException ioe) { throw new RuntimeException("Error creating database page", ioe); }
}
@ -125,7 +126,7 @@ public class IBSkipSpan extends BSkipSpan {
pageCounter[0] +=4;
byte[] k = new byte[ksz];
curPage = this.bf.readMultiPageData(k, curPage, pageCounter, curNextPage);
this.firstKey = (Comparable) this.keySer.construct(k);
this.firstKey = this.keySer.construct(k);
if (this.firstKey == null) {
bf.log.error("Null deserialized first key in page " + curPage);
repair(1);
@ -160,7 +161,7 @@ public class IBSkipSpan extends BSkipSpan {
/**
* Linear search through the span in the file for the value.
*/
private Object getData(Comparable key) throws IOException {
private V getData(K key) throws IOException {
seekData();
int curPage = this.page;
int[] curNextPage = new int[1];
@ -194,7 +195,7 @@ public class IBSkipSpan extends BSkipSpan {
break;
}
//System.out.println("i=" + i + ", Page " + curPage + ", offset " + pageCounter[0] + " ksz " + ksz + " vsz " + vsz);
Comparable ckey = (Comparable) this.keySer.construct(k);
K ckey = this.keySer.construct(k);
if (ckey == null) {
// skip the value and keep going
curPage = this.bf.skipMultiPageBytes(vsz, curPage, pageCounter, curNextPage);
@ -213,7 +214,7 @@ public class IBSkipSpan extends BSkipSpan {
lostEntries(i, curPage);
break;
}
Object rv = this.valSer.construct(v);
V rv = this.valSer.construct(v);
if (rv == null) {
bf.log.error("Null deserialized value in entry " + i + " page " + curPage +
" key=" + ckey);
@ -252,11 +253,11 @@ public class IBSkipSpan extends BSkipSpan {
*****/
}
private IBSkipSpan(BlockFile bf, BSkipList bsl) {
private IBSkipSpan(BlockFile bf, BSkipList<K, V> bsl) {
super(bf, bsl);
}
public IBSkipSpan(BlockFile bf, BSkipList bsl, int spanPage, Serializer key, Serializer val) throws IOException {
public IBSkipSpan(BlockFile bf, BSkipList<K, V> bsl, int spanPage, Serializer<K> key, Serializer<V> val) throws IOException {
super(bf, bsl);
if (bf.log.shouldLog(Log.DEBUG))
bf.log.debug("New ibss page " + spanPage);
@ -265,24 +266,24 @@ public class IBSkipSpan extends BSkipSpan {
this.next = null;
this.prev = null;
IBSkipSpan bss = this;
IBSkipSpan temp;
IBSkipSpan<K, V> bss = this;
IBSkipSpan<K, V> temp;
int np = nextPage;
while(np != 0) {
temp = (IBSkipSpan) bsl.spanHash.get(Integer.valueOf(np));
temp = (IBSkipSpan<K, V>) bsl.spanHash.get(Integer.valueOf(np));
if(temp != null) {
bss.next = temp;
break;
}
bss.next = new IBSkipSpan(bf, bsl);
bss.next = new IBSkipSpan<K, V>(bf, bsl);
bss.next.next = null;
bss.next.prev = bss;
Comparable previousFirstKey = bss.firstKey;
bss = (IBSkipSpan) bss.next;
K previousFirstKey = bss.firstKey;
bss = (IBSkipSpan<K, V>) bss.next;
BSkipSpan.loadInit(bss, bf, bsl, np, key, val);
bss.loadFirstKey();
Comparable nextFirstKey = bss.firstKey;
K nextFirstKey = bss.firstKey;
if (previousFirstKey == null || nextFirstKey == null ||
previousFirstKey.compareTo(nextFirstKey) >= 0) {
// TODO remove, but if we are at the bottom of a level
@ -299,20 +300,20 @@ public class IBSkipSpan extends BSkipSpan {
bss = this;
np = prevPage;
while(np != 0) {
temp = (IBSkipSpan) bsl.spanHash.get(Integer.valueOf(np));
temp = (IBSkipSpan<K, V>) bsl.spanHash.get(Integer.valueOf(np));
if(temp != null) {
bss.prev = temp;
break;
}
bss.prev = new IBSkipSpan(bf, bsl);
bss.prev = new IBSkipSpan<K, V>(bf, bsl);
bss.prev.next = bss;
bss.prev.prev = null;
Comparable nextFirstKey = bss.firstKey;
bss = (IBSkipSpan) bss.prev;
K nextFirstKey = bss.firstKey;
bss = (IBSkipSpan<K, V>) bss.prev;
BSkipSpan.loadInit(bss, bf, bsl, np, key, val);
bss.loadFirstKey();
Comparable previousFirstKey = bss.firstKey;
K previousFirstKey = bss.firstKey;
if (previousFirstKey == null || nextFirstKey == null ||
previousFirstKey.compareTo(nextFirstKey) >= 0) {
// TODO remove, but if we are at the bottom of a level
@ -330,7 +331,7 @@ public class IBSkipSpan extends BSkipSpan {
* Does not call super, we always store first key here
*/
@Override
public Comparable firstKey() {
public K firstKey() {
return this.firstKey;
}
@ -339,13 +340,13 @@ public class IBSkipSpan extends BSkipSpan {
* This is called only via SkipList.find()
*/
@Override
public SkipSpan getSpan(Comparable key, int[] search) {
public SkipSpan<K, V> getSpan(K key, int[] search) {
try {
seekAndLoadData();
} catch (IOException ioe) {
throw new RuntimeException("Error reading database", ioe);
}
SkipSpan rv = super.getSpan(key, search);
SkipSpan<K, V> rv = super.getSpan(key, search);
this.keys = null;
this.vals = null;
return rv;
@ -355,7 +356,7 @@ public class IBSkipSpan extends BSkipSpan {
* Linear search if in file, Binary search if in memory
*/
@Override
public Object get(Comparable key) {
public V get(K key) {
try {
if (nKeys == 0) { return null; }
if (this.next != null && this.next.firstKey().compareTo(key) <= 0)
@ -370,13 +371,13 @@ public class IBSkipSpan extends BSkipSpan {
* Load whole span from file, do the operation, flush out, then null out in-memory data again.
*/
@Override
public SkipSpan put(Comparable key, Object val, SkipList sl) {
public SkipSpan<K, V> put(K key, V val, SkipList<K, V> sl) {
try {
seekAndLoadData();
} catch (IOException ioe) {
throw new RuntimeException("Error reading database", ioe);
}
SkipSpan rv = super.put(key, val, sl);
SkipSpan<K, V> rv = super.put(key, val, sl);
// flush() nulls out the data
return rv;
}
@ -385,7 +386,7 @@ public class IBSkipSpan extends BSkipSpan {
* Load whole span from file, do the operation, flush out, then null out in-memory data again.
*/
@Override
public Object[] remove(Comparable key, SkipList sl) {
public Object[] remove(K key, SkipList<K, V> sl) {
if (bf.log.shouldLog(Log.DEBUG))
bf.log.debug("Remove " + key + " in " + this);
if (nKeys <= 0)

View File

@ -35,11 +35,11 @@ import net.metanotion.io.Serializer;
* Will never return null.
* Added by I2P.
*/
public class IdentityBytes implements Serializer {
public class IdentityBytes implements Serializer<byte[]> {
/** @return byte[] */
public byte[] getBytes(Object o) { return (byte[])o; }
public byte[] getBytes(byte[] o) { return o; }
/** @return b */
public Object construct(byte[] b) { return b; }
public byte[] construct(byte[] b) { return b; }
}

Some files were not shown because too many files have changed in this diff Show More