teor (Tim Wilson-Brown)
c4cb4706c9
Merge branch 'feature17840-v11-squashed' into feature17840-v11-merged
...
Conflicts:
src/or/directory.c
src/test/test_routerlist.c
Fix minor conflicts.
2016-01-29 07:37:06 +11:00
teor (Tim Wilson-Brown)
4528f89316
Make entry_guard_set_status consistent with entry_is_live
...
Check fascist_firewall_allows_node in entry_guard_set_status and
return the same message as entry_is_live.
2016-01-29 07:15:53 +11:00
teor (Tim Wilson-Brown)
1648666203
Choose bridge addresses by IPv4/IPv6 preferences
2016-01-29 07:15:53 +11:00
teor (Tim Wilson-Brown)
2d33d192fc
Add ClientUseIPv4 and ClientPreferIPv6DirPort torrc options
...
ClientUseIPv4 0 tells tor to avoid IPv4 client connections.
ClientPreferIPv6DirPort 1 tells tor to prefer IPv6 directory connections.
Refactor policy for IPv4/IPv6 preferences.
Fix a bug where node->ipv6_preferred could become stale if
ClientPreferIPv6ORPort was changed after the consensus was loaded.
Update documentation, existing code, add unit tests.
2016-01-29 07:13:57 +11:00
teor (Tim Wilson-Brown)
c927b6cb1a
Correct grammatical errors in tor comments
...
Avoid using gender for things that don't have it.
Avoid assigning a gender to tor users.
2016-01-26 13:46:54 +11:00
teor (Tim Wilson-Brown)
d3546aa92b
Prop210: Add want_authority to directory_get_from_dirserver
2015-12-16 04:03:45 +11:00
Nick Mathewson
241e6b0937
Fix some conversion problems
2015-04-23 09:16:42 -04:00
David Goulet
3f41318472
Add crypto_rand_int_range() and use it
...
Incidently, this fixes a bug where the maximum value was never used when
only using crypto_rand_int(). For instance this example below in
rendservice.c never gets to INTRO_POINT_LIFETIME_MAX_SECONDS.
int intro_point_lifetime_seconds =
INTRO_POINT_LIFETIME_MIN_SECONDS +
crypto_rand_int(INTRO_POINT_LIFETIME_MAX_SECONDS -
INTRO_POINT_LIFETIME_MIN_SECONDS);
Signed-off-by: David Goulet <dgoulet@ev0ke.net>
2015-04-21 11:06:12 -04:00
Sebastian Hahn
86002a83d3
Bridges are always dirs
...
This check was accidentally deleted in 05f7336624
.
2015-04-01 21:07:46 +02:00
Nick Mathewson
081b0c0f77
mark dirinfo_type as unused in populate_live_entry_guards
2015-04-01 14:20:01 -04:00
Nick Mathewson
05f7336624
Remove version checks for microdescriptor support
...
At this point, relays without microdescriptor support are no longer
allowed on the Tor network.
2015-03-24 09:25:35 -04:00
Nick Mathewson
0f31080d63
Stop checking for torrc state files generated by very old Tor versions
...
These haven't worked in so long that if you had a state file of this
kind, the guards in it would be so old that you wouldn't use them
anyway.
2015-03-24 09:24:12 -04:00
Nick Mathewson
6378bcf4b9
Fix an implicit-narrowing warning
2015-02-18 09:34:15 -05:00
Nick Mathewson
96211bcf71
Merge branch 'bug9321_rerebase'
...
Conflicts:
src/or/dirvote.h
src/test/include.am
src/test/test_entrynodes.c
2015-02-18 09:17:02 -05:00
George Kadianakis
14a3c17ce6
Calculate the guardfraction bandwidth of a guard.
2015-02-18 09:09:33 -05:00
George Kadianakis
f4a63f8eab
Parse GuardFraction info from consensuses and votes.
...
Also introduce the UseGuardFraction torrc option which decides whether
clients should use guardfraction information found in the consensus.
2015-02-18 09:09:33 -05:00
David Goulet
b101f4e98c
Control: getinfo entry-guards report down-since
...
If the guard unreachable_since variable was set, the status "up" was
reported which is wrong. This adds the "down" status followed by the
unreachable_since time value.
Fixes #14184
Signed-off-by: David Goulet <dgoulet@ev0ke.net>
2015-02-06 16:06:20 -05:00
Matthew Finkel
4cb59ceb8e
Only retry connecting to configured bridges
...
After connectivity problems, only try connecting to bridges which
are currently configured; don't mark bridges which we previously
used but are no longer configured. Fixes 14216. Reported by
and fix provided by arma.
2015-01-31 09:46:18 +00:00
Nick Mathewson
79e12da861
Merge remote-tracking branch 'public/bug12485'
2015-01-18 13:49:30 -05:00
Nick Mathewson
33df3e37ff
Allow two ISO times to appear in EntryGuardDownSince.
...
When I made time parsing more strict, I broke the
EntryGuardDownSince line, which relied on two concatenated ISO times
being parsed as a single time.
Fixes bug 14136. Bugfix on 7984fc1531
. Bug not in any released
version of Tor.
2015-01-09 08:50:56 -05:00
Nick Mathewson
fb68f50761
Lower the delay before saving guard status to disk
...
"Maybe this time should be reduced, since we are considering
guard-related changes as quite important? It would be a pity to
settle on a guard node, then close the Tor client fast and lose that
information."
Closes 12485.
2015-01-07 10:39:44 -05:00
Nick Mathewson
da26bb646e
Turn entry_guards_changed constants into symbolic constants
2015-01-07 10:37:33 -05:00
Nick Mathewson
f54e54b0b4
Bump copyright dates to 2015, in case someday this matters.
2015-01-02 14:27:39 -05:00
Nick Mathewson
9619c395ac
Merge remote-tracking branch 'andrea/ticket6456'
...
Somewhat tricky conflicts:
src/or/config.c
Also, s/test_assert/tt_assert in test_config.c
2014-11-04 09:52:04 -05:00
Nick Mathewson
fcdcb377a4
Add another year to our copyright dates.
...
Because in 95 years, we or our successors will surely care about
enforcing the BSD license terms on this code. Right?
2014-10-28 15:30:16 -04:00
teor
ff42222845
Improve DIRINFO flags' usage comments
...
Document usage of the NO_DIRINFO and ALL_DIRINFO flags clearly in functions
which take them as arguments. Replace 0 with NO_DIRINFO in a function call
for clarity.
Seeks to prevent future issues like 13163.
2014-10-08 05:36:54 +11:00
Nick Mathewson
1a1e695800
Merge remote-tracking branch 'public/bug7733a'
2014-09-22 10:38:05 -04:00
Nick Mathewson
87f9c51f64
Avoid unsigned/sign compare warning from last patch.
2014-09-01 15:42:17 -04:00
Philip Van Hoof
60a3897ed9
Bounds check while looping over a fixed size table or array
...
(Edited to use existing ARRAY_LENGTH macro --nickm)
2014-09-01 15:40:47 -04:00
rl1987
8b539cc276
Unit testing entry_is_time_to_retry().
2014-08-20 15:29:56 -04:00
rl1987
c731a1c68f
Write comments for members of periods array.
2014-08-20 15:29:56 -04:00
rl1987
197d855009
Rewriting entry_is_time_to_retry() using table approach.
2014-08-20 15:29:55 -04:00
Andrea Shepard
b8b46e8ef8
Add some mocks needed to unit test ClientTransportPlugin/ServerTransportPlugin config line parsing
2014-07-25 21:41:03 -07:00
Roger Dingledine
bc9866e13f
Merge branch 'maint-0.2.5'
2014-07-24 16:23:26 -04:00
Roger Dingledine
a4c641cce9
Merge branch 'maint-0.2.4' into maint-0.2.5
2014-07-24 16:23:08 -04:00
Roger Dingledine
9fc276a1c7
add a NumDirectoryGuards consensus param too
2014-07-24 16:19:47 -04:00
Roger Dingledine
56ee61b8ae
Add and use a new NumEntryGuards consensus parameter.
...
When specified, it overrides our default of 3 entry guards.
(By default, it overrides the number of directory guards too.)
Implements ticket 12688.
2014-07-24 16:19:47 -04:00
Nick Mathewson
5690284559
Fix wide lines, make entry_is_live() non-inline
2014-07-16 16:52:16 +02:00
George Kadianakis
8bbb217964
Change the interface of entry_is_live() to take a bitmap.
2014-06-25 15:44:36 -04:00
George Kadianakis
46d41e6e9b
Basic entry_is_live() unittest.
2014-06-25 15:39:00 -04:00
George Kadianakis
61629b4f6c
Document choose_random_entry_impl() and populate_live_entry_guards().
2014-06-15 19:03:38 -07:00
George Kadianakis
bf263a9b99
Make a few entrynodes.c functions testable.
2014-06-15 19:02:59 -07:00
George Kadianakis
71da44f159
Make populate_live_entry_guards() more smoothly testable.
2014-06-15 19:02:59 -07:00
George Kadianakis
c7b05a6aef
Constify aggressively in populate_live_entry_guards().
2014-06-15 19:02:59 -07:00
George Kadianakis
a59429f1e4
Fix the functionality of populate_live_entry_guards().
2014-06-15 19:02:55 -07:00
George Kadianakis
427cc8a452
Move code from choose_random_entry_impl() to the new function.
...
This commit only _moves_ code.
2014-06-15 18:25:45 -07:00
George Kadianakis
e8c366e9ea
Create skeleton for populate_live_entry_guards().
...
Now we are ready to move code from choose_random_entry_impl() to it.
2014-06-15 18:25:45 -07:00
George Kadianakis
f75c6ce981
choose_random_entry_impl(): Remove useless consider_exit_family.
...
The variable was useless since it was only toggled off in disabled code.
If the 'exit_family' smartlist is empty, we don't consider exit family
anyway.
2014-06-15 18:25:45 -07:00
George Kadianakis
115b3e7645
Remove a piece of disabled code in choose_random_entry_impl().
2014-06-15 18:25:45 -07:00
Nick Mathewson
79c875ecdc
Would-be fix for bug 7733: learn bridge ID from descriptor
...
If somebody has configured a client to use a bridge without setting
an identity digest (not recommended), learn the identity digest from
whatever bridge descriptor we have downloaded or have in our cache.
2014-05-14 14:34:01 -04:00
Nick Mathewson
1bbd3811c1
Merge remote-tracking branch 'public/bug10849_025'
...
Conflicts:
src/or/config.c
2014-05-01 11:51:22 -04:00
Nick Mathewson
7b4b137dc9
Merge remote-tracking branch 'public/bug9229_025'
...
Conflicts:
src/or/entrynodes.c
2014-04-23 11:00:49 -04:00
Nick Mathewson
6ab10a5466
Make num_bridges_usable work properly.
...
My first implementation was broken, since it returned "whether there
is one bridge" rather than "how many bridges."
Also, the implementation for the n_options_out feature in
choose_random_entry_impl was completely broken due to a missing *.
2014-04-08 15:51:40 -04:00
Nick Mathewson
cce06b649e
Merge remote-tracking branch 'asn/bug11069_take2'
2014-03-11 11:04:47 -04:00
George Kadianakis
1c475eb018
Throw control port warning if we failed to connect to all our bridges.
2014-03-10 22:52:07 +00:00
Nick Mathewson
7aa2192048
Fix our check for the "first" bridge descriptor.
...
This is meant to be a better bug 9229 fix -- or at least, one more
in tune with the intent of the original code, which calls
router_retry_directory_downloads() only on the first bridge descriptor.
2014-03-10 15:11:21 -04:00
Nick Mathewson
db72479eea
Update ns downloads when we receive a bridge descriptor
...
This prevents long stalls when we're starting with a state file but
with no bridge descriptors. Fixes bug 9229. I believe this bug has
been present since 0.2.0.3-alpha.
2014-03-10 15:01:27 -04:00
Nick Mathewson
f0b2dc83b6
Merge remote-tracking branch 'arma/ticket5528'
...
Conflicts:
src/or/router.c
src/test/test_dir.c
2014-03-05 12:44:40 -05:00
Nick Mathewson
ce450bddb7
Remove TunnelDirConns and PreferTunnelledDirConns
...
These options were added back in 0.1.2.5-alpha, but no longer make any
sense now that all directories support tunneled connections and
BEGIN_DIR cells. These options were on by default; now they are
always-on.
This is a fix for 10849, where TunnelDirConns 0 would break hidden
services -- and that bug arrived, I think, in 0.2.0.10-alpha.
2014-02-11 11:10:55 -05:00
rl1987
e6590efaa7
Fix get_configured_bridge_by_addr_port_digest(.,.,NULL)
...
The old behavior was that NULL matched only bridges without known
identities; the correct behavior is that NULL should match all
bridges (assuming that their addr:port matches).
2013-12-09 11:22:22 -05:00
Nick Mathewson
761ee93c69
Add missing includes for circpathbias.h
2013-10-31 14:33:34 -04:00
Nick Mathewson
4b6f074df9
Merge remote-tracking branch 'public/bug5018'
...
Conflicts:
src/or/entrynodes.c
2013-10-29 01:29:59 -04:00
David Fifield
e6e6c245c8
Simplify transport_is_needed.
...
By Roger at
https://trac.torproject.org/projects/tor/ticket/5018#comment:11 .
2013-10-29 01:05:57 -04:00
George Kadianakis
6f33dffec1
Only launch transport proxies that provide useful transports.
2013-10-29 01:05:56 -04:00
Nick Mathewson
71bd100976
DROPGUARDS controller command
...
Implements ticket 9934; patch from "ra"
2013-10-21 13:02:25 -04:00
Roger Dingledine
a26a5794a3
Merge branch 'maint-0.2.4'
2013-10-12 10:48:30 -04:00
Roger Dingledine
8f9fb63cdb
be willing to bootstrap from all three of our directory guards
...
Also fix a bug where if the guard we choose first doesn't answer, we
would try the second guard, but once we connected to the second guard
we would abandon it and retry the first one, slowing down bootstrapping.
The fix in both cases is to treat all our initially chosen guards as
acceptable to use.
Fixes bug 9946.
2013-10-12 10:42:27 -04:00
Roger Dingledine
0d8632e585
fix another confusing whitespace instance
2013-09-30 01:47:24 -04:00
Roger Dingledine
2cf41cc70d
fix confusing whitespace
2013-09-30 01:41:48 -04:00
Nick Mathewson
775c491502
Separate mutable/const accessors for circuit_build_times
...
(These have proved invaluable for other global accessors.)
2013-08-22 10:15:56 -04:00
vagrant
4834641dce
Make circ_times static and add accessor functions.
...
Change the global circ_times to a static variable and use
accessor functions throughout the code, instead of
accessing it directly.
2013-08-22 10:15:56 -04:00
Nick Mathewson
83a859e24c
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-07-31 21:49:30 -04:00
Roger Dingledine
ff6bb13c02
NumDirectoryGuards now tracks NumEntryGuards by default
...
Now a user who changes only NumEntryGuards will get the behavior she
expects. Fixes bug 9354; bugfix on 0.2.4.8-alpha.
2013-07-30 12:05:39 -04:00
Nick Mathewson
68ea7d24d8
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-04-24 22:05:41 -04:00
Mike Perry
ac22bf27d7
Increase the pathbias state file miscounting version check.
...
We now know the bug is present in 0.2.4.12-alpha too. It should be fixed in
0.2.4.13-alpha, though.
2013-04-24 22:03:03 -04:00
Nick Mathewson
b349f09b47
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-04-03 09:36:59 -04:00
Mike Perry
2b05a8c671
Clip invalid path bias counts at startup.
...
There was a bug in Tor prior to 0.2.4.10-alpha that allowed counts to
become invalid. Clipping the counts at startup allows us to rule out
log messages due to corruption from these prior Tor versions.
2013-04-03 09:32:15 -04:00
Nick Mathewson
e9ffd9890f
Remove check for whether bridge_line->digest is NULL
...
It can never be NULL, since it's an array in bridge_line_t.
Introduced in 266f8cddd8
. Found by coverity; this is CID 992691. Bug
not in any released Tor.
2013-03-21 07:47:42 -04:00
Nick Mathewson
ea6d53e724
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-03-21 07:25:24 -04:00
Nick Mathewson
6196d0e83d
The *default* guard lifetime is two months; the *min* is one
...
This caused an assertion failure when pruning guards.
Fixes bug #8553 ; bug not in any released Tor.
2013-03-21 07:22:59 -04:00
Nick Mathewson
c547502ecb
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-03-19 16:15:39 -04:00
Nick Mathewson
6f20a74d52
Merge branch 'bug8240_v2_squashed' into maint-0.2.4
...
Conflicts:
doc/tor.1.txt
src/or/circuitbuild.c
src/or/config.c
src/or/or.h
2013-03-19 16:15:27 -04:00
Nick Mathewson
c101ecc8dc
Merge remote-tracking branch 'asn/bug3594_rebased_and_fixed'
...
Conflicts:
src/common/util.c
src/or/entrynodes.h
2013-03-19 13:25:45 -04:00
Nick Mathewson
ad8a27a393
Fix some wide lines
2013-03-18 15:39:11 -04:00
Nick Mathewson
26639b7798
Merge remote-tracking branch 'public/no_dup_guards' into maint-0.2.4
2013-03-18 14:50:01 -04:00
Andrea Shepard
74c33945e3
Correctly set entry->is_dir_cache when adding an entry guard for the first time
...
(Second part of a bug8367 fix. -NM)
2013-03-01 10:17:07 -05:00
Nick Mathewson
ad49abe5a1
Fix bootstrapping with bridges by making is_dir_cache is set on them.
...
This fixes bug 8367, introduced in d7089ff228
. Not in
any released Tor.
2013-03-01 10:17:07 -05:00
Nick Mathewson
1070a720ad
Be more robust when excluding existing nodes as new dirguards
...
In addition to rejecting them post-hoc, avoid picking them in the
first place. This makes us less likely to decide that we can't add
guards at all.
2013-02-14 12:06:59 -05:00
Nick Mathewson
91027218e2
Add some code to bluntly prevent duplicate guards from getting added
...
Apparently something in the directory guard code made it possible
for the same node to get added as a guard over and over when there
were no actual running guard nodes.
2013-02-14 11:48:47 -05:00
Nick Mathewson
d7089ff228
Restore the entry/dirguard distinction.
...
We shouldn't be calling choose_random_entry() for directory
conncetions; that's what choose_random_dirguard() is for.
2013-02-12 16:23:12 -05:00
George Kadianakis
266f8cddd8
Refactoring to make parse_bridge_line() unittestable.
...
- Make parse_bridge_line() return a struct.
- Make bridge_add_from_config() accept a struct.
- Make string_is_key_value() less hysterical.
2013-02-11 18:07:26 +00:00
Roger Dingledine
74e6a47a80
stop setting, or using, router->address
...
resolves ticket 5528.
2013-02-09 22:07:22 -05:00
Roger Dingledine
e1ec03f819
use router->addr for log messages and controller events
...
(rather than router->address)
2013-02-09 21:10:07 -05:00
Roger Dingledine
ccaefd65a4
stop passing "address" around the directory_initiate_command* funcs
...
since it was always just the string version of "addr" anyway
2013-02-09 20:49:55 -05:00
George Kadianakis
8f2e980159
Send SOCKS arguments when doing SOCKS5.
2013-02-09 16:30:16 +00:00
George Kadianakis
14b84858c0
Send SOCKS arguments when doing SOCKS4.
2013-02-09 16:30:16 +00:00
George Kadianakis
757b03aacb
Add support for parsing SOCKS arguments.
2013-02-09 16:30:16 +00:00
Roger Dingledine
bce5019eff
generalize choose_random_entry()'s dirinfo parameter
...
Now we can specify to skip bridges that wouldn't be able to answer the
type of dir fetch we're launching.
It's still the responsibility of the rest of the code to prevent us from
launching a given dir fetch if we have no bridges that could handle it.
2013-02-02 08:19:27 -08:00
Roger Dingledine
a8297cdbd3
use microdescriptors if *any* of our bridges can handle them
...
Now as we move into a future where most bridges can handle microdescs
we will generally find ourselves using them, rather than holding back
just because one of our bridges doesn't use them.
2013-02-02 08:04:20 -08:00
Mike Perry
e13e30221e
Implement Path use bias accounting.
...
Path use bias measures how often we can actually succeed using the circuits we
actually try to use. It is a subset of path bias accounting, but it is
computed as a separate statistic because the rate of client circuit use may
vary depending on use case.
2013-01-18 19:46:21 -08:00
Nick Mathewson
49e619c1cf
Rename *_isin to *_contains
...
This is an automatically generated commit, from the following perl script,
run with the options "-w -i -p".
s/smartlist_string_num_isin/smartlist_contains_int_as_string/g;
s/smartlist_string_isin((?:_case)?)/smartlist_contains_string$1/g;
s/smartlist_digest_isin/smartlist_contains_digest/g;
s/smartlist_isin/smartlist_contains/g;
s/digestset_isin/digestset_contains/g;
2013-01-16 16:57:11 -05:00
Nick Mathewson
5ed8ac4e57
Merge remote-tracking branch 'asn/bug7896'
2013-01-16 11:41:37 -05:00
Nick Mathewson
4da083db3b
Update the copyright date to 201.
2013-01-16 01:54:56 -05:00
George Kadianakis
50028e4d68
Mention name of the transport used when we learn the fpr of a bridge.
2013-01-09 15:52:35 +02:00
Nick Mathewson
b1bdecd703
Merge branch 'ntor-resquashed'
...
Conflicts:
src/or/cpuworker.c
src/or/or.h
src/test/bench.c
2013-01-03 11:52:41 -05:00
Nick Mathewson
b286373908
Enable the ntor handshake on the client side.
...
"works for me"
2013-01-03 11:29:47 -05:00
Nick Mathewson
885e8d35c7
Merge remote-tracking branch 'mikeperry/209-path-bias-changes'
2012-12-25 23:30:28 -05:00
Nick Mathewson
0f9dfef9d6
Add configuration options for directory guards
...
In addition to all the other ways to make directory gurads not go,
you can now set UseEntryGuardsAsDirGuards to 0.
2012-12-25 23:14:43 -05:00
Nick Mathewson
0c4210fb65
Directory guard implementation.
...
Implements proposal 207; ticket 6526.
2012-12-25 23:14:43 -05:00
Nick Mathewson
1df7289000
Remember which of our guards are directory caches
2012-12-25 23:10:41 -05:00
Mike Perry
406d59a9c9
Nick's Code review #3 part 2.
2012-12-18 14:16:01 -08:00
Mike Perry
b0fc18c37e
Changes from Nick's code review 'part 1'
...
I think this is actually his third code review of this branch so far.
2012-12-18 13:26:36 -08:00
Mike Perry
4590993ff3
Space fixes.
2012-12-09 23:47:04 -08:00
Mike Perry
b75880d7b3
Fix a rather serious use-count state bug.
...
We need to use the success count or the use count depending on the consensus
parameter.
2012-12-09 20:56:48 -08:00
Mike Perry
2dbb62f1b5
Convert to doubles for all pathbias state.
...
Let's hope this solves the rounding error issue..
2012-12-09 20:53:22 -08:00
Mike Perry
ab1fce5c19
Also shorten circuit_successes to circ_successes.
...
For consistency and great justice.
Ok, mostly consistency.
2012-12-09 20:24:50 -08:00
Mike Perry
a90f165b83
Rename first_hop to circ_attempt.
...
Since we've generalized what we can count from (first or second hop), we
should generalize the variable and constant naming too.
2012-12-09 20:24:22 -08:00
Mike Perry
412ae099cb
Prop 209: Add path bias counts for timeouts and other mechanisms.
...
Turns out there's more than one way to block a tagged circuit.
This seems to successfully handle all of the normal exit circuits. Hidden
services need additional tweaks, still.
2012-12-07 15:28:38 -08:00
Mike Perry
bb548134cd
Update with code review changes from Nick.
2012-12-07 15:28:37 -08:00
Mike Perry
248fbc3619
Update pathbias parameters to match Proposal 209.
...
Needs manpage update and testing still..
2012-12-07 15:28:37 -08:00
Mike Perry
954f263ed5
Add the ability to count circuit timeouts for guards.
...
This is purely for informational reasons for debugging.
2012-12-07 15:28:36 -08:00
Mike Perry
42e3c04a7a
Bug 3443: Don't count ORconn setup in circuit build time.
...
Also, add a hack Roger suggested where we're more patient if no circuits are
opened yet.
2012-12-07 10:34:09 -05:00
Nick Mathewson
848333c6d6
Fix more madness from the split_circuitbuild merge
2012-10-22 14:36:30 -04:00
Nick Mathewson
9e9edf71f7
Split code for entry guards and bridges into a new module.
2012-10-15 14:28:23 -04:00