aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-10-01Implement a few more node-based functionsNick Mathewson
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.
2010-10-01Implement node-based router family codeNick Mathewson
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
2010-10-01Rename routerstatus_t.is_running to is_flagged_runningNick Mathewson
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.
2010-10-01Initial conversion to use node_t throughout our codebase.Nick Mathewson
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.
2010-10-01Try to make most routerstatus_t interfaces constNick Mathewson
2010-10-01Try to make most routerinfo_t interfaces constNick Mathewson
2010-10-01Implement a basic node and nodelist typeNick Mathewson
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.
2010-10-01Initialize fd values in tor_port_check_forwarding to -1Nick Mathewson
2010-10-01Merge branch 'maint-0.2.2'Roger Dingledine
2010-10-01fix commentRoger Dingledine
2010-10-01log when we guess our ip address, not just when we failRoger Dingledine
2010-10-01Merge branch 'maint-0.2.2'Roger Dingledine
Conflicts: configure.in contrib/tor-mingw.nsi.in src/win32/orconfig.h
2010-10-01bump to 0.2.2.17-alpha-devRoger Dingledine
2010-10-01retroactively declare the cbt fixes to be majorRoger Dingledine
also put in release blurbs
2010-10-01The build stuff for tor-fw-helper means we need automake 1.6 or laterNick Mathewson
2010-09-30Merge remote branch 'sebastian/fw-helper-manpage'Nick Mathewson
2010-09-30renumber, clean whitespaceRoger Dingledine
2010-09-30give steven's everybody-a-bridge proposal a numberRoger Dingledine
2010-09-30Add comments from nickm and arma, from IRCSteven Murdoch
2010-09-30Add algorithm and rationale for performance measurementSteven Murdoch
2010-09-30In the migration plan, mention how to prevent overloading the bridge authoritySteven Murdoch
2010-09-30Integrate more feedback from IRCSteven Murdoch
- For now we are only talking about moving clients to be bridges - Some questions on how we should inform users
2010-09-30Add some open questions, and mention Roger's idea about asking for consent ↵Steven Murdoch
via email
2010-09-30Note that we only can't handle automatic demotion. Users can always change ↵Steven Murdoch
their state manually.
2010-09-30Change "server" to "relay", so as to match existing terminologySteven Murdoch
2010-09-30Start idea xxx-automatic-node-promotionSteven Murdoch
- Initial draft of overview and motivation - Start of design
2010-09-30Merge branch 'maint-0.2.2'Roger Dingledine
2010-09-30improve rpm init script by borrowing from Debiantor-0.2.2.17-alphaErinn Clark
2010-09-30Update rpm spec file so that it will build without manual intervention on ↵Erinn Clark
all rpm-based distributions
2010-09-30AUTHORS doesn't exist, so stop trying to cp it. Add 'sudo' to a mv that ↵Erinn Clark
needs higher permissions.
2010-09-30Merge branch 'maint-0.2.2'Roger Dingledine
Conflicts: configure.in contrib/tor-mingw.nsi.in src/win32/orconfig.h
2010-09-30bump to 0.2.2.17-alphaRoger Dingledine
2010-09-30write up a changelog fileRoger Dingledine
2010-09-30Add more tor-fw-helper files to gitignoreSebastian Hahn
2010-09-30Build the tor-fw-helper manpageSebastian Hahn
So far we just had the asciidoc manpage, but didn't build it.
2010-09-30Add 'compile' to .gitignoreNick Mathewson
2010-09-30Merge branch 'tor-fw-squashed2'Nick Mathewson
Conflicts: src/common/util.c
2010-09-30Fix space and formatting issuesNick Mathewson
2010-09-30Merge remote branch 'origin/maint-0.2.2'Nick Mathewson
2010-09-30#if-out the fw-helper code in util.c when building on windowsNick Mathewson
2010-09-30Turn select() usage in tor-fw-helper into a function.Nick Mathewson
2010-09-30Start tor-fw-helper in the background, and log whatever it outputsSteven Murdoch
2010-09-30Changes to tor-fw-helper, some based on Nick's reviewJacob Appelbaum
* MINIUPNPC rather than the generic UPNP * Nick suggested a better abstraction model for tor-fw-helper * Fix autoconf to build with either natpmp or miniupnpc * Add AM_PROG_CC_C_O to fix automake complaint * update spec to address nickm's concern * refactor nat-pmp to match upnp state * we prefer tor_snprintf to snprintf * link properlty for tor_snprintf * rename test_commandline_options to log_commandline_options * cast this uint as an int * detect possible FD_SETSIZE errors * make note about future enhancements for natpmp * add upnp enhancement note * ChangeLog entry * doxygen and check-spaces cleanup * create tor-fw-helper.1.txt
2010-09-30First implementation of tor-fw-helper.Jacob Appelbaum
tor-fw-helper is a command-line tool to wrap and abstract various firewall port-forwarding tools. This commit matches the state of Jacob's tor-fw-helper branch as of 23 September 2010. (commit msg by Nick)
2010-09-30Whitespace fixes on recent merges to master.Nick Mathewson
2010-09-30Add a changes file for the bug1912 fixSebastian Hahn
2010-09-30Note an XXX about potential overflowSebastian Hahn
2010-09-30Use an upper and lower bound for bridge weightsSebastian Hahn
When picking bridges (or other nodes without a consensus entry (and thus no bandwidth weights)) we shouldn't just trust the node's descriptor. So far we believed anything between 0 and 10MB/s, where 0 would mean that a node doesn't get any use from use unless it is our only one, and 10MB/s would be a quite siginficant weight. To make this situation better, we now believe weights in the range from 20kB/s to 100kB/s. This should allow new bridges to get use more quickly, and means that it will be harder for bridges to see almost all our traffic.
2010-09-30Fix check-spacesSebastian Hahn
2010-09-30Merge branch 'maint-0.2.2'Roger Dingledine