aboutsummaryrefslogtreecommitdiff
path: root/src/or/directory.c
Commit message (Collapse)AuthorAge
...
* | | | Merge remote branch 'origin/maint-0.2.2'Nick Mathewson2011-03-15
|\ \ \ \ | | |/ / | |/| |
| * | | Log the source of a rejected POSTed v3 voteRobert Ransom2011-03-15
| | | | | | | | | | | | | | | | Related to ticket 2683.
* | | | Fix memory leak in md-download logicNick Mathewson2011-02-24
| |/ / |/| | | | | | | | | | | | | | Also fix some microdesc comments Fix for bug 2623
* | | Merge branch 'maint-0.2.2'Roger Dingledine2011-02-11
|\| |
| * | Merge branch 'maint-0.2.1' into maint-0.2.2Roger Dingledine2011-02-11
| |\|
| | * fix the other half of bug 1074Roger Dingledine2011-02-10
| | |
* | | Merge remote branch 'origin/maint-0.2.2'Nick Mathewson2011-01-03
|\| |
| * | Merge remote branch 'origin/maint-0.2.1' into maint-0.2.2Nick Mathewson2011-01-03
| |\| | | | | | | | | | | | | | | | Conflicts: src/common/test.h src/or/test.c
| | * Bump copyright statements to 2011Nick Mathewson2011-01-03
| | |
* | | Merge remote branch 'origin/maint-0.2.2'Nick Mathewson2010-11-15
|\| | | | | | | | | | | | | | | | | Conflicts: src/or/config.c src/or/cpuworker.c
| * | Synx manpage and source wrt option capitalizationSebastian Hahn2010-11-10
| | | | | | | | | | | | | | | | | | We had a spelling discrepancy between the manpage and the source code for some option. Resolve these in favor of the manpage, because it makes more sense (for example, HTTP should be capitalized).
* | | Merge branch 'nodes'Nick Mathewson2010-10-13
|\ \ \
| * | | Spotted another missing checkNick Mathewson2010-10-05
| | | |
| * | | Initial conversion to use node_t throughout our codebase.Nick Mathewson2010-10-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A node_t is an abstraction over routerstatus_t, routerinfo_t, and microdesc_t. It should try to present a consistent interface to all of them. There should be a node_t for a server whenever there is * A routerinfo_t for it in the routerlist * A routerstatus_t in the current_consensus. (note that a microdesc_t alone isn't enough to make a node_t exist, since microdescriptors aren't usable on their own.) There are three ways to get a node_t right now: looking it up by ID, looking it up by nickname, and iterating over the whole list of microdescriptors. All (or nearly all) functions that are supposed to return "a router" -- especially those used in building connections and circuits -- should return a node_t, not a routerinfo_t or a routerstatus_t. A node_t should hold all the *mutable* flags about a node. This patch moves the is_foo flags from routerinfo_t into node_t. The flags in routerstatus_t remain, but they get set from the consensus and should not change. Some other highlights of this patch are: * Looking up routerinfo and routerstatus by nickname is now unified and based on the "look up a node by nickname" function. This tries to look only at the values from current consensus, and not get confused by the routerinfo_t->is_named flag, which could get set for other weird reasons. This changes the behavior of how authorities (when acting as clients) deal with nodes that have been listed by nickname. * I tried not to artificially increase the size of the diff here by moving functions around. As a result, some functions that now operate on nodes are now in the wrong file -- they should get moved to nodelist.c once this refactoring settles down. This moving should happen as part of a patch that moves functions AND NOTHING ELSE. * Some old code is now left around inside #if 0/1 blocks, and should get removed once I've verified that I don't want it sitting around to see how we used to do things. There are still some unimplemented functions: these are flagged with "UNIMPLEMENTED_NODELIST()." I'll work on filling in the implementation here, piece by piece. I wish this patch could have been smaller, but there did not seem to be any piece of it that was independent from the rest. Moving flags forces many functions that once returned routerinfo_t * to return node_t *, which forces their friends to change, and so on.
| * | | Try to make most routerstatus_t interfaces constNick Mathewson2010-10-01
| | | |
| * | | Try to make most routerinfo_t interfaces constNick Mathewson2010-10-01
| | | |
* | | | Remove a spurious .z from microdesc fetch URLs so they no logner end with .z.zNick Mathewson2010-10-07
|/ / /
* | | Whitespace fixes on recent merges to master.Nick Mathewson2010-09-30
| | |
* | | Clean long-unlisted microdescs from the cacheNick Mathewson2010-09-27
| | |
* | | Download microdescriptors if you're a cacheNick Mathewson2010-09-27
| | | | | | | | | | | | | | | This commit adds some functions to see what microdescriptors we're missing, and adds fetch-microdesc/store-microdesc logic to the directory code.
* | | Code to download, parse, and store microdesc consensusesNick Mathewson2010-09-27
| | |
* | | Add support for linked connections with bufferevent_pair.Nick Mathewson2010-09-27
| | | | | | | | | | | | | | | | | | Also, set directory connections (linked and otherwise) to use bufferevents. Also, stop using outbuf_flushlen anywhere except for OR connections.
* | | Fix more remaining users of inbuf/outbuf to handle bufferevents instead.Nick Mathewson2010-09-27
| | |
* | | Move the "stop writing when the buffer is empty" logic to ↵Nick Mathewson2010-09-27
| | | | | | | | | | | | cnnection_finished_flushing
* | | Refactor users of buf_datalen to bufferevent-friendly version.Nick Mathewson2010-09-27
|/ /
* | Rename has_completed_circuit to can_complete_circuitNick Mathewson2010-09-22
| | | | | | | | Also redocument it. Related to #1362.
* | Merge remote branch 'public/pretty-signature-log'Nick Mathewson2010-09-13
|\ \
| * | Complicate the rules on WARN vs INFO in consensus verificationNick Mathewson2010-09-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | It's normal when bootstrapping to have a lot of different certs missing, so we don't want missing certs to make us warn... unless the certs we're missing are ones that we've tried to fetch a couple of times and failed at. May fix bug 1145.
* | | Merge branch 'bug1138'Nick Mathewson2010-09-12
|\ \ \
| * | | Clean up a couple more bug1138 issues mentioned by roger on code reviewNick Mathewson2010-09-12
| | | |
| * | | Handle null conn->requested_resource rather than assertRobert Hogan2010-09-12
| | | | | | | | | | | | | | | | Per arma's comments in bug1138
| * | | Nick points out:Robert Hogan2010-09-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | tor_assert(!conn->_base.purpose == DIR_PURPOSE_FETCH_EXTRAINFO) != tor_assert(conn->_base.purpose != DIR_PURPOSE_FETCH_EXTRAINFO) !!
| * | | Amend per Sebastian's comments:Robert Hogan2010-09-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Move checks for extra_info to callers - Change argument name from failed to descs - Use strlen("fp/") instead of a magic number - I passed on the suggestion to rename functions from *_failed() to *_handle_failure(). There are a lot of these so for now just follow the house style.
| * | | Fall back to direct descriptor request to bridges whenRobert Hogan2010-08-16
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | requests to authorities fail due to a network error. Bug#1138 "When a Tor client starts up using a bridge, and UpdateBridgesFromAuthority is set, Tor will go to the authority first and look up the bridge by fingerprint. If the bridge authority is filtered, Tor will never notice that the bridge authority lookup failed. So it will never fall back." Add connection_dir_bridge_routerdesc_failed(), a function for unpacking the bridge information from a failed request, and ensure connection_dir_request_failed() calls it if the failed request was for a bridge descriptor. Test: 1. for ip in `grep -iR 'router ' cached-descriptors|cut -d ' ' -f 3`; do sudo iptables -A OUTPUT -p tcp -d $ip -j DROP; done 2. remove all files from user tor directory 3. Put the following in torrc: UseBridges 1 UpdateBridgesFromAuthority 1 Bridge 85.108.88.19:443 7E1B28DB47C175392A0E8E4A287C7CB8686575B7 4. Launch tor - it should fall back to downloading descriptors directly from the bridge. Initial patch reviewed and corrected by mingw-san.
* / / fix regression introduced by 1a65bdd2Roger Dingledine2010-09-12
|/ / | | | | | | noticed while reviewing hoganrobert/bug1138
* | Create routerparse.hSebastian Hahn2010-07-27
| |
* | Create rephist.hSebastian Hahn2010-07-27
| |
* | Create policies.hSebastian Hahn2010-07-27
| |
* | Create networkstatus.hSebastian Hahn2010-07-27
| |
* | Create main.hSebastian Hahn2010-07-27
| |
* | Create dirvote.hSebastian Hahn2010-07-27
| |
* | Create dirserv.hSebastian Hahn2010-07-27
| |
* | Create directory.hSebastian Hahn2010-07-27
| |
* | Create control.hSebastian Hahn2010-07-27
| |
* | Create connection_edge.hSebastian Hahn2010-07-27
| |
* | Create connection.hSebastian Hahn2010-07-27
| |
* | Create config.hSebastian Hahn2010-07-27
| |
* | Create circuitbuild.hSebastian Hahn2010-07-27
| |
* | Create buffers.hSebastian Hahn2010-07-27
| |
* | Create rendclient.hSebastian Hahn2010-07-27
| |