summaryrefslogtreecommitdiff
path: root/src/or/circuituse.c
AgeCommit message (Collapse)Author
2004-12-07I'm a bad person.Roger Dingledine
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
2004-12-07Renormalize whitespaceNick Mathewson
svn:r3095
2004-12-05New circuit building strategy: keep a list of ports that we've used in ↵Roger Dingledine
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
2004-12-04React to eof immediately on non-open edge connections.Roger Dingledine
Stop keeping track of num_retries for apconns, since they expire after 60 seconds anyway. When warning about retrying or giving up, print the address, so the user knows which one it's talking about. svn:r3073
2004-12-04bugfix: When we were checking to see if an ap_conn should time outRoger Dingledine
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
2004-12-01Spell-check strings and commentsNick Mathewson
svn:r3052
2004-11-30Let resolve conns retry/expire also, rather than sticking around forever.Roger Dingledine
Put the check-if-requested-exitrouter-will-reject-us code in the circuit_attach loop, so it gets checked periodically and not just once at the beginning. This is useful in case the routerlist changes, but also in case the address gets resolved into something that we learn we'll reject. svn:r3039
2004-11-30Enforce coding style.Nick Mathewson
svn:r3025
2004-11-29Suggestion from weasel: Make tor --version --version dump the cvs Id of ↵Nick Mathewson
every file. svn:r3019
2004-11-29put in initial support for ".nickname.exit" addresses, to let aliceRoger Dingledine
decide what exit node to use; based on a patch by geoff goodell. needs more work: e.g. it goes bananas building new circuits when the chosen exit node's exit policy rejects the connection. svn:r3015
2004-11-28wrong is ok, and right is fine, but in between is apparentlyRoger Dingledine
totally unacceptable to me. svn:r3005
2004-11-28Normalize space: add one between every control keyword and control clause.Nick Mathewson
svn:r3003
2004-11-26remove emacs droppings, since nick says he doesn't need them anymoreRoger Dingledine
svn:r2989
2004-11-16minor fixesRoger Dingledine
svn:r2901
2004-11-10Resolve FIXME items: make the kill-unattached-AP timeout symbolicNick Mathewson
svn:r2793
2004-11-07Clean up copyrights.Roger Dingledine
Break connection_consider_empty_buckets() out of connection_read_bucket_decrement(). svn:r2698
2004-11-06Make options no longer a global variable.Roger Dingledine
Now we can try setting an option but back out if it fails to parse, or if it's disallowed (e.g. changing RunAsDaemon from 1 to 0). Use parse_line_from_str rather than parse_line_from_file. svn:r2692
2004-11-03- Implement all of control interface except authentication, setconfig,Nick Mathewson
and actually making the sockets. - Make sure that identity-based nicknames start with $. - Use new string_join interface. svn:r2661
2004-10-27Use strlcpy, not strcpy.Nick Mathewson
svn:r2610
2004-10-17start the process of making 0.0.7* obsoleteRoger Dingledine
svn:r2565
2004-10-16don't assert multiple things in the same tor_assert()Roger Dingledine
svn:r2544
2004-10-11fix paul gardner's assert bug.Roger Dingledine
sometimes circuit_get_open_circ_or_launch() can return 0 but not return a circuit, e.g. because too many circuits have failed recently so the new one didn't launch. we need to tolerate that. svn:r2438
2004-10-11fix the stale pointer assert bug reported by joe magicRoger Dingledine
svn:r2436
2004-10-03use only 0.0.9pre1 and later servers for resolve cellsRoger Dingledine
svn:r2416
2004-09-27checking only 0.0.7 and 0.0.8 didn't work, because some dirserversRoger Dingledine
files have really old descriptors for the authdirservers, so we're asking them in the new format because they're too old. now we actually compare the version to a cutoff version, and act appropriately. also take this chance to use only >=0.0.8 servers for dns resolves, because of the recent bugs. we'll bump to >=0.0.9pre1 once there are some servers running that. svn:r2380
2004-09-23cleanup: use strcmpstart() in more placesRoger Dingledine
svn:r2372
2004-08-18be more aggressive about building circuits when we have noRoger Dingledine
open circuits svn:r2290
2004-08-18be more aggressive about trying to make circuits:Roger Dingledine
try once a second for 30 seconds, and only when the entire previous period has failed do we pause after MAX_CIRCUIT_FAILURES failures. svn:r2281
2004-08-18only establish intro points after we've gotten a directoryRoger Dingledine
svn:r2276
2004-07-21we were counting incorrectly when trying to figure out whetherRoger Dingledine
a given AP stream was being handled or not. (how did this work?) svn:r2077
2004-07-18abstract ORPort/SocksPort checks into server_mode(), proxy_mode(), ↵Nick Mathewson
clique_mode(), etc. Dont change underlying comments. svn:r2054
2004-07-13refuse to build a circuit before the directory has arrivedRoger Dingledine
this will prevent a few of the 'couldn't decrypt onionskin' errors, maybe svn:r2036
2004-07-02More digest/nickname fixesNick Mathewson
svn:r2000
2004-07-02some of the infrastructure to let ORs connect on demandRoger Dingledine
svn:r1998
2004-06-17Implement RESOLVE/RESOLVED cells and socks resolve codeNick Mathewson
svn:r1978
2004-05-15bugfix: if a circuit if borderline too old, then count it as too old.Roger Dingledine
bugfix: we were retrying the same circuit after getting a resolve failure. so of course the next two tries would fail too. now we try a new circuit each time (at most three times). svn:r1867
2004-05-13Break files apart into more modulesRoger Dingledine
* \file circuitbuild.c * \brief The actual details of building circuits. * \file circuitlist.c * \brief Manage the global circuit list. * \file circuituse.c * \brief Launch the right sort of circuits, attach streams to them. * \file connection_edge.c * \brief Handle edge streams. * \file onion.c * \brief Functions to queue create cells, and handle onionskin * parsing and creation. * \file relay.c * \brief Handle relay cell encryption/decryption, plus packaging and * receiving from circuits. svn:r1863