summaryrefslogtreecommitdiff
path: root/src/or/circuitbuild.c
AgeCommit message (Collapse)Author
2009-05-04Update copyright to 2009.Karsten Loesing
2009-04-11only log that at loglevel notice if there's a problem with theRoger Dingledine
version. otherwise there's no reason to tell the user we're doing behind-the-scenes cleaning. svn:r19288
2009-04-11Clients replace entry guards that were chosen more than a few monthsRoger Dingledine
ago. This change should significantly improve client performance, especially once more people upgrade, since relays that have been a guard for a long time are currently overloaded. svn:r19287
2009-03-18If we have a routerstatus but no routerinfo to name a router, use the ↵Nick Mathewson
routerstatus instead when generating circuit events. Also refactor a little. svn:r19078
2009-03-09We were already rejecting relay begin cells with destination portRoger Dingledine
of 0. Now also reject extend cells with destination port or address of 0. Suggested by lark. svn:r18812
2009-02-21Patch from lark: if we get two extend cells for the same circuit id, drop ↵Nick Mathewson
the second. Previously, we had leaked an extend_info if the target connection was not open when the second arrived. svn:r18668
2009-02-04If we're using bridges and our network goes away, be more willingRoger Dingledine
to forgive our bridges and try again when we get an application request. Bugfix on 0.2.0.x. svn:r18396
2009-01-28Remove some dead code.Nick Mathewson
svn:r18301
2009-01-04Remove svn $Id$s from our source, and remove tor --version --version.Nick Mathewson
The subversion $Id$ fields made every commit force a rebuild of whatever file got committed. They were not actually useful for telling the version of Tor files in the wild. svn:r17867
2009-01-02take out my IMPOSSIBLE_TO_DOWNLOAD+1 hackRoger Dingledine
svn:r17850
2008-12-31switch over the bridge descriptor download mechanism toRoger Dingledine
use the same download mechanism as other places. i had to make an ugly hack around "IMPOSSIBLE_TO_DOWNLOAD+1". we should unhack that sometime. svn:r17834
2008-12-29Actually log reasons on unusable guards again.Nick Mathewson
svn:r17822
2008-12-24Checkpoint my big bug-891 patch.Nick Mathewson
svn:r17757
2008-12-22Partially apply bug 891 parch from forest: check EXTEND cell address against ↵Nick Mathewson
real_addr, not addr. I have questions about the rest of the patch: see the flyspray entry. svn:r17730
2008-12-22Fix all of the doxygen warnings not pertaining to missing documentation.Nick Mathewson
svn:r17727
2008-12-19When we need to open a new origin circuit, log why.Nick Mathewson
svn:r17705
2008-12-18Downlgrade tweak, and answer lots of XXX021s. No actual code fixes in this ↵Nick Mathewson
patch. svn:r17686
2008-12-17Rename or_is_obsolete and move it to or_connection_t where it belongs.Nick Mathewson
svn:r17642
2008-12-15Don't extend circuits over noncanonical connections with mismatched addresses.Nick Mathewson
Also, refactor the logic to check whether we will use a connection or launch a new one into a new function. svn:r17628
2008-12-08When the client is choosing entry guards, now it selects at mostRoger Dingledine
one guard from a given relay family. Otherwise we could end up with all of our entry points into the network run by the same operator. Suggested by Camilo Viecco. Fix on 0.1.1.11-alpha. Not a backport candidate, since I think this might break for users who only have a given /16 in their reachableaddresses, or something like that. svn:r17514
2008-11-03when building preemptive circuits, ignore streams that have aRoger Dingledine
chosen exit node in mind already. otherwise we get tricked into trying to build a new circuit that will handle them. svn:r17184
2008-11-01fix the other half of r17091. now that best_support can be -1,Roger Dingledine
we were complaining about no support for our one-hop streams, when in fact choose_good_exit_server_general() has no business caring about one-hop streams. patch from miner. svn:r17181
2008-10-14Patch from rovv: when we have no pending streams, choose exits with ↵Nick Mathewson
choose_good_exit_server_general() rather than with circuit_get_unhandled_ports() and friends. Bugfix on 0.1.1.x, at least. svn:r17091
2008-10-12another coverity-found memory leakRoger Dingledine
svn:r17062
2008-10-12minor memory leak found by coverityRoger Dingledine
svn:r17061
2008-09-26Make sure ExcludeSingleHopRelays works for an exit.Nick Mathewson
svn:r16984
2008-09-26Proposal 152 implementation from Josh Albrecht, with tweaks.Nick Mathewson
svn:r16983
2008-09-25Add country-code support to configured node lists to implement the ↵Nick Mathewson
ever-popular "no exits in Monaco" feature (ExcludeExitNodes {MC}). Also allow country codes and IP ranges in ExitNodes. (EntryNodes needs more work.) Based on code by Robert Hogan. Needs more testing. svn:r16966
2008-09-23Fix for bug 797 (by arma, with tweaks): always use create_fast for circuits ↵Nick Mathewson
where we do not know an onion key. svn:r16942
2008-08-31backport candidate:Roger Dingledine
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
2008-08-20Relays now reject risky extend cells: if the extend cell includesRoger Dingledine
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
2008-08-05 r17641@31-33-44: nickm | 2008-08-05 16:07:53 -0400Nick Mathewson
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
2008-08-05Take out the TestVia config option, since it was a workaround fortor-0.2.1.4-alphaRoger Dingledine
a bug that was fixed in Tor 0.1.1.21. svn:r16409
2008-08-04Make check-spaces happy.Karsten Loesing
svn:r16406
2008-08-03Fix a false assertion when extending a circuit to a relay to which a ↵Karsten Loesing
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
2008-07-30 r17436@tombo: nickm | 2008-07-30 09:03:19 -0400Nick Mathewson
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
2008-07-24 r17338@aud-055: nickm | 2008-07-24 11:21:06 +0200Nick Mathewson
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
2008-07-23 r17322@aud-055: nickm | 2008-07-23 16:50:50 +0200Nick Mathewson
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
2008-07-23 r17309@aud-055: nickm | 2008-07-23 16:05:43 +0200Nick Mathewson
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
2008-07-23 r17302@aud-055: nickm | 2008-07-23 14:55:28 +0200Nick Mathewson
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
2008-07-18 r17188@tombo: nickm | 2008-07-18 14:35:18 -0400Nick Mathewson
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
2008-07-16Stop trying to detect versions of Tor on the server-side older than ↵Nick Mathewson
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
2008-07-11When relays do their initial bandwidth measurement, don't limitRoger Dingledine
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
2008-06-20If you're using bridges, generate "bootstrap problem" warningsRoger Dingledine
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
2008-06-20Big bridge bugfixes. Backport candidates.Roger Dingledine
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
2008-06-10minor fixes and notesRoger Dingledine
svn:r15111
2008-06-08include tags in the bootstrap status events. also document theRoger Dingledine
bootstrapping process and how the phases break down. svn:r15020
2008-06-07infrastructure for the 'bootstrap status event' feature, so we canRoger Dingledine
tell the controller how we're doing at bootstrapping, and it can tell the user. svn:r15008
2008-06-06make some log entries more accurateRoger Dingledine
svn:r14998
2008-06-02Also add create/create fast/extends to the dir-usage stats.Peter Palfrader
svn:r14900