blob: 059fa861db990ee1d35797acb77cfff182acbf57 [file] [log] [blame]
Lorenzo Colitti84485a42018-12-18 19:16:12 +09001cc_library_headers {
2 name: "libnetd_resolv_headers",
3 export_include_dirs: ["include"],
4}
5
chenbruce2e2446c2019-06-28 16:37:36 +08006//For the test to use
7//TODO: 1. Need to Refactor ResolverStats related code(ex: ResolverController::getDnsInfo).
8// Then removing this library header file.
9// 2. Change the imports path in netd/TEST_MAPPING after migrating from
10// system/netd/resolv to packages/modules/resolv.
11cc_library_headers {
12 name: "libnetd_resolv_internal_headers",
13 export_include_dirs: ["."],
14}
15
Luke Huang403c0442019-02-25 15:33:42 +080016aidl_interface {
17 name: "dnsresolver_aidl_interface",
18 local_include_dir: "binder",
19 srcs: [
20 "binder/android/net/IDnsResolver.aidl",
waynema37255182019-03-18 13:22:56 +080021 "binder/android/net/ResolverParamsParcel.aidl",
Luke Huang403c0442019-02-25 15:33:42 +080022 ],
Hungming Chena32c8c12019-01-25 10:47:40 +080023 imports: [
24 "netd_event_listener_interface",
25 ],
Luke Huang598daad2019-05-02 18:10:15 +080026 backend: {
27 ndk: {
28 gen_log: true,
29 },
30 },
Lorenzo Colitti5af19eb2019-05-22 15:34:53 +090031 api_dir: "aidl/dnsresolver",
Luke Huang5aa6a992019-04-29 22:02:11 +080032 versions: [
33 "1",
34 "2",
35 ],
Luke Huang403c0442019-02-25 15:33:42 +080036}
37
Lorenzo Colitti8505af42018-12-19 20:30:41 +090038cc_library {
Bernie Innocentiafaacf72018-08-30 07:34:37 +090039 name: "libnetd_resolv",
Bernie Innocenti1e886742018-10-25 18:41:47 +090040 version_script: "libnetd_resolv.map.txt",
Bernie Innocentiafaacf72018-08-30 07:34:37 +090041 defaults: ["netd_defaults"],
42 srcs: [
Bernie Innocenti9c575932018-09-07 21:10:25 +090043 "getaddrinfo.cpp",
44 "gethnamaddr.cpp",
45 "sethostent.cpp",
46 "res_cache.cpp",
47 "res_comp.cpp",
Bernie Innocenti9c575932018-09-07 21:10:25 +090048 "res_debug.cpp",
49 "res_init.cpp",
50 "res_mkquery.cpp",
51 "res_query.cpp",
52 "res_send.cpp",
53 "res_state.cpp",
54 "res_stats.cpp",
Luke Huang7b26b202019-03-28 14:09:24 +080055 "Dns64Configuration.cpp",
Mike Yu19108d52018-11-15 21:58:19 +080056 "DnsProxyListener.cpp",
Luke Huang36796f32019-03-13 02:54:45 +080057 "DnsResolver.cpp",
Luke Huang403c0442019-02-25 15:33:42 +080058 "DnsResolverService.cpp",
Mike Yubab3daa2018-10-19 22:11:43 +080059 "DnsTlsDispatcher.cpp",
60 "DnsTlsQueryMap.cpp",
61 "DnsTlsTransport.cpp",
62 "DnsTlsServer.cpp",
63 "DnsTlsSessionCache.cpp",
64 "DnsTlsSocket.cpp",
Mike Yub601ff72018-11-01 20:07:00 +080065 "PrivateDnsConfiguration.cpp",
Luke Huang7b26b202019-03-28 14:09:24 +080066 "ResolverController.cpp",
Mike Yu39cc6892018-12-14 16:18:27 +080067 "ResolverEventReporter.cpp",
Bernie Innocentiafaacf72018-08-30 07:34:37 +090068 ],
Bernie Innocenti2a9244c2018-09-13 16:12:56 +090069 // Link everything statically (except for libc) to minimize our dependence
70 // on system ABIs
71 stl: "libc++_static",
Bernie Innocenti9f05f5e2018-09-12 23:20:10 +090072 static_libs: [
waynema0e73c2e2019-07-31 15:04:08 +080073 "dnsresolver_aidl_interface-ndk_platform",
Bernie Innocenti9f05f5e2018-09-12 23:20:10 +090074 "libbase",
Mike Yub601ff72018-11-01 20:07:00 +080075 "libcrypto",
Mike Yu19108d52018-11-15 21:58:19 +080076 "libcutils",
Luke Huang598daad2019-05-02 18:10:15 +080077 "libjsoncpp",
chenbruced8e992e2019-07-03 14:25:48 +080078 "liblog", //Used by libstatslog_resolv
Mike Yubab3daa2018-10-19 22:11:43 +080079 "libnetdutils",
Bernie Innocenti83a968f2019-06-27 14:35:53 +090080 "libprotobuf-cpp-lite",
Mike Yubab3daa2018-10-19 22:11:43 +080081 "libssl",
lifr9b87e362019-05-08 13:00:14 +080082 "libstatslog_resolv",
83 "libstatssocket",
Mike Yu19108d52018-11-15 21:58:19 +080084 "libsysutils",
Bernie Innocenti83a968f2019-06-27 14:35:53 +090085 "libutils", // Used by libstatslog_resolv
Lorenzo Colittie2666e02019-05-23 19:12:26 +090086 "netd_event_listener_interface-V1-ndk_platform",
waynemaa74195e2019-01-18 14:02:31 +080087 "server_configurable_flags",
lifr9b87e362019-05-08 13:00:14 +080088 "stats_proto",
Mike Yu39cc6892018-12-14 16:18:27 +080089 ],
90 shared_libs: [
91 "libbinder_ndk",
Mike Yu19108d52018-11-15 21:58:19 +080092 ],
Luke Huangf4c98f22019-06-14 01:57:00 +080093 header_libs: [
94 "libnetd_client_headers",
Mike Yubab3daa2018-10-19 22:11:43 +080095 ],
Bernie Innocentiac18b122018-10-01 23:10:18 +090096 export_include_dirs: ["include"],
Bernie Innocentiafaacf72018-08-30 07:34:37 +090097 // TODO: pie in the sky: make this code clang-tidy clean
Bernie Innocenti9f05f5e2018-09-12 23:20:10 +090098 tidy: false,
99 product_variables: {
100 debuggable: {
101 cppflags: [
102 "-DRESOLV_ALLOW_VERBOSE_LOGGING=1",
waynema0e73c2e2019-07-31 15:04:08 +0800103 "-DRESOLV_INJECT_CA_CERTIFICATE=1",
Bernie Innocenti9f05f5e2018-09-12 23:20:10 +0900104 ],
105 },
106 },
Bernie Innocentiafaacf72018-08-30 07:34:37 +0900107}
Mike Yuc52739e2018-10-19 21:06:32 +0800108
lifr9b87e362019-05-08 13:00:14 +0800109cc_library_static {
110 name: "stats_proto",
111 defaults: ["netd_defaults"],
112 proto: {
113 export_proto_headers: true,
114 type: "lite",
115 },
116 srcs: [
117 "stats.proto",
118 ],
119}
120
121genrule {
122 name: "statslog_resolv.h",
123 tools: ["stats-log-api-gen"],
124 cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_resolv.h --module resolv --namespace android,net,stats",
125 out: [
126 "statslog_resolv.h",
127 ],
128}
129
130genrule {
131 name: "statslog_resolv.cpp",
132 tools: ["stats-log-api-gen"],
133 cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_resolv.cpp --module resolv --namespace android,net,stats --importHeader statslog_resolv.h",
134 out: [
135 "statslog_resolv.cpp",
136 ],
137}
138
139cc_library_static {
140 name: "libstatslog_resolv",
141 generated_sources: ["statslog_resolv.cpp"],
142 generated_headers: ["statslog_resolv.h"],
143 defaults: ["netd_defaults"],
144 export_generated_headers: ["statslog_resolv.h"],
145 static_libs: [
146 "libcutils",
lifr9b87e362019-05-08 13:00:14 +0800147 "libstatssocket",
lifr9b87e362019-05-08 13:00:14 +0800148 ],
149}
150
Mike Yuc52739e2018-10-19 21:06:32 +0800151cc_test {
Ken Chenb9fa2062018-11-13 21:51:13 +0800152 name: "resolv_integration_test",
153 test_suites: ["device-tests"],
Bernie Innocenti45d9baa2019-06-19 16:28:05 +0900154 require_root: true,
Ken Chenb9fa2062018-11-13 21:51:13 +0800155 defaults: ["netd_defaults"],
Lorenzo Colittid8b956a2019-06-26 21:30:59 +0900156 tidy: false, // cuts test build time by > 1m30s
Ken Chenb9fa2062018-11-13 21:51:13 +0800157 srcs: [
chenbruceb43ec752019-07-24 20:19:41 +0800158 "tests/dns_responder/dns_responder.cpp",
Luke Huang403c0442019-02-25 15:33:42 +0800159 "dnsresolver_binder_test.cpp",
Luke Huangfde82482019-06-04 01:04:53 +0800160 "resolver_test.cpp",
Ken Chenb9fa2062018-11-13 21:51:13 +0800161 ],
chenbruce2e2446c2019-06-28 16:37:36 +0800162 header_libs: [
163 "libnetd_resolv_headers",
Ken Chenb9fa2062018-11-13 21:51:13 +0800164 ],
165 shared_libs: [
Lorenzo Colittieb9aeec2019-06-26 19:53:55 +0900166 "libbpf_android",
Ken Chenb9fa2062018-11-13 21:51:13 +0800167 "libbase",
168 "libbinder",
169 "libcrypto",
Ken Chenb9fa2062018-11-13 21:51:13 +0800170 "libnetd_client",
171 "libssl",
172 "libutils",
Ken Chenb9fa2062018-11-13 21:51:13 +0800173 ],
174 static_libs: [
waynema0e73c2e2019-07-31 15:04:08 +0800175 "dnsresolver_aidl_interface-cpp",
Luke Huang7b26b202019-03-28 14:09:24 +0800176 "libgmock",
Ken Chenb9fa2062018-11-13 21:51:13 +0800177 "libnetd_test_dnsresponder",
Hungming Chena32c8c12019-01-25 10:47:40 +0800178 "libnetd_test_metrics_listener",
Hungming Chend52f6b12019-07-24 16:01:47 +0800179 "libnetd_test_resolv_utils",
Ken Chenb9fa2062018-11-13 21:51:13 +0800180 "libnetd_test_tun_interface",
Lorenzo Colittieb9aeec2019-06-26 19:53:55 +0900181 "libnetd_test_utils",
Ken Chenb9fa2062018-11-13 21:51:13 +0800182 "libnetdutils",
Lorenzo Colitti800d3f72019-05-22 12:16:50 +0900183 "netd_aidl_interface-V2-cpp",
184 "netd_event_listener_interface-V1-cpp",
Ken Chenb9fa2062018-11-13 21:51:13 +0800185 ],
186 compile_multilib: "both",
187 sanitize: {
188 address: true,
Lorenzo Colittie3419ce2019-04-29 10:13:05 +0900189 recover: ["all"],
Ken Chenb9fa2062018-11-13 21:51:13 +0800190 },
191}
192
193cc_test {
194 name: "resolv_unit_test",
Bernie Innocenti4d4071f2019-04-03 06:07:02 +0000195 test_suites: ["device-tests"],
chenbruce609db9d2019-06-26 23:30:33 +0800196 require_root: true,
197 //TODO: drop root privileges and make it be an real unit test.
Mike Yuc52739e2018-10-19 21:06:32 +0800198 defaults: ["netd_defaults"],
199 srcs: [
200 "dns_tls_test.cpp",
nuccachen0efcc802018-11-28 18:19:39 +0800201 "libnetd_resolv_test.cpp",
Mike Yud1ec2542019-06-06 17:17:53 +0800202 "res_cache_test.cpp",
Mike Yuc52739e2018-10-19 21:06:32 +0800203 ],
Mike Yuc52739e2018-10-19 21:06:32 +0800204 shared_libs: [
205 "libbase",
Mike Yub601ff72018-11-01 20:07:00 +0800206 "libcrypto",
Luke Huange126fbe2019-07-20 17:36:30 +0800207 "libcutils",
Mike Yubab3daa2018-10-19 22:11:43 +0800208 "libssl",
Mike Yuc52739e2018-10-19 21:06:32 +0800209 ],
nuccachen0efcc802018-11-28 18:19:39 +0800210 static_libs: [
Hungming Chen32647472019-07-05 14:04:51 +0800211 "dnsresolver_aidl_interface-V2-cpp",
Luke Huange126fbe2019-07-20 17:36:30 +0800212 "libgmock",
Lorenzo Colitti8505af42018-12-19 20:30:41 +0900213 "libnetd_resolv",
nuccachen0efcc802018-11-28 18:19:39 +0800214 "libnetd_test_dnsresponder",
Hungming Chend52f6b12019-07-24 16:01:47 +0800215 "libnetd_test_resolv_utils",
Lorenzo Colittidae66672018-12-19 21:13:03 +0900216 "libnetdutils",
lifr94981782019-05-17 21:15:19 +0800217 "libprotobuf-cpp-lite",
waynemaa74195e2019-01-18 14:02:31 +0800218 "server_configurable_flags",
lifr94981782019-05-17 21:15:19 +0800219 "stats_proto",
nuccachen0efcc802018-11-28 18:19:39 +0800220 ],
Mike Yuc52739e2018-10-19 21:06:32 +0800221}