summaryrefslogtreecommitdiffstats
path: root/net/base/host_resolver.cc
Commit message (Collapse)AuthorAgeFilesLines
* net: move host_resolver files from net/base to net/dnsphajdan.jr@chromium.org2013-03-211-148/+0
| | | | | | | | BUG=70818 Review URL: https://codereview.chromium.org/12518036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@189485 0039d316-1c4b-4281-b951-d872f2087c98
* src/: Update the remaining include paths of string_split.h to its new location.tfarina@chromium.org2013-03-061-1/+1
| | | | | | | | | | BUG=175186 TBR=brettw@chromium.org Review URL: https://chromiumcodereview.appspot.com/12473004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186462 0039d316-1c4b-4281-b951-d872f2087c98
* [net] Add HostResolverDispatch field trial.szym@chromium.org2012-12-211-6/+66
| | | | | | | | | | | | | The field trial configures the PrioritizedDispatcher::Limits used by HostResolverImpl. BUG=166685 TEST=chrome --force-fieldtrials=HostResolverDispatch/0:0:0:0:0:1/ Review URL: https://chromiumcodereview.appspot.com/11635004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174283 0039d316-1c4b-4281-b951-d872f2087c98
* [net] Add HostResolver::SetDnsClientEnabled to support dynamic preference ↵szym@chromium.org2012-11-171-13/+4
| | | | | | | | | | (for group policy). BUG=161381 Review URL: https://codereview.chromium.org/11412023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168386 0039d316-1c4b-4281-b951-d872f2087c98
* [net] Change factory methods for HostResolver and HostCache to return a ↵szym@chromium.org2012-10-221-0/+58
| | | | | | | | | | | | scoped_ptr. Move HostResolver factory methods to host_resolver.cc. This also fixes a double-free in ShellURLRequestContextGetter. Review URL: https://chromiumcodereview.appspot.com/10831277 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163402 0039d316-1c4b-4281-b951-d872f2087c98
* Add DNS configuration information to about:net-internals#dns,mmenke@chromium.org2012-03-291-1/+5
| | | | | | | | | | including log dumps, when Chrome's DNS resolver is enabled. BUG=117258 Review URL: http://codereview.chromium.org/9854026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129545 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor: Remove HostResolver::GetAsHostResolverImpl()cbentzel@chromium.org2011-10-211-2/+1
| | | | | | | | | | | The only remaining place this was used was to start the IPv6 probe. That's moved to a function on the interface which is a no-op for most resolvers. Review URL: http://codereview.chromium.org/8364009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106753 0039d316-1c4b-4281-b951-d872f2087c98
* Add GetHostCache to HostResolver interface, and use themmenke@chromium.org2011-10-121-0/+4
| | | | | | | | | | | | | | | new method to hook up AsyncHostResolver to about:net-internals#dns and to clear DNS cache hooks. Also fix up DNSTransaction's NetLog logging a little. R=eroman,cbentzel,szym BUG=99847 TEST=manual Review URL: http://codereview.chromium.org/8233013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@104988 0039d316-1c4b-4281-b951-d872f2087c98
* HostResolver: don't interpret NULL callback argument as a request to do ↵agayev@chromium.org2011-08-041-1/+0
| | | | | | | | | | | synchronous resolution. BUG=90547,60149 TEST=net_unittests Review URL: http://codereview.chromium.org/7492059 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95509 0039d316-1c4b-4281-b951-d872f2087c98
* Add unit-tests for SingleRequestHostResolver.eroman@chromium.org2011-06-061-61/+0
| | | | | | | | | To facilitate this, moved it out of host_resolver.cc to its own set of files. BUG=84261 Review URL: http://codereview.chromium.org/6993015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@88006 0039d316-1c4b-4281-b951-d872f2087c98
* Remove most unnecessary uses of "net::" in net/base/.adamk@chromium.org2011-03-251-2/+2
| | | | | | | | | | Also removes several empty and unused gtest test fixtures. R=willchan@chromium.org Review URL: http://codereview.chromium.org/6676134 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79411 0039d316-1c4b-4281-b951-d872f2087c98
* Add a flag to a host resolver request to request that resolution onlymbelshe@chromium.org2011-03-021-0/+1
| | | | | | | | | | | | | | be done from the cache (i.e. don't do a network lookup, and return results only synchronously). BUG=none TEST=HostResolverImplTest::DisallowNonCachedResponses Review URL: http://codereview.chromium.org/6602038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76515 0039d316-1c4b-4281-b951-d872f2087c98
* Even more reordering the methods in headers and implementation in net/.erg@google.com2011-01-201-3/+3
| | | | | | | | | BUG=68682 TEST=compiles Review URL: http://codereview.chromium.org/6314010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71880 0039d316-1c4b-4281-b951-d872f2087c98
* Start deinlining non-empty virtual methods. (This will be automatically checkederg@google.com2010-12-091-0/+8
| | | | | | | | | | | for in the future.) BUG=none TEST=compiles Review URL: http://codereview.chromium.org/5574006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68746 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Moves code to the headers.erg@google.com2010-09-281-0/+6
| | | | | | | | | | | | | One of the big things is starting to move/declare ctors/dtors that derive from RefCounted<> to/in the implementation file. (Saves 4 megabytes from libglue.a alone. 1 meg off libbrowser.a. Hundred of kilobyte savings in a large number of .a files; only libmedia.a grew and it's only 100k.) BUG=none TEST=compiles Review URL: http://codereview.chromium.org/3452030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60863 0039d316-1c4b-4281-b951-d872f2087c98
* Change HostResolver::RequestInfo to take a HostPortPair rather than naked ↵eroman@chromium.org2010-09-151-3/+2
| | | | | | | | host string + port. Review URL: http://codereview.chromium.org/3420001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59577 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: A giant cleanup to net/erg@google.com2010-08-311-0/+10
| | | | | | | | | | | | This moves all sorts of code from h files to cc files and reduces header dependencies. BUG=none TEST=compiles Review URL: http://codereview.chromium.org/3212008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58020 0039d316-1c4b-4281-b951-d872f2087c98
* Generalize the net module's LoadLog facility from a passive container, to an ↵eroman@chromium.org2010-03-161-2/+2
| | | | | | | | | | | | | | | | event stream (NetLog). This makes it possible to associate a single NetLog with a URLRequestContext, and then attach observers to that log to watch the stream of events. This changelist attempts to do the most direct translation, so there will be subsequent iterations to clean up. The user-visible behavior should remain unchanged. BUG=37421 Review URL: http://codereview.chromium.org/848006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41689 0039d316-1c4b-4281-b951-d872f2087c98
* Cancel any outstanding host resolve when calling ↵eroman@chromium.org2010-01-071-3/+8
| | | | | | | | | | | SOCKSClientSocket::Disconnect(). BUG=25440 TEST=SOCKSClientSocketTest.DisconnectWhileHostResolveInProgress Review URL: http://codereview.chromium.org/525084 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35747 0039d316-1c4b-4281-b951-d872f2087c98
* LoadLog is used as an output parameter, reorder it to the last parameter.willchan@chromium.org2009-08-141-4/+4
| | | | | | Review URL: http://codereview.chromium.org/164531 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23419 0039d316-1c4b-4281-b951-d872f2087c98
* Add a "LoadLog" parameter to transactions, hostresolver, clientsocketpool ↵ericroman@google.com2009-08-121-2/+4
| | | | | | | | and proyxservice.This dependency comes from the parent URLRequest, and is used as a container for per-request profiling data.This change is strictly a no-op refactor -- the parameter is unused, and LoadLog does nothing.BUG=http://crbug.com/14478TEST=none -- just needs to compile and pass existing tests.DESIGN=<http://docs.google.com/Doc?id=dfhcnb2v_21gbtrcpr3&hl=en> Review URL: http://codereview.chromium.org/126303 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23127 0039d316-1c4b-4281-b951-d872f2087c98
* Refactorings surrounding HostResolver:ericroman@google.com2009-07-151-606/+2
| | | | | | | | | | | | | | | | | | | | | | (1) Extract HostResolver to an interface. The existing concrete implementation is now named HostResolverImpl. This makes it possible to create mocks with more complex behavior (i.e. choose via rules if response will be sync vs async). (2) Transform HostMapper into HostResolverProc. Conceptually HostResolverProc maps a hostname to a socket address, whereas HostMapper mapped a hostname to another hostname (so you were still at the mercy of the system's host resolver). With HostResolverProc you can specify the exact AddressList, making it possible to run tests requiring IPv6 socketaddrs on systems (like WinXP) that don't actually support it. (3) Add a MockHostResolver implementation of HostResolver. This replaces the [ScopedHostMapper + RuleBasedHostMapper + HostResolver] combo. It is less clunky and a bit more expressive. BUG=http://crbug.com/16452 R=willchan TEST=existing Review URL: http://codereview.chromium.org/149511 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20795 0039d316-1c4b-4281-b951-d872f2087c98
* Ensure that even if the HostResolver outlives the IO thread, its jobs will ↵ericroman@google.com2009-06-271-1/+14
| | | | | | | | | | | | | not try to complete on the IO thread. This is an experiment for http://crbug.com/15513 BUG=15513 TBR=willchan Review URL: http://codereview.chromium.org/150001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19463 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land final subset of r18520.ericroman@google.com2009-06-171-1/+13
| | | | | | | | | | | | The original code review that this belongs to is: <http://codereview.chromium.org/125171>. (BUG=14138) The original was backed out because of a valgrind linux error (BUG=14218), so I relanded it in smaller chunks to see at which point problem happens. This differs from the original, in that I have changed the unit-test to no longer use ScopedMapper + WaitingMapper, which I believe was the source of a race. Review URL: http://codereview.chromium.org/125232 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18587 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land second-to-last subset of r18520 (now everything is relanded except ↵ericroman@google.com2009-06-171-0/+9
| | | | | | | | | | | | notification of cancellation during destruction). The original code review that this belongs to is:<http://codereview.chromium.org/125171>. (BUG=14138) The original was backed out because of a valgrind linux error (BUG=14218), so I am now re-landing in smaller chunks to identify where the problem resides Review URL: http://codereview.chromium.org/126254 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18583 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land another subset of r18520.ericroman@google.com2009-06-171-4/+8
| | | | | | | | | | | | This particular subset should be a no-op: It adds an unused interface method (OnResolutionCancelled), and an unused test (CancelObserver), and lastly renames Cancel --> MarkAsCanceled(). The code in "dns_global.cc" is also unused since it is unreachable. The original code review that this belongs to is:<http://codereview.chromium.org/125171>. (BUG=14138) The original was backed out because of a valgrind linux error (BUG=14218), so I am now re-landing in smaller chunks to identify where the problem resides. Review URL: http://codereview.chromium.org/126253 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18581 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land a subset of r18520.ericroman@google.com2009-06-171-1/+6
| | | | | | | | | | | | | | | | The original code review for this change was: <http://codereview.chromium.org/125171> The particular subset is the third bullet point in original description: * Fix a bug where completion notification wasn't being sent when the response was cached. (BUG=14188) Note that the original was rolled-back because something was upsetting valgrind (BUG=14218). Review URL: http://codereview.chromium.org/125227 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18579 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 18520.ericroman@google.com2009-06-171-36/+6
| | | | | | | | | | | | | | The original code review for this change was: <http://codereview.chromium.org/125171> It is being reverted because it seems to have caused a valgrind on linux regression: <http://crbug.com14218> BUG=14218,14138,14188 Review URL: http://codereview.chromium.org/126248 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18574 0039d316-1c4b-4281-b951-d872f2087c98
* * Add an OnCancelResolution() notifier to HostResolver::Observer, so ↵ericroman@google.com2009-06-161-6/+36
| | | | | | | | | | | | | | | observers can tell when a request has been cancelled. * Use OnCancelResolution() in DNS prefetcher observer, to avoid leaking entries in the |resolution| table when requests are cancelled. (BUG=14138) * Fix a bug where completion notification wasn't being sent when the response was cached. (BUG=14188) BUG=14138,14188 TEST=HostResolverTest.CancellationObserver, HostResolverTest.Observer Review URL: http://codereview.chromium.org/125171 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18520 0039d316-1c4b-4281-b951-d872f2087c98
* [Refactor] Rename DnsResolutionObserver --> HostResolver::Observer.ericroman@google.com2009-06-151-3/+2
| | | | | | | | | | TEST=this is striclty a refactoring; just needs to compile and pass existing tests. BUG=14056 Review URL: http://codereview.chromium.org/126110 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18372 0039d316-1c4b-4281-b951-d872f2087c98
* * Move the global "DnsResolutionObserver" code depended on by DNS ↵ericroman@google.com2009-06-151-28/+87
| | | | | | | | | | | | | | prefetcher, into HostResolver. This has the advantage that consumers of DNS no longer have to remember to call "DidFinishDnsResolutionWithStatus()" followed by "DidStartDnsResolution()" in order for the prefetcher to observe the resolution. Instead it just happens automatically, and subscribers register via HostResolver::AddObserver() on a particular resolver instance. * To accomodate the prefetcher's observer, HostResolver::Resolve() needs an additional "referrer" parameter. This is slightly awkward since "referrer" has nothing to do with the actual resolve request. To simplify plumbing through this and other optional parameters, Resolve() was changed to take a "RequestInfo&" parameter in place of say {hostname, port, flags}. * Added an option to HostResolver::Resolve() for disallowing cached responses (RequestInfo::allow_cached_response). This will be used when you refresh a page, to bypass the host cache. The code to do this has been added to HttpNetworkTransaction, but is commented out pending an appropriate unit-test to verify it. BUG=14056 Review URL: http://codereview.chromium.org/125107 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18371 0039d316-1c4b-4281-b951-d872f2087c98
* Remove a DCHECK which is being hit because of a unit-test's particular setup.ericroman@google.com2009-06-121-1/+4
| | | | | | | | TBR=willchan Review URL: http://codereview.chromium.org/126028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18240 0039d316-1c4b-4281-b951-d872f2087c98
* * Avoid doing concurrent DNS resolves of the same hostname in HostResolver.ericroman@google.com2009-06-121-64/+310
| | | | | | | | | | | | | | | | * Add a 1 minute cache for host resolves. * Refactor HostResolver to handle multiple requests. * Make HostResolver a dependency of URLRequestContext. operate the HostResolver in async mode for proxy resolver (bridging to IO thread). TEST=unittests BUG=13163 Review URL: http://codereview.chromium.org/118100 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18236 0039d316-1c4b-4281-b951-d872f2087c98
* Use res_ninit for thread safety and a timer for reloading resolv.conf on Linux.evan@chromium.org2009-06-051-2/+76
| | | | | | | | | | | | | | We will only reload resolv.conf once per second per thread when DNS lookups fail. This should match the behaviour of mozilla. [retry of r17530, passes Valgrind now] BUG=12740 Review URL: http://codereview.chromium.org/118061 Patch from Craig Schlenter <craig.schlenter@gmail.com>. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17750 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Use res_ninit for thread safety and a timer for reloading ↵willchan@chromium.org2009-06-041-72/+1
| | | | | | | | | | | | resolv.conf on Linux." This reverts commit d4f0dede964549af67f275ac6296c5e9add3fb03. It caused a valgrind error. TBR=craig.schlenter@gmail.com Review URL: http://codereview.chromium.org/118220 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17607 0039d316-1c4b-4281-b951-d872f2087c98
* Use res_ninit for thread safety and a timer for reloading resolv.conf on Linux.evan@chromium.org2009-06-031-1/+72
| | | | | | | | | | | | We will only reload resolv.conf once per second per thread when DNS lookups fail. This should match the behaviour of mozilla. BUG=12740 Review URL: http://codereview.chromium.org/118061 Patch from Craig Schlenter <craig.schlenter@gmail.com>. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17530 0039d316-1c4b-4281-b951-d872f2087c98
* Work around linux resolver problem where changes to resolv.conf go unnoticed ↵evan@chromium.org2009-05-271-0/+10
| | | | | | | | | | | | | | in some distributions. BUG=11380 TEST=Start chrome with empty resolv.conf, fix resolv.conf; chrome should be able to resolve sites. Review URL: http://codereview.chromium.org/113904 Patch from Craig Schlenter <craig.schlenter@gmail.com>. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17005 0039d316-1c4b-4281-b951-d872f2087c98
* Add #if defined(OS_WIN) for the previous change, which onlywtc@chromium.org2009-05-221-1/+5
| | | | | | | | | | | | applies to Windows. I forgot that this file is used by all platforms. R=eroman http://crbug.com/5234 TEST=N/A Review URL: http://codereview.chromium.org/113729 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16695 0039d316-1c4b-4281-b951-d872f2087c98
* AI_ADDRCONFIG is not necessary on Windows because itswtc@chromium.org2009-05-151-2/+23
| | | | | | | | | | | | | | behavior is ON by default. Using AI_ADDRCONFIG can actually be harmful, as it causes getaddrinfo to fail to resolve "localhost" when the computer is not connected to a network. R=eroman http://crbug.com/5234 TEST=See bug 5234 for instructions Review URL: http://codereview.chromium.org/115424 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16212 0039d316-1c4b-4281-b951-d872f2087c98
* Prevent making real DNS lookups by chrome tests.phajdan.jr@chromium.org2009-03-271-4/+7
| | | | | | | | | | | | | | | | - by default a test which makes external DNS lookup directly or indirectly will fail - added a quite simple way to allow a test to make external queries - added a way to make external queries fail (for tests which don't need them to succeed but it's hard to not make the query) - made neccessary adjustments to existing tests so that they still pass http://crbug.com/9109 Review URL: http://codereview.chromium.org/45026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12653 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Clean up dns prefetch code, and also port it."tc@google.com2009-02-061-20/+4
| | | | | | | | | | | | | | | | This reverts commit r9312. Revert "Fix HostResolver crash when MessageLoop is destroyed during" This reverts commit r9317. BUG=5687,6683 TBR=ph Review URL: http://codereview.chromium.org/21133 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9325 0039d316-1c4b-4281-b951-d872f2087c98
* Fix HostResolver crash when MessageLoop is destroyed duringphajdan.jr@chromium.org2009-02-061-4/+20
| | | | | | | | | | | asynchronous resolution. This should hopefully fix reliability failures introduced in r9312. TBR=darin Review URL: http://codereview.chromium.org/19534 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9317 0039d316-1c4b-4281-b951-d872f2087c98
* Add more unit tests for net/base/host_resolver.phajdan.jr@chromium.org2009-01-291-6/+17
| | | | | | | | BUG=6661 Review URL: http://codereview.chromium.org/18775 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8872 0039d316-1c4b-4281-b951-d872f2087c98
* Add the CertVerifier class. It is based on thewtc@google.com2008-12-191-3/+3
| | | | | | | | | | HostResolver class. It's not being compiled yet. R=eroman BUG=3592 Review URL: http://codereview.chromium.org/14868 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7280 0039d316-1c4b-4281-b951-d872f2087c98
* fix minor whitespace issuesdarin@chromium.org2008-09-241-1/+1
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2559 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for mock DNS queries. This allows us to eliminatedarin@google.com2008-09-241-3/+21
| | | | | | | | | | | | | | flaky DNS queries from the unit tests. Note: some unit tests still connect to www.google.com. My plan is to resolve those in a subsequent CL. R=wtc BUG=2635 Review URL: http://codereview.chromium.org/4022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2545 0039d316-1c4b-4281-b951-d872f2087c98
* Build host_resolver on the Macmmentovai@google.com2008-09-091-1/+0
| | | | | | Review URL: http://codereview.chromium.org/1839 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1896 0039d316-1c4b-4281-b951-d872f2087c98
* Modify HostResolver slightly to build on posix as well as windows.dkegel@google.com2008-09-051-0/+10
| | | | | | Review URL: http://codereview.chromium.org/403 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1799 0039d316-1c4b-4281-b951-d872f2087c98
* Use a more compact license header in source files.license.bot2008-08-241-28/+4
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1287 0039d316-1c4b-4281-b951-d872f2087c98
* Document that the callback parameter ofwtc@google.com2008-07-301-1/+1
| | | | | | | | | | | | HostResolver::Resolve can be null. In tcp_client_socket_unittest.cc, allow sock.Connect to succeed synchronously. Break out of the infinite loop if sock.Read fails. R=darin git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120 0039d316-1c4b-4281-b951-d872f2087c98