summaryrefslogtreecommitdiffstats
path: root/net/base/mock_host_resolver.cc
Commit message (Collapse)AuthorAgeFilesLines
* HostResolver now adds AI_CANONNAME to the hint flags if a requester needs ↵cbentzel@chromium.org2010-04-081-3/+9
| | | | | | | | | | | | | | | | the information. Requests which want the canonical name should be treated differently from requests that do not for the same host in both the HostCache as well as in the HostResolver when combining multiple outstanding requests into a job. The motivation for this is that Kerberos SPN's for a web server are typically generated using the canonical name of the server rather than a DNS alias (both Firefox and IE have this behavior). (note: I had to revert http://codereview.chromium.org/1566012/show because net_unittests were crashing/hanging on the main buildbot, even though they weren't on the trybots. Trying to figure out why). BUG=29862 TEST=net_unittests Review URL: http://codereview.chromium.org/1593015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43947 0039d316-1c4b-4281-b951-d872f2087c98
* Flush socket pools and SPDY session pool properly on explicit requests and ↵willchan@chromium.org2010-04-081-0/+4
| | | | | | | | | | network changes. BUG=40455,40457 Review URL: http://codereview.chromium.org/1615005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43908 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 43826 - HostResolver now adds AI_CANONNAME to the hint flags if a ↵cbentzel@chromium.org2010-04-071-9/+3
| | | | | | | | | | | | | | | | | | requester needs the information. Requests which want the canonical name should be treated differently from requests that do not for the same host in both the HostCache as well as in the HostResolver when combining multiple outstanding requests into a job. The motivation for this is that Kerberos SPN's for a web server are typically generated using the canonical name of the server rather than a DNS alias (both Firefox and IE have this behavior). BUG=29862 TEST=net_unittests Review URL: http://codereview.chromium.org/1566012 TBR=cbentzel@chromium.org Review URL: http://codereview.chromium.org/1629005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43833 0039d316-1c4b-4281-b951-d872f2087c98
* HostResolver now adds AI_CANONNAME to the hint flags if a requester needs ↵cbentzel@chromium.org2010-04-071-3/+9
| | | | | | | | | | | | | | | the information. Requests which want the canonical name should be treated differently from requests that do not for the same host in both the HostCache as well as in the HostResolver when combining multiple outstanding requests into a job. The motivation for this is that Kerberos SPN's for a web server are typically generated using the canonical name of the server rather than a DNS alias (both Firefox and IE have this behavior). BUG=29862 TEST=net_unittests Review URL: http://codereview.chromium.org/1566012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43826 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
* Use CHECK_* in netwillchan@chromium.org2010-03-021-1/+1
| | | | | | Review URL: http://codereview.chromium.org/660404 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40453 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the HostResolver::Shutdown() method.eroman@chromium.org2010-02-051-4/+0
| | | | | | | | | | | While this doesn't entirely remove the hack, it limits the scope of it to HostResolverImpl. Hopefully in the future HostResolver will not be refcounted so this can go away altogether. BUG=18373 Review URL: http://codereview.chromium.org/569035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38243 0039d316-1c4b-4281-b951-d872f2087c98
* Add fine grain tracing to HostResolverImpl.eroman@chromium.org2010-02-021-4/+0
| | | | | | | | | | | | | This will help in diagnosing the "slow resolving host" bugs. Users can now click an "Enable tracing" button on "chrome://net-internals/hostresolver". This logs detailed information on the DNS requests flowing through the browser (when they were received, when they were posted to the thread pool, when they started running on the worker thread, etc...). BUG=12754 Review URL: http://codereview.chromium.org/556094 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37776 0039d316-1c4b-4281-b951-d872f2087c98
* Add mechanism for global queueing and prioritization of DNS.eroman@chromium.org2010-01-301-1/+1
| | | | | | | | | | | | | | Currently this limit is very high (50), but it can be tuned through a variable. BUG=9598 TEST= HostResolverImplTest.HigherPriorityRequestsStartedFirst HostResolverImplTest.CancelPendingRequest HostResolverImplTest.QueueOverflow Review URL: http://codereview.chromium.org/542086 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37608 0039d316-1c4b-4281-b951-d872f2087c98
* Set up HostResolverImpl to flush cache on IP address change.willchan@chromium.org2010-01-111-1/+1
| | | | | | | | BUG=http://crbug.com/26159 Review URL: http://codereview.chromium.org/545003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35956 0039d316-1c4b-4281-b951-d872f2087c98
* Add autodetection of "intranet" redirection, for ISPs etc. that send typos ↵pkasting@chromium.org2010-01-081-6/+5
| | | | | | | | | | and nonexistent addresses to custom pages, and plumb it to the code that puts up infobars when users type in a search that appears to be an intranet address, so we don't show these for erroneous cases. BUG=31556 TEST=none Review URL: http://codereview.chromium.org/525079 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35807 0039d316-1c4b-4281-b951-d872f2087c98
* Cache failed DNS resolutions for 1 second.eroman@chromium.org2009-12-101-3/+9
| | | | | | | | | | | | | | | | | | This is a very small time to live, since we want to be able to respond quickly when formerly unresolvable names become resolvable. Even such a small time is still useful, since cache misses for unresolvable names can be extremely costly (order of several seconds). For example, in our corp PAC script, the URL's host is resolved 3 times, so: Without caching, total runtime is (2.5 seconds) * 3 --> 7.5 seconds. Whereas with caching it would be: (2.5 seconds) * 1 --> 2.5 seconds This time to live will need to be tuned as part of bug 25472. BUG=11079 Review URL: http://codereview.chromium.org/464084 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34238 0039d316-1c4b-4281-b951-d872f2087c98
* Fixes to the string MatchPattern functions:tony@chromium.org2009-12-031-1/+1
| | | | | | | | | | | | | | | 1) Make it explicit that it only supports ASCII (since it iterates character by character). 2) Limit the recursion to 16 levels. We could allow more, but in the case of a ?, it has exponential complexity, so I figured 16 was a good stopping point. It seems rare that someone would have more than 16 '?' and '*'s. BUG=28645 Review URL: http://codereview.chromium.org/460047 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33748 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor: Address some style comments from a review (which missed the ↵eroman@chromium.org2009-10-231-3/+3
| | | | | | | | original check-in). Review URL: http://codereview.chromium.org/322009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29874 0039d316-1c4b-4281-b951-d872f2087c98
* Disable IPv6 results for the PAC bindings:eroman@chromium.org2009-10-221-6/+26
| | | | | | | | | | | | | | | myIpAddress() dnsResolve() isResolvable() This makes us behave more like IE and less like Firefox for scripts where IPv6 addresses are not expected. BUG=24641 TEST=ProxyResolverJSBindingsTest.DontUseIPv6 Review URL: http://codereview.chromium.org/303022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29788 0039d316-1c4b-4281-b951-d872f2087c98
* Add a mechanism to disable IPv6.eroman@chromium.org2009-10-211-2/+5
| | | | | | | | | | | | | | | | | | | (1) Adds the ability to specify the address family on a per-request basis. (2) Exposes a --disable-ipv6 flag to chrome that changes the default address family from AF_UNSPEC to AF_INET (same sort of thing Firefox does). (3) Changes the backing datastructure for HostCache:EntryMap and HostResolverImpl::JobMap from a "hash_map" to a "std::map". This was for consistency with other code (when I went to add a custom hash trait, I couldn't find any existing code which was using hashmap for custom keys). (4) Updates about:net-internals to display an address family for the hostcache dump (since it is now a part of the key). This change is in anticipation of turning off IPv6 host resolving in the PAC utility functions (see bug 24641). But it is also a feature addition. BUG=24641 TEST=HostCacheTest.AddressFamilyIsPartOfKey Review URL: http://codereview.chromium.org/302010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29686 0039d316-1c4b-4281-b951-d872f2087c98
* Add a visualizer for the HostCache (DNS cache) on the network internals page.eroman@chromium.org2009-09-021-0/+4
| | | | | | | | BUG=http://crbug.com/14478 Review URL: http://codereview.chromium.org/172100 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25227 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
* Remove the unittest "DnsMasterTest.OsCachesLookupsTest".eroman@chromium.org2009-08-121-4/+1
| | | | | | | | | | | | This test was checking that the system host resolver maintains an internal cache, by doing actual DNS resolves (which introduces a network dependency in the unit tests). This could be flaky on linux, which doesn't cache resolves. As of r18236 however, chromium maintains its own host cache. So the DNS prefetcher does not need to rely on the OS caching DNS resolves in order to be a win. BUG=http://crbug.com/18766 Review URL: http://codereview.chromium.org/164350 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23239 0039d316-1c4b-4281-b951-d872f2087c98
* Add a "LoadLog" parameter to transactions, hostresolver, clientsocketpool ↵ericroman@google.com2009-08-121-2/+3
| | | | | | | | 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
* Use manually constructed IPv6 socket addresses for tests, rather than system ↵ericroman@google.com2009-07-181-28/+80
| | | | | | | | | | | | | | | created ones. The advantage is that GURL's parsing of IPv6 addresses works on all systems, whereas getaddrinfo(ipv6_literal) only succeeds on IPv6 enabled systems. This allows the tests to run consistently on all systems, including our own WinXP buildbots (which do not support IPv6). BUG=http://crbug.com/16452 TEST=[net_unittests] SOCKS5ClientSocketTest.IPv6Domain, SOCKSClientSocketTest.SOCKS4AIfDomainInIPv6 Review URL: http://codereview.chromium.org/155618 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21053 0039d316-1c4b-4281-b951-d872f2087c98
* Add synchronous-mode operation to MockHostResolver; this helps clarify some ↵ericroman@google.com2009-07-181-15/+23
| | | | | | | | tests, which were using caching to get synchronous resolutions.TEST=existingBUG=NONE (addresses a TODO however). Review URL: http://codereview.chromium.org/155620 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21052 0039d316-1c4b-4281-b951-d872f2087c98
* Refactorings surrounding HostResolver:ericroman@google.com2009-07-151-0/+154
(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