aboutsummaryrefslogtreecommitdiff
path: root/src/or/circuituse.c
Commit message (Expand)AuthorAge
* r6922@Kushana: nickm | 2006-07-26 16:32:24 -0400••• Rename some fields, compress a bitfield, and document some structs and fields svn:r6919 Nick Mathewson2006-07-27
* r6909@Kushana: nickm | 2006-07-26 13:05:58 -0400••• Clean up wide lines from last patch. svn:r6907 Nick Mathewson2006-07-26
* r6908@Kushana: nickm | 2006-07-26 12:38:52 -0400••• Refactor connection_t into edge, or, dir, control, and base subtypes. This might save some RAM on busy exit servers, but really matters most in terms of correctness. svn:r6906 Nick Mathewson2006-07-26
* r6902@Kushana: nickm | 2006-07-25 17:30:27 -0400••• Move rend_query to origin_circuit_t where it belongs; save another 17 bytes per OR circuit. svn:r6903 Nick Mathewson2006-07-26
* Don't tell anybody, but we're going OO here. This patch splits•••circuit_t into origin_circuit_t and or_circuit_t. I fixed some segaults; there may be more. We still need to move more rendezvous stuff into subtypes. This is a trial run for splitting up connection_t; if the approach is insane, please say so soon so we can do something smarter. Also, this discards the old HALF_OPEN code, which nobody seems to want. svn:r6817 Nick Mathewson2006-07-23
* If we are using an exit enclave and we can't connect, e.g. because•••its webserver is misconfigured to not listen on localhost, then back off and try connecting from somewhere else before we fail. svn:r6783 Roger Dingledine2006-07-18
* pick a log domain; resolve an xxxx•••svn:r6782 Roger Dingledine2006-07-18
* remove a bit more obsolete code•••svn:r6566 Roger Dingledine2006-06-08
* don't tell people that the testing circuit failed if we already•••consider ourselves reachable. this just confuses them. svn:r6546 Roger Dingledine2006-06-05
* simplify some code, since circuit_build_failed() is only called•••on non-open circuits. svn:r6540 Roger Dingledine2006-06-05
* Add a new warning to our "warn a lot" list: unused parameters. This means we...•••svn:r6532 Nick Mathewson2006-06-04
* stop fetching descriptors if we're not a dir mirror and we•••haven't tried to establish any circuits lately. svn:r6516 Roger Dingledine2006-05-30
* forward-port: "Resolve" all XXX011 items, mostly by marking them non-011.•••svn:r6396 Nick Mathewson2006-04-18
* Don't yell loudly about failed internal/bridge connections. These•••are reachability testing and rendserv upload/downloads, and they have their own failure messages elsewhere. svn:r6343 Roger Dingledine2006-04-09
* Refactor and consolidate addr/exit policies into a new policies.c.•••Fix some minor bugs and memory leaks along the way. svn:r6246 Roger Dingledine2006-03-27
* whoops. inform circuits again when we failed to connect to their•••first hop, so they don't have to time out. svn:r6225 Roger Dingledine2006-03-22
* parameterize two more timeout constants in circuit-land.•••svn:r6220 Roger Dingledine2006-03-22
* new config option SocksTimeout: How long do we let a socks connection•••wait unattached before we fail it? Use this value for controller socks timeout, for normal socks timeout, and for hidden-service socks timeout. svn:r6217 Roger Dingledine2006-03-21
* don't call circuit_n_conn_done() if the closing conn is already open.•••svn:r6214 Roger Dingledine2006-03-21
* Be more patient before giving up on in-progress circuits.•••I have absolutely no idea if this change helps or hurts. Somebody should study this. svn:r6212 Roger Dingledine2006-03-21
* Finish the transition from the word 'verified' to the words•••'named' and 'valid'. svn:r6188 Roger Dingledine2006-03-19
* Comments: cleanups and additions.•••svn:r6174 Nick Mathewson2006-03-17
* Cleanup on time-relaqted constants. New conventions:••• 1) Surround all constants by (parens), whether we'll be using them in a denominator or not. 2) Express all time periods as products (24*60*60), not as multiplied-out constants (86400). 3) Comments like "(60*60) /* one hour */" are as pointless as comments like "c = a + b; /* set c to the sum of a and b */". Remove them. 4) All time periods should be #defined constants, not given inline. 5) All time periods should have doxygen comments. 6) All time periods, unless specified, are in seconds. It's not necessary to say so. To summarize, the old (lack of) style would allow: #define FOO_RETRY_INTERVAL 60*60 /* one hour (seconds) */ next_try = now + 3600; The new style is: /** How often do we reattempt foo? */ #define FOO_RETRY_INTERVAL (60*60) next_try = now + RETRY_INTERVAL; svn:r6142 Nick Mathewson2006-03-12
* Add some functions to escape values from the network before sending them to t...•••svn:r6087 Nick Mathewson2006-03-05
* convert some more source files to the new log convention•••svn:r6002 Roger Dingledine2006-02-13
* Retry pending server downloads as well as pending networkstatus downloads whe...•••svn:r5962 Nick Mathewson2006-02-11
* Happy new year!•••svn:r5949 Roger Dingledine2006-02-09
* entry nodes are now entry guards.•••this is our last easy chance for a wholesale change. heave ho. svn:r5782 Roger Dingledine2006-01-10
* Add reasons to DESTROY and RELAY_TRUNCATED cells.•••svn:r5734 Nick Mathewson2006-01-05
* helper nodes are dead. long live entry nodes.•••(config options EntryNodes and StrictEntryNodes still not implemented.) svn:r5673 Roger Dingledine2005-12-28
* fix a spacing problem introduced by our 80-column requirement•••svn:r5669 Roger Dingledine2005-12-27
* if the network is down, and we try to connect to a conn because we•••have a circuit in mind, and we timeout (30 seconds) because the network never answers, we were expiring the circuit, but we weren't obsoleting the connection or telling the helper functions. now do that. svn:r5668 Roger Dingledine2005-12-27
* Clean fake_status a bit. Switch from has_fetched_directory to have_minimum_d...•••svn:r5591 Nick Mathewson2005-12-15
* Bite the bullet and limit all our source lines to 80 characters, the way IBM ...•••svn:r5582 Nick Mathewson2005-12-14
* mark the helper node as down if we time-out on the circuit handshake•••with him. svn:r5567 Roger Dingledine2005-12-11
* when we changed from log_fn to debug/info/notice/warn/err,•••we screwed up the formatting in wild and unpredictable ways. fix it before it becomes convention to format logs in wild and unpredictable ways. still need to do src/common/ someday. svn:r5551 Roger Dingledine2005-12-10
* Better fix for last bug: avoids trying to double-mark circuits.•••svn:r5511 Nick Mathewson2005-12-05
* Bugfix for trackhostexits: write down the fingerprint of the chosen exit,•••not its nickname, because the chosen exit might not be verified. svn:r5499 Roger Dingledine2005-12-05
* Fix another time comparison bug in circuit_stream_is_being_handled().•••Nick, can you confirm this one? This is also a backport candidate. svn:r5497 Roger Dingledine2005-12-04
* ok, i know this one was a bug. we were expiring open general•••circuits after they had been around for 30 seconds. svn:r5496 Roger Dingledine2005-12-04
* take back half of my bugfix. comparing times sucks.•••but leave the other half. svn:r5495 Roger Dingledine2005-12-04
* fix the first bug with our optimization to circuit_expire_building():•••we were killing off rendezvous circuits unless they magically time-warped to be too old before we got around to killing them, in which case we would leave them alone. this made it hard to rendezvous with hidden services. svn:r5494 Roger Dingledine2005-12-04
* Clean up some comments; remove some dead code•••svn:r5493 Nick Mathewson2005-12-03
* Use a switch statement and some mild refactoring to try to speed up circuit_e...•••svn:r5492 Nick Mathewson2005-12-03
* 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