95a7938328
reduce the max slice time (aka max time to pump out a message + some cleanup) to 60 seconds
...
close connections to peers who are so slow that they leave messages on the queue to expire
reduce the default max queue size per connection to 10 messages
(as always, this is a configurable param, via "i2np.tcp.maxQueuedMessages" in router.config)
2004-06-20 00:44:43 +00:00
baedcdb2c1
handle situations where people dont specify a client name for a client app
2004-06-20 00:40:16 +00:00
bc06b3671a
whenever a tunnel completes, log how many messages we passed through it in the stats:
...
tunnel.inboundMessagesProcessed
tunnel.outboundMessagesProcessed
tunnel.participatingMessagesProcessed
(for the various tunnel types)
2004-06-20 00:35:52 +00:00
a9172811ca
reduce the grace period from 5 to 2 minutes, which will cause us to test peers more often
...
also add some logging (log level == debug will display why we mark a peer as failing)
2004-06-20 00:31:20 +00:00
91b1fd6d07
InNetMessage now needs a reference to a context, so give it one
2004-06-20 00:26:05 +00:00
bab7b8b9ed
discard the payload of a message ASAP (even though we may need to hang on to the message for a while, for its replyJob, etc)
...
take note of the fact that the tunnel had activity
minor logging and formatting updates
2004-06-20 00:24:06 +00:00
1b7fb96ca8
dont expose a method we dont need to expose
2004-06-20 00:19:38 +00:00
6d84b8c02f
1) use cachedXor to cut down on the, uh, xor-ing (which involves at least one new byte[32])
...
2) implement an optimized 'should contain' algorithm, rather than being a wuss and building + comparing a BigInteger of the xor.
3) more unit tests
this stuff is called a *lot*, since we need to pick what bucket things go in all the time.
2004-06-20 00:18:28 +00:00
3e3749f011
added some unit tests (adding the local key (delta == 0x00) and adding 1000 random keys, all making sure nothing b0rks)
2004-06-20 00:13:05 +00:00
52384fb3a5
persist the local router's info @ netDb/my.info in addition to under netDb/routerInfo-$hash.dat
...
this makes it easy for harvesting with simulations
2004-06-20 00:11:23 +00:00
e401670087
i like logging, dont you like logging?
2004-06-20 00:08:59 +00:00
ae0b4c59cc
include the port # in the thread name, and logging
2004-06-20 00:07:37 +00:00
0a8dc8afcc
logging, its whats for dinner
2004-06-20 00:06:33 +00:00
d59b94df66
logging, deal with times when a client doesnt have a destination yet
2004-06-20 00:05:30 +00:00
e28502454b
include the port in the thread name (useful for the sim)
2004-06-20 00:03:45 +00:00
bbf73f0937
enforce some sanity checks on the payload size. see recent rant in DatabaseSearchReplyMessage commit for why
...
this is necessary.
2004-06-19 23:58:24 +00:00
592519c45c
somehow some people are getting situations where the payload doesnt decompress. wtf?
...
do i need to wrap the Input/Output streams we use to pipe data over the net with a verification wrapper for the messages?
e.g. prefix the serialization of all I2NPMessages sent on the wire with the SHA256 of that serialization and verify on read?
Ho hum, dunno. maybe its something else, but the ElG/AES+SessionTag already has integrity verification so the only thing I can
think of is a checksum error that got past TCP's checking and corrupted the AES stream.
2004-06-19 23:56:41 +00:00
cc904ba9dc
use new SessionConfig constructor
2004-06-19 23:46:08 +00:00
1679ba6719
so this String.getBytes(), its inefficient? you don't say...
...
(yeah, i know, this optimization takes advantage of the fact that the data in question uses single byte charsets)
2004-06-19 23:41:55 +00:00
07fadd4a6c
avoid string.getBytes like the plague
2004-06-19 23:40:03 +00:00
57e1ff39e0
new method: cachedXor which, suprisingly, determines the xor of a hash against another hash, caching up to a certain number of values
...
currently uses an essentially random ejection policy, but this saves a lot of temporarly memory churn, since we xor many hashes against a router/destination's key
2004-06-19 23:35:43 +00:00
51e259c198
avoiding the String.getBytes() since its a bitch on gc (measured for this situation)
2004-06-19 23:32:41 +00:00
de334b003d
for safety, always create a session config with a destination
2004-06-19 23:30:57 +00:00
a61ff12390
more microoptimizations, whee!
2004-06-19 23:28:12 +00:00
f4697be159
just a simple catch all for OOM while handling an OOM (naw, we dont recurse too much (just a little))
2004-06-19 23:25:47 +00:00
3835fe3960
give the shutdown hook thread a name
2004-06-19 23:13:09 +00:00
76c374ef06
more accurate memory usage to reduce gc churn
2004-06-19 23:11:42 +00:00
57d24bd948
read the logger.config when its been updated, even if we dont have any log messages to write out (duh)
...
also, a micro-optimization for charset handling identified through profiling
2004-06-19 23:02:59 +00:00
deff14dfd8
lets see if this fixes bug 66 ( http://dev.i2p.net/bugzilla/show_bug.cgi?id=66 )
2004-06-13 20:27:44 +00:00
0a479be370
include NAME=val in failed lookup replies (per spec - thanks nightblade)
...
fixes http://dev.i2p.net/bugzilla/show_bug.cgi?id=79
2004-06-13 20:19:16 +00:00
ba6a2e3fd2
unit test for the bandwidth limiting functionality (TrivialBandwidthLimiter, BandwidthLimiter, BandwidthLimited{In,Out}putStream)
2004-06-13 20:03:21 +00:00
c3a395a41e
update the bandwidth limiter config properties
2004-06-13 19:59:44 +00:00
a3136a19e9
big ol' rewrite, requiring new config settings and, er, it works pretty well.
...
see router.config.template mods and the new unit tests.
this implementation can cause starvation -
e.g. lots of 1KB writes will go through before a 32KB write if the queue is low and the bwlimiter only replenishes say, 16KBps
another impl would enforce a FIFO through thread wait/notify, etc, but would have the related overhead.
i dont know whether starvation situations will be the norm or the exception. i'm running this on a few routers so we'll see.
2004-06-13 19:56:57 +00:00
b631568003
deal with null routers
2004-06-13 19:48:23 +00:00
1d0c03eca4
use the router context's properties (which now include the config settings)
2004-06-13 19:47:44 +00:00
eb30525a26
deal with null routers (useful for testing)
2004-06-13 19:47:02 +00:00
3e66ea3f56
include the router's config in the property settings
2004-06-13 19:45:53 +00:00
9f1189e606
use a bandwidth limited stream instead of asking for the allocation of the entire buffer at once (since, uh, its not likely that the bandwidth limiter will ever have hundreds of KBytes available for use)
2004-06-13 19:39:42 +00:00
698927bed4
logging
2004-06-13 19:37:18 +00:00
8fd02ee8dd
allow the stream to optionally pull from the output stream's bandwidth limit queue (useful in very strange situations)
2004-06-13 19:36:41 +00:00
f3154e8f5e
buffer between the bandwidth limiter and the raw stream
2004-06-13 19:34:46 +00:00
878af163a9
handle null boolean value (legal, but not in this context), fixes bug reported by nickster
2004-06-13 19:32:58 +00:00
da8341d014
reduced buffer size and updated domain name reference (dev.i2p.net, not i2p.dyndns.net)
2004-06-13 19:31:22 +00:00
95c33e88ed
handle decompress error by propogating the IOE (thanks nickster for bug report)
2004-06-13 19:30:31 +00:00
fed8369a5f
big rewrite of how we load the native implementation:
...
- the old method is default: it looks for jbigi.dll / libjbigi.so in the current dir (and library path)
- otherwise, you can specify -Djbigi.impl=blah and if there is a file called "blah" in the classpath (including any jar file), it will load that file as a native implementation
there are lots more javadocs now as well, and the dependency upon Log was removed (so anyone else who wants to use this just needs NativeBigInteger.java and the jbigi implementation)
2004-06-12 20:08:32 +00:00
d85806e3d5
added ferret.i2p
...
(duck)
2004-06-09 20:06:17 +00:00
097660ce53
Round-robin DNS NTP pool makes sense as default
...
Discussed at http://www.i2p.net/node/view/226 (thanks Nightblade)
(duck)
2004-06-09 14:30:26 +00:00
b08cfbbb35
we now have a website & eepproxy is launched automatically
...
(duck)
2004-06-09 14:27:51 +00:00
97ee3c47a0
added anonynanny.i2p
...
(duck)
2004-06-01 16:57:09 +00:00
05918de6ab
fix bug #75
...
the databuffer is reused so it might contain junk, therefore only use the
available amount of bytes
(duck)
2004-05-26 12:25:04 +00:00