blob: 3fdf75b12fc54f6f811c8a74eaccab75be7a7be0 [file] [log] [blame]
Zach Steine20867f2018-08-02 20:20:151/*
2 * Copyright 2018 The WebRTC Project Authors. All rights reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
Steve Anton10542f22019-01-11 17:11:0011#include "p2p/base/basic_async_resolver_factory.h"
Zach Steine20867f2018-08-02 20:20:1512
Harald Alvestrande6e2f282021-03-24 12:13:2813#include <memory>
14#include <utility>
15
16#include "absl/memory/memory.h"
17#include "api/async_dns_resolver.h"
Harald Alvestrand985310e2021-10-01 15:11:1718#include "api/wrapping_async_dns_resolver.h"
Mirko Bonadeie5f4c6b2021-01-15 09:41:0119#include "rtc_base/async_resolver.h"
Harald Alvestrand0ccfbd22021-04-08 07:25:0420#include "rtc_base/logging.h"
Zach Steine20867f2018-08-02 20:20:1521
22namespace webrtc {
23
24rtc::AsyncResolverInterface* BasicAsyncResolverFactory::Create() {
25 return new rtc::AsyncResolver();
26}
27
Harald Alvestrande6e2f282021-03-24 12:13:2828
29std::unique_ptr<webrtc::AsyncDnsResolverInterface>
30WrappingAsyncDnsResolverFactory::Create() {
31 return std::make_unique<WrappingAsyncDnsResolver>(wrapped_factory_->Create());
32}
33
34std::unique_ptr<webrtc::AsyncDnsResolverInterface>
35WrappingAsyncDnsResolverFactory::CreateAndResolve(
36 const rtc::SocketAddress& addr,
37 std::function<void()> callback) {
38 std::unique_ptr<webrtc::AsyncDnsResolverInterface> resolver = Create();
Sameer Vijaykarb787e262022-08-11 09:52:5739 resolver->Start(addr, std::move(callback));
40 return resolver;
41}
42
43std::unique_ptr<webrtc::AsyncDnsResolverInterface>
44WrappingAsyncDnsResolverFactory::CreateAndResolve(
45 const rtc::SocketAddress& addr,
46 int family,
47 std::function<void()> callback) {
48 std::unique_ptr<webrtc::AsyncDnsResolverInterface> resolver = Create();
49 resolver->Start(addr, family, std::move(callback));
Harald Alvestrande6e2f282021-03-24 12:13:2850 return resolver;
51}
52
Zach Steine20867f2018-08-02 20:20:1553} // namespace webrtc