aboutsummaryrefslogtreecommitdiff
path: root/src/or/rendclient.c
AgeCommit message (Collapse)Author
2011-10-11Fix a bunch of whitespace errorsNick Mathewson
2011-10-10Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson
2011-10-10Update documentation comment for rend_client_reextend_intro_circuitRobert Ransom
One of its callers assumes a non-zero result indicates a permanent failure (i.e. the current attempt to connect to this HS either has failed or is doomed). The other caller only requires that this function's result never equal -2. Bug reported by Sebastian Hahn.
2011-10-10Don't launch a useless circuit in rend_client_reextend_intro_circuitRobert Ransom
Fixes bug 4212. Bug reported by katmagic and found by Sebastian.
2011-10-03Merge remote-tracking branch 'rransom-tor/bug3335-v2'Nick Mathewson
Conflicts: src/or/connection_edge.c src/or/rendclient.c
2011-10-02Remove an HS's last_hid_serv_requests entries when a conn. attempt endsRobert Ransom
2011-10-02Record the HS's address in last_hid_serv_request keysRobert Ransom
2011-10-02Fix comment typoRobert Ransom
2011-10-02Detect and remove unreachable intro pointsRobert Ransom
2011-10-02Clear the timed_out flag when an HS connection attempt endsRobert Ransom
2011-10-02Record intro point timeouts in rend_intro_point_tRobert Ransom
2011-10-02Refetch an HS's desc if we don't have a usable oneRobert Ransom
Previously, we wouldn't refetch an HS's descriptor unless we didn't have one at all. That was equivalent to refetching iff we didn't have a usable one, but the next commit will make us keep some non-usable HS descriptors around in our cache. Code bugfix on the release that introduced the v2 HS directory system, because rend_client_refetch_v2_renddesc's documentation comment should have described what it actually did, not what its behaviour happened to be equivalent to; no behaviour change in this commit.
2011-07-21Move entry-only fields from edge_connection_t to entry_connection_tNick Mathewson
Also, refactor the code accordingly.
2011-07-15Fix bug in upload/download of hsdesc with microdescsNick Mathewson
Previously we were using router_get_by_id(foo) to test "do we have a descriptor that will let us make an anonymous circuit to foo". But that isn't right for microdescs: we should have been using node_t. Fixes bug 3601; bugfix on 0.2.3.1-alpha.
2011-07-07Kill redundant checks around routerset_contains_*()Nick Mathewson
All of the routerset_contains*() functions return 0 if their routerset_t argument is NULL. Therefore, there's no point in doing "if (ExcludeNodes && routerset_contains*(ExcludeNodes...))", for example. This patch fixes every instance of if (X && routerstatus_contains*(X,...)) Note that there are other patterns that _aren't_ redundant. For example, we *don't* want to change: if (EntryNodes && !routerstatus_contains(EntryNodes,...)) Fixes #2797. No bug here; just needless code.
2011-06-15Merge remote-tracking branch 'rransom-tor/bug3332-v2'Nick Mathewson
2011-06-14Assert that HS operations are not performed using single-hop circuitsRobert Ransom
(with fixes by Nick Mathewson to unbreak the build)
2011-06-14Make the get_options() return constNick Mathewson
This lets us make a lot of other stuff const, allows the compiler to generate (slightly) better code, and will make me get slightly fewer patches from folks who stick mutable stuff into or_options_t. const: because not every input is an output!
2011-06-02Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson
Conflicts: src/or/rendclient.c
2011-06-02Add info-level log messages during HS-client-state purgeRobert Ransom
I hope these will never be useful, but having them and not needing them is better than needing them and not having them.
2011-06-02Refactor HS client state-clearing code into a separate functionRobert Ransom
2011-06-02Clear last_hid_serv_requests on SIGNAL NEWNYMRobert Ransom
Fixes bug #3309.
2011-06-02Make last_hid_serv_requests functions less fragileRobert Ransom
Previously, Tor would dereference a NULL pointer and crash if lookup_last_hid_serv_request were called before the first call to directory_clean_last_hid_serv_requests. As far as I can tell, that's currently impossible, but I want that undocumented invariant to go away in case I^Wwe break it someday.
2011-05-30Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson
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
2011-05-30Merge branch 'bug3045' into maint-0.2.2Nick Mathewson
Conflicts: src/or/circuitbuild.c
2011-05-30Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson
Conflicts: src/or/circuituse.c
2011-05-30Set timestamp_dirty on HS circuits as circuit_expire_building requiresRobert Ransom
Fixes part of #1297; bugfix on 48e0228f1e031a709c1deb149c7dfd187c3609cf, when circuit_expire_building was changed to assume that timestamp_dirty was set when a circuit changed purpose to _C_REND_READY. (It wasn't.)
2011-05-15Log descriptions of nodes, not just nicknames.Nick Mathewson
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.
2011-05-11Merge remote-tracking branch 'public/bug3122_memcmp_022' into bug3122_memcmp_023Nick Mathewson
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
2011-05-11Merge remote-tracking branch 'public/3122_memcmp_squashed' into ↵Nick Mathewson
bug3122_memcmp_022 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
2011-05-11Hand-conversion and audit phase of memcmp transitionNick Mathewson
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.
2011-05-11Automated conversion of memcmp to tor_memcmp/tor_mem[n]eqNick Mathewson
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
2011-05-05Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson
2011-05-05Fix up some check-spaces issuesNick Mathewson
2011-04-28Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson
2011-04-28Fix bug 1930Robert Ransom
2011-04-28Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson
Conflicts: src/or/rendcommon.h
2011-04-28Clean up merge of bug3k_021Robert Ransom
2011-04-28Merge branch 'bug3k_021' into bug3k_022Sebastian Hahn
Conflicts: src/or/or.h src/or/rendclient.c
2011-04-28Fix a bug introduced by purging rend_cache on NEWNYMRobert Ransom
If the user sent a SIGNAL NEWNYM command after we fetched a rendezvous descriptor, while we were building the introduction-point circuit, we would give up entirely on trying to connect to the hidden service. Original patch by rransom slightly edited to go into 0.2.1
2011-04-28Allow rend_client_send_introduction to fail transientlyRobert Ransom
i.e. without closing the AP connection.
2011-04-28Forget all rendezvous client state on SIGNAL NEWNYMRobert Ransom
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-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-07Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson
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
2011-03-25Triage the XXX022 and XXX021 comments remaining in the codeNick Mathewson
Remove some, postpone others, leave some alone. Now the only remaining XXX022s are ones that seem important to fix or investigate.
2011-03-15Merge remote branch 'origin/maint-0.2.2'Nick Mathewson
2011-03-15Merge remote branch 'origin/maint-0.2.1' into maint-0.2.2Nick Mathewson