aboutsummaryrefslogtreecommitdiff
path: root/src/or/circuitbuild.c
Commit message (Collapse)AuthorAge
* backport candidate:Roger Dingledine2008-08-31
| | | | | | | | | | If not enough of our entry guards are available so we add a new one, we might use the new one even if it overlapped with the current circuit's exit relay (or its family). Anonymity bugfix pointed out by rovv. svn:r16698
* Relays now reject risky extend cells: if the extend cell includesRoger Dingledine2008-08-20
| | | | | | | | | a digest of all zeroes, or asks to extend back to the relay that sent the extend cell, tear down the circuit. Ideas suggested by rovv. svn:r16605
* r17641@31-33-44: nickm | 2008-08-05 16:07:53 -0400Nick Mathewson2008-08-05
| | | | | | | Initial conversion of uint32_t addr to tor_addr_t addr in connection_t and related types. Most of the Tor wire formats using these new types are in, but the code to generate and use it is not. This is a big patch. Let me know what it breaks for you. svn:r16435
* Take out the TestVia config option, since it was a workaround forRoger Dingledine2008-08-05
| | | | | | | a bug that was fixed in Tor 0.1.1.21. svn:r16409
* Make check-spaces happy.Karsten Loesing2008-08-04
| | | | svn:r16406
* Fix a false assertion when extending a circuit to a relay to which a ↵Karsten Loesing2008-08-03
| | | | | | connection is already established. In that case the circuit should not need to memorize extend info for that relay. circuitbuild.c:389 contains a similar assertion. svn:r16375
* r17436@tombo: nickm | 2008-07-30 09:03:19 -0400Nick Mathewson2008-07-30
| | | | | | | Move n_addr, n_port, and n_conn_id_digest fields of circuit_t into a separately allocated extend_info_t. Saves 22 bytes per connected circuit_t on 32-bit platforms, and makes me more comfortable with using tor_addr_t in place of uint32_t n_addr. svn:r16257
* r17338@aud-055: nickm | 2008-07-24 11:21:06 +0200Nick Mathewson2008-07-24
| | | | | | | Refactor the router_choose_random_node interface: any function with 10 parameters, most of which are boolean and one of which is unused, should get refactored like this. svn:r16167
* r17322@aud-055: nickm | 2008-07-23 16:50:50 +0200Nick Mathewson2008-07-23
| | | | | | | Make circid_t and streamid_t get used instead of uint16_t; it is possible we will soon want to make circid_t change to uint32_t. svn:r16155
* r17309@aud-055: nickm | 2008-07-23 16:05:43 +0200Nick Mathewson2008-07-23
| | | | | | | Patch from Christian Wilms: remove (HiddenService|Rend)(Exclude)?Nodes options. They never worked properly, and nobody seems to be using them. Resolves bug 754. svn:r16144
* r17302@aud-055: nickm | 2008-07-23 14:55:28 +0200Nick Mathewson2008-07-23
| | | | | | | Never allow a circuit to be created with the same circid as a circuit that has been marked for close. May be a fix for bug 779. Needs testing. Backport candidate. svn:r16136
* r17188@tombo: nickm | 2008-07-18 14:35:18 -0400Nick Mathewson2008-07-18
| | | | | | | Add new ExcludeExitNodes option. Also add a new routerset type to handle Exclude[Exit]Nodes. It is optimized for O(1) membership tests, so as to make choosing a random router run in O(N_routers) time instead of in O(N_routers*N_Excluded_Routers). svn:r16061
* Stop trying to detect versions of Tor on the server-side older than ↵Nick Mathewson2008-07-16
| | | | | | 0.1.1.15-rc; they simply do not work any more. Also add comment about how or_is_obsolete is a terrible field name. svn:r15982
* When relays do their initial bandwidth measurement, don't limitRoger Dingledine2008-07-11
| | | | | | | | | | | | | to just our our entry guards for the test circuits. Otherwise we tend to have multiple test circuits going through a single entry guard, which makes our bandwidth test less accurate. Fixes part of bug 654; patch contributed by Josh Albrecht. (Actually, modify Josh's patch to avoid doing that when you're a bridge relay, since it would leak more than we want to leak.) svn:r15850
* If you're using bridges, generate "bootstrap problem" warningsRoger Dingledine2008-06-20
| | | | | | | | | as soon as you run out of working bridges, rather than waiting for ten failures -- which will never happen if you have less than ten bridges. svn:r15368
* Big bridge bugfixes. Backport candidates.Roger Dingledine2008-06-20
| | | | | | | | | | | | | | | If you have more than one bridge but don't know their keys, you would only learn a request for the descriptor of the first one on your list. (Tor considered launching requests for the others, but found that it already had a connection on the way for $0000...0000 so it didn't open another.) If you have more than one bridge but don't know their keys, and the connection to one of the bridges failed, you would cancel all pending bridge connections. (After all, they all have the same digest.) svn:r15366
* minor fixes and notesRoger Dingledine2008-06-10
| | | | svn:r15111
* include tags in the bootstrap status events. also document theRoger Dingledine2008-06-08
| | | | | | | bootstrapping process and how the phases break down. svn:r15020
* infrastructure for the 'bootstrap status event' feature, so we canRoger Dingledine2008-06-07
| | | | | | | | tell the controller how we're doing at bootstrapping, and it can tell the user. svn:r15008
* make some log entries more accurateRoger Dingledine2008-06-06
| | | | svn:r14998
* Also add create/create fast/extends to the dir-usage stats.Peter Palfrader2008-06-02
| | | | svn:r14900
* I bet I screwed up while merging in the changes from the feature branch into ↵Peter Palfrader2008-04-24
| | | | | | my git-svn repository. Undo r14451 svn:r14452
* Merge conditional consensus downloadingPeter Palfrader2008-04-24
| | | | svn:r14451
* and the client part of the consensus-by-authority-fpr proposal (ifdef'ed out)Peter Palfrader2008-04-24
| | | | svn:r14446
* r15277@tombo: nickm | 2008-04-22 13:14:18 -0400Nick Mathewson2008-04-22
| | | | | | | Note a place to refactor. svn:r14412
* r18873@catbus: nickm | 2008-03-17 00:06:31 -0400Nick Mathewson2008-03-17
| | | | | | | oops. guard status logging change had a bug. it is non-obvious how to make the code perfect atm; just make it work. svn:r14070
* r18872@catbus: nickm | 2008-03-16 23:56:48 -0400Nick Mathewson2008-03-17
| | | | | | | Only dump all guard node status to the log when the guard node status actually changes. Downgrade the 4 most common remaining INFO log messages to DEBUG. svn:r14069
* r18195@catbus: nickm | 2008-02-19 14:11:15 -0500Nick Mathewson2008-02-19
| | | | | | | TOR_PERF has not not been a sane thing for ages. Remove it. svn:r13579
* Start choosing which bridge to use proportional to its advertisedRoger Dingledine2008-02-12
| | | | | | | | bandwidth, rather than uniformly at random. This should speed up Tor for bridge users. Also do this for people who set StrictEntryNodes. svn:r13486
* note a simplification for the futureRoger Dingledine2008-02-11
| | | | svn:r13466
* r14102@tombo: nickm | 2008-02-10 13:30:04 -0500Nick Mathewson2008-02-10
| | | | | | | Remove some deadcode. svn:r13459
* doxygen and other cleanupsRoger Dingledine2008-02-09
| | | | svn:r13440
* r14063@tombo: nickm | 2008-02-08 15:48:32 -0500Nick Mathewson2008-02-08
| | | | | | | 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
* Update some copyright notices: it is now 2008.Nick Mathewson2008-02-07
| | | | svn:r13412
* r17930@catbus: nickm | 2008-02-05 18:20:40 -0500Nick Mathewson2008-02-05
| | | | | | | 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
* If we're a relay, avoid picking ourselves as an introduction point,Roger Dingledine2008-02-04
| | | | | | | | 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
* r17611@catbus: nickm | 2008-01-14 13:44:16 -0500Nick Mathewson2008-01-14
| | | | | | | add some missing checks for failing return values. svn:r13130
* bugfix on r10612:Roger Dingledine2007-12-24
| | | | | | | | | 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
* r15653@tombo: nickm | 2007-12-23 14:15:12 -0500Nick Mathewson2007-12-23
| | | | | | | 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
* Fix a crash when we load a bridge descriptor from disk but we don'tRoger Dingledine2007-12-22
| | | | | | | | currently have a Bridge line for it in our torrc. Bugfix on 0.2.0.12-alpha. svn:r12921
* Fix a crash when we fetch a descriptor that turns out to beRoger Dingledine2007-12-21
| | | | | | | | | 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
* clean up copyrights, and assign 2007 copyrights to The Tor Project, IncRoger Dingledine2007-12-12
| | | | svn:r12786
* If we can't expand our list of entry guards (e.g. because we'reRoger Dingledine2007-12-10
| | | | | | | | | 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
* We were ignoring our RelayBandwidthRate for the first 30 secondsRoger Dingledine2007-12-02
| | | | | | | | after opening a circuit -- even relayed circuits. Bugfix on 0.2.0.3-alpha. svn:r12638
* minor cleanupsRoger Dingledine2007-11-26
| | | | svn:r12571
* Only update guard status (usable / not usable) once we haveRoger Dingledine2007-11-26
| | | | | | | | | | 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
* If we're using bridges or have strictentrynodes set, and ourRoger Dingledine2007-11-16
| | | | | | | | chosen exit is in the same family as all our bridges/entry guards, then be flexible about families. svn:r12514
* i'm a little teapot, ...Roger Dingledine2007-11-16
| | | | svn:r12513
* If we're trying to fetch a bridge descriptor and there's no wayRoger Dingledine2007-11-16
| | | | | | | | | 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
* Fix a small memory leak whenever we decide against using aRoger Dingledine2007-11-15
| | | | | | | newly picked entry guard. Reported by Mike Perry. svn:r12506