aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
| * | | | | Add some missing documentation for things added in nodes branchNick Mathewson2010-10-07
| | | | | |
| * | | | | Fix a compile warning on OSX 10.6Sebastian Hahn2010-10-07
| | | | | |
| * | | | | Spotted another missing checkNick Mathewson2010-10-05
| | | | | |
| * | | | | Fix a couple more node_t-related nullpointer bugsNick Mathewson2010-10-04
| | | | | |
| * | | | | Switch an && to an ||, stop a *NULL.Nick Mathewson2010-10-04
| | | | | |
| * | | | | More debugging code for node_t branchNick Mathewson2010-10-01
| | | | | |
| * | | | | Implement policies for nodes (and for microdescriptors too)Nick Mathewson2010-10-01
| | | | | |
| * | | | | Fix a bug in smartlist_choose_node_by_bandwidthNick Mathewson2010-10-01
| | | | | |
| * | | | | Implement a few more node-based functionsNick Mathewson2010-10-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some of these functions only work for routerinfo-based nodes, and as such are only usable for advisory purposes. Fortunately, our uses of them are compatible with this limitation.
| * | | | | Implement node-based router family codeNick Mathewson2010-10-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also, make the NodeFamily option into a list of routersets. This lets us git rid of router_in_nickname_list (or whatever it was called) without porting it to work with nodes, and also lets people specify country codes and IP ranges in NodeFamily
| * | | | | Rename routerstatus_t.is_running to is_flagged_runningNick Mathewson2010-10-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was the only flag in routerstatus_t that we would previously change in a routerstatus_t in a consensus. We no longer have reason to do so -- and probably never did -- as you can now confirm more easily than you could have done by grepping for is_running before this patch. The name change is to emphasize that the routerstatus_t is_running flag is only there to tell you whether the consensus says it's running, not whether it *you* think it's running.
| * | | | | 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
| | | | | |
| * | | | | Implement a basic node and nodelist typeNick Mathewson2010-10-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The node_t type is meant to serve two key functions: 1) Abstracting difference between routerinfo_t and microdesc_t so that clients can use microdesc_t instead of routerinfo_t. 2) Being a central place to hold mutable state about nodes formerly held in routerstatus_t and routerinfo_t. This patch implements a nodelist type that holds a node for every router that we would consider using.
* | | | | | Send END cells on bufferevent tunneled directory connsNick Mathewson2010-10-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our old code correctly called bufferevent_flush() on linked connections to make sure that the other side got an EOF event... but it didn't call bufferevent_flush() when the connection wasn't hold_open_until_flushed. Directory connections don't use hold_open_until_flushed, so the linked exit connection never got an EOF, so they never sent a RELAY_END cell to the client, and the client never concluded that data had arrived. The solution is to make the bufferevent_flush() code apply to _all_ closing linked conns whose partner is not already marked for close.
* | | | | | Revert accidentally-committed changes to routerlist.cNick Mathewson2010-10-13
| | | | | | | | | | | | | | | | | | | | | | | | This reverts part of commit a0c1c2ac012fded493c0d8c49fe57e56373b061f.
* | | | | | Use connection_mark_and_flush consistently.Nick Mathewson2010-10-13
| | | | | |
* | | | | | Remember to re-install inbuf/outbuf callbacks on ssl buffereventsNick Mathewson2010-10-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we don't, we will (among other bad things) never update lastread/lastwritten, and so flood the network with keepalives.
* | | | | | Set OpenSSL 0.9.8l renegotiation flag early enough for buffereventsNick Mathewson2010-10-12
| | | | | | | | | | | | | | | | | | | | | | | | This seems to fix another case of bug2001.
* | | | | | Actually call connection_tls_finish_handshake() with buffereventsNick Mathewson2010-10-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | First start of a fix for bug2001, but my test network still isn't working: the client and the server send each other VERSIONS cells, but never notice that they got them.
* | | | | | Merge remote branch 'origin/maint-0.2.2'Nick Mathewson2010-10-12
|\ \ \ \ \ \ | | |_|_|/ / | |/| | | |
| * | | | | Fix MIPSpro and time_t signedness detectionSebastian Hahn2010-10-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3d6e2830876 silenced the autogen.sh warnings as it was supposed to, but introduced two bugs. Fix them.
* | | | | | Fix running unit tests from outside of the build directory (fixes bug #2051)Steven Murdoch2010-10-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the unit tests test_util_spawn_background_* assume that they are run from the Tor build directory. This is not the case when running make distcheck, so the test will fail. This problem is fixed by autoconf setting BUILDDIR to be the root of the Tor build directory, and this preprocessor variable being used to specify the absolute path to test-child. Also, in test-child, do not print out argv[0] because this will no longer be predictable. Found by Sebastian Hahn.
* | | | | | Add header for tor_tls_log_one_errorNick Mathewson2010-10-11
| | | | | |
* | | | | | Log OpenSSL errors coming from bufferevent_opensslNick Mathewson2010-10-11
| | | | | |
* | | | | | Fix the new warnings during autogen.shSebastian Hahn2010-10-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Follow-up fix to 3d6e2830876c for configure.in additions in master that weren't in maint-0.2.2
* | | | | | Merge remote branch 'sjmurdoch/bug1903'Nick Mathewson2010-10-11
|\ \ \ \ \ \
| * | | | | | Skip running fgets_eagain test until we fix itSteven Murdoch2010-10-11
| | | | | | |
| * | | | | | Add a unit test for tor_spawn_backgroundSteven Murdoch2010-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Test sucessfully starting a process - Test failing to find the executable
| * | | | | | Update documentation for tor_spawn_backgroundSteven Murdoch2010-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - Include description of stdout_read, stderr_read, and argv
| * | | | | | Add a unit test for fgets (currently fails)Steven Murdoch2010-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - For a non-blocking pipe, check that on EAGAIN fgets returns NULL rather than a partial line
| * | | | | | Fix issues in nickm's review of log_from_pipe for bug #1903Steven Murdoch2010-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Replace sscanf with tor_sscanf - Replace use of strstr with equivalent call to strcmpstart
| * | | | | | Fix nickm's comments on logging for bug #1903Steven Murdoch2010-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - Use log_warn rather than log_err for bad but survivable events
| * | | | | | Note icky constructs mentioned in bug #1903Steven Murdoch2010-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - To be dealt with as part of bug #2029
| * | | | | | Fix issues in nickm's review of format_helper_exit_status for bug #1903Steven Murdoch2010-10-04
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Responsibility of clearing hex_errno is no longer with caller - More conservative bounds checking - Length requirement of hex_errno documented - Output format documented
* | | | | | Make tor_sscanf handle %xNick Mathewson2010-10-11
| | | | | |
* | | | | | Merge remote branch 'origin/maint-0.2.2'Nick Mathewson2010-10-11
|\ \ \ \ \ \ | | |/ / / / | |/| | | |
| * | | | | Fix warnings with new versions of autoconfSebastian Hahn2010-10-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It looks like autoconf 2.68 introduced a bunch of new warnings when it didn't like the syntax you used or forgot to use AC_LANG_(SOURCE|PROGRAM).
* | | | | | Fix a crash bug when serving microdescs on a bufferevent.Nick Mathewson2010-10-07
| | | | | |
* | | | | | Remove a spurious .z from microdesc fetch URLs so they no logner end with .z.zNick Mathewson2010-10-07
| | | | | |
* | | | | | Actually add test_microdesc.c file.Nick Mathewson2010-10-07
| | | | | |
* | | | | | Add more documentation to microdesc.c, plus another assert.Nick Mathewson2010-10-07
| | | | | |
* | | | | | Add a more verbose log message to try to catch bug #2022.Nick Mathewson2010-10-07
| | | | | |
* | | | | | Unit tests for microdescriptor cacheNick Mathewson2010-10-07
| | | | | | | | | | | | | | | | | | | | | | | | May help with tracking down bug #2022
* | | | | | Merge remote branch 'origin/maint-0.2.2'Nick Mathewson2010-10-04
|\| | | | |
| * | | | | Correct a bogus comment.Robert Ransom2010-10-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Whether or not OpenSSL reference-counts SSL_CTX objects is irrelevant; what matters is that Tor reference-counts its wrapper objects for SSL_CTXs.
| * | | | | Correct a couple of log messages in tortls.cRobert Ransom2010-10-04
| | | | | |
| * | | | | Fix several comments in tortls.cRobert Ransom2010-10-04
| | | | | |
* | | | | | Merge remote branch 'origin/maint-0.2.2'Nick Mathewson2010-10-04
|\| | | | |