gecko-dev/netwerk/dns/DNSResolverInfo.h
Valentin Gosu e1f98ce23a Bug 1657582 - Add nsIDNSResolverInfo interface r=necko-reviewers,geckoview-reviewers,snorp,mixedpuppy,extension-reviewers,dragana
This patch adds the nsIDNSResolverInfo interface which is used to hold
information about the resolver to be used in a DNS resolution.

We use this to merge all of the *WithTRRServer resolve functions into one.
Passing a resolver info will use that object when appropriate. No resolver
info means that we default to using the system resolver, or the default TRR
resolver.

This patch also converts the RESOLVE_TYPE_* flags into a cenum and adds
the resolveType as a parameter to asyncResolve thus removing the need
to have asyncResolveByType methods.

Differential Revision: https://phabricator.services.mozilla.com/D86176
2020-08-12 08:25:14 +00:00

35 lines
879 B
C++

/* 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 mozilla_net_DNSResolverInfo_h__
#define mozilla_net_DNSResolverInfo_h__
#include "nsIDNSResolverInfo.h"
namespace mozilla {
namespace net {
class DNSResolverInfo : public nsIDNSResolverInfo {
NS_DECL_THREADSAFE_ISUPPORTS
NS_DECL_NSIDNSRESOLVERINFO
public:
explicit DNSResolverInfo(const nsACString& aURL) : mURL(aURL){};
static nsCString URL(nsIDNSResolverInfo* aResolver) {
nsCString url;
if (aResolver) {
MOZ_ALWAYS_SUCCEEDS(aResolver->GetURL(url));
}
return url;
}
private:
virtual ~DNSResolverInfo() = default;
nsCString mURL;
};
} // namespace net
} // namespace mozilla
#endif // mozilla_net_DNSResolverInfo_h__