| cc_library_headers { |
| name: "libnetd_resolv_headers", |
| export_include_dirs: ["include"], |
| } |
| |
| //For the test to use |
| //TODO: 1. Need to Refactor ResolverStats related code(ex: ResolverController::getDnsInfo). |
| // Then removing this library header file. |
| // 2. Change the imports path in netd/TEST_MAPPING after migrating from |
| // system/netd/resolv to packages/modules/resolv. |
| cc_library_headers { |
| name: "libnetd_resolv_internal_headers", |
| export_include_dirs: ["."], |
| } |
| |
| aidl_interface { |
| name: "dnsresolver_aidl_interface", |
| local_include_dir: "binder", |
| srcs: [ |
| "binder/android/net/IDnsResolver.aidl", |
| "binder/android/net/ResolverParamsParcel.aidl", |
| ], |
| imports: [ |
| "netd_event_listener_interface", |
| ], |
| backend: { |
| ndk: { |
| gen_log: true, |
| }, |
| }, |
| api_dir: "aidl/dnsresolver", |
| versions: [ |
| "1", |
| "2", |
| ], |
| } |
| |
| cc_library { |
| name: "libnetd_resolv", |
| version_script: "libnetd_resolv.map.txt", |
| defaults: ["netd_defaults"], |
| srcs: [ |
| "getaddrinfo.cpp", |
| "gethnamaddr.cpp", |
| "sethostent.cpp", |
| "res_cache.cpp", |
| "res_comp.cpp", |
| "res_debug.cpp", |
| "res_init.cpp", |
| "res_mkquery.cpp", |
| "res_query.cpp", |
| "res_send.cpp", |
| "res_stats.cpp", |
| "Dns64Configuration.cpp", |
| "DnsProxyListener.cpp", |
| "DnsResolver.cpp", |
| "DnsResolverService.cpp", |
| "DnsTlsDispatcher.cpp", |
| "DnsTlsQueryMap.cpp", |
| "DnsTlsTransport.cpp", |
| "DnsTlsServer.cpp", |
| "DnsTlsSessionCache.cpp", |
| "DnsTlsSocket.cpp", |
| "PrivateDnsConfiguration.cpp", |
| "ResolverController.cpp", |
| "ResolverEventReporter.cpp", |
| ], |
| // Link most things statically to minimize our dependence on system ABIs. |
| stl: "libc++_static", |
| static_libs: [ |
| "dnsresolver_aidl_interface-ndk_platform", |
| "libbase", |
| "libcutils", |
| "libjsoncpp", |
| "liblog", //Used by libstatslog_resolv |
| "libnetdutils", |
| "libprotobuf-cpp-lite", |
| "libstatslog_resolv", |
| "libstatssocket", |
| "libsysutils", |
| "libutils", // Used by libstatslog_resolv |
| "netd_event_listener_interface-V1-ndk_platform", |
| "server_configurable_flags", |
| "stats_proto", |
| ], |
| // libcrypto needs to be used as a shared library because it performs an |
| // integrity check (against a checksum) that is not supported for static |
| // libs. See http://b/141248879 |
| // We're also adding libssl here to treat it consistently. |
| shared_libs: [ |
| "libbinder_ndk", |
| "libcrypto", |
| "libssl", |
| ], |
| header_libs: [ |
| "libnetd_client_headers", |
| ], |
| export_include_dirs: ["include"], |
| |
| product_variables: { |
| debuggable: { |
| cppflags: [ |
| "-DRESOLV_ALLOW_VERBOSE_LOGGING=1", |
| "-DRESOLV_INJECT_CA_CERTIFICATE=1", |
| ], |
| }, |
| }, |
| } |
| |
| cc_library_static { |
| name: "stats_proto", |
| defaults: ["netd_defaults"], |
| proto: { |
| export_proto_headers: true, |
| type: "lite", |
| }, |
| srcs: [ |
| "stats.proto", |
| ], |
| } |
| |
| genrule { |
| name: "statslog_resolv.h", |
| tools: ["stats-log-api-gen"], |
| cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_resolv.h --module resolv --namespace android,net,stats", |
| out: [ |
| "statslog_resolv.h", |
| ], |
| } |
| |
| genrule { |
| name: "statslog_resolv.cpp", |
| tools: ["stats-log-api-gen"], |
| cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_resolv.cpp --module resolv --namespace android,net,stats --importHeader statslog_resolv.h", |
| out: [ |
| "statslog_resolv.cpp", |
| ], |
| } |
| |
| cc_library_static { |
| name: "libstatslog_resolv", |
| generated_sources: ["statslog_resolv.cpp"], |
| generated_headers: ["statslog_resolv.h"], |
| defaults: ["netd_defaults"], |
| export_generated_headers: ["statslog_resolv.h"], |
| static_libs: [ |
| "libcutils", |
| "libstatssocket", |
| ], |
| } |
| |
| cc_test { |
| name: "resolv_integration_test", |
| test_suites: ["device-tests"], |
| require_root: true, |
| defaults: ["netd_defaults"], |
| tidy: false, // cuts test build time by > 1m30s |
| srcs: [ |
| "tests/dns_responder/dns_responder.cpp", |
| "dnsresolver_binder_test.cpp", |
| "resolv_integration_test.cpp", |
| ], |
| header_libs: [ |
| "libnetd_resolv_headers", |
| ], |
| shared_libs: [ |
| "libbpf_android", |
| "libbinder", |
| "libcrypto", |
| "liblog", |
| "libnetd_client", |
| "libssl", |
| "libutils", |
| ], |
| static_libs: [ |
| "dnsresolver_aidl_interface-cpp", |
| "libbase", |
| "libgmock", |
| "libnetd_test_dnsresponder", |
| "libnetd_test_metrics_listener", |
| "libnetd_test_resolv_utils", |
| "libnetd_test_tun_interface", |
| "libnetd_test_utils", |
| "libnetdutils", |
| "netd_aidl_interface-V2-cpp", |
| "netd_event_listener_interface-V1-cpp", |
| ], |
| compile_multilib: "both", |
| sanitize: { |
| address: true, |
| recover: ["all"], |
| }, |
| } |
| |
| cc_test { |
| name: "resolv_unit_test", |
| test_suites: ["device-tests"], |
| require_root: true, |
| //TODO: drop root privileges and make it be an real unit test. |
| defaults: ["netd_defaults"], |
| srcs: [ |
| "resolv_cache_unit_test.cpp", |
| "resolv_tls_unit_test.cpp", |
| "resolv_unit_test.cpp", |
| ], |
| shared_libs: [ |
| "libbase", |
| "libcrypto", |
| "libcutils", |
| "libssl", |
| "libbinder_ndk", |
| ], |
| static_libs: [ |
| "dnsresolver_aidl_interface-V2-cpp", |
| "dnsresolver_aidl_interface-V2-ndk_platform", |
| "netd_event_listener_interface-V1-ndk_platform", |
| "libgmock", |
| "liblog", |
| "libnetd_resolv", |
| "libnetd_test_dnsresponder", |
| "libnetd_test_resolv_utils", |
| "libnetdutils", |
| "libprotobuf-cpp-lite", |
| "server_configurable_flags", |
| "stats_proto", |
| ], |
| } |