summaryrefslogtreecommitdiff
path: root/src/or/circuitbuild.c
AgeCommit message (Collapse)Author
2008-02-10 r14102@tombo: nickm | 2008-02-10 13:30:04 -0500Nick Mathewson
Remove some deadcode. svn:r13459
2008-02-09doxygen and other cleanupsRoger Dingledine
svn:r13440
2008-02-08 r14063@tombo: nickm | 2008-02-08 15:48:32 -0500Nick Mathewson
Add a bunch more code documentation; change the interface of fetch_var_cell_from_buf() so it takes the current link protocol into account and can't get confused by weird command bytes on v1 connections. svn:r13430
2008-02-07Update some copyright notices: it is now 2008.Nick Mathewson
svn:r13412
2008-02-05 r17930@catbus: nickm | 2008-02-05 18:20:40 -0500Nick Mathewson
Initial attempts to track down bug 600, and refactor possibly offending code. 1) complain early if circuit state is set to OPEN when an onionskin is pending. 2) refactor onionskin field into one only used when n_conn is pending, and a separate onionskin field waiting for attention by a cpuworker. This might even fix the bug. More likely, it will make it fail with a more useful core. svn:r13394
2008-02-04If we're a relay, avoid picking ourselves as an introduction point,Roger Dingledine
a rendezvous point, or as the final hop for internal circuits. Bug reported by taranis and lodger. Bugfix on 0.1.2.x. svn:r13372
2008-01-14 r17611@catbus: nickm | 2008-01-14 13:44:16 -0500Nick Mathewson
add some missing checks for failing return values. svn:r13130
2007-12-24bugfix on r10612:Roger Dingledine
When we load a bridge descriptor from the cache, and it was previously unreachable, mark it as retriable so we won't just ignore it. Also, try fetching a new copy immediately. svn:r12950
2007-12-23 r15653@tombo: nickm | 2007-12-23 14:15:12 -0500Nick Mathewson
Refactor circuit_launch* functions to take a bitfield of flags rather than 4 separate nonconsecutive flags arguments. Also, note a possible but in circuit_find_to_cannibalize, which seems to be ignoring its purpose argument. svn:r12948
2007-12-22Fix a crash when we load a bridge descriptor from disk but we don'tRoger Dingledine
currently have a Bridge line for it in our torrc. Bugfix on 0.2.0.12-alpha. svn:r12921
2007-12-21Fix a crash when we fetch a descriptor that turns out to beRoger Dingledine
unexpected (it used to be in our networkstatus when we started fetching it, but it isn't in our current networkstatus), and we aren't using bridges. Bugfix on 0.2.0.x. svn:r12911
2007-12-12clean up copyrights, and assign 2007 copyrights to The Tor Project, IncRoger Dingledine
svn:r12786
2007-12-10If we can't expand our list of entry guards (e.g. because we'reRoger Dingledine
using bridges or we have StrictEntryNodes set), don't mark relays down when they fail a directory request. Otherwise we're too quick to mark all our entry points down. svn:r12755
2007-12-02We were ignoring our RelayBandwidthRate for the first 30 secondsRoger Dingledine
after opening a circuit -- even relayed circuits. Bugfix on 0.2.0.3-alpha. svn:r12638
2007-11-26minor cleanupsRoger Dingledine
svn:r12571
2007-11-26Only update guard status (usable / not usable) once we haveRoger Dingledine
enough directory information. This was causing us to always pick two new guards on startup (bugfix on 0.2.0.9-alpha), and it was causing us to discard all our guards on startup if we hadn't been running for a few weeks (bugfix on 0.1.2.x). Fixes bug 448. svn:r12570
2007-11-16If we're using bridges or have strictentrynodes set, and ourRoger Dingledine
chosen exit is in the same family as all our bridges/entry guards, then be flexible about families. svn:r12514
2007-11-16i'm a little teapot, ...Roger Dingledine
svn:r12513
2007-11-16If we're trying to fetch a bridge descriptor and there's no wayRoger Dingledine
the bridge authority could help us (for example, we don't know a digest, or there is no bridge authority), don't be so eager to fall back to asking the bridge authority. svn:r12512
2007-11-15Fix a small memory leak whenever we decide against using aRoger Dingledine
newly picked entry guard. Reported by Mike Perry. svn:r12506
2007-11-04If bridge users set UpdateBridgesFromAuthority, but the digestRoger Dingledine
they ask for is a 404 from the bridge authority, they now fall back to trying the bridge directly. svn:r12368
2007-10-28 r16242@catbus: nickm | 2007-10-28 16:28:13 -0400Nick Mathewson
Implement if-modified-since for consensus networkstatuses so that we do not download duplicates needlessly. svn:r12258
2007-10-11bugfix on r11298:Roger Dingledine
Fix a minor memory leak whenever we parse guards from our state file. Bugfix on 0.2.0.7-alpha. svn:r11862
2007-10-09i heard that users know the phrase 'system clock' better than 'clock'. hm.Roger Dingledine
svn:r11820
2007-10-04 r15530@catbus: nickm | 2007-10-04 12:16:27 -0400Nick Mathewson
Add a bunch of function documentation; clean up a little code; fix some XXXXs; tag the nonsensical EXTRAINFO_PURPOSE_GENERAL as nonsesnse; note another bit of "do not cache special routers" code to nuke. svn:r11761
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