Nick Mathewson [Fri, 19 Oct 2007 16:41:32 +0000 (16:41 +0000)]
r15961@catbus: nickm | 2007-10-19 12:40:15 -0400
Learn the difference between "mismatched vote digest" and "mismatched vote times": the latter is more informative.
Nick Mathewson [Fri, 19 Oct 2007 02:15:47 +0000 (02:15 +0000)]
r15939@catbus: nickm | 2007-10-18 22:14:15 -0400
Remember the valid-until time of the most recent consensus that listed
a router, and (if we are a cache) never delete the routerdesc until
that conensus is expired. This is way easier than retaining multiple
consensuses. (Of course, the info isn't retained across restarts,
but that only affects a few caches at a time.)
Peter Palfrader [Fri, 19 Oct 2007 00:29:16 +0000 (00:29 +0000)]
Call routers_update_all_from_networkstatus() from router_reload_consensus_networkstatus() so that we warn about old versions when we startup Tor, not when we fetch the next consensus document
Nick Mathewson [Thu, 18 Oct 2007 19:51:14 +0000 (19:51 +0000)]
r15934@catbus: nickm | 2007-10-18 15:32:56 -0400
When we have plenty of directory information, don't try to launch descriptor downloads quite so eagerly.
Nick Mathewson [Thu, 18 Oct 2007 14:58:45 +0000 (14:58 +0000)]
r15919@catbus: nickm | 2007-10-18 10:57:47 -0400
Add a log message to router_remove_old_routers to try to figure out why peacetime has such a big cache.
Nick Mathewson [Thu, 18 Oct 2007 14:27:42 +0000 (14:27 +0000)]
r15915@catbus: nickm | 2007-10-18 10:26:44 -0400
Stop incessant notices about when we think the expected valid-after time should be, if we are not an authority.
Nick Mathewson [Thu, 18 Oct 2007 14:19:56 +0000 (14:19 +0000)]
r15907@catbus: nickm | 2007-10-18 10:18:53 -0400
Fix up logic for choosing the time at which to download a consensus: Never attempt it when the current consensus is still the most recent.
Nick Mathewson [Thu, 18 Oct 2007 11:50:20 +0000 (11:50 +0000)]
r15899@catbus: nickm | 2007-10-18 07:49:15 -0400
"if (!router_get_trusted_dirservers())" is a bad test: router_get_trusted_dirservers() always returns a list. Instead, check for whether the list is empty.
Nick Mathewson [Wed, 17 Oct 2007 21:47:28 +0000 (21:47 +0000)]
r15891@catbus: nickm | 2007-10-17 17:46:40 -0400
Apply changes to rend-spec.txt from Karsten's proposal-114 work. Points that need to be clarified are marked with a [XXXX].
Nick Mathewson [Wed, 17 Oct 2007 21:26:22 +0000 (21:26 +0000)]
r15887@catbus: nickm | 2007-10-17 17:25:32 -0400
When a networkstatus consensus download fails, do not wait 60 seconds to decide whether to retry. (Also, log the time at which we'll try to replace the current networkstatus.)
Nick Mathewson [Wed, 17 Oct 2007 19:23:56 +0000 (19:23 +0000)]
r15882@catbus: nickm | 2007-10-17 15:23:05 -0400
oprofile was telling me that a fair bit of our time in openssl was spent in base64_decode, so replace base64_decode with an all-at-once fairly optimized implementation. For decoding keys and digests, it seems 3-3.5x faster than calling out to openssl. (Yes, I wrote it from scratch.)
Nick Mathewson [Wed, 17 Oct 2007 16:55:44 +0000 (16:55 +0000)]
r15877@catbus: nickm | 2007-10-17 12:54:56 -0400
Make unverified-consensus get removed when it is accepted or rejected. Make a new get_datadir_fname*() set of functions to eliminate the common code of "get the options, get the datadir, append some stuff".
Nick Mathewson [Mon, 15 Oct 2007 23:44:32 +0000 (23:44 +0000)]
r15809@catbus: nickm | 2007-10-15 19:44:13 -0400
Do not call the more interesting parts of routers_update_all_from_networkstatus if there is no live networkstatus.
Nick Mathewson [Mon, 15 Oct 2007 23:15:24 +0000 (23:15 +0000)]
r15806@catbus: nickm | 2007-10-15 19:14:57 -0400
Implement v3 networkstatus client code. Remove v2 networkstatus client code, except as needed for caches to fetch and serve v2 networkstatues and the routers they list.
Nick Mathewson [Mon, 15 Oct 2007 14:59:48 +0000 (14:59 +0000)]
r15781@catbus: nickm | 2007-10-15 10:59:26 -0400
Make discard_old_votes part of the consensus publishing process, so we conform to spec, and so we avoid a weird bugs where publishing sets the consensus, setting the consensus makes us reschedule, and rescheduling makes us delay vote-discarding.
Nick Mathewson [Sun, 14 Oct 2007 00:13:06 +0000 (00:13 +0000)]
r15750@catbus: nickm | 2007-10-13 20:06:47 -0400
Eventually delete the obsolete cached-routers and cached-routers.new files, so they don't sit around on disk forever.
Roger Dingledine [Sat, 13 Oct 2007 22:31:35 +0000 (22:31 +0000)]
Stop publishing a new server descriptor just because we HUP or
when we find our DirPort to be reachable but won't actually publish
it. Extra descriptors without any real changes are dropped by the
authorities, and can screw up our "publish every 18 hours" schedule.
Nick Mathewson [Fri, 12 Oct 2007 21:33:39 +0000 (21:33 +0000)]
r15732@catbus: nickm | 2007-10-12 17:28:24 -0400
Start roughing out the functions that we'll use to replace the old ugly v2 networkstatus manipulation code".
Nick Mathewson [Thu, 11 Oct 2007 21:40:35 +0000 (21:40 +0000)]
r15703@catbus: nickm | 2007-10-11 17:30:34 -0400
Fix for the reported case of bug 438: check families as well as identities in circuit_find_to_cannibalize(). Code audit still pending. ;)
Nick Mathewson [Thu, 11 Oct 2007 20:45:26 +0000 (20:45 +0000)]
r15689@catbus: nickm | 2007-10-11 16:40:25 -0400
Fix bug 451. This was a nasty bug, so let's fix it twice: first, by banning recursive calls to connection_handle_write from connection_flushed_some; and second, by not calling connection_finished_flushing() on a closed connection. Backport candidate.
Nick Mathewson [Thu, 11 Oct 2007 18:01:12 +0000 (18:01 +0000)]
r14892@Kushana: nickm | 2007-10-11 14:00:33 -0400
Fix a bunch of XXX020s: treat some 403s as INFO severity; remove some dead code; share the retry path for consensus routerdescs that are also listed in the v2 networkstatus; check even more aspects of votes when parsing them.
Nick Mathewson [Thu, 11 Oct 2007 16:06:47 +0000 (16:06 +0000)]
r14886@Kushana: nickm | 2007-10-11 11:02:53 -0400
Move prototypes around in or.h so that the functions from routerlist.c which moved to networkstatus.c are all grouped in the right section.