aboutsummaryrefslogtreecommitdiff
path: root/src/or/circuituse.c
Commit message (Expand)AuthorAge
* Merge remote-tracking branch 'origin/maint-0.2.2'•••The conflicts were mainly caused by the routerinfo->node transition. Conflicts: src/or/circuitbuild.c src/or/command.c src/or/connection_edge.c src/or/directory.c src/or/dirserv.c src/or/relay.c src/or/rendservice.c src/or/routerlist.c Nick Mathewson2011-05-30
|\
| * Merge branch 'bug3045' into maint-0.2.2•••Conflicts: src/or/circuitbuild.c Nick Mathewson2011-05-30
| |\
| | * Log descriptions of nodes, not just nicknames.•••This patch introduces a few new functions in router.c to produce a more helpful description of a node than its nickame, and then tweaks nearly all log messages taking a nickname as an argument to call these functions instead. There are a few cases where I left the old log messages alone: in these cases, the nickname was that of an authority (whose nicknames are useful and unique), or the message already included an identity and/or an address. I might have missed a couple more too. This is a fix for bug 3045. Nick Mathewson2011-05-15
* | | Merge remote-tracking branch 'origin/maint-0.2.2'•••Conflicts: src/or/circuituse.c Nick Mathewson2011-05-30
|\| |
| * | Use the normal four-hop CBT for client intro circuits•••Fixes another part of bug 1297. Robert Ransom2011-05-30
| |/
* | Merge remote-tracking branch 'origin/maint-0.2.2'•••Conflicts: src/or/connection_edge.c Nick Mathewson2011-05-15
|\|
| * Replace a nasty add-malloc-snprintf with a nice clean asprintfNick Mathewson2011-05-15
| * Better doc for consider_recording_trackexithostNick Mathewson2011-05-15
| * Raise the TrackHostExits membership code into its own functionNick Mathewson2011-05-13
* | Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson2011-05-12
|\|
| * Downgrade the "we launched 10 circuits for this stream" message. (See bug 3080)Nick Mathewson2011-05-12
* | Merge remote-tracking branch 'public/bug3122_memcmp_022' into bug3122_memcmp_023•••Conflicts in various places, mainly node-related. Resolved them in favor of HEAD, with copying of tor_mem* operations from bug3122_memcmp_022. src/common/Makefile.am src/or/circuitlist.c src/or/connection_edge.c src/or/directory.c src/or/microdesc.c src/or/networkstatus.c src/or/router.c src/or/routerlist.c src/test/test_util.c Nick Mathewson2011-05-11
|\|
| * Merge remote-tracking branch 'public/3122_memcmp_squashed' into bug3122_memcm...•••Conflicts throughout. All resolved in favor of taking HEAD and adding tor_mem* or fast_mem* ops as appropriate. src/common/Makefile.am src/or/circuitbuild.c src/or/directory.c src/or/dirserv.c src/or/dirvote.c src/or/networkstatus.c src/or/rendclient.c src/or/rendservice.c src/or/router.c src/or/routerlist.c src/or/routerparse.c src/or/test.c Nick Mathewson2011-05-11
| |\
| | * Hand-conversion and audit phase of memcmp transition•••Here I looked at the results of the automated conversion and cleaned them up as follows: If there was a tor_memcmp or tor_memeq that was in fact "safe"[*] I changed it to a fast_memcmp or fast_memeq. Otherwise if there was a tor_memcmp that could turn into a tor_memneq or tor_memeq, I converted it. This wants close attention. [*] I'm erring on the side of caution here, and leaving some things as tor_memcmp that could in my opinion use the data-dependent fast_memcmp variant. Nick Mathewson2011-05-11
| | * Automated conversion of memcmp to tor_memcmp/tor_mem[n]eq•••This commit is _exactly_ the result of perl -i -pe 's/\bmemcmp\(/tor_memcmp\(/g' src/*/*.[ch] perl -i -pe 's/\!\s*tor_memcmp\(/tor_memeq\(/g' src/*/*.[ch] perl -i -pe 's/0\s*==\s*tor_memcmp\(/tor_memeq\(/g' src/*/*.[ch] perl -i -pe 's/0\s*!=\s*tor_memcmp\(/tor_memneq\(/g' src/*/*.[ch] git checkout src/common/di_ops.[ch] git checkout src/or/test.c git checkout src/common/test.h Nick Mathewson2011-05-11
* | | Merge remote-tracking branch 'origin/maint-0.2.2'•••Conflicts: src/or/rendcommon.h Nick Mathewson2011-04-28
|\| |
| * | Merge branch 'bug3k_021' into bug3k_022•••Conflicts: src/or/or.h src/or/rendclient.c Sebastian Hahn2011-04-28
| |\|
| | * Fix a failure case of connection_ap_handshake_attach_circuit()•••tor_fragile_assert() might be a no-op, so we have to return something here to indicate failure to the caller. Sebastian Hahn2011-04-28
| | * Allow rend_client_send_introduction to fail transiently•••i.e. without closing the AP connection. Robert Ransom2011-04-28
* | | Merge branch 'maint-0.2.2'•••Conflicts: src/or/dirserv.h Roger Dingledine2011-04-27
|\| |
| * | make make check-spaces happier.•••(still not happy.) Roger Dingledine2011-04-27
* | | Merge maint-0.2.2 for the bug1090-part1-squashed branch•••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. Nick Mathewson2011-04-27
|\| |
| * | warn if we launch too many circuits for a given streamRoger Dingledine2011-04-27
| * | revert most of ef81649d2fc•••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. Roger Dingledine2011-04-27
| * | Add a circuit_purpose_to_string() function, and use it•••We had a circuit_purpose_to_controller_string() function, but it was pretty coarse-grained and didn't try to be human-readable. Nick Mathewson2011-04-27
| * | slight tweak on circuit_conforms_to_options•••this function really needs to get a total rewrite (or die) For now, use #if 0 to disable it. Roger Dingledine2011-04-26
* | | Merge remote-tracking branch 'origin/maint-0.2.2'•••Conflicts: src/common/address.c src/common/compat_libevent.c src/common/memarea.c src/common/util.h src/or/buffers.c src/or/circuitbuild.c src/or/circuituse.c src/or/connection.c src/or/directory.c src/or/networkstatus.c src/or/or.h src/or/routerlist.c Nick Mathewson2011-04-07
|\| |
| * | Merge remote-tracking branch 'public/xxx_fixups' into maint-0.2.2•••Conflicts: src/or/or.h Nick Mathewson2011-04-07
| |\ \
| | * | Triage the XXX022 and XXX021 comments remaining in the code•••Remove some, postpone others, leave some alone. Now the only remaining XXX022s are ones that seem important to fix or investigate. Nick Mathewson2011-03-25
* | | | Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson2011-04-07
|\| | |
| * | | Fix a compile warning on OS X 10.6Sebastian Hahn2011-04-07
* | | | Merge remote-tracking branch 'origin/maint-0.2.2'•••Conflicts: src/common/compat.h src/or/circuitlist.c src/or/circuituse.c src/or/or.h src/or/rephist.c Nick Mathewson2011-03-30
|\| | |
| * | | Use cbt to tell when to launch parallel intro circuit•••Implement feature from trac #2799 Nick Mathewson2011-03-30
| * | | Use timevals, not time_t, when expiring circuits.•••We've got millisecond timers now, we might as well use them. This change won't actually make circuits get expiered with microsecond precision, since we only call the expiry functions once per second. Still, it should avoid the situation where we have a circuit get expired too early because of rounding. A couple of the expiry functions now call tor_gettimeofday: this should be cheap since we're only doing it once per second. If it gets to be called more often, though, we should onsider having the current time be an argument again. Nick Mathewson2011-03-30
| |/ /
* | | Merge remote branch 'origin/maint-0.2.2'Nick Mathewson2011-01-03
|\| |
| * | Merge remote branch 'origin/maint-0.2.1' into maint-0.2.2•••Conflicts: src/common/test.h src/or/test.c Nick Mathewson2011-01-03
| |\|
| | * Bump copyright statements to 2011Nick Mathewson2011-01-03
* | | Fold timestamp_created into highres_created•••There's no reason to keep a time_t and a struct timeval to represent the same value: highres_created.tv_sec was the same as timestamp_created. This should save a few bytes per circuit. Nick Mathewson2010-10-15
* | | Fix a couple more node_t-related nullpointer bugsNick Mathewson2010-10-04
* | | Initial conversion to use node_t throughout our codebase.•••A node_t is an abstraction over routerstatus_t, routerinfo_t, and microdesc_t. It should try to present a consistent interface to all of them. There should be a node_t for a server whenever there is * A routerinfo_t for it in the routerlist * A routerstatus_t in the current_consensus. (note that a microdesc_t alone isn't enough to make a node_t exist, since microdescriptors aren't usable on their own.) There are three ways to get a node_t right now: looking it up by ID, looking it up by nickname, and iterating over the whole list of microdescriptors. All (or nearly all) functions that are supposed to return "a router" -- especially those used in building connections and circuits -- should return a node_t, not a routerinfo_t or a routerstatus_t. A node_t should hold all the *mutable* flags about a node. This patch moves the is_foo flags from routerinfo_t into node_t. The flags in routerstatus_t remain, but they get set from the consensus and should not change. Some other highlights of this patch are: * Looking up routerinfo and routerstatus by nickname is now unified and based on the "look up a node by nickname" function. This tries to look only at the values from current consensus, and not get confused by the routerinfo_t->is_named flag, which could get set for other weird reasons. This changes the behavior of how authorities (when acting as clients) deal with nodes that have been listed by nickname. * I tried not to artificially increase the size of the diff here by moving functions around. As a result, some functions that now operate on nodes are now in the wrong file -- they should get moved to nodelist.c once this refactoring settles down. This moving should happen as part of a patch that moves functions AND NOTHING ELSE. * Some old code is now left around inside #if 0/1 blocks, and should get removed once I've verified that I don't want it sitting around to see how we used to do things. There are still some unimplemented functions: these are flagged with "UNIMPLEMENTED_NODELIST()." I'll work on filling in the implementation here, piece by piece. I wish this patch could have been smaller, but there did not seem to be any piece of it that was independent from the rest. Moving flags forces many functions that once returned routerinfo_t * to return node_t *, which forces their friends to change, and so on. Nick Mathewson2010-10-01
* | | Try to make most routerinfo_t interfaces constNick Mathewson2010-10-01
|/ /
* | Merge branch 'bug1772' into maint-0.2.2Roger Dingledine2010-09-29
|\ \
| * | no measurement circs if not enough build times•••In the first 100 circuits, our timeout_ms and close_ms are the same. So we shouldn't transition circuits to purpose CIRCUIT_PURPOSE_C_MEASURE_TIMEOUT, since they will just timeout again next time we check. Roger Dingledine2010-09-29
| * | refactor and recomment; no actual changesRoger Dingledine2010-09-29
| * | Fix non-live condition checks.•••Rechecking the timeout condition was foolish, because it is checked on the same codepath. It was also wrong, because we didn't round. Also, the liveness check itself should be <, and not <=, because we only have 1 second resolution. Mike Perry2010-09-29
* | | Merge commit 'mikeperry/bug1739' into maint-0.2.2Roger Dingledine2010-09-29
|\| |
| * | Send control port events for timeouts.•••We now differentiate between timeouts and cutoffs by the REASON string and the PURPOSE string. Mike Perry2010-09-29
* | | Merge commit 'mikeperry/bug1740' into maint-0.2.2Roger Dingledine2010-09-29
|\| |
| * | Only count timeout data for 3 hop circuits.•••Use 4/3 of this timeout value for 4 hop circuits, and use half of it for canabalized circuits. Mike Perry2010-09-29
* | | improve code comments, based on comments from nickRoger Dingledine2010-09-28