Nick Mathewson
eed888a2b7
r13927@catbus: nickm | 2007-07-26 17:26:49 -0400
...
Fix router_choose_by_bandwidth to no longer be biases by floating-point roundoff issues. This runs through the list of routers yet another time, and uses an additional bitfield, but this should be okay: the function did not appear in profiles before, and shouldnt start appearing now.
svn:r10939
2007-07-26 21:26:57 +00:00
Nick Mathewson
6c4864f351
r13924@catbus: nickm | 2007-07-26 16:46:45 -0400
...
We can have multiple authority certificates for an authority at a time: make the code reflect that.
svn:r10937
2007-07-26 20:49:04 +00:00
Nick Mathewson
fb2f3c035b
r13921@catbus: nickm | 2007-07-26 16:26:48 -0400
...
Code to add signatures to a pending consensus directory.
svn:r10936
2007-07-26 20:26:59 +00:00
Nick Mathewson
83fa843663
r13900@catbus: nickm | 2007-07-25 16:16:30 -0400
...
Better fix for GCC 4.2 warning on routerlist.c
svn:r10925
2007-07-25 22:56:34 +00:00
Roger Dingledine
5190916670
free a small static string on exit.
...
svn:r10902
2007-07-22 06:32:28 +00:00
Roger Dingledine
e96d807db4
Revert part of r10874, since it was breaking our load balancing
...
(we always picked one router past the one we wanted!) and could
conceivably read past the end of the smartlist too.
Nick, I don't know what gcc 4.2 was worried about, but we need
to find a better fix than this. :)
svn:r10901
2007-07-22 04:36:33 +00:00
Roger Dingledine
6fc336d217
handle fetching bridge descriptors from the bridge authority too.
...
svn:r10898
2007-07-22 00:16:48 +00:00
Nick Mathewson
bbbf504281
r13827@catbus: nickm | 2007-07-19 14:42:25 -0400
...
Merge in some generic address manipulation code from croup. Needs some work.
svn:r10880
2007-07-19 18:46:09 +00:00
Nick Mathewson
5e6f05bc31
r13822@catbus: nickm | 2007-07-18 16:43:39 -0400
...
Tweak a couple of loop-related variables to make the gcc 4.2 -Wstrict-overflow warning happy.
svn:r10874
2007-07-18 20:46:14 +00:00
Nick Mathewson
d920683718
r13821@catbus: nickm | 2007-07-18 16:29:17 -0400
...
Initial code to manipulate vote timing correctly.
svn:r10873
2007-07-18 20:46:12 +00:00
Peter Palfrader
3052bf6a84
Change routerlist_remove to not take an index argument we do not need anyway.
...
Now the only remaining caller of _routerlist_find_elt is an assert()
svn:r10869
2007-07-18 14:02:47 +00:00
Roger Dingledine
50487c249d
timeout and retry schedules for fetching bridge descriptors
...
svn:r10867
2007-07-18 10:06:03 +00:00
Roger Dingledine
98ce45bebf
Backport candidate:
...
Fix a potential crash bug when we load many server descriptors at
once and some of them make others of them obsolete. Fixes bug
458. [Bugfix on 0.1.2.x]
svn:r10832
2007-07-16 00:11:03 +00:00
Roger Dingledine
5ab3f49d93
backport candidate: fix a memory leak from r9039 which had us leaking
...
50ish bytes every time we rebuild the cached-router files.
svn:r10830
2007-07-15 08:34:32 +00:00
Peter Palfrader
2ce1cb22bd
Comment one tor_assert
...
svn:r10820
2007-07-12 17:37:47 +00:00
Roger Dingledine
ef6bc1a451
Keep streamids from different exits on a circuit separate. This
...
bug may have allowed other routers on a given circuit to inject
cells into streams. Reported by lodger; fixes bug 446. [Bugfix
on 0.1.2.x]
svn:r10818
2007-07-12 17:09:19 +00:00
Nick Mathewson
656b7761a8
r13730@catbus: nickm | 2007-07-12 12:32:40 -0400
...
Patch from lodger: avoid roundoff-error-induced crash bugs when picking routers by bandwidth.
Also, remove listed backports for 0.1.2.x; that list is now in TODO.012
svn:r10812
2007-07-12 16:34:45 +00:00
Peter Palfrader
9ed261cd6a
In router_add_to_routerlist() only call router_have_minimum_dir_info() under some circumstances, not always
...
svn:r10799
2007-07-12 15:57:23 +00:00
Peter Palfrader
db3a4bf897
Call router_have_minimum_dir_info() at the beginning of router_add_to_routerlist() since it has side effects
...
svn:r10754
2007-07-06 21:21:09 +00:00
Peter Palfrader
39b1a11f8d
Remove two arguments from routerlist_replace(). idx, which is
...
the old router's index in the routerlist, can be gotten from the
old routerinfo itself anyway, and make_old always was true.
(There only is one caller of routerlist_replace())
svn:r10753
2007-07-06 18:40:39 +00:00
Nick Mathewson
e6ba07f8f5
r13634@catbus: nickm | 2007-07-06 14:20:50 -0400
...
Fix a crash bug (*the* crash bug?) on authorities. Backport candidate.
svn:r10752
2007-07-06 18:20:54 +00:00
Peter Palfrader
64f4cff192
I so wonder how this blows up on the real network - make _routerlist_find_elt be strict about the idx it is passed - if it is not -1 then it has to be correct
...
svn:r10727
2007-07-02 20:17:12 +00:00
Peter Palfrader
d071df748a
If we want to be more strict in _routerlist_find_elt I better call it properly
...
svn:r10726
2007-07-02 20:04:26 +00:00
Peter Palfrader
ccefd7404e
Don't get private with smartlists when there's a perfectly fine accessor method for num_used
...
svn:r10724
2007-07-02 19:45:44 +00:00
Peter Palfrader
ea1348360e
Three more assertions which hopefully are sane, Nick? They might help track down #417 .
...
svn:r10720
2007-07-02 15:13:52 +00:00
Roger Dingledine
2cd293dc8f
now we can specify a bridge without specifying its key,
...
and we will still connect to it and use it. getting closer!
svn:r10609
2007-06-15 06:01:04 +00:00
Roger Dingledine
3d641bde0e
Refine r10571: more work on bridge stuff.
...
- Only listen to responses for "authority" fetches if we're configured
to use Bridges. Otherwise it's safe (and maybe smarter) to silently
discard them like we used to.
- React faster to download networkstatuses after the first bridge
descriptor arrives.
- Don't do dir fetches before we have any bridges, even when our
dirport is open.
svn:r10604
2007-06-15 02:12:15 +00:00
Nick Mathewson
9a74e881ef
r13413@catbus: nickm | 2007-06-13 18:44:28 -0400
...
Non-static inline functions cant talk about static variables.
svn:r10599
2007-06-13 22:44:30 +00:00
Roger Dingledine
af658b7828
More work towards making bridge users able to connect via bridges:
...
- demand options->Bridges and options->TunnelDirConns if
options->UseBridges is set.
- after directory fetches, accept descriptors that aren't referenced by
our networkstatuses, *if* they're for a configured bridge.
- delay directory fetching until we have at least one bridge descriptor.
- learn how to build a one-hop circuit when we have neither routerinfo
nor routerstatus for our destination.
- teach directory connections how to pick a bridge as the destination
directory when doing non-anonymous fetches.
- tolerate directory commands for which the dir_port is 0.
- remember descriptors when the requested_resource was "authority",
rather than just ignoring them.
- put bridges on our entry_guards list once we have a descriptor for them.
When UseBridges is set, only pick entry guards that are bridges. Else
vice versa.
svn:r10571
2007-06-12 09:17:23 +00:00
Peter Palfrader
c0b28adc65
Resetting the correct stats
...
svn:r10569
2007-06-12 01:09:53 +00:00
Nick Mathewson
a21381affa
r13364@catbus: nickm | 2007-06-11 20:15:53 -0400
...
Stop assuming that desc_by_eid_map works: in fact, it kinda doesn't. Add a big comment explaining why.
svn:r10567
2007-06-12 00:15:55 +00:00
Nick Mathewson
367a77459a
r13355@catbus: nickm | 2007-06-11 18:19:34 -0400
...
Make all the digestmaps inside routerlist_t use the new typechecking wrappers, so we can catch any more bugs like the one fixed by 10561. This turned up a bug in routerlist_remove: we were extracting a routerinfo_t from desc_digest_map. Fix that too, though it was probably harmless, since we were only doing a pointer comparison with it.
svn:r10563
2007-06-11 22:19:40 +00:00
Nick Mathewson
bde82e737b
r13352@catbus: nickm | 2007-06-11 17:42:45 -0400
...
Since desc_by_eid_map hold server descriptors, do not add routerinfo_ts. Bug found by weasel
svn:r10561
2007-06-11 21:42:48 +00:00
Peter Palfrader
e91cab20dd
Reorder routerlist_assert_ok() and routerlist_check_bug_417(), so if the assert_ok triggers we know that our bug_417 is wrong
...
svn:r10560
2007-06-11 19:46:23 +00:00
Roger Dingledine
04995f197d
more building blocks towards being able to fetch bridge descriptors
...
svn:r10548
2007-06-10 07:34:21 +00:00
Nick Mathewson
2bb7005481
r13317@catbus: nickm | 2007-06-08 14:39:59 -0400
...
bugfix: we were undercounting the number of authorities that recommended any given version by 1. Backport candidate.
svn:r10537
2007-06-08 18:41:19 +00:00
Nick Mathewson
1866ad3506
r13274@catbus: nickm | 2007-06-05 19:06:30 -0400
...
Remove some deadcode that seems unlikely to return
svn:r10509
2007-06-06 04:51:25 +00:00
Nick Mathewson
23ae5976f3
r13254@catbus: nickm | 2007-06-04 20:13:47 -0400
...
When choosing a guard, weight by bandwidth. Resolves bug 440.
svn:r10493
2007-06-05 00:15:00 +00:00
Nick Mathewson
bb6f53d60c
r13243@catbus: nickm | 2007-06-04 15:17:15 -0400
...
Start of code to compute consensus network-status stuff from a bunch of votes. Strangely, it does not yet feel like an enormous ugly hack.
svn:r10489
2007-06-04 19:19:01 +00:00
Nick Mathewson
8400cecb1d
r13148@catbus: nickm | 2007-06-02 10:24:20 -0400
...
Fix bug 441, 442, and possibly 417 (again).
svn:r10449
2007-06-02 14:24:23 +00:00
Nick Mathewson
2ef3e7853b
r13144@catbus: nickm | 2007-06-02 08:44:42 -0400
...
Add some asserts to catch double-insert on routerlist.
svn:r10445
2007-06-02 12:44:57 +00:00
Nick Mathewson
5b6d7f10f3
r13143@catbus: nickm | 2007-06-01 16:43:40 -0400
...
Try to fix some mipspro compiler warnings. There will still be some left.
svn:r10444
2007-06-02 12:44:54 +00:00
Nick Mathewson
f89a3b1448
r13050@catbus: nickm | 2007-05-29 13:31:11 -0400
...
Resolve all but 3 DOCDOCs.
svn:r10393
2007-05-29 17:31:13 +00:00
Nick Mathewson
63035cdb33
r13041@catbus: nickm | 2007-05-29 10:40:05 -0400
...
More messing around to try to address possible root causes of bug 436.
svn:r10388
2007-05-29 14:41:20 +00:00
Roger Dingledine
0c047b87f5
polish r9933-r9994
...
svn:r10335
2007-05-25 19:41:31 +00:00
Nick Mathewson
a312afd67e
r12936@catbus: nickm | 2007-05-24 14:12:34 -0400
...
Review XXXX comments without a version; upgrade some to XXXX020.
svn:r10315
2007-05-24 18:12:52 +00:00
Nick Mathewson
4c6398a8f0
r12918@catbus: nickm | 2007-05-24 12:52:40 -0400
...
Make reset_download_failures() reset extrainfo download status too.
svn:r10306
2007-05-24 17:13:02 +00:00
Nick Mathewson
d0a5c4f984
r12915@catbus: nickm | 2007-05-24 12:12:34 -0400
...
Do not send a warning when somebody uploads an extrainfo that we will reject, if it happens to be newer than our current routerdesc.
svn:r10303
2007-05-24 17:12:54 +00:00
Nick Mathewson
9e0acc0c11
r12899@catbus: nickm | 2007-05-22 13:51:26 -0400
...
Extract common code from networkstatus_getinfo_helper_single() and generate_v2_networkstatus().
svn:r10294
2007-05-22 17:58:30 +00:00
Nick Mathewson
c9fa4e6583
r12898@catbus: nickm | 2007-05-22 13:11:04 -0400
...
More v3 directory code: have authorities load certificates; have everybody store certificates to disk and load them; provide a way to configure v3 authorities.
svn:r10293
2007-05-22 17:58:25 +00:00
Nick Mathewson
6975a093e9
r12853@catbus: nickm | 2007-05-22 11:36:54 -0400
...
Make connection_array into a smartlist.
svn:r10292
2007-05-22 15:49:14 +00:00
Nick Mathewson
4ec5e139c8
r12850@catbus: nickm | 2007-05-21 22:20:42 -0400
...
Partial backport candidate: do not rely on finding a \0 after an mmaped() router/extrainfo file. Also, set journal length correctly when starting up.
svn:r10248
2007-05-22 02:20:52 +00:00
Nick Mathewson
d23cb33a1a
r12846@catbus: nickm | 2007-05-21 21:55:15 -0400
...
Oops; it is possible to have an empty store.
svn:r10247
2007-05-22 01:55:50 +00:00
Nick Mathewson
0cb342e859
r12844@catbus: nickm | 2007-05-21 21:52:19 -0400
...
Oops. It compiles better when you spell the fields right.
svn:r10245
2007-05-22 01:52:22 +00:00
Nick Mathewson
32c8d94c12
r12842@catbus: nickm | 2007-05-21 21:51:45 -0400
...
Partial backport candidate. Fix issue noted in r10241: stores were rebuilt too often. Also notes dropped bytes better.
svn:r10244
2007-05-22 01:51:53 +00:00
Roger Dingledine
b89ad9eb1b
mark a bug for nick to tackle -- we're rebuilding our router store more
...
often than we need to. reported by lodger.
svn:r10241
2007-05-22 01:17:08 +00:00
Roger Dingledine
82054e0dd2
Make the NodeFamilies config option work. (Reported by
...
lodger -- it has never actually worked, even though we added it
in Oct 2004.)
svn:r10238
2007-05-22 00:46:55 +00:00
Peter Palfrader
d2f7a9d0cc
Hopefully fix #429 for good by actually using, not just figuring out, the correct mmap
...
svn:r10233
2007-05-21 12:14:45 +00:00
Nick Mathewson
a4f5b99e61
r13023@Kushana: nickm | 2007-05-20 16:16:36 -0400
...
More bulletproofing on bug 429
svn:r10231
2007-05-20 20:16:45 +00:00
Nick Mathewson
21a72520ce
r13021@Kushana: nickm | 2007-05-20 14:03:10 -0400
...
Provide actual reasons when dropping an uploaded extrainfo for incompatibility; also, clean whitespace.
svn:r10230
2007-05-20 18:03:26 +00:00
Nick Mathewson
5364833be0
r13017@Kushana: nickm | 2007-05-20 13:40:45 -0400
...
Address points in r10227.
svn:r10229
2007-05-20 17:43:55 +00:00
Nick Mathewson
bc26f28865
svn:r10228
2007-05-20 17:43:29 +00:00
Roger Dingledine
ddd0054a85
point out two remote crash bugs, a memory leak, and a few other
...
items we should probably look into.
svn:r10227
2007-05-20 14:15:23 +00:00
Nick Mathewson
0b661f6575
r12818@catbus: nickm | 2007-05-20 01:15:50 -0400
...
Look for extrainfo bodies in the extrainfo mmap, not in the descriptor mmap. Duh. Should fix bug 429.
svn:r10226
2007-05-20 05:15:53 +00:00
Peter Palfrader
6d46ece6ac
Fix a loop in routerlist_assert_ok()
...
svn:r10224
2007-05-19 21:14:17 +00:00
Nick Mathewson
6f8866a817
r12810@catbus: nickm | 2007-05-19 16:08:42 -0400
...
Fix bugs in extrainfo_insert, and change it to use desc_by_eid_map.
svn:r10222
2007-05-19 20:08:44 +00:00
Nick Mathewson
4d3ec5919e
r12808@catbus: nickm | 2007-05-19 14:48:51 -0400
...
Fix another consistency error.
svn:r10221
2007-05-19 18:48:53 +00:00
Nick Mathewson
48e30ce2c7
r12805@catbus: nickm | 2007-05-19 14:31:00 -0400
...
Fix a groovy memory corruption bug in routerlist_replace.
svn:r10220
2007-05-19 18:31:04 +00:00
Nick Mathewson
0a27b53252
r12802@catbus: nickm | 2007-05-19 14:12:27 -0400
...
clear some ram when freeing it; add some more checks to assert_routerlist_ok.
svn:r10218
2007-05-19 18:12:31 +00:00
Nick Mathewson
61a116b3da
r12798@catbus: nickm | 2007-05-18 20:31:54 -0400
...
Yet more debugging code to track down 417/404, inspired by a fun core from arma.
svn:r10216
2007-05-19 00:32:00 +00:00
Nick Mathewson
e476e61ce0
r12982@Kushana: nickm | 2007-05-18 15:15:14 -0400
...
Partial backport candidate: We had a bug where we were downloading descriptors by descriptor digest, but trying to look them up by identity fingerprint when updating their failure count and next retry time. (Also use correct backoff logic for extrainfo code.) Needs testing, doubtless.
svn:r10210
2007-05-18 21:19:53 +00:00
Nick Mathewson
ec55cf526d
r12981@Kushana: nickm | 2007-05-18 14:12:19 -0400
...
First cut at code to download extra-info docs. Also note a bad bug in directory.c (look for the string BUG BUG BUG).
svn:r10209
2007-05-18 21:19:19 +00:00
Nick Mathewson
b4bd9f772c
r12771@catbus: nickm | 2007-05-16 18:12:32 -0400
...
Make -Wstrict-overflow=5 happy with GCC 4.2. It is kind of a pain, but it does agood job of letting us know where we can make our code better by simplifying dependent conditionals.
svn:r10201
2007-05-16 22:16:13 +00:00
Nick Mathewson
a7514649c3
r12758@catbus: nickm | 2007-05-14 15:19:29 -0400
...
Cleanup, lock-down, and refactor bits of routerparse.c: use a single unified function to check all signatures. Fix all DOCDOCs. Remove some old dead debugging code. Enforce some parsing rules better.
svn:r10192
2007-05-14 22:51:05 +00:00
Roger Dingledine
37519d993d
backport candidate: seems to me that r10153 won't work without
...
this patch too.
svn:r10187
2007-05-14 08:09:12 +00:00
Roger Dingledine
440b7f0c70
polish r9726-r9903
...
svn:r10182
2007-05-13 09:25:06 +00:00
Roger Dingledine
346826d97b
If a directory authority is down, skip it when deciding where to get
...
networkstatus objects or descriptors. Otherwise we keep asking
every 10 seconds forever.
(adapted from r9880)
svn:r10175
2007-05-12 23:22:27 +00:00
Nick Mathewson
11f3e894d3
r12708@catbus: nickm | 2007-05-10 15:18:08 -0400
...
Patch from shibz: implement a getinfo status/version/... so a controller can tell whether the current version is recommended, whether any versions are good, and how many authorities agree.
svn:r10162
2007-05-10 19:30:02 +00:00
Roger Dingledine
de11011b1b
backport candidate: when we have k non-v2 authorities in our
...
dirservers lines, we ignored as many as k v2 authorities while
updating our network-statuses.
(not a problem right now since we have zero non-v2 authorities.
but if we ever change that...)
svn:r10157
2007-05-10 10:01:53 +00:00
Roger Dingledine
4e9a008e66
Backport candidate: if all of our dirservers have given us
...
bad or no networkstatuses lately, then stop hammering them
once per minute even if we think they're failed.
svn:r10156
2007-05-10 09:34:34 +00:00
Roger Dingledine
cd23b65a07
Backport candidate: count it as a failure if we fetch a valid
...
network-status but we don't want to keep it. Otherwise we'll keep fetching
it and keep not wanting to keep it. Fixes part of bug 422.
svn:r10153
2007-05-10 05:12:20 +00:00
Roger Dingledine
de6b3512e9
move a few more situations over to the authority_type_t bitfield
...
svn:r10151
2007-05-10 04:01:28 +00:00
Nick Mathewson
ceac39aa8a
r12697@catbus: nickm | 2007-05-09 00:15:40 -0400
...
Change authority_type_t to a set of flags; use it more consistently.
svn:r10144
2007-05-09 04:15:46 +00:00
Roger Dingledine
f8a8b27dd2
add a 'bridge' flag for dirserver config entries
...
svn:r10128
2007-05-07 08:26:50 +00:00
Roger Dingledine
1b95bbdba6
New config option V2AuthoritativeDirectory that all directory
...
authorities should set. This will let future authorities choose
not to serve V2 directory information.
Also, go through and revamp all the authdir_mode stuff so it tries
to do the right thing if you're an auth but not a V1 or V2 auth.
svn:r10092
2007-05-02 09:12:04 +00:00
Nick Mathewson
89ab267cfb
r12619@catbus: nickm | 2007-05-01 16:13:42 -0400
...
Add code to upload extrainfos to authorities running 0.2.0.0-alpha-dev (r10070) or later.
svn:r10086
2007-05-01 20:13:49 +00:00
Nick Mathewson
0390a0499c
r12586@catbus: nickm | 2007-04-30 15:43:05 -0400
...
More work for proposal 104: actually cache extrainfo documents to disk, and reload the cache properly.
svn:r10070
2007-04-30 19:48:39 +00:00
Nick Mathewson
6875559c49
r12579@catbus: nickm | 2007-04-30 13:26:53 -0400
...
Oops. Routerlist_check_bug_417 should work even if we are not on a server.
svn:r10066
2007-04-30 17:46:11 +00:00
Nick Mathewson
5b26a076c6
Oops; the "not in the routerlist" value for routerinfo_t.routerlist_index is -1, not 0.
...
svn:r10060
2007-04-30 14:32:22 +00:00
Nick Mathewson
65daa191fe
r12567@catbus: nickm | 2007-04-30 10:26:35 -0400
...
Suggested by weasel: Add a fast function to check for the common failure mode for bug 417/404, and call it a lot.
svn:r10059
2007-04-30 14:26:38 +00:00
Nick Mathewson
313ac313be
r12557@catbus: nickm | 2007-04-30 01:36:39 -0400
...
Oops; the rest of the last patch. If that one gets backported, this should too.
svn:r10053
2007-04-30 05:36:41 +00:00
Nick Mathewson
f7acc3cfa0
r12553@catbus: nickm | 2007-04-30 01:32:54 -0400
...
Backport candidate: Add asserts to dirserv_remove_invalid, and fix a bug in dirserv_remove_invalid that could mess with pointers in a freed routerinfo right after it was freed.
svn:r10052
2007-04-30 05:32:57 +00:00
Roger Dingledine
397afcc3f6
Make PreferTunneledDirConns and TunnelDirConns work even when
...
we have no cached directory info. This means Tor clients can now
do all of their connections protected by TLS.
svn:r10035
2007-04-27 10:26:09 +00:00
Nick Mathewson
5cf600b57a
r12492@catbus: nickm | 2007-04-22 20:24:02 -0400
...
Even more asserts to try to catch bug 404/417.
svn:r10003
2007-04-23 00:24:06 +00:00
Nick Mathewson
362fbc79d2
r12414@catbus: nickm | 2007-04-16 17:37:17 -0400
...
More proposal-104 stuff: actually remember extra-info stuff.
svn:r9975
2007-04-16 21:37:21 +00:00
Nick Mathewson
17e83a408f
Fix some proposal-104 bugs.
...
svn:r9972
2007-04-16 18:54:56 +00:00
Nick Mathewson
6d32d9cb2d
r12406@catbus: nickm | 2007-04-16 14:39:33 -0400
...
More proposal-104 stuff: add most of the code for authorities to accept and serve extra-info documents. The back-end to store the things is missing.
svn:r9971
2007-04-16 18:39:39 +00:00
Nick Mathewson
2bb5e64289
r12403@catbus: nickm | 2007-04-16 13:55:03 -0400
...
Code to generate extrainfo whenever routerdesc is regenerated; code to check extrainfo against routerdesc.
svn:r9970
2007-04-16 17:55:08 +00:00
Nick Mathewson
5b220f65c8
r12385@catbus: nickm | 2007-04-15 22:55:58 -0400
...
Initial code to parse extra-info documents as described in proposal 104. This is making me realize that the parsing code in routerparse.c is a little daft.
svn:r9963
2007-04-16 04:17:58 +00:00
Roger Dingledine
f36c613dbc
fix a memory leak when we ask for "all" networkstatuses and
...
we get one we don't recognize.
backport candidate.
backbackport candidate.
svn:r9918
2007-03-29 07:02:12 +00:00