57d7979d51removed obsolete code minor reorganization to help track down whats intermittently b0rking my kaffe instance logging
jrandom
2004-05-12 07:55:25 +00:00
61f6871cd1logging and a catastrophic try/catch (no situations have called for this yet, but its worth testing for)
jrandom
2004-05-12 07:47:22 +00:00
406048f7b9ugly tests to see if the minimal RAW side of SAM works (it does, w00t)
jrandom
2004-05-11 03:00:53 +00:00
6dd5b0fe45basic datagram tests (that work now :)
jrandom
2004-05-11 02:44:16 +00:00
3bab2d8957only append the client's config properties to the SESSION commands (since some of the rest get confused with unknown tags...)
jrandom
2004-05-11 02:07:27 +00:00
af2f5cd2e1kaffe shits a brick if you want the socket's address after .close() (grumble)
jrandom
2004-05-11 01:55:22 +00:00
ea9b9fbf170.3.1.1 (tastes like chicken) backwards compatible but some config changes necessary
jrandom
2004-05-07 17:52:49 +00:00
303e257841synchronization reduction and keep track of the 'last' job for each runner (to help debug something i see once a week on kaffe)
jrandom
2004-05-07 17:51:28 +00:00
07b6a8ba92if we lose our I2CP connection to the router, die hard and fast. (only relevent for people whose socket manager / i2ptunnel / etc are located remote from the router)
jrandom
2004-05-07 07:01:26 +00:00
e216e18368update the clock more liberally (since we've got the new ntp code)
jrandom
2004-05-07 04:34:03 +00:00
e57c5b4bc2log to CRIT for jbigi load failure
jrandom
2004-05-07 04:23:30 +00:00
89bc5db3e1increase the bundle probability to yet another arbitrary value add the jobId to log messages to simplify tracing individual parallel sends logging cleanup
jrandom
2004-05-07 03:28:22 +00:00
4021deec7fpoke jrandom's eyes into the semantic of an "else" clause
mihi
2004-05-07 03:10:57 +00:00
a3977f37f7javadoc, no functional changes
mihi
2004-05-07 03:06:41 +00:00
a82b951affmade private things that don't need to be public remove semantic inconsistency wrt getRemoteId(false) - it shouldn't ever timeout, since it always returns immediately javadoc (though i wish i understood the close/close2/sendClose more clearly so i could javadoc that process)
jrandom
2004-05-07 01:32:48 +00:00
997a94eeccremoved PHTTP lines since they were only used for time sync added more info wrt NTP entry added filename for the SAM bridge
jrandom
2004-05-06 07:48:45 +00:00
635535aac2implement keyfile persistence (storing name=privKeyDataBase64\n for each name) filename specified on the command line: SAMBridge [keyfile [listenHost] listenPortNum [ name=val]*]
jrandom
2004-05-06 07:35:44 +00:00
25314fd91amake sure we mark the send as *failed* if we need to reconnect
jrandom
2004-05-06 04:18:28 +00:00
9a06a5758dcheck shouldBundle only when its ready to be checked (duh)
jrandom
2004-05-06 01:02:50 +00:00
e0e7211852lets default the read timeout to 5 minutes for clients (that hanging irc disconnect / not disconnected thing)
jrandom
2004-05-05 22:57:43 +00:00
cdaeb4d176track and publish two new stats: * netDb.failedPeers (how many peers didn't reply to a lookup in time) * netDb.searchCount (how many searches we send out in a 3 hour period) probabalistically include the leaseSet of the sender in the garlic sent to a peer if the client requests it to be included (aka if they want replies). By default, this is enabled (disable by setting the I2CP prop "shouldBundleReplyInfo=false"). Also, by default the probability is 30% (w00 h00, arbitrary values!), which can be overridden via the I2CP prop "bundleReplyInfoProbability=80" (or =10, or =100, etc). The tradeoff here is quicker replies in exchange for bandwidth (the dbStore). Yeah, it'd be nice if there were something keeping track of which leaseSet each client sent to each peer so that it could explicitly include it only if it were necessary, but for now that's probably overkill.
jrandom
2004-05-05 22:46:10 +00:00
07aa2e280dstrip the Connection, Keep-Alive, and Proxy-Connection headers, and always inject Connection: close (this is the cause of the intermittent "view $page through squid, try to view eepsite, end up requesting through squid" bug)
jrandom
2004-05-05 07:29:48 +00:00
6c4bc67ff3simplistic streaming test (w00t, the streams worked - no mods necessary. go human, its your birthday, go human, its your birthday)
jrandom
2004-05-05 04:43:05 +00:00
59aec9d289expose the read timeout for the client and put the default read timeout back to -1 for the server (override via command line, etc)
jrandom
2004-05-05 03:36:18 +00:00
451f4c503dfixed typo on timestamper, keep NetMonitor off by default
jrandom
2004-05-05 01:32:08 +00:00
cd82089d4dupgrade deprecated argument fix ze german (duck)
duck
2004-05-04 17:17:10 +00:00
3db8b63cdeby default, set the readTimeout to 3 minutes, NOT infinity. Overridable as before (setting the timeout to -1) add a unique id to the server thread
jrandom
2004-05-04 08:16:41 +00:00
6edf5d1e4fadd a unique id to the thread names
jrandom
2004-05-04 08:15:18 +00:00
a23fa6faddallow multiple concurrent connections to be created added a unique ID to more threads
jrandom
2004-05-04 08:14:19 +00:00
691326cea8make sure we kill the threads that failed to ACK, rather than leave them sitting there, waiting forever logging
jrandom
2004-05-04 08:09:28 +00:00
3cac1238edhandle reclose, logging, more clear notification
jrandom
2004-05-04 05:53:11 +00:00
b04512a4f6add unique IDs to the threads for easier tracing
jrandom
2004-05-04 04:46:04 +00:00
3a4d0549aaadd accept timeouts (default is that if the server doesnt .accept() in 5s, refuse the con) add unique IDs to the various threads for logging / tracing purposes
jrandom
2004-05-04 04:44:05 +00:00
d7467f5dc3disconnect isn't an error
jrandom
2004-05-04 01:58:37 +00:00
141902b86dparseParams throws exception on bad formatting, and its perfectly valid to have params with 0 values (e.g. DEST GENERATE\n)
jrandom
2004-05-04 01:35:09 +00:00
5aa680fc93simple test of whether DEST GENERATE works
jrandom
2004-05-04 01:32:39 +00:00
a790117f5atest the naming commnads (fetching ME, a known host, and an unknown host)
jrandom
2004-05-04 01:11:44 +00:00
2156f4c2f3* more verbose errors (include MESSAGE data on the I2P_ERROR reply, not just in the log) * don't create excess I2PAppContexts (if any old context will do, use the global) keep track of keys per spec (when DESTINATION=blah, create (or reuse) the destination private keys). we still need to persist this data though. * the DESTINATION in the SESSION STATUS is now the same as the one sent in the SESSION CREATE, /not/ the base64 of the private key, per spec * enum is a reserved word in 1.5, so s/enum/names/ for future compatability * logging
jrandom
2004-05-03 11:34:38 +00:00
2585460286initial tests for HELLO and create session (style=stream). covers the basics, but doesn't cover a single normal scenario yet
jrandom
2004-05-03 11:16:59 +00:00
1b4af66986flag as closed /after/ we send the disconnect message *cough*
jrandom
2004-05-03 11:13:44 +00:00
2bfbe1ca27logging (toss a unique ID onto the handler / inactivity threads)
jrandom
2004-05-03 03:36:38 +00:00
60584228d9refactored packet handling into type specific methods removed nested synchronization (which had been causing undetected deadlocks) made sync blocks smaller, though this may have opened holes related to resent ACK/SYN/CLOSE packets that are delivered in a race. I'm not as fluent in the ministreaming lib code as i should be (yet), but duck's thread dumps were showing hundreds of threads waiting on a lock that'll never get released (since the only way to release it would be to receive another packet, and no more packets can be received until the lock is released, etc) also, I2PSession is threadsafe - i can see no reason to synchronize on it (and it was being synchronized on only part of the time?) also, refactored the charset encoding stuff and minor log tweaking i've been testing this for the last hour or so, on eepsites and squid (large and small files), as well as irc, and there haven't been any glitches. but it needs more testing before it can be released, obviously.
jrandom
2004-05-03 03:34:25 +00:00
44e34f7b11trim the request line (StringTokenizer w/ " " as a delim doesn't include \n as a delim, etc)
jrandom
2004-05-02 07:50:20 +00:00
7912050647allow overriding the I2CP port/host
jrandom
2004-05-02 07:49:22 +00:00
2231abd407default the DIRECTION to BOTH for streams
jrandom
2004-05-02 07:07:25 +00:00
8244bdb440include the timestamper (and fire the client on startup, using a pair of arbitrary NTP hosts - to be configured later)
jrandom
2004-05-02 05:11:06 +00:00
bc3b7ffd86start the admin listener ASAP (right after reading the config) fire the LoadClientAppsJob right after the admin listener is booted, which now includes support for the onBoot property (which causes the client to run immediately, instead of waiting 2+ minutes) (yeah, it'd suck if all routers started up, tried to connect to people, got shitlisted, then 2 minutes later got the right NTP time, 'eh?)
jrandom
2004-05-02 05:02:10 +00:00
e22cb62493handle /setTime?blah&now=yyyyMMdd_HH:mm:ss.SSSS (updating the router's clock) yes, we'll want to filter the access to the admin manager ;)
jrandom
2004-05-02 04:46:52 +00:00
e923aa1f72add the timestamper
jrandom
2004-05-02 04:29:18 +00:00
74209e26070.3.1 (backwards compatible, still testnet, release later this evening)
i2p_0_3_1
jrandom
2004-04-30 23:04:13 +00:00
1a38271104made the event name more consistent
jrandom
2004-04-30 23:01:35 +00:00
e5ab5d6a5anew stat: client.sendAckTime containing the average time to get an ack for a client message send this stat is published in the netDb, but the quantity fields (how many acks the stat is averaged over) is h4x0red (it always reads "666", since otherwise it'd be fairly easy to identify what routers run servers, and i can live without knowing the quantity)
jrandom
2004-04-30 07:56:05 +00:00
2745ff727fdon't include a peer by default
jrandom
2004-04-30 07:16:30 +00:00
24ea383937don't harvest so much data
jrandom
2004-04-30 07:15:29 +00:00
9cb11d4d5fallow some overrides that the ExploreJob needs logging
jrandom
2004-04-30 07:14:26 +00:00
7202ea3340dont dieFatal() if the first leaseSet lookup fails (this was the cause of those "fast fail" errors [bugId=69]) try up to 6 times to search (or until the expiration, etc) logging
jrandom
2004-04-30 07:11:41 +00:00
e246cd37ddsimple exponential decay on the exploration (min/max frequency=1m/30m, doubling every time we don't find something new) reduce the bredth and duration of explorations republish less often (every 60s send out one random one [or however many explicit ones]) logging
jrandom
2004-04-30 07:08:25 +00:00
0a4ddedac9be more forgiving of slow connections (and fix my math in the comments)
jrandom
2004-04-30 07:03:13 +00:00
0e4b80b002make sure we only try to request from people we know about (*cough*)
jrandom
2004-04-30 07:02:16 +00:00
a460a0dc44logging, and be more forgiving if the guaranteed/failed comes back before the ack does
jrandom
2004-04-30 07:00:13 +00:00
f7212112b8mark the ping datapoint before actually sending it, for those instances where a reply can be sent back faster than the ACK of the send
jrandom
2004-04-30 06:58:42 +00:00
86d55b32a6include the (redundant) rtt in the output file to let tools that dont know how to combine columns do so *cough*
jrandom
2004-04-30 06:56:25 +00:00
4b0d1aac15only read from or write to disk if necessary
jrandom
2004-04-27 08:47:48 +00:00
fb7c06aa01throw in a 10 second pause between starting up each router to try and avoid too much synchronicity
jrandom
2004-04-27 08:47:00 +00:00
5c41be3470only read from or write to disk if there is new data to transfer (and set the file modification date to the 'published on' date in the netDb object)
jrandom
2004-04-27 08:44:23 +00:00
70faecb8b5handle the UnsignedInteger's new "IllegalArgumentException on negative" policy
jrandom
2004-04-27 08:33:15 +00:00
237f278479we only need to reread it if its been updated, dimwit.
jrandom
2004-04-27 08:31:56 +00:00
e766a00a12dont be such a reuse zealot and just fscking optimize the use case (aka shift instead of creating heavyweight BigInteger objects) plus some good ol' caching and gc churn reduction
jrandom
2004-04-27 08:30:55 +00:00
ea03637ec1cache the hashCode and getBytes data, significantly reducing the contention on these objects
jrandom
2004-04-27 08:28:16 +00:00
5bf1658d9adont go into an infinite loop if we shut down before the log manager was fully created (since the appContext creates a log manager if one doesn't exist, and that create will fail if we're shutting down, and it'll create a log manager to log the fact that its failing, etc)
jrandom
2004-04-26 03:32:59 +00:00
4ce9fb5b5anew MultiRouter (allows you to fire up mutliple routers in the same JVM) new VMCommSystem (useful for running large multirouter instances) new MultiRouterBuilder (helper app for setting up a MultiRouter simulator) updates to the router to handle multiple routers in the same VM, as well as deal with the multiple OOM listener stuff see the javadocs for info on the MultiRouter and MutliRouterBuilder (yeah, its not ready for prime time, and its really just for the simulator, so I'm not sure if anyone else is going to use it anyway ;)
jrandom
2004-04-26 03:30:20 +00:00
f80f02da73use the context to find a location for the sessionKeys.dat file (router.sessionKeys.location=filename in router.config)
jrandom
2004-04-26 01:09:10 +00:00
1ad6dde146allow a whole set of OOM listeners on threads, not just one cache the hash's base64 value too use the context's logging more logging updates
jrandom
2004-04-26 00:57:10 +00:00