aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-11-23Minor documentation fixNick Mathewson
2012-11-23Note limitation of parse_rfc_1123_timeNick Mathewson
RFC1123 suggests that we should handle two-year times, and a full range of time zones, and other stuff too. We don't.
2012-11-23In comments and logs, say "UTC" not "GMT"Nick Mathewson
Fix for #6113. Note that the RFC1123 times we generate still all say 'GMT'. I'm going to suggest this is not worth changing.
2012-11-23Refer to RFC 4648 instead of the obsolete RFC 3548Nick Mathewson
Affects comments only. For ticket 6849.
2012-11-20forward-port the 0.2.3.25 changelog and release notesRoger Dingledine
2012-11-18Merge branch 'bug7493_redux'Nick Mathewson
2012-11-18Initialize ipv{4,6}_traffic_ok in entry_connection_newNick Mathewson
This one is necessary for sending BEGIN cells with sane flags when self-testing a directory port. All real entry connections were getting their ipv{4,6}_traffic_ok flags set from their listeners, and for begindir entry connections we didn't care, but for directory self-testing, we had a problem. Fixes at least one more case of 7493; if there are more lingering cases of 7493, this might fix them too. Bug not in any released version of Tor.
2012-11-16when counting available descs, say whether we're counting exitsRoger Dingledine
2012-11-15Give useful warning when both IPv4 and IPv6 are disabled on a socksportNick Mathewson
2012-11-15Allow IPv4 traffic on default and old-style-config SocksPorts.Nick Mathewson
Looks like when i was writing the code to set the ipv4_traffic flag on port_cfg_t, I missed some cases, such as the one where the port was set from its default value. Fix for 7493. Bug not in any released Tor.
2012-11-15Merge branch 'ipv6_exits'Nick Mathewson
2012-11-15Set IPv4/IPv6 flags correctly when being a SOCKS clientNick Mathewson
2012-11-15Remove some XXXX commens in dns.cNick Mathewson
Previously, I was freaking out about passing an unspec address to dns_found_answer() on an error, since I was using the address type to determine whether the error was an error on an ipv4 address lookup or on an ipv6 address lookup. But now dns_found_answer() has a separate orig_query_type argument to tell what kind of query it is, so there's no need to freak out.
2012-11-15Fix up some comments in connection_edge.cNick Mathewson
2012-11-14Add a changes file for IPv6 exitsNick Mathewson
2012-11-14Add manual page entries for new IPv6-exits optionsNick Mathewson
2012-11-14Add another missing function docNick Mathewson
2012-11-14Initial support for AAAA requests on DNSPort.Nick Mathewson
This is imperfect, since it sends back whatever we would send to a socks RESOLVE request, when in reality we should send back whatever was asked for.
2012-11-14Let tor-resolve generate PTR requests for IPv6 addressesNick Mathewson
2012-11-14Accept reverse resolve requests for IPv6 addressesNick Mathewson
2012-11-14Add IPv6 support to tor-resolve so it can hear about IPv6 answersNick Mathewson
2012-11-14Make DNS resolve requests work for IPv6Nick Mathewson
* If there's an IPv4 and an IPv6 address, return both in the resolved cell. * Treat all resolve requests as permitting IPv6, since by the spec they're allowed to, and by the code that won't break anything.
2012-11-14Fix a bug in policy_is_reject_star() that was making IPv4 exits breakNick Mathewson
IPv4-only exits have an implicit "reject [::]/0", which was making policy_is_reject_star() return 1 for them, making us refuse to do hostname lookups. This fix chanes policy_is_reject_star() to ask about which family we meant.
2012-11-14Add some missing doxygen for ipv6 exit codeNick Mathewson
2012-11-14Actually send back correctly-formed IPv6 CONNECTED cellsNick Mathewson
We had some old code to send back connected cells for IPv6 addresses, but it was wrong. Fortunately, it was also unreachable.
2012-11-14Remove some unused defines in dns.cNick Mathewson
2012-11-14Repair DNS NEXIST hijacking workaroundNick Mathewson
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.
2012-11-14Implement a PreferIPv6 flag for SocksPortsNick Mathewson
2012-11-14Define a wrapper for evdns_base_resolve_ipv6 for systems w/o libevent 2Nick Mathewson
2012-11-14Make address_is_invalid_destination recognize ipv6 addrs as valid.Nick Mathewson
2012-11-14Actually generate microdescriptors with p6 lines.Nick Mathewson
2012-11-14Remove a since-fixed XXX; improve a doxygen commentNick Mathewson
2012-11-14Actually advertise IPv6 exit policies.Nick Mathewson
I have a theory that my tests will work better if the code I'm testing isn't disabled.
2012-11-14Revise the DNS subsystem to handle IPv6 exits.Nick Mathewson
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.
2012-11-14Change signature of router_compare_to_my_exit_policy so dns can use itNick Mathewson
Also, fix the function so it actually looks at our ipv6 exit policy.
2012-11-14Whitespace cleanupNick Mathewson
2012-11-14Reindent a block in dns.cNick Mathewson
2012-11-14Actually send BEGIN cell flagsNick Mathewson
This uses advertised IPv6 ports as an implicit version check.
2012-11-14When asking for a specific address type, others aren't acceptableNick Mathewson
2012-11-14I think it is correct to decorate these addresses.Nick Mathewson
2012-11-14Better checking of exit policies for connections by hostnameNick Mathewson
2012-11-14Only send begin cell flags when we have some to sendNick Mathewson
2012-11-14Never support IPv6 traffic on a SOCKS4 connection.Nick Mathewson
2012-11-14Add a function to set a tor_addr_t to a null addressNick Mathewson
2012-11-14Get the client side of receiving an IPv6 address to workNick Mathewson
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.
2012-11-14Reject IPv4 or IPv6 addresses from the user depending on SOCKS settingsNick Mathewson
2012-11-14Rename ipv{4,6}_only to bind_ipv{4,6}_onlyNick Mathewson
This is to avoid confusion with the ipv{4,6}_traffic flags.
2012-11-14Add {No,}IPv{4,6}Traffic options to SOCKSPortNick Mathewson
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.
2012-11-14Make DNS callback pass IPv6 answers to dns_answer_foundNick Mathewson
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.
2012-11-14Make dns wildcarding checks work for ipv6Nick Mathewson