| Index: net/base/host_resolver_impl.h
|
| ===================================================================
|
| --- net/base/host_resolver_impl.h (revision 41742)
|
| +++ net/base/host_resolver_impl.h (working copy)
|
| @@ -89,10 +89,13 @@
|
| virtual void AddObserver(HostResolver::Observer* observer);
|
| virtual void RemoveObserver(HostResolver::Observer* observer);
|
|
|
| - virtual void SetDefaultAddressFamily(AddressFamily address_family) {
|
| - default_address_family_ = address_family;
|
| - }
|
| + // Set address family, and disable IPv6 probe support.
|
| + virtual void SetDefaultAddressFamily(AddressFamily address_family);
|
|
|
| + // Continuously observe whether IPv6 is supported, and set the allowable
|
| + // address family to IPv4 iff IPv6 is not supported.
|
| + void ProbeIPv6Support();
|
| +
|
| virtual HostResolverImpl* GetAsHostResolverImpl() { return this; }
|
|
|
| // TODO(eroman): hack for http://crbug.com/15513
|
| @@ -130,6 +133,7 @@
|
| private:
|
| class Job;
|
| class JobPool;
|
| + class IPv6ProbeJob;
|
| class Request;
|
| class RequestsTrace;
|
| typedef std::vector<Request*> RequestsList;
|
| @@ -179,6 +183,12 @@
|
| // NetworkChangeNotifier::Observer methods:
|
| virtual void OnIPAddressChanged();
|
|
|
| + // Notify IPv6ProbeJob not to call back, and discard reference to the job.
|
| + void DiscardIPv6ProbeJob();
|
| +
|
| + // Callback from IPv6 probe activity.
|
| + void IPv6ProbeSetDefaultAddressFamily(AddressFamily address_family);
|
| +
|
| // Returns true if the constraints for |pool| are met, and a new job can be
|
| // created for this pool.
|
| bool CanCreateJobForPool(const JobPool& pool) const;
|
| @@ -247,6 +257,14 @@
|
|
|
| scoped_refptr<RequestsTrace> requests_trace_;
|
|
|
| + // Indicate if probing is done after each network change event to set address
|
| + // family.
|
| + // When false, explicit setting of address family is used.
|
| + bool ipv6_probe_monitoring_;
|
| +
|
| + // The last un-cancelled IPv6ProbeJob (if any).
|
| + scoped_refptr<IPv6ProbeJob> ipv6_probe_job_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(HostResolverImpl);
|
| };
|
|
|
|
|