aboutsummaryrefslogtreecommitdiff
path: root/src/or/circuituse.c
Commit message (Collapse)AuthorAge
* Refactor and consolidate addr/exit policies into a new policies.c.Roger Dingledine2006-03-27
| | | | | | | Fix some minor bugs and memory leaks along the way. svn:r6246
* whoops. inform circuits again when we failed to connect to theirRoger Dingledine2006-03-22
| | | | | | | first hop, so they don't have to time out. svn:r6225
* parameterize two more timeout constants in circuit-land.Roger Dingledine2006-03-22
| | | | svn:r6220
* new config option SocksTimeout: How long do we let a socks connectionRoger Dingledine2006-03-21
| | | | | | | | | | 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
* don't call circuit_n_conn_done() if the closing conn is already open.Roger Dingledine2006-03-21
| | | | svn:r6214
* Be more patient before giving up on in-progress circuits.Roger Dingledine2006-03-21
| | | | | | | | I have absolutely no idea if this change helps or hurts. Somebody should study this. svn:r6212
* Finish the transition from the word 'verified' to the wordsRoger Dingledine2006-03-19
| | | | | | | 'named' and 'valid'. svn:r6188
* Comments: cleanups and additions.Nick Mathewson2006-03-17
| | | | svn:r6174
* Cleanup on time-relaqted constants. New conventions:Nick Mathewson2006-03-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add some functions to escape values from the network before sending them to ↵Nick Mathewson2006-03-05
| | | | | | the log. Use them everywhere except for routerinfo->plaftorm, routerinfo->contact_info, and rend*.c. (need sleep now) svn:r6087
* convert some more source files to the new log conventionRoger Dingledine2006-02-13
| | | | svn:r6002
* Retry pending server downloads as well as pending networkstatus downloads ↵Nick Mathewson2006-02-11
| | | | | | when we unexpectedly get an app connection svn:r5962
* Happy new year!Roger Dingledine2006-02-09
| | | | svn:r5949
* entry nodes are now entry guards.Roger Dingledine2006-01-10
| | | | | | | this is our last easy chance for a wholesale change. heave ho. svn:r5782
* Add reasons to DESTROY and RELAY_TRUNCATED cells.Nick Mathewson2006-01-05
| | | | svn:r5734
* helper nodes are dead. long live entry nodes.Roger Dingledine2005-12-28
| | | | | | | | (config options EntryNodes and StrictEntryNodes still not implemented.) svn:r5673
* fix a spacing problem introduced by our 80-column requirementRoger Dingledine2005-12-27
| | | | svn:r5669
* if the network is down, and we try to connect to a conn because weRoger Dingledine2005-12-27
| | | | | | | | | 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
* Clean fake_status a bit. Switch from has_fetched_directory to ↵Nick Mathewson2005-12-15
| | | | | | have_minimum_dir_info, and make the latter function smarter. svn:r5591
* Bite the bullet and limit all our source lines to 80 characters, the way IBM ↵Nick Mathewson2005-12-14
| | | | | | intended. svn:r5582
* mark the helper node as down if we time-out on the circuit handshakeRoger Dingledine2005-12-11
| | | | | | | with him. svn:r5567
* when we changed from log_fn to debug/info/notice/warn/err,Roger Dingledine2005-12-10
| | | | | | | | | | | | 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
* Better fix for last bug: avoids trying to double-mark circuits.Nick Mathewson2005-12-05
| | | | svn:r5511
* Bugfix for trackhostexits: write down the fingerprint of the chosen exit,Roger Dingledine2005-12-05
| | | | | | | not its nickname, because the chosen exit might not be verified. svn:r5499
* Fix another time comparison bug in circuit_stream_is_being_handled().Roger Dingledine2005-12-04
| | | | | | | | Nick, can you confirm this one? This is also a backport candidate. svn:r5497
* ok, i know this one was a bug. we were expiring open generalRoger Dingledine2005-12-04
| | | | | | | circuits after they had been around for 30 seconds. svn:r5496
* take back half of my bugfix. comparing times sucks.Roger Dingledine2005-12-04
| | | | | | | but leave the other half. svn:r5495
* fix the first bug with our optimization to circuit_expire_building():Roger Dingledine2005-12-04
| | | | | | | | | | 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
* Clean up some comments; remove some dead codeNick Mathewson2005-12-03
| | | | svn:r5493
* Use a switch statement and some mild refactoring to try to speed up ↵Nick Mathewson2005-12-03
| | | | | | circuit_expire_building svn:r5492
* Make arguments to circuit_set_circid_orconn match the connection that is ↵Nick Mathewson2005-11-29
| | | | | | closing in circuit_about_to_close_connection. This accounts for our mysterious "arbitrary ram gets decremented!" bug. svn:r5465
* "How about 'never'? Does 'never' work for you?"Nick Mathewson2005-11-26
| | | | | | | | | | | | | | | | | 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
* Start the process of treating internal circuits and exit circuitsRoger Dingledine2005-11-25
| | | | | | | | | | | | | | | | | | | 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
* Recover better from TCP connections to Tor servers that are broken butRoger Dingledine2005-11-19
| | | | | | | | | | | | | | | | 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
* Make new logging stuff work on windows; fix a couple of windows typos.Nick Mathewson2005-11-15
| | | | svn:r5375
* when we were cannibalizing a circuit with a particular exitRoger Dingledine2005-11-11
| | | | | | | | node in mind, we weren't checking to see if that exit node was already present earlier in the circuit. oops. svn:r5357
* Remove last vestiges of old logging interface.Nick Mathewson2005-10-25
| | | | svn:r5317
* Convert circuituse, command, config, connection, relay, router, test to new ↵Nick Mathewson2005-10-25
| | | | | | logging interface svn:r5308
* Use LD_BUG as appropriate; convert rend* and router* to new logging ↵Nick Mathewson2005-10-24
| | | | | | interface; use new circ_log_path interface svn:r5302
* replace former relaunches of directory downloads with reset of failure count ↵Nick Mathewson2005-10-05
| | | | | | and relaunch of status downloads. Fix memory leak in trusted_dir_server_t. Reset "last download attempted" time when resetting failure counts. svn:r5195
* Note the two places where clients will still try to fetch old-style (v1) ↵Nick Mathewson2005-10-05
| | | | | | directory info. These should be fixed, I think. svn:r5193
* Check for named servers when looking them up by nickname;Nick Mathewson2005-10-04
| | | | | | | | | | | | | | | | | | | 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
* Reformat inconsistent function declarations.Nick Mathewson2005-09-30
| | | | svn:r5160
* Implement exit enclaves: if we know an IP address for the destination,Roger Dingledine2005-08-15
| | | | | | | | | 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
* predict required circuits better, with an eye toward makingRoger Dingledine2005-08-13
| | | | | | | hidden services faster on the service end. svn:r4772
* We weren't cannibilizing circuits correctly forRoger Dingledine2005-08-12
| | | | | | | | | 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
* trivial changes on nick's rendezvous commitRoger Dingledine2005-07-14
| | | | svn:r4553
* Logic to implement rendezvous/introduction via unknown servers.Nick Mathewson2005-06-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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
* Docment or add DOCDOC comments to undocumented functions in src/or. Make ↵Nick Mathewson2005-06-11
| | | | | | function definition format uniform. svn:r4411
* flesh out the source file descriptions for doxygenRoger Dingledine2005-06-11
| | | | svn:r4404