summaryrefslogtreecommitdiff
path: root/src/or
AgeCommit message (Collapse)Author
2011-04-27Merge maint-0.2.2 for the bug1090-part1-squashed branchNick Mathewson
Resolved conflicts in: doc/tor.1.txt src/or/circuitbuild.c src/or/circuituse.c src/or/connection_edge.c src/or/connection_edge.h src/or/directory.c src/or/rendclient.c src/or/routerlist.c src/or/routerlist.h These were mostly releated to the routerinfo_t->node_t conversion.
2011-04-27explain an argument in a function commentRoger Dingledine
2011-04-27Instead of checking whether we have unremoved intro points, check for usable ↵Nick Mathewson
ones
2011-04-27better user-facing warnings for unexpected last hopsRoger Dingledine
these still aren't perfect, but we won't know how to correct them until we start experiencing surprised users.
2011-04-27warn if we launch too many circuits for a given streamRoger Dingledine
2011-04-27revert most of ef81649d2fcRoger Dingledine
Now we believe it to be the case that we never build a circuit for our stream that has an unsuitable exit, so we'll never need to use such a circuit. The risk is that we have some code that builds the circuit, but now we refuse to use it, meaning we just build a bazillion circuits and ignore them all.
2011-04-27Add a circuit_purpose_to_string() function, and use itNick Mathewson
We had a circuit_purpose_to_controller_string() function, but it was pretty coarse-grained and didn't try to be human-readable.
2011-04-26Fix a check-spaces complaintSebastian Hahn
2011-04-26Explain the "using anyway" log message betterSebastian Hahn
Also add a request to report any cases where we are not honoring StrictNodes to the developers: These should now all be bugs.
2011-04-26Fix a log msgSebastian Hahn
2011-04-26Check transition of circuit purpose from INTRO->GENERAL if nodes are constrainedNick Mathewson
This looked at first like another fun way around our node selection logic: if we had introduction circuits, and we wound up building too many, we would turn extras into general-purpose circuits. But when we did so, we wouldn't necessarily check whether the general-purpose circuits conformed to our node constraints. For example, the last node could totally be in ExcludedExitNodes and we wouldn't have cared... ...except that the circuit should already be internal, so it won't get user streams attached to it, so the transition should generally be allowed. Add an assert to make sure we're right about this, and have it not check whether ExitNodes is set, since that's irrelevant to internal circuits.
2011-04-26When cannibalizing a circuit, make sure it has no ExcludeNodes on itNick Mathewson
This could happen if StrictNodes was 0 and we were forced to pick an excluded node as the last hop of the circuit.
2011-04-26When there is a transition in permitted nodes, apply it to trackexithosts mapNick Mathewson
IOW, if we were using TrackExitHosts, and we added an excluded node or removed a node from exitnodes, we wouldn't actually remove the mapping that points us at the new node. Also, note with an XXX022 comment a place that I think we are looking at the wrong string.
2011-04-26Simplify calls to routerset_equalNick Mathewson
The routerset_equal function explicitly handles NULL inputs, so there's no need to check inputs for NULL before calling it. Also fix a bug in routerset_equal where a non-NULL routerset with no entries didn't get counted as equal to a NULL routerset. This was untriggerable, I think, but potentially annoying down the road.
2011-04-26If we have chosen an exit that shares a family with all bridges, fail the ↵Nick Mathewson
circuit We could probably do something smarter here, but the situation is unusual enough that it's okay to just fail the circuit.
2011-04-26Do not try to download descriptors for bridges in ExcludeNodes.Nick Mathewson
2011-04-26Correct the behavior of .exit with ExcludeNodes, StrictNodes, etc.Nick Mathewson
ExcludeExitNodes foo now means that foo.exit doesn't work. If StrictNodes is set, then ExcludeNodes foo also overrides foo.exit. foo.exit , however, still works even if foo is not listed in ExitNodes.
2011-04-26Note another place that we need to fix a 1090 issue.Nick Mathewson
2011-04-26Do not automatically ignore Fast/Stable for exits when ExitNodes is setNick Mathewson
This once maybe made sense when ExitNodes meant "Here are 3 exits; use them all", but now it more typically means "Here are 3 countries; exit from there." Using non-Fast/Stable exits created a potential partitioning opportunity and an annoying stability problem. (Don't worry about the case where all of our ExitNodes are non-Fast or non-Stable: we handle that later in the function by retrying with need_capacity and need_uptime set to 0.)
2011-04-26Note a slightly less likely way to violate ExcludeNodesNick Mathewson
2011-04-26Note that circuit purpose changing can violate ExcludeNodesNick Mathewson
2011-04-26If we're excluded, and StrictNodes is set, do not do self-tests.Nick Mathewson
2011-04-26Add an XXX022-1090 to note consider_exit_fmily b0rkennessNick Mathewson
2011-04-26three more cases where maybe we want to excludeRoger Dingledine
2011-04-26make formal a constraint that's been true a while nowRoger Dingledine
2011-04-26refuse moria1.exit if moria1 is excludedRoger Dingledine
add a note reminding us to do this for foo.moria1.exit if we decide to.
2011-04-26note another case where strictnodes is considered for exitsRoger Dingledine
2011-04-26If ExitNodes and Exclude{Exit}Nodes overlap, obey Exclude{Exit}Nodes.Roger Dingledine
Also, ExitNodes are always strict.
2011-04-26the new entrynodes behavior is always strictRoger Dingledine
2011-04-26don't exit enclave to excluded relaysRoger Dingledine
2011-04-26slight tweak on circuit_conforms_to_optionsRoger Dingledine
this function really needs to get a total rewrite (or die) For now, use #if 0 to disable it.
2011-04-26handle excludenodes for dir fetch/postRoger Dingledine
If we're picking a random directory node, never pick an excluded one. But if we've chosen a specific one (or all), allow it unless strictnodes is set (in which case warn so the user knows it's their fault). When warning that we won't connect to a strictly excluded node, log what it was we were trying to do at that node. When ExcludeNodes is set but StrictNodes is not set, we only use non-excluded nodes if we can, but fall back to using excluded nodes if none of those nodes is usable.
2011-04-26If EntryNodes and ExcludeNodes overlap, obey ExcludeNodes.Roger Dingledine
2011-04-26refuse excluded hidserv nodes if strictnodesRoger Dingledine
Make hidden services more flaky for people who set both ExcludeNodes and StrictNodes. Not recommended, especially for hidden service operators.
2011-04-26Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson
Conflicts: src/or/main.h
2011-04-26Expose a new process_signal(uintptr_t), not signal_callback()Nick Mathewson
This is a tweak to the bug2917 fix. Basically, if we want to simulate a signal arriving in the controller, we shouldn't have to pretend that we're Libevent, or depend on how Tor sets up its Libevent callbacks.
2011-04-26Merge remote-tracking branch 'sebastian/bug2917' into maint-0.2.2Nick Mathewson
2011-04-26Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson
2011-04-26Merge remote-tracking branch 'public/bug2332' into maint-0.2.2Nick Mathewson
2011-04-26Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson
Conflicts: src/or/rephist.c
2011-04-26Downgrade notice to info when downloading a cert.Nick Mathewson
2011-04-26fix some comments before they create conflictsRoger Dingledine
2011-04-26Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson
2011-04-26Fix compilation in last patchNick Mathewson
2011-04-26Merge remote-tracking branch 'sebastian/bug2704' into maint-0.2.2Nick Mathewson
2011-04-26Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson
Conflicts: src/or/dirserv.h
2011-04-26Fix more of bug 2704Sebastian Hahn
The last entry of the *Maxima values in the state file was inflated by a factor of NUM_SECS_ROLLING_MEASURE (currently 10). This could lead to a wrong maximum value propagating through the state file history.
2011-04-26Don't leak the local hostname in relay nicknamesSebastian Hahn
Fixes bug 2979, reported by tagnaq.
2011-04-25Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson
2011-04-25Merge commit '91aa6f08bcf0acbdfa038aaffe73e327ddd87c67' into maint-0.2.2Nick Mathewson