aboutsummaryrefslogtreecommitdiff
path: root/src/or/rendclient.c
Commit message (Collapse)AuthorAge
* Update copyright dates to 2012; add a few missing copyright statementsNick Mathewson2012-06-04
|
* Rename nonconformant identifiers.Nick Mathewson2012-01-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes bug 4893. These changes are pure mechanical, and were generated with this perl script: /usr/bin/perl -w -i.bak -p s/crypto_pk_env_t/crypto_pk_t/g; s/crypto_dh_env_t/crypto_dh_t/g; s/crypto_cipher_env_t/crypto_cipher_t/g; s/crypto_digest_env_t/crypto_digest_t/g; s/aes_free_cipher/aes_cipher_free/g; s/crypto_free_cipher_env/crypto_cipher_free/g; s/crypto_free_digest_env/crypto_digest_free/g; s/crypto_free_pk_env/crypto_pk_free/g; s/_crypto_dh_env_get_dh/_crypto_dh_get_dh/g; s/_crypto_new_pk_env_rsa/_crypto_new_pk_from_rsa/g; s/_crypto_pk_env_get_evp_pkey/_crypto_pk_get_evp_pkey/g; s/_crypto_pk_env_get_rsa/_crypto_pk_get_rsa/g; s/crypto_new_cipher_env/crypto_cipher_new/g; s/crypto_new_digest_env/crypto_digest_new/g; s/crypto_new_digest256_env/crypto_digest256_new/g; s/crypto_new_pk_env/crypto_pk_new/g; s/crypto_create_crypto_env/crypto_cipher_new/g; s/connection_create_listener/connection_listener_new/g; s/smartlist_create/smartlist_new/g; s/transport_create/transport_new/g;
* Merge branch 'feature3457-v4-nm-squashed'Nick Mathewson2012-01-11
|\ | | | | | | | | Conflicts: src/or/rendclient.c
| * Log whenever a circuit's purpose is changedRobert Ransom2011-11-24
| |
* | Fix brown-paper-bag bug in #4759 fixRobert Ransom2012-01-09
| | | | | | | | Fixes #4883, not yet in any release.
* | Don't close HS client circs which are 'almost connected' on timeoutRobert Ransom2011-12-27
| |
* | Look up the rend circ whose INTRODUCE1 is being ACKed correctlyRobert Ransom2011-12-22
| | | | | | | | | | This change cannibalizes circuit_get_by_rend_query_and_purpose because it had exactly one caller.
* | Mark each intro circ with the rend cookie sent in its INTRODUCE1 cellRobert Ransom2011-12-22
| | | | | | | | Needed by fix for #4759.
* | Remove comment complaining that we try to attach all streams to circsRobert Ransom2011-12-09
| | | | | | | | | | | | It's inefficient, but the more efficient solution (only try to attach streams aiming for this HS) would require far more complexity for a gain that should be tiny.
* | Clear stream-isolation state on rend circs if needed to attach streamsRobert Ransom2011-12-09
| | | | | | | | Fixes bug 4655; bugfix on 0.2.3.3-alpha.
* | Merge branch 'feature2553-v4-rebased'Nick Mathewson2011-11-30
|\ \
| * | Add ifdefs to disable #3332 assertionsRobert Ransom2011-11-30
| | |
| * | Perform single-hop HS desc fetches when in tor2web modeRobert Ransom2011-11-30
| |/
* / First chunk of support for bridges on IPv6Linus Nordberg2011-11-30
|/ | | | | | | | | | | | | | | | | | | | | | | | | Comments below focus on changes, see diff for added code. New type tor_addr_port_t holding an IP address and a TCP/UDP port. New flag in routerinfo_t, ipv6_preferred. This should go in the node_t instead but not now. Replace node_get_addr() with - node_get_prim_addr() for primary address, i.e. IPv4 for now - node_get_pref_addr() for preferred address, IPv4 or IPv6. Rename node_get_addr_ipv4h() node_get_prim_addr_ipv4h() for consistency. The primary address will not allways be an IPv4 address. Same for node_get_orport() -> node_get_prim_orport(). Rewrite node_is_a_configured_bridge() to take all OR ports into account. Extend argument list to extend_info_from_node and extend_info_from_router with a flag indicating if we want to use the routers primary address or the preferred address. Use the preferred address in as few situtations as possible for allowing clients to connect to bridges over IPv6.
* Merge remote-tracking branch 'rransom-tor/bug4411'Nick Mathewson2011-11-07
|\
| * Fix assert on clients of and authorities for v0 HS descsRobert Ransom2011-11-07
| |
* | Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson2011-11-07
|\ \ | |/ |/|
| * Remove an extraneous "if" in the 4424 fixNick Mathewson2011-11-07
| |
| * Don't leak an extend_info_t in rend_client_any_intro_points_usableRobert Ransom2011-11-07
| |
* | Fix a bunch of whitespace errorsNick Mathewson2011-10-11
| |
* | Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson2011-10-10
|\|
| * Update documentation comment for rend_client_reextend_intro_circuitRobert Ransom2011-10-10
| | | | | | | | | | | | | | | | | | 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.
| * Don't launch a useless circuit in rend_client_reextend_intro_circuitRobert Ransom2011-10-10
| | | | | | | | Fixes bug 4212. Bug reported by katmagic and found by Sebastian.
* | Merge remote-tracking branch 'rransom-tor/bug3335-v2'Nick Mathewson2011-10-03
|\ \ | | | | | | | | | | | | | | | Conflicts: src/or/connection_edge.c src/or/rendclient.c
| * | Remove an HS's last_hid_serv_requests entries when a conn. attempt endsRobert Ransom2011-10-02
| | |
| * | Record the HS's address in last_hid_serv_request keysRobert Ransom2011-10-02
| | |
| * | Fix comment typoRobert Ransom2011-10-02
| | |
| * | Detect and remove unreachable intro pointsRobert Ransom2011-10-02
| | |
| * | Clear the timed_out flag when an HS connection attempt endsRobert Ransom2011-10-02
| | |
| * | Record intro point timeouts in rend_intro_point_tRobert Ransom2011-10-02
| | |
| * | Refetch an HS's desc if we don't have a usable oneRobert Ransom2011-10-02
| |/ | | | | | | | | | | | | | | | | | | | | | | 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.
* | Move entry-only fields from edge_connection_t to entry_connection_tNick Mathewson2011-07-21
| | | | | | | | Also, refactor the code accordingly.
* | Fix bug in upload/download of hsdesc with microdescsNick Mathewson2011-07-15
| | | | | | | | | | | | | | | | 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.
* | Kill redundant checks around routerset_contains_*()Nick Mathewson2011-07-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge remote-tracking branch 'rransom-tor/bug3332-v2'Nick Mathewson2011-06-15
|\ \
| * | Assert that HS operations are not performed using single-hop circuitsRobert Ransom2011-06-14
| | | | | | | | | | | | (with fixes by Nick Mathewson to unbreak the build)
* | | Make the get_options() return constNick Mathewson2011-06-14
|/ / | | | | | | | | | | | | | | 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!
* | Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson2011-06-02
|\| | | | | | | | | Conflicts: src/or/rendclient.c
| * Add info-level log messages during HS-client-state purgeRobert Ransom2011-06-02
| | | | | | | | | | I hope these will never be useful, but having them and not needing them is better than needing them and not having them.
| * Refactor HS client state-clearing code into a separate functionRobert Ransom2011-06-02
| |
| * Clear last_hid_serv_requests on SIGNAL NEWNYMRobert Ransom2011-06-02
| | | | | | | | Fixes bug #3309.
| * Make last_hid_serv_requests functions less fragileRobert Ransom2011-06-02
| | | | | | | | | | | | | | | | 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.
* | Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson2011-05-30
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * Merge branch 'bug3045' into maint-0.2.2Nick Mathewson2011-05-30
| |\ | | | | | | | | | | | | Conflicts: src/or/circuitbuild.c
| | * Log descriptions of nodes, not just nicknames.Nick Mathewson2011-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson2011-05-30
|\| | | | | | | | | | | | | | Conflicts: src/or/circuituse.c
| * | Set timestamp_dirty on HS circuits as circuit_expire_building requiresRobert Ransom2011-05-30
| |/ | | | | | | | | | | 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.)
* | Merge remote-tracking branch 'public/bug3122_memcmp_022' into bug3122_memcmp_023Nick Mathewson2011-05-11
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * Merge remote-tracking branch 'public/3122_memcmp_squashed' into ↵Nick Mathewson2011-05-11
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| | * Hand-conversion and audit phase of memcmp transitionNick Mathewson2011-05-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.