aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* | Actually send back correctly-formed IPv6 CONNECTED cellsNick Mathewson2012-11-14
| | | | | | | | | | We had some old code to send back connected cells for IPv6 addresses, but it was wrong. Fortunately, it was also unreachable.
* | Remove some unused defines in dns.cNick Mathewson2012-11-14
| |
* | Repair DNS NEXIST hijacking workaroundNick Mathewson2012-11-14
| | | | | | | | | | | | | | | | | | | | | | | | The code previously detected wildcarding and replaced wildcarded answers with DNS_STATUS_FAILED_PERMANENT. But that status variable was no longer used! Remove the status variable, and instead change the value of 'result' in evdns_callback. Thank goodness for compiler warnings. In this case, unused-but-set-variable. Thanks to Linus for finding this one.
* | Implement a PreferIPv6 flag for SocksPortsNick Mathewson2012-11-14
| |
* | Define a wrapper for evdns_base_resolve_ipv6 for systems w/o libevent 2Nick Mathewson2012-11-14
| |
* | Make address_is_invalid_destination recognize ipv6 addrs as valid.Nick Mathewson2012-11-14
| |
* | Actually generate microdescriptors with p6 lines.Nick Mathewson2012-11-14
| |
* | Remove a since-fixed XXX; improve a doxygen commentNick Mathewson2012-11-14
| |
* | Actually advertise IPv6 exit policies.Nick Mathewson2012-11-14
| | | | | | | | | | I have a theory that my tests will work better if the code I'm testing isn't disabled.
* | Revise the DNS subsystem to handle IPv6 exits.Nick Mathewson2012-11-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now, every cached_resolve_t can remember an IPv4 result *and* an IPv6 result. As a light protection against timing-based distinguishers for IPv6 users (and against complexity!), every forward request generates an IPv4 *and* an IPv6 request, assuming that we're an IPv6 exit. Once we have answers or errors for both, we act accordingly. This patch additionally makes some useful refactorings in the dns.c code, though there is quite a bit more of useful refactoring that could be done. Additionally, have a new interface for the argument passed to the evdns_callback function. Previously, it was just the original address we were resolving. But it turns out that, on error, evdns doesn't tell you the type of the query, so on a failure we didn't know whether IPv4 or IPv6 queries were failing. The new convention is to have the first byte of that argument include the query type. I've refactored the code a bit to make that simpler.
* | Change signature of router_compare_to_my_exit_policy so dns can use itNick Mathewson2012-11-14
| | | | | | | | Also, fix the function so it actually looks at our ipv6 exit policy.
* | Whitespace cleanupNick Mathewson2012-11-14
| |
* | Reindent a block in dns.cNick Mathewson2012-11-14
| |
* | Actually send BEGIN cell flagsNick Mathewson2012-11-14
| | | | | | | | This uses advertised IPv6 ports as an implicit version check.
* | When asking for a specific address type, others aren't acceptableNick Mathewson2012-11-14
| |
* | I think it is correct to decorate these addresses.Nick Mathewson2012-11-14
| |
* | Better checking of exit policies for connections by hostnameNick Mathewson2012-11-14
| |
* | Only send begin cell flags when we have some to sendNick Mathewson2012-11-14
| |
* | Never support IPv6 traffic on a SOCKS4 connection.Nick Mathewson2012-11-14
| |
* | Add a function to set a tor_addr_t to a null addressNick Mathewson2012-11-14
| |
* | Get the client side of receiving an IPv6 address to workNick Mathewson2012-11-14
| | | | | | | | | | | | | | | | | | | | | | | | This makes it so we can handle getting an IPv6 in the 3 different formats we specified it for in RESOLVED cells, END_STREAM_REASON_EXITPOLICY cells, and CONNECTED cells. We don't cache IPv6 addresses yet, since proposal 205 isn't implemented. There's a refactored function for parsing connected cells; it has unit tests.
* | Reject IPv4 or IPv6 addresses from the user depending on SOCKS settingsNick Mathewson2012-11-14
| |
* | Rename ipv{4,6}_only to bind_ipv{4,6}_onlyNick Mathewson2012-11-14
| | | | | | | | This is to avoid confusion with the ipv{4,6}_traffic flags.
* | Add {No,}IPv{4,6}Traffic options to SOCKSPortNick Mathewson2012-11-14
| | | | | | | | | | | | | | | | These options are for telling the SOCKSPort that it should allow or not allow connections to IPv4/IPv6 addresses. These aren't implemented yet; this is just the code to read the options and get them into the entrey_connection_t.
* | Make DNS callback pass IPv6 answers to dns_answer_foundNick Mathewson2012-11-14
| | | | | | | | | | | | | | | | Also, count ipv6 timeouts vs others. If we have too many ipv6 requests time out, then we could be degrading performance because of a broken DNS server that ignores AAAA requests. Other cases in which we never learn an AAAA address aren't so bad, since they don't slow A (ipv4) answers down very much.
* | Make dns wildcarding checks work for ipv6Nick Mathewson2012-11-14
| |
* | Add an IPv6Exit configuration optionNick Mathewson2012-11-14
| | | | | | | | | | Don't advertise an IPv6 exit policy, or accept IPv6 exit requests, if IPv6Exit is not true.
* | Simplest version of server-side IPv6 support (no dns)Nick Mathewson2012-11-14
| | | | | | | | | | | | | | This is a relatively simple set of changes: we mostly need to remove a few "but not for IPv6" changes. We also needed to tweak the handling of DNS code to generate RESOLVED cells that could get an IPv6 answer in return.
* | Record, send, and receive flags in BEGIN cellsNick Mathewson2012-11-14
| |
* | Add IPv6 support to compare_to_addr_to_node_policyNick Mathewson2012-11-14
| |
* | Authorities put p6 lines into microdescriptors.Nick Mathewson2012-11-14
| |
* | Parse IPv6 policy summaries from router descriptors and microdescsNick Mathewson2012-11-14
| |
* | Better policy support for IPv6Nick Mathewson2012-11-14
| | | | | | | | | | | | | | | | | | | | | | Now, "accept *:80" means "accept all addresses on port 80", and not just IPv4. For just v4, say "accept *4:80"; for just v6 say "accept *6:80". We can parse these policies from torrc just fine, and we should be successfully keeping them out of descriptors for now. We also now include appropriate IPv6 addresses in "reject private:*"
* | Add a new family-specific syntax for tor_addr_parse_mask_portsNick Mathewson2012-11-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | By default, "*" means "All IPv4 addresses" with tor_addr_parse_mask_ports, so I won't break anything. But if the new EXTENDED_STAR flag is provided, then * means "any address", *4 means "any IPv4 address" (that is, 0.0.0.0/0), and "*6" means "any IPv6 address" (that is, [::]/0). This is going to let us have a syntax for specifying exit policies in torrc that won't drive people mad. Also, add a bunch of unit tests for tor_addr_parse_mask_ports to test these new features, and to increase coverage.
* | Refactor begin cell parsing into its own function, with tests.Nick Mathewson2012-11-14
| | | | | | | | Add 'flags' argument to begin cells, per proposal 208.
* | Refactor client_dns_set_{reverse_,}addressmap() to take a circNick Mathewson2012-11-14
| | | | | | | | | | | | | | | | We'd like these functions to be circuit-relative so that we can implement a per-circuit DNS cache and per-circuit DNS cache rules for proposal 205 or its successors. I'm doing this now, as a part of the IPv6 exits code, since there are about to be a few more instances of code using this.
* | Move address map into its own file.Nick Mathewson2012-11-14
| |
* | Merge branch 'bug7267' of ssh://git-rw.torproject.org/user/andrea/torAndrea Shepard2012-11-13
|\ \
| * | Add comment explaining different channel close functionsAndrea Shepard2012-11-13
| | |
| * | Call channel_mark_for_close() properly in hibernate_go_dormant()Andrea Shepard2012-11-13
| | |
* | | Merge remote-tracking branch 'public/bug7059'Nick Mathewson2012-11-13
|\ \ \
| * | | Allow an optional $ in GETINFO ns/id/<identity>Nick Mathewson2012-11-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | That's not where I'd want to put a $, but apparently the other foo/id/<identity> things allow it, as does an arguably valid interpretation of control-spec.txt. So let's be consistent. Fix for a piece of bug 7059.
* | | | Actually distribute the geoip6 file.Nick Mathewson2012-11-13
| | | | | | | | | | | | | | | | Fixes a bug (with no ticket) on 0.2.4.6-alpha.
* | | | bump to 0.2.4.6-alpha-devRoger Dingledine2012-11-13
| |/ / |/| |
* | | bump to 0.2.4.6-alphaRoger Dingledine2012-11-13
| | |
* | | Merge branch 'maint-0.2.3'Roger Dingledine2012-11-12
|\ \ \
| * | | use a more logical operatorRoger Dingledine2012-11-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a harmless bug when opting against publishing a relay descriptor because DisableNetwork is set. Fixes bug 7464; bugfix on 0.2.3.9-alpha.
* | | | Possible fix for bug 7212Nick Mathewson2012-11-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the simplest possible workaround: make it safe to call circuit_cell_queue_clear() on a non-attached circuit, and make it safe-but-a-LD_BUG-warning to call update_circuit_on_cmux() on a non-attached circuit. LocalWords: unstage src Untracked
* | | | Merge branch 'check_for_orconn_on_close_squashed' of ↵Andrea Shepard2012-11-10
|\ \ \ \ | | | | | | | | | | | | | | | ssh://git-rw.torproject.org/user/andrea/tor
| * | | | Make everything in connection.c that uses connection_or_notify_error() also ↵Andrea Shepard2012-11-10
| | | | | | | | | | | | | | | | | | | | use connection_mark_and_close_internal() to avoid spurious warnings