blob: 24757f749632654bfeb1890512a570ba72c92ff7 [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
Bernie Innocenti86890c92020-01-08 21:00:39 +09006// Used only by dns_responder_client_ndk.cpp for ResolverStats.h
7// TODO: refactor stats to use a Parcel and eliminate this dependency
chenbruce2e2446c2019-06-28 16:37:36 +08008cc_library_headers {
9 name: "libnetd_resolv_internal_headers",
10 export_include_dirs: ["."],
11}
12
Luke Huang403c0442019-02-25 15:33:42 +080013aidl_interface {
14 name: "dnsresolver_aidl_interface",
15 local_include_dir: "binder",
16 srcs: [
17 "binder/android/net/IDnsResolver.aidl",
chenbrucefd837fa2019-10-29 18:35:36 +080018 "binder/android/net/ResolverHostsParcel.aidl",
Ken Chen99344882020-01-01 14:59:38 +080019 "binder/android/net/ResolverExperimentalOptionsParcel.aidl",
waynema37255182019-03-18 13:22:56 +080020 "binder/android/net/ResolverParamsParcel.aidl",
Luke Huang403c0442019-02-25 15:33:42 +080021 ],
Hungming Chena32c8c12019-01-25 10:47:40 +080022 imports: [
23 "netd_event_listener_interface",
24 ],
Luke Huang598daad2019-05-02 18:10:15 +080025 backend: {
26 ndk: {
27 gen_log: true,
28 },
29 },
Luke Huang5aa6a992019-04-29 22:02:11 +080030 versions: [
31 "1",
32 "2",
Luke Huang0fc985f2019-11-14 19:18:14 +080033 "3",
Luke Huang5aa6a992019-04-29 22:02:11 +080034 ],
Luke Huang403c0442019-02-25 15:33:42 +080035}
36
Lorenzo Colitti8505af42018-12-19 20:30:41 +090037cc_library {
Bernie Innocentiafaacf72018-08-30 07:34:37 +090038 name: "libnetd_resolv",
Bernie Innocenti1e886742018-10-25 18:41:47 +090039 version_script: "libnetd_resolv.map.txt",
Jooyung Han41fa73d2019-11-27 15:41:44 +090040 stubs: {
41 versions: [
42 "1",
43 ],
44 symbol_file: "libnetd_resolv.map.txt",
45 },
Bernie Innocentiafaacf72018-08-30 07:34:37 +090046 defaults: ["netd_defaults"],
47 srcs: [
Bernie Innocenti9c575932018-09-07 21:10:25 +090048 "getaddrinfo.cpp",
49 "gethnamaddr.cpp",
50 "sethostent.cpp",
51 "res_cache.cpp",
52 "res_comp.cpp",
Bernie Innocenti9c575932018-09-07 21:10:25 +090053 "res_debug.cpp",
54 "res_init.cpp",
55 "res_mkquery.cpp",
56 "res_query.cpp",
57 "res_send.cpp",
Bernie Innocenti9c575932018-09-07 21:10:25 +090058 "res_stats.cpp",
Mike Yu021c3e12019-10-08 17:29:34 +080059 "util.cpp",
Luke Huang7b26b202019-03-28 14:09:24 +080060 "Dns64Configuration.cpp",
Mike Yu19108d52018-11-15 21:58:19 +080061 "DnsProxyListener.cpp",
Mike Yu939e3692019-10-29 17:28:34 +080062 "DnsQueryLog.cpp",
Luke Huang36796f32019-03-13 02:54:45 +080063 "DnsResolver.cpp",
Luke Huang403c0442019-02-25 15:33:42 +080064 "DnsResolverService.cpp",
Mike Yue655b1d2019-08-28 17:49:59 +080065 "DnsStats.cpp",
Mike Yubab3daa2018-10-19 22:11:43 +080066 "DnsTlsDispatcher.cpp",
67 "DnsTlsQueryMap.cpp",
68 "DnsTlsTransport.cpp",
69 "DnsTlsServer.cpp",
70 "DnsTlsSessionCache.cpp",
71 "DnsTlsSocket.cpp",
Mike Yub601ff72018-11-01 20:07:00 +080072 "PrivateDnsConfiguration.cpp",
Luke Huang7b26b202019-03-28 14:09:24 +080073 "ResolverController.cpp",
Mike Yu39cc6892018-12-14 16:18:27 +080074 "ResolverEventReporter.cpp",
Bernie Innocentiafaacf72018-08-30 07:34:37 +090075 ],
Tobias Thierer469b6332019-08-28 20:25:33 +010076 // Link most things statically to minimize our dependence on system ABIs.
Bernie Innocenti2a9244c2018-09-13 16:12:56 +090077 stl: "libc++_static",
Bernie Innocenti9f05f5e2018-09-12 23:20:10 +090078 static_libs: [
Jeongik Cha9af2c7e2019-10-15 17:06:40 +090079 "dnsresolver_aidl_interface-unstable-ndk_platform",
Bernie Innocenti9f05f5e2018-09-12 23:20:10 +090080 "libbase",
Mike Yu19108d52018-11-15 21:58:19 +080081 "libcutils",
Luke Huang598daad2019-05-02 18:10:15 +080082 "libjsoncpp",
Mike Yubab3daa2018-10-19 22:11:43 +080083 "libnetdutils",
Bernie Innocenti83a968f2019-06-27 14:35:53 +090084 "libprotobuf-cpp-lite",
lifr9b87e362019-05-08 13:00:14 +080085 "libstatslog_resolv",
Muhammad Qureshi10b3d272019-12-03 15:25:19 -080086 "libstatspush_compat",
Mike Yu19108d52018-11-15 21:58:19 +080087 "libsysutils",
Luke Huang0fc985f2019-11-14 19:18:14 +080088 "libutils", // Used by libstatslog_resolv
Jeongik Cha9af2c7e2019-10-15 17:06:40 +090089 "netd_event_listener_interface-ndk_platform",
waynemaa74195e2019-01-18 14:02:31 +080090 "server_configurable_flags",
lifr9b87e362019-05-08 13:00:14 +080091 "stats_proto",
Mike Yu39cc6892018-12-14 16:18:27 +080092 ],
Tobias Thierer469b6332019-08-28 20:25:33 +010093 // libcrypto needs to be used as a shared library because it performs an
94 // integrity check (against a checksum) that is not supported for static
95 // libs. See http://b/141248879
96 // We're also adding libssl here to treat it consistently.
Jiyong Parkdd938dd2020-03-09 14:35:37 +090097 // liblog is added as a shared library because it provides stable C API
98 // from the platform; we don't need to include it in this module by
99 // statically linking to it. Doing so is even dangerous because the socket
100 // protocol to logd implemented in the library isn't guaranteed to be
101 // stable. See b/151051671
Mike Yu39cc6892018-12-14 16:18:27 +0800102 shared_libs: [
103 "libbinder_ndk",
Tobias Thierer469b6332019-08-28 20:25:33 +0100104 "libcrypto",
Jiyong Parkdd938dd2020-03-09 14:35:37 +0900105 "liblog", //Used by libstatslog_resolv
Tobias Thierer469b6332019-08-28 20:25:33 +0100106 "libssl",
Mike Yu19108d52018-11-15 21:58:19 +0800107 ],
Luke Huangf4c98f22019-06-14 01:57:00 +0800108 header_libs: [
109 "libnetd_client_headers",
Mike Yubab3daa2018-10-19 22:11:43 +0800110 ],
Ruchir Rastogicf96e8b2020-02-26 10:36:18 -0800111 runtime_libs: [
112 // Causes the linkerconfig to create a namespace link from resolv to the
113 // libstatssocket library within the statsd apex
114 "libstatssocket",
115 ],
Bernie Innocentiac18b122018-10-01 23:10:18 +0900116 export_include_dirs: ["include"],
chenbruce99cbfd82019-09-05 15:08:13 +0800117
Bernie Innocenti9f05f5e2018-09-12 23:20:10 +0900118 product_variables: {
119 debuggable: {
120 cppflags: [
121 "-DRESOLV_ALLOW_VERBOSE_LOGGING=1",
waynema0e73c2e2019-07-31 15:04:08 +0800122 "-DRESOLV_INJECT_CA_CERTIFICATE=1",
Bernie Innocenti9f05f5e2018-09-12 23:20:10 +0900123 ],
124 },
125 },
Ken Chen4961dfe2019-11-15 09:03:29 +0800126 header_abi_checker: {
127 enabled: true,
128 symbol_file: "libnetd_resolv.map.txt",
129 },
Ken Chenf5573fd2020-01-14 01:51:05 +0800130 sanitize: {
131 cfi: true,
132 diag: {
133 cfi: true,
134 },
135 },
Bernie Innocentiafaacf72018-08-30 07:34:37 +0900136}
Mike Yuc52739e2018-10-19 21:06:32 +0800137
lifr9b87e362019-05-08 13:00:14 +0800138cc_library_static {
139 name: "stats_proto",
140 defaults: ["netd_defaults"],
141 proto: {
142 export_proto_headers: true,
143 type: "lite",
144 },
145 srcs: [
146 "stats.proto",
147 ],
148}
149
150genrule {
151 name: "statslog_resolv.h",
152 tools: ["stats-log-api-gen"],
153 cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_resolv.h --module resolv --namespace android,net,stats",
154 out: [
155 "statslog_resolv.h",
156 ],
157}
158
159genrule {
160 name: "statslog_resolv.cpp",
161 tools: ["stats-log-api-gen"],
Muhammad Qureshi10b3d272019-12-03 15:25:19 -0800162 cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_resolv.cpp --module resolv --namespace android,net,stats --importHeader statslog_resolv.h --supportQ",
lifr9b87e362019-05-08 13:00:14 +0800163 out: [
164 "statslog_resolv.cpp",
165 ],
166}
167
168cc_library_static {
169 name: "libstatslog_resolv",
170 generated_sources: ["statslog_resolv.cpp"],
171 generated_headers: ["statslog_resolv.h"],
172 defaults: ["netd_defaults"],
173 export_generated_headers: ["statslog_resolv.h"],
174 static_libs: [
175 "libcutils",
Muhammad Qureshi10b3d272019-12-03 15:25:19 -0800176 "libgtest_prod", // Used by libstatspush_compat
177 "libstatspush_compat",
lifr9b87e362019-05-08 13:00:14 +0800178 ],
179}
180
Luke Huangf8215372019-11-22 11:53:41 +0800181// TODO: Move this test to tests/
Ken Chenb9fa2062018-11-13 21:51:13 +0800182cc_test {
183 name: "resolv_unit_test",
Bernie Innocenticac27842019-12-13 11:49:33 +0900184 test_suites: ["device-tests", "mts"],
chenbruce609db9d2019-06-26 23:30:33 +0800185 require_root: true,
Luke Huang40702ff2020-03-10 02:23:30 +0800186 test_config: "resolv_unit_test_config.xml",
chenbruce609db9d2019-06-26 23:30:33 +0800187 //TODO: drop root privileges and make it be an real unit test.
Mike Yuc52739e2018-10-19 21:06:32 +0800188 defaults: ["netd_defaults"],
189 srcs: [
waynemae9302592019-08-15 14:50:58 +0800190 "resolv_cache_unit_test.cpp",
chenbruce98f19c22019-11-20 14:58:20 +0800191 "resolv_callback_unit_test.cpp",
waynemae9302592019-08-15 14:50:58 +0800192 "resolv_tls_unit_test.cpp",
193 "resolv_unit_test.cpp",
Mike Yue655b1d2019-08-28 17:49:59 +0800194 "DnsStatsTest.cpp",
Mike Yu39df0b12019-10-31 16:12:23 +0800195 "DnsQueryLogTest.cpp",
Mike Yuc52739e2018-10-19 21:06:32 +0800196 ],
Mike Yuc52739e2018-10-19 21:06:32 +0800197 shared_libs: [
198 "libbase",
Mike Yub601ff72018-11-01 20:07:00 +0800199 "libcrypto",
Luke Huange126fbe2019-07-20 17:36:30 +0800200 "libcutils",
Mike Yubab3daa2018-10-19 22:11:43 +0800201 "libssl",
Sehee Parkd975bf32019-08-07 13:21:16 +0900202 "libbinder_ndk",
Mike Yuc52739e2018-10-19 21:06:32 +0800203 ],
nuccachen0efcc802018-11-28 18:19:39 +0800204 static_libs: [
chenbrucefd837fa2019-10-29 18:35:36 +0800205 "dnsresolver_aidl_interface-unstable-ndk_platform",
Jeongik Cha9af2c7e2019-10-15 17:06:40 +0900206 "netd_event_listener_interface-ndk_platform",
Luke Huange126fbe2019-07-20 17:36:30 +0800207 "libgmock",
Sehee Parkd975bf32019-08-07 13:21:16 +0900208 "liblog",
Lorenzo Colitti8505af42018-12-19 20:30:41 +0900209 "libnetd_resolv",
nuccachen0efcc802018-11-28 18:19:39 +0800210 "libnetd_test_dnsresponder",
Hungming Chend52f6b12019-07-24 16:01:47 +0800211 "libnetd_test_resolv_utils",
Lorenzo Colittidae66672018-12-19 21:13:03 +0900212 "libnetdutils",
lifr94981782019-05-17 21:15:19 +0800213 "libprotobuf-cpp-lite",
chenbruce98f19c22019-11-20 14:58:20 +0800214 "libstatslog_resolv",
Muhammad Qureshi2361d132020-01-19 07:06:45 -0800215 "libstatspush_compat",
chenbruce98f19c22019-11-20 14:58:20 +0800216 "libsysutils",
217 "libutils",
Luke Huang977e46e2019-07-04 15:33:07 +0800218 "resolv_stats_test_utils",
waynemaa74195e2019-01-18 14:02:31 +0800219 "server_configurable_flags",
lifr94981782019-05-17 21:15:19 +0800220 "stats_proto",
nuccachen0efcc802018-11-28 18:19:39 +0800221 ],
Bernie Innocenticac27842019-12-13 11:49:33 +0900222 compile_multilib: "both",
223 multilib: {
224 lib32: {
225 suffix: "32",
226 },
227 lib64: {
228 suffix: "64",
229 },
230 },
Mike Yuc52739e2018-10-19 21:06:32 +0800231}