summaryrefslogtreecommitdiff
path: root/src/or/circuitbuild.c
AgeCommit message (Collapse)Author
2007-09-21Make "UpdateBridgesFromAuthority" torrc option work: when bridgeRoger Dingledine
users configure that and specify a bridge with an identity fingerprint, now they will lookup the bridge descriptor at the default bridge authority via a one-hop tunnel, but once circuits are established they will switch to a three-hop tunnel for later connections to the bridge authority. svn:r11550
2007-09-01 r14294@Kushana: nickm | 2007-09-01 13:50:03 -0400Nick Mathewson
Oops. Initialize "changed" variable when removing obsolete guards. svn:r11346
2007-08-29 r14826@catbus: nickm | 2007-08-29 13:19:55 -0400Nick Mathewson
Add a line to the state file for each guard to let us know which version added the guard. If the line is absent, assume the guard was added by whatever version of Tor last wrote the state file. Remove guards if the version that added them was using a bad guard selection algorithm. (Previously, we removed guards if the version that wrote the file was using a bad guard selection algorithm, even if the guards themselves were chosen by a good version.) svn:r11298
2007-08-28 r14821@catbus: nickm | 2007-08-27 19:57:56 -0400Nick Mathewson
Check for absent nickname when making extend info. I still dont know when this happens, but it is easy enough to check for. Fixes bug 467. svn:r11293
2007-08-24 r14200@kushana: nickm | 2007-08-24 08:33:41 -0400Nick Mathewson
In new code, let's try to prefer named flags to mazes of twisted boolean arguments, all alike. svn:r11267
2007-08-24patch from mike perry to a) stop overloading guards as much, andRoger Dingledine
b) raise the max-believable-bandwidth to 10MB/s. svn:r11258
2007-08-22backport candidate:Roger Dingledine
Fix a minor memory leak when we fail to find enough suitable servers to choose a circuit. Bugfix on 0.1.2.x. svn:r11247
2007-08-18 r14659@catbus: nickm | 2007-08-18 14:19:34 -0400Nick Mathewson
When we are loading state info from disk, never believe any date in the future. Doing so can keep us from retrying guards, rotating onion keys, storing bandwidth info, etc. Fixes bug 434, and others. Backport candidate, once it has been tested. svn:r11166
2007-07-29Be even more aggressive about separating local traffic from relayedRoger Dingledine
traffic when RelayBandwidthRate is set. (Refines proposal 111.) svn:r10974
2007-07-29make progress towards retrying our bridges when they're allRoger Dingledine
down and we get a new socks request svn:r10967
2007-07-26 r13920@catbus: nickm | 2007-07-26 16:25:25 -0400Nick Mathewson
whitespace fixes svn:r10935
2007-07-22 r13858@catbus: nickm | 2007-07-22 18:44:02 -0400Nick Mathewson
Fix/note some relatively trivial mem usage issues svn:r10905
2007-07-22handle fetching bridge descriptors from the bridge authority too.Roger Dingledine
svn:r10898
2007-07-21when requesting tor/server/authority, ask for tor/server/authority.zRoger Dingledine
instead. same functionality, saves a bit of bandwidth. and might even work. svn:r10896
2007-07-18timeout and retry schedules for fetching bridge descriptorsRoger Dingledine
svn:r10867
2007-07-18using fascistfirewall and having your bridge on an unreachableRoger Dingledine
port silently didn't mix. now they loudly don't mix. svn:r10862
2007-07-17free bridge list on exit; try harder to free buffer freelists on exit.Roger Dingledine
svn:r10854
2007-07-02If there's a never-before-connected-to guard node in our list,Roger Dingledine
never choose any guards past it. This way we don't expand our guard list unless we need to. [Bugfix in 0.1.2.x] I'm not sure if this will solve all our problems, but it is at least something. svn:r10730
2007-06-15if we already have a bridge in our state file, it won't beRoger Dingledine
in the networkstatuses, so we'll mark it unusable when we load it, and then when we get a new routerinfo for it, we'll still think it's unusable. fix that. svn:r10612
2007-06-15bugfix on r10609: don't fail asserts when closing circuitsRoger Dingledine
that were connected to an unkeyed connection. svn:r10611
2007-06-15now we can specify a bridge without specifying its key,Roger Dingledine
and we will still connect to it and use it. getting closer! svn:r10609
2007-06-15Refine r10571: more work on bridge stuff.Roger Dingledine
- 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-12More work towards making bridge users able to connect via bridges:Roger Dingledine
- 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-10more building blocks towards being able to fetch bridge descriptorsRoger Dingledine
svn:r10548
2007-06-10discard the "bridge list" stubs that i hope i never need.Roger Dingledine
svn:r10547
2007-06-07avoid leaking memory in a path never followed. pointed outRoger Dingledine
by robert watson. svn:r10521
2007-05-24forward-port r10318Roger Dingledine
svn:r10319
2007-05-22 r12853@catbus: nickm | 2007-05-22 11:36:54 -0400Nick Mathewson
Make connection_array into a smartlist. svn:r10292
2007-05-22clean up r10240 so we avoid the exit node itself tooRoger Dingledine
svn:r10242
2007-05-22When choosing an entry guard for our circuit, avoid using guardsRoger Dingledine
that are in the same family as the chosen exit -- not just guards that are exactly the chosen exit. (Reported by lodger.) svn:r10240
2007-05-09 r12697@catbus: nickm | 2007-05-09 00:15:40 -0400Nick Mathewson
Change authority_type_t to a set of flags; use it more consistently. svn:r10144
2007-05-08Interim commit: new config options Bridge and UseBridges.Roger Dingledine
It is becoming increasingly clear to me that bridges should be a special case of entry guards, not a whole separate pile of nearly identical functions. svn:r10141
2007-05-08record the router purpose at each step of the circuit path.Roger Dingledine
i have the feeling this will come in handy. svn:r10139
2007-05-08clean up some function argument namesRoger Dingledine
svn:r10138
2007-03-26 r12651@Kushana: nickm | 2007-03-24 18:26:42 -0400Nick Mathewson
Initial version of circuit-based cell queues. Instead of hammering or_conns with piles of cells, queue cells on their corresponding circuits, and append them to the or_conn as needed. This seems to work so far, but needs a bit more work. This will break the memory-use-limitation patch for begin_dir conns: the solution will be a fun but fiddly. svn:r9904
2007-03-24 r12643@0-41-wifi: nickm | 2007-03-23 14:56:35 -0400Nick Mathewson
Refactor a bunch of functions that take edge_connection_t not to also take a crypt_path_t; the cpath is implicit. svn:r9899
2007-03-20put the stopgap on whether we've sent a create cell, notRoger Dingledine
whether we've attached a stream. svn:r9883
2007-03-04 r12074@catbus: nickm | 2007-03-04 15:11:43 -0500Nick Mathewson
Make all LD_BUG log messsages get prefixed with "Bug: ". Remove manually-generated "Bug: "s from log-messages. (Apparently, we remembered to add them about 40% of the time.) svn:r9733
2007-02-28 r11970@catbus: nickm | 2007-02-27 19:17:27 -0500Nick Mathewson
Fix a bug found by Udo van den Heuvel: avoid an assertion failure when a controller sets and clears EntryNodes before the next call to choose_random_entry(). Also make a function static. svn:r9669
2007-02-24doc pedantRoger Dingledine
svn:r9634
2007-02-24 r11909@catbus: nickm | 2007-02-24 02:37:40 -0500Nick Mathewson
Move tricky "delete the member of the smartlist currently under iteration" logic into its own happyfun macro. svn:r9633
2007-02-24fix crash introduced in r9622Roger Dingledine
svn:r9632
2007-02-24make it stop crashing when i exercise the new entrynodes behavior inRoger Dingledine
r9574. this hack is getting pretty darn hackish; perhaps it's time to not use SMARTLIST_FOREACH in this situation. svn:r9629
2007-02-23 r11885@catbus: nickm | 2007-02-23 13:34:24 -0500Nick Mathewson
Fix an XXXX012: make entry guards _really_ get retried when the network comes back online. svn:r9622
2007-02-16 r11832@catbus: nickm | 2007-02-16 15:31:59 -0500Nick Mathewson
Fix 35 remaining DOCDOC comments. Yowza. svn:r9596
2007-02-13 r11785@catbus: nickm | 2007-02-12 20:27:48 -0500Nick Mathewson
Node-picking fixes: Never warn when a down node is listed in a config option (bug 348); always warn when a node in a config option is unnamed. Also, when entrynodes is configured, then build the guard list as: (parts of EntryNodes that were guards before), (the rest of EntryNodes), (the rest of the old guards). This last point ensures that EntryNode users will get the EntryNodes they want with the minimum change to their guard list. svn:r9574
2007-02-12 r11775@catbus: nickm | 2007-02-12 16:39:09 -0500Nick Mathewson
Update copyright dates. svn:r9570
2007-02-12 r11773@catbus: nickm | 2007-02-12 15:18:48 -0500Nick Mathewson
Implement proposal 106: stop requiring clients to have certificates, and stop checking for nicknames in certificates. [See proposal 106 for rationale.] Also improve messages when checking TLS handshake, to re-resolve bug 382. svn:r9568
2007-02-08 r11726@catbus: nickm | 2007-02-08 16:04:53 -0500Nick Mathewson
Resolve some XXXX012 items: - Remove PathlenCoinWeight: if we want it again, we can add it back in. - Ditto with RelayBandwidth*. - Decide to leave in the "hey, you didn't set end_reason!" BUG log message, but stop telling people to bug me personally. - Postpone strengthening assert_connection_ok(): it's important, but it's also a good way to introduce weird bugs. - Move some expensive consistency checking from dns_free_all() into assert_cache_ok(). svn:r9533
2007-02-08 r11702@catbus: nickm | 2007-02-08 02:10:19 -0500Nick Mathewson
Wow. Remember when I wrote that script to tell me about macros that were never used? Good times. svn:r9525