mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-06 09:05:45 +00:00
ef52c3bbf9
This patch adds a) a test for the fixed proxy bypass in bug 751465 and makes b) some underlying changes to the nsDNSService to be able to write that test in the first place.
67 lines
2.2 KiB
C++
67 lines
2.2 KiB
C++
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/* vim: set sw=4 ts=8 et tw=80 : */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef nsDNSService2_h__
|
|
#define nsDNSService2_h__
|
|
|
|
#include "nsPIDNSService.h"
|
|
#include "nsIIDNService.h"
|
|
#include "nsIMemoryReporter.h"
|
|
#include "nsIObserver.h"
|
|
#include "nsHostResolver.h"
|
|
#include "nsAutoPtr.h"
|
|
#include "nsString.h"
|
|
#include "nsTHashtable.h"
|
|
#include "nsHashKeys.h"
|
|
#include "nsIObserverService.h"
|
|
#include "nsProxyRelease.h"
|
|
#include "mozilla/Mutex.h"
|
|
#include "mozilla/Attributes.h"
|
|
|
|
class nsDNSService MOZ_FINAL : public nsPIDNSService
|
|
, public nsIObserver
|
|
, public nsIMemoryReporter
|
|
{
|
|
public:
|
|
NS_DECL_THREADSAFE_ISUPPORTS
|
|
NS_DECL_NSPIDNSSERVICE
|
|
NS_DECL_NSIDNSSERVICE
|
|
NS_DECL_NSIOBSERVER
|
|
NS_DECL_NSIMEMORYREPORTER
|
|
|
|
nsDNSService();
|
|
~nsDNSService();
|
|
|
|
static nsIDNSService* GetXPCOMSingleton();
|
|
|
|
size_t SizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const;
|
|
|
|
private:
|
|
static nsDNSService* GetSingleton();
|
|
|
|
uint16_t GetAFForLookup(const nsACString &host, uint32_t flags);
|
|
|
|
nsRefPtr<nsHostResolver> mResolver;
|
|
nsCOMPtr<nsIIDNService> mIDN;
|
|
|
|
// mLock protects access to mResolver and mIPv4OnlyDomains
|
|
mozilla::Mutex mLock;
|
|
|
|
// mIPv4OnlyDomains is a comma-separated list of domains for which only
|
|
// IPv4 DNS lookups are performed. This allows the user to disable IPv6 on
|
|
// a per-domain basis and work around broken DNS servers. See bug 68796.
|
|
nsAdoptingCString mIPv4OnlyDomains;
|
|
bool mDisableIPv6;
|
|
bool mDisablePrefetch;
|
|
bool mFirstTime;
|
|
bool mOffline;
|
|
bool mNotifyResolution;
|
|
nsMainThreadPtrHandle<nsIObserverService> mObserverService;
|
|
nsTHashtable<nsCStringHashKey> mLocalDomains;
|
|
};
|
|
|
|
#endif //nsDNSService2_h__
|