aboutsummaryrefslogtreecommitdiff
path: root/src/or/circuituse.c
Commit message (Expand)AuthorAge
* Make arguments to circuit_set_circid_orconn match the connection that is clos...•••svn:r5465 Nick Mathewson2005-11-29
* "How about 'never'? Does 'never' work for you?"•••Weasel says circuit_get_by_conn is his main timesink. Most of its users were just checking whether OR conns had circuits, so add a circuit count to OR conns, and check that. One was circuit_about_to_close_conn, which was doing an O(n^2) series of calls to get all circs on an OR conn, so make an O(n) function for that. Finally, circuit_get_by_edge_conn was using it as a sanity test that has been around for a while but never found any actualy insanity, so kill that. circuit_get_by_conn is finally dead, which is good, since it was never sane to begin with. svn:r5460 Nick Mathewson2005-11-26
* Start the process of treating internal circuits and exit circuits•••separately. It's important to keep them separate because internal circuits have their last hops picked like middle hops, rather than like exit hops. So exiting on them will break the user's expectations. - Stop cannibalizing internal circuits for general exits, and stop cannibalizing exit circuits for rendezvous stuff. - Don't let new exit streams attach to internal circuits. - When deciding if we have enough circuits for internal and for exit, don't count the wrong ones. - Treat predicted resolves as predicted port 80 exits. svn:r5457 Roger Dingledine2005-11-25
* Recover better from TCP connections to Tor servers that are broken but•••don't tell you (it happens!); and rotate TLS connections once a week. 1) If an OR conn becomes more than a week old, make it obsolete. 2) If it's obsolete and empty, kill it. 3) When an OR makes a second connection to you, allow it. 4) If we want to send a new create cell, but the best conn we've got is obsolete, and the router is 0.1.1.9-alpha-cvs or later, ask for a new conn instead. 5) When we time out on circuit building on the first hop, make that connection obsolete. svn:r5429 Roger Dingledine2005-11-19
* Make new logging stuff work on windows; fix a couple of windows typos.•••svn:r5375 Nick Mathewson2005-11-15
* when we were cannibalizing a circuit with a particular exit•••node in mind, we weren't checking to see if that exit node was already present earlier in the circuit. oops. svn:r5357 Roger Dingledine2005-11-11
* Remove last vestiges of old logging interface.•••svn:r5317 Nick Mathewson2005-10-25
* Convert circuituse, command, config, connection, relay, router, test to new l...•••svn:r5308 Nick Mathewson2005-10-25
* Use LD_BUG as appropriate; convert rend* and router* to new logging interface...•••svn:r5302 Nick Mathewson2005-10-24
* replace former relaunches of directory downloads with reset of failure count ...•••svn:r5195 Nick Mathewson2005-10-05
* Note the two places where clients will still try to fetch old-style (v1) dire...•••svn:r5193 Nick Mathewson2005-10-05
* Check for named servers when looking them up by nickname;•••warn when we'recalling a non-named server by its nickname; don't warn twice about the same name. Fix a bug in routers_update_status_from_networkstatus that made nearly all clients never update routerinfo_t.is_named. Try to list MyFamily elements by key, not by nickname. Only warn about names that we generated ourself, or got from the local user. On TLS handshake, only check the other router's nickname against its expected nickname if is_named is set. svn:r5185 Nick Mathewson2005-10-04
* Reformat inconsistent function declarations.•••svn:r5160 Nick Mathewson2005-09-30
* Implement exit enclaves: if we know an IP address for the destination,•••and there's a running Tor server at that address which allows exit to the destination, then extend the circuit to that exit first. Also, if the user asks for a .exit node, cannibalize general circs for it. svn:r4779 Roger Dingledine2005-08-15
* predict required circuits better, with an eye toward making•••hidden services faster on the service end. svn:r4772 Roger Dingledine2005-08-13
* We weren't cannibilizing circuits correctly for•••CIRCUIT_PURPOSE_C_ESTABLISH_REND and CIRCUIT_PURPOSE_S_ESTABLISH_INTRO so we were being forced to build those from scratch. This should save us a bit of time. Also fixes bug 173. svn:r4763 Roger Dingledine2005-08-12
* trivial changes on nick's rendezvous commit•••svn:r4553 Roger Dingledine2005-07-14
* Logic to implement rendezvous/introduction via unknown servers.•••- Add a new extend_info_t datatype to hold information needed to extend a circuit (addr,port,keyid,onion_key). Use it in cpath and build_state. Make appropriate functions take or return it instead of routerinfo_t or keyid. - #if 0 needless check in circuit_get_by_edge_conn; if nobody triggers this error in 0.1.0.10, nobody will trigger it. - Implement new hidden service descriptor format, which contains "extend info" for introduction points, along with protocol version list. - Parse new format. - Generate new format - Cache old and new formats alongside each other. - Directories serve "old" format if asked in old way, "newest available" format if asked in new way. - Use new format to find introduction points if possible; otherwise fall back. Keep nickname lists and extendinfo lists in sync. - Tests for new format. - Implement new "v2" INTRODUCE cell format. - Accept new format - Use new format if we have a versioned service descriptor that says the server accepts the new format. - Add documentation for functions and data types. svn:r4506 Nick Mathewson2005-06-29
* Docment or add DOCDOC comments to undocumented functions in src/or. Make fun...•••svn:r4411 Nick Mathewson2005-06-11
* flesh out the source file descriptions for doxygen•••svn:r4404 Roger Dingledine2005-06-11
* Change end-of-file NLNL convention. It turns out arma I and I agree.•••svn:r4382 Nick Mathewson2005-06-09
* clean up some log entries•••svn:r4228 Roger Dingledine2005-05-15
* first iteration of scrubbing sensitive strings from logs.•••also generally clean up log messages. svn:r4174 Roger Dingledine2005-05-03
* clean up this TOR_FRAGILE business•••svn:r4116 Roger Dingledine2005-04-26
* Improve conn_*_to_string; add circuit_state_to_string; make skewed-descriptor...•••svn:r4047 Nick Mathewson2005-04-07
* Rename circuit_get_by_stream to circuit_get_by_edge_conn, and actually start ...•••svn:r4026 Nick Mathewson2005-04-06
* Add a pointer from edge connections to their corresponding circuit (ulp!); ad...•••svn:r4024 Nick Mathewson2005-04-06
* Hopefully, this will make ORs much faster, and not break them: keep a big spl...•••svn:r4020 Nick Mathewson2005-04-06
* update copyright notices.•••svn:r3982 Nick Mathewson2005-04-01
* when building testing circuits, always use middle hops•••running at least 0.0.9.7 svn:r3966 Roger Dingledine2005-04-01
* when the or-connect succeeded and the tls handshake succeeded•••but we didn't like the result, we were closing the connection without sending any destroys back for the pending circuits. now send those destroys anyway; i hope this doesn't break too much. svn:r3951 Roger Dingledine2005-04-01
* still publish your descriptor if orport is reachable but dirport isn't•••when building testing circs for orport testing, require high-bandwidth nodes, so fewer circs fail. complain about unreachable orport separately from unreachable dirport. svn:r3935 Roger Dingledine2005-03-31
* cleanup so connection_ap_handshake_attach_chosen_circuit() always•••gets open circs. svn:r3856 Roger Dingledine2005-03-24
* Bulletproof connection_ap_handshake_attach_chosen_circuit•••svn:r3855 Nick Mathewson2005-03-24
* clean up and refactor some more•••svn:r3798 Roger Dingledine2005-03-22
* Implement controller's "extendcircuit" directive.•••Also refactor circuit building so we plan the whole path ahead of time. svn:r3797 Roger Dingledine2005-03-22
* Turn addr_policy_compare from a tristate to a quadstate; this should help add...•••svn:r3786 Nick Mathewson2005-03-19
* make hidden services more likely to work from the server-side•••svn:r3781 Roger Dingledine2005-03-19
* Commit fixes for several pending tor core tasks: document all DOCDOCed functi...•••svn:r3769 Nick Mathewson2005-03-17
* re-enable reachability testing stuff.•••also, consider your ORPort reachable after you've processed a create cell from any non-local address. svn:r3763 Roger Dingledine2005-03-15
* Renormalize whitespace•••svn:r3757 Nick Mathewson2005-03-14
* Implement the common case of ATTACHSTREAM.•••svn:r3751 Nick Mathewson2005-03-12
* Checkpoint in-progress fixes:•••Add 'testing' circuit purpose, for reachability testing. Notice when our IP changes, and reset stats. Try to pull down a directory via Tor to see if our DirPort is working. Try to extend a circuit back to us to see if our ORPort is working. Only publish a descriptor if they're both reachable. These mostly work, and I'd better get them in before I cause conflicts. svn:r3703 Roger Dingledine2005-02-27
* Add a new AddressMap directive to rewrite incoming socks addresses.•••Add a new TrackHostExits directive to trigger addressmaps for certain incoming socks addresses, for sites that break when your exit keeps changing. Redo the client-side dns cache so it's just an addressmap too. svn:r3641 Roger Dingledine2005-02-22
* bugfix: tor-resolve requests were ignoring .exit if there was•••a working circuit they could use instead. svn:r3502 Roger Dingledine2005-02-02
* define TOR_FRAGILE if you want tor to give you a core when•••something goes wrong. this should only be used by people actively tracking bugs. svn:r3487 Roger Dingledine2005-02-01
* The crowning hidden-service patch: prefer non-internal circuits•••for normal connections, so we don't spend our internal circs on other stuff and not have them when we need them. svn:r3380 Roger Dingledine2005-01-20
* Handle unavailable hidden services better. We try each intro point•••until none are left, then we try to refetch the descriptor. If it's the same one we had before, then close streams right then. Whenever a new stream arrives, even if it's right after, optimistically try refetching the descriptor, just in case. svn:r3379 Roger Dingledine2005-01-19
* bugfix for cvs: we were needing a rendezvous circ, so we cannibalized•••a general circ, and called rend_client_rendcirc_has_opened(), which called connection_ap_attach_pending(), which was needing a rendezvous circ, so it cannibalized a general circuit, and called ... svn:r3370 Roger Dingledine2005-01-19
* remove some extra-verbose logs•••svn:r3361 Roger Dingledine2005-01-17