aboutsummaryrefslogtreecommitdiff
path: root/src/or/addressmap.c
Commit message (Collapse)AuthorAge
* Completely refactor how FILENAME_PRIVATE worksNick Mathewson2013-07-10
| | | | | | | | | | | | | | | | | | | | We previously used FILENAME_PRIVATE identifiers mostly for identifiers exposed only to the unit tests... but also for identifiers exposed to the benchmarker, and sometimes for identifiers exposed to a similar module, and occasionally for no really good reason at all. Now, we use FILENAME_PRIVATE identifiers for identifiers shared by Tor and the unit tests. They should be defined static when we aren't building the unit test, and globally visible otherwise. (The STATIC macro will keep us honest here.) For identifiers used only by the unit tests and never by Tor at all, on the other hand, we wrap them in #ifdef TOR_UNIT_TESTS. This is not the motivating use case for the split test/non-test build system; it's just a test example to see how it works, and to take a chance to clean up the code a little.
* Controller: Add CACHED keyword to ADDRMAP events (#8596 part 2/2)Desoxy2013-04-03
| | | | | Add keyword CACHED="YES"/"NO" to ADDRMAP control events to indicate whether the DNS response will be cached or not.
* Merge branch '024_msvc_squashed'Nick Mathewson2013-01-16
|\ | | | | | | | | | | Conflicts: src/or/or.h srcwin32/orconfig.h
| * When building with MSVC, call every enum bitfield unsignedNick Mathewson2013-01-16
| | | | | | | | Fixes bug 7305.
* | Update the copyright date to 201.Nick Mathewson2013-01-16
|/
* Drop the maximum attempts to get a virtual address to 1000.Nick Mathewson2012-12-17
| | | | | | | This is good enough to give P_success >= 999,999,999/1,000,000,000 so long as the address space is less than 97.95 full. It'd be ridiculous for that to happen for IPv6, and usome reasonable assumptions, it would also be pretty silly for IPv4.
* Build and test most of the machinery needed for IPv6 virtualaddrmapsNick Mathewson2012-12-17
| | | | | | | | | | | | | | With an IPv6 virtual address map, we can basically hand out a new IPv6 address for _every_ address we connect to. That'll be cool, and will let us maybe get around prop205 issues. This uses some fancy logic to try to make the code paths in the ipv4 and the ipv6 case as close as possible, and moves to randomly generated addresses so we don't need to maintain those stupid counters that will collide if Tor restarts but apps don't. Also has some XXXX items to fix to make this useful. More design needed.
* Refactor the code to check if an address is matched by automapsuffixesNick Mathewson2012-12-17
|
* Implement option to turn off DNS cache modification by a client portNick Mathewson2012-12-17
| | | | | (This is part 3 of making DNS cache use enabled/disabled on a per-client port basis. This implements the UseCacheIPv[46]DNS options)
* Implement option to turn off DNS cache use on a client portNick Mathewson2012-12-17
| | | | | | (This is part 2 of making DNS cache use enabled/disabled on a per-client port basis. This implements the CacheIPv[46]DNS options, but not the UseCachedIPv[46] ones.)
* Oops: make the check for not adding ip->ip DNS maps correctNick Mathewson2012-12-17
|
* Make address_is_invalid_destination recognize ipv6 addrs as valid.Nick Mathewson2012-11-14
|
* I think it is correct to decorate these addresses.Nick 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.
* 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