aboutsummaryrefslogtreecommitdiff
path: root/src/or/circuitbuild.c
Commit message (Collapse)AuthorAge
* Improve conn_*_to_string; add circuit_state_to_string; make ↵Nick Mathewson2005-04-07
| | | | | | skewed-descriptor messages better. svn:r4047
* Fix bug in last commit when no circid can be foundNick Mathewson2005-04-06
| | | | svn:r4023
* Hopefully, this will make ORs much faster, and not break them: keep a big ↵Nick Mathewson2005-04-06
| | | | | | splay tree of (circid,orconn)->circuit mappings to make circuit_get_by_circid_conn much faster. svn:r4020
* Give better warnings if connection_close_unattached_ap gets called twice or ↵Nick Mathewson2005-04-02
| | | | | | called on a marked connection; rename it to connection_mark_unattached_ap. svn:r3990
* update copyright notices.Nick Mathewson2005-04-01
| | | | svn:r3982
* require exactly 0.0.9.7 for middle hops of testing circs, for nowRoger Dingledine2005-04-01
| | | | svn:r3967
* when building testing circuits, always use middle hopsRoger Dingledine2005-04-01
| | | | | | | running at least 0.0.9.7 svn:r3966
* fix some log spacing problemsRoger Dingledine2005-04-01
| | | | svn:r3942
* still publish your descriptor if orport is reachable but dirport isn'tRoger Dingledine2005-03-31
| | | | | | | | | 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
* ...and use it to make sure we only conclude reachability ifRoger Dingledine2005-03-31
| | | | | | | we didn't initiate the conn. svn:r3932
* forward-port the fixing of the crash bug.Roger Dingledine2005-03-27
| | | | svn:r3900
* stop most cases of hanging up on a socks connection without sendingRoger Dingledine2005-03-27
| | | | | | | | the socks reject. audit for remaining ones. also make things more uniform so we always remember to hold-open-until-flushed, etc. svn:r3891
* try harder to establish reachability, in the first 20 minutesRoger Dingledine2005-03-26
| | | | | | | of uptime. svn:r3884
* make it clearer to the human that his server is testingRoger Dingledine2005-03-26
| | | | | | | | its reachability. tell him when it succeeds, or when 20 minutes pass and it hasn't succeeded yet. svn:r3882
* Add a magic value to cpath_layer_t to make sure that we can tell valid ↵Nick Mathewson2005-03-23
| | | | | | cpaths from freed ones. I audited this once; it could use another audit. svn:r3831
* remove a duplicate circuit_mark_for_close() when pickingRoger Dingledine2005-03-22
| | | | | | | a path for the circuit fails. svn:r3822
* clean up and refactor some moreRoger Dingledine2005-03-22
| | | | svn:r3798
* Implement controller's "extendcircuit" directive.Roger Dingledine2005-03-22
| | | | | | | | Also refactor circuit building so we plan the whole path ahead of time. svn:r3797
* if our clock jumps forward by 100 seconds or more, assume somethingRoger Dingledine2005-03-19
| | | | | | | has gone wrong with our network and abandon all not-yet-used circs. svn:r3792
* stop logging at -l notice every single time a create cell successfullyRoger Dingledine2005-03-19
| | | | | | | gets processed svn:r3791
* Turn addr_policy_compare from a tristate to a quadstate; this should help ↵Nick Mathewson2005-03-19
| | | | | | address our "Ah, you allow 1.2.3.4:80. You are a good choice for google.com" problem. svn:r3786
* re-enable reachability testing stuff.Roger Dingledine2005-03-15
| | | | | | | | also, consider your ORPort reachable after you've processed a create cell from any non-local address. svn:r3763
* Renormalize whitespaceNick Mathewson2005-03-14
| | | | svn:r3757
* Checkpoint in-progress fixes:Roger Dingledine2005-02-27
| | | | | | | | | | | | | 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
* Change from inet_ntoa to a threadproof tor_inet_ntoa.Nick Mathewson2005-02-22
| | | | svn:r3656
* remove unused codeRoger Dingledine2005-02-16
| | | | svn:r3629
* define TOR_FRAGILE if you want tor to give you a core whenRoger Dingledine2005-02-01
| | | | | | | | something goes wrong. this should only be used by people actively tracking bugs. svn:r3487
* fix another bug where general exit circs were looking at rendezvousRoger Dingledine2005-01-19
| | | | | | | | streams. consolidate the looking into one function so it doesn't happen again. svn:r3372
* remove some extra-verbose logsRoger Dingledine2005-01-17
| | | | svn:r3361
* Introduce a notion of 'internal' circs, which are chosen without regardRoger Dingledine2005-01-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to the exit policy of the last hop. Intro and rendezvous circs must be internal circs, to avoid leaking information. Resolve and connect streams can use internal circs if they want. New circuit pooling algorithm: make sure to have enough circs around to satisfy any predicted ports, and also make sure to have 2 internal circs around if we've required internal circs lately (with high uptime if we've seen that lately). Split NewCircuitPeriod config option into NewCircuitPeriod (30 secs), which describes how often we retry making new circuits if current ones are dirty, and MaxCircuitDirtiness (10 mins), which describes how long we're willing to make use of an already-dirty circuit. Once rendezvous circuits are established, keep using the same circuit as long as you attach a new stream to it at least every 10 minutes. (So web browsing doesn't require you to build new rend circs every 30 seconds.) Cannibalize GENERAL circs to be C_REND, C_INTRO, S_INTRO, and S_REND circ as necessary, if there are any completed ones lying around when we try to launch one. Re-instate the ifdef's to use version-0 style introduce cells, since there was yet another bug in handling version-1 style. We'll try switching over again after 0.0.9 is obsolete. Bugfix: when choosing an exit node for a new non-internal circ, don't take into account whether it'll be useful for any pending x.onion addresses -- it won't. Bugfix: we weren't actually publishing the hidden service descriptor when it became dirty. So we only published it every 20 minutes or so, which means when you first start your Tor, the hidden service will seem broken. svn:r3360
* Annotate circuits w/ whether they aim to contain high uptime nodes and/orRoger Dingledine2005-01-12
| | | | | | | | | | | | | | | | | high capacity nodes. When building circuits, choose appropriate nodes. New config option LongLivedPorts to indicate application streams that will want high uptime circuits. When attaching a stream to a circuit, pay attention to its requirements. This means that every single node in an intro rend circuit, not just the last one, will have a minimum uptime. Boost the min uptime from an hour to 24 hours. svn:r3339
* When listing circuits that are pending on an opening OR connection,Roger Dingledine2004-12-17
| | | | | | | | if we're an OR we were listing circuits that *end* at us as being pending on every listener, dns/cpu worker, etc. Stop that. svn:r3171
* clean up logging,Roger Dingledine2004-12-13
| | | | | | | | | make it clearer which warns are bugs, make the control log event match its specification, point out a bug in how we deal with failure when renewing the tls context. svn:r3138
* I'm a bad person.Roger Dingledine2004-12-07
| | | | | | | | | Stop treating the uint16_t's as null-terminated strings, and stop looking at the byte after them to see if it's null, because sometimes you're not allowed to look there. svn:r3108
* were we on crack??Roger Dingledine2004-12-07
| | | | svn:r3107
* and bust another memory leakRoger Dingledine2004-12-07
| | | | svn:r3105
* Fix some memory leaks and unlikely segfaultsNick Mathewson2004-12-07
| | | | svn:r3103
* fix a minor leak in my recent commitRoger Dingledine2004-12-05
| | | | svn:r3081
* New circuit building strategy: keep a list of ports that we've used in ↵Roger Dingledine2004-12-05
| | | | | | | | | | | | | | | | | | | | | | | | | the past 6 hours, and always try to have 2 circuits open or on the way that will handle each such port. (We can extend this to include addresses if exit policies shift to require that.) Seed us with port 80 so web browsers won't complain that Tor is "slow to start up". This was necessary because our old circuit building strategy just involved counting circuits, and as time went by we would build up a big pile of circuits that had peculiar exit policies (e.g. only exit to 9001-9100) which would take up space in the circuit pile but never get used. Fix router_compare_addr_to_addr_policy: it was not treating a port of * as always matching, so we were picking reject *:* nodes as exit nodes too. If you haven't used a clean circuit in an hour, throw it away, just to be on the safe side. This means after 6 hours a totally unused Tor client will have no circuits open. svn:r3078
* bugfix: When we were checking to see if an ap_conn should time outRoger Dingledine2004-12-04
| | | | | | | | | | | | | waiting for its connected cell, we were calculating time from when the ap_conn was created. So if it waited say 20 seconds before being attached, then we would immediately decide that the circuit had timed out. Also, make circuit_dump_by_conn() display actual circuit progress, including circuits that haven't been attached to the conn yet but hope to when it finishes connecting. svn:r3072
* make circuit building and router parsing less noisyRoger Dingledine2004-12-04
| | | | svn:r3068
* clean obsolete circuit_log_path codeRoger Dingledine2004-11-30
| | | | svn:r3046
* Suggestion from weasel: Make tor --version --version dump the cvs Id of ↵Nick Mathewson2004-11-29
| | | | | | every file. svn:r3019
* wrong is ok, and right is fine, but in between is apparentlyRoger Dingledine2004-11-28
| | | | | | | totally unacceptable to me. svn:r3005
* Normalize space: add one between every control keyword and control clause.Nick Mathewson2004-11-28
| | | | svn:r3003
* remove emacs droppings, since nick says he doesn't need them anymoreRoger Dingledine2004-11-26
| | | | svn:r2989
* Dr. Seuss on iterating circular lists: "It's fun to have fun, but youNick Mathewson2004-11-23
| | | | | | | have to know how." svn:r2948
* Fix critical bug in circuit_list_path: cpath is a circular list! (Also ↵Nick Mathewson2004-11-23
| | | | | | reimplement circuit_log_cpath using circuit_list_cpath). svn:r2946
* be more greedy about filling up all relay cells.Roger Dingledine2004-11-21
| | | | | | | | this may have some bugs in it still. and it may end up not being what we want to do. svn:r2928
* add a TODO item and some comment changes.Nick Mathewson2004-11-16
| | | | svn:r2904