blob: 6d8d2ce5d30082687d2922f198e6a6a86d27c192 [file] [log] [blame]
Luke Huang36796f32019-03-13 02:54:45 +08001/**
2 * Copyright (c) 2019, The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef _DNS_RESOLVER_H_
18#define _DNS_RESOLVER_H_
19
Luke Huang36796f32019-03-13 02:54:45 +080020#include "DnsProxyListener.h"
Luke Huang7b26b202019-03-28 14:09:24 +080021#include "ResolverController.h"
22#include "netd_resolv/resolv.h"
Luke Huangc6bbbe72019-03-28 21:38:28 +080023#include "netdutils/Log.h"
Luke Huang36796f32019-03-13 02:54:45 +080024
25namespace android {
26namespace net {
27
28class DnsResolver {
29 public:
30 static DnsResolver* getInstance();
31 bool start();
Ken Chend99022c2019-02-20 21:34:14 +080032 int setLogSeverity(int32_t logSeverity);
Luke Huang36796f32019-03-13 02:54:45 +080033
34 DnsResolver(DnsResolver const&) = delete;
35 void operator=(DnsResolver const&) = delete;
36
Luke Huang7b26b202019-03-28 14:09:24 +080037 ResolverController resolverCtrl;
38
Luke Huang36796f32019-03-13 02:54:45 +080039 private:
40 DnsResolver() {}
41 DnsProxyListener mDnsProxyListener;
42};
43
44extern DnsResolver* gDnsResolv;
45extern ResolverNetdCallbacks gResNetdCallbacks;
Luke Huangc6bbbe72019-03-28 21:38:28 +080046extern netdutils::Log gDnsResolverLog;
Luke Huang36796f32019-03-13 02:54:45 +080047
48} // namespace net
49} // namespace android
50
51#endif // _DNS_RESOLVER_H_