aboutsummaryrefslogtreecommitdiff
path: root/ResolverController.h
Commit message (Collapse)AuthorAgeFilesLines
* Replace android::sp by std::shared_ptr and drop the libutils dependencyKen Chen2023-12-141-1/+1
| | | | | | Bug: 298596613 Test: m; flash; atest Change-Id: I65635a7d985869fb02953ca00357fedac99c0133
* Fix use-after-free in DNS64 discovery threadKen Chen2023-08-091-3/+3
| | | | | | | | | | | | | | | | | DNS64 discovery thread is detached from binder requesting thread. But the discovery thread references resources not belongs to itself, which can be destroyed in dnsresolver destruction. Holds a strong pointer of Dns64Configuration in DNS64 discovery thread so that the instance of Dns64Configuration will keep until the DNS64 thread is force terminated. Ignore-AOSP-First: Fix security vulnerability Bug: 278303745 Test: atest Merged-In: Id74ea4e6f54a00805d3cc8a9d7e15e58a473b7d3 Change-Id: Id74ea4e6f54a00805d3cc8a9d7e15e58a473b7d3 (cherry picked from commit 254115584ff558fb87ee6ec5f5bb043f76219910)
* Change the type of wait_for_pending_req_timeout_count from vector to intMike Yu2022-10-131-1/+1
| | | | | | | | No functionality change in this CL. Bug: 242491440 Test: atest Change-Id: I53a473d86ad5b14a12df8b1a58d61e41ad137907
* Style fixes in the external pref64 support.Lorenzo Colitti2020-05-211-1/+1
| | | | | | | | | | | | - Address a code review comment to pass a variable by reference instead of by pointer. - Add two missed EXCLUDES() thread-safety annotations. - Make "dumpsys dnsresolver" report externally-set prefixes differently from discovered prefixes. Bug: 156914456 Test: existing unit tests pass Change-Id: Ifcdb16cc66c9234a2bd5f8aac70be809fe0dd223
* Support DNS64 synthesis using externally-discovered prefixes.Lorenzo Colitti2020-05-211-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, the DNS resolver supports DNS64 synthesis only for prefixes that it discovered itself, and not for NAT64 prefixes discovered via other means (e.g., RA). Add a way to set a NAT64 prefix that was discovered by other means. This new IPC is mutually exclusive with the existing prefix discovery mechansisms: - Setting the prefix has no effect if prefix discovery is started. - Starting (or stopping) prefix discovery clears the prefix. - Setting the prefix does not result in any NAT64 prefix update callback. It is the responsibility of the caller (ConnectivityService, Nat464Xlat) to ensure that prefix discovery is stopped before setting the prefix. This does not add any significant complexity to the connectivity code, and it ensures that the behaviour of the existing IPCs (startPrefix64Discovery and stopPrefix64Discovery) are unchanged. This is necessary to ensure that DNS64 synthesis continues to work on Q devices. Disallowing concurrent use of prefix discovery and externally-set prefixes also simplifies the implementation because it allows reuse of most of the data structures and teardown code in Dns64Configuration. The externally-set prefix is represented by a Dns64Configuration with a special discovery ID of kNoDiscoveryId (== 0), which cannot be used by any discovery attempt. That way, if discovery is started, then stopped, and then the prefix is set, if a stale discovery thread then completes, it will be ignored because the thread's ID cannot be kNoDiscoveryId. Bug: 153694684 Bug: 156914456 Test: new tests in resolv_integration_test Change-Id: I7c63fb62b70635a1b5cc7a21d60f091ba2705d72
* Add an API to flush cache on designated networkKen Chen2019-11-211-0/+1
| | | | | | | | | | | Flush entire cache on a specified network. The API acquires lock before manipulate cache. It's thread-safe API. Bug: 139646101 Test: atest resolv_cache_unit_test.cpp#FlushCache Test: atest resolv_integration_test.cpp#FlushNetworkCache Change-Id: I4ea34a256013468ceac21ce5067d6a493d8631f8
* Fix setResolverConfiguration to return negative error codeMike Yu2019-10-051-1/+1
| | | | | | | | | | | | | | This fixes the logging bug in dumpsys netd. For example, when resolv_set_nameservers fails: It used to print setResolverConfiguration() -> ServiceSpecificException(-22, "Unknown error -22") <0.18ms> After the fix, it prints setResolverConfiguration() -> ServiceSpecificException(22, "Invalid argument") <0.28ms> Test: m com.android.resolv Change-Id: I916e6e31dcdd2f421592e8ca71663ffbddc7b3b5
* Remove support for DNS-over-TLS certificate fingerprints.waynema2019-08-081-2/+1
| | | | | | | | | | Inject a test Certificate authority for DNS-OVER-TLS test, and It provides proper test coverage to TLS cerificate validation. Test: built, flashed, booted atest pass Change-Id: I32b8c743d991ba1f113b37165ff01f4b2acc9da2
* Add tests for resolv_set_nameservers_for_net in res_cache_testMike Yu2019-07-091-2/+0
| | | | | | | | | | | | | | This changes comprises: [1] Convert resolv_set_nameservers_for_net to C++ containers. [2] Unit tests for resolv_set_nameservers_for_net. [3] Use std::vector<std::string> to store the DNS servers in struct resolv_cache_info. [4] Cleanup for libnetd_resolv_test. Bug: 134897288 Test: cd systen/netd && atest Change-Id: I4aebd22871a4ebbed08f03391e683cabe5dc2349
* Make DNS cache lifecycle management explicitLuke Huang2019-04-251-1/+2
| | | | | | | | | | | | | 1. Add binder call to support creating cache by netid. 2. revise call flow in res_cache.cpp, not create cache in resolv_set_nameservers_for_net(). 3. revise Log method in ResolverController.cpp Bug: 129453995 Test: built, flashed, booted system/netd/tests/runtests.sh pass Change-Id: I31ab521027a08bce3c721b2a36418faca85853c7
* Backwards-incompatible resolv module API change for making ↵waynema2019-04-171-5/+3
| | | | | | | | setResolverConfiguration take a parcelable. Test: built, flashed, booted system/netd/tests/runtests.sh pass Change-Id: I755b7832d395ab138d5440abdcb9d86fde0a00e3
* Use IDnsResolver instead of INetd for all resolver related commandsLuke Huang2019-03-291-1/+0
| | | | | | | | | | | 1. Make DnsProxyListener get DNS64 prefix internally in libnetd_resolv 2. resolver_test uses IDnsResolver instead of INetd for resolver cmds Bug: 126141549 Test: built, flashed, booted system/netd/tests/runtests.sh pass Change-Id: Ic904a3efd42ac4011ddd94ff4344449c9e647ceb
* Migrate resolver related binder commands to libnetd_resolv binderLuke Huang2019-03-291-0/+69
In order to decrease API between libnetd_resolv and netd, migrate resolver related commands to libnetd_resolv. After migration done, netd's resolver related commands will be removed in following commits. Bug: 126141549 Test: N/A. Note that this commit will cause build break, it must be grouped with following clean-up commits. Change-Id: Id0c2e20ce6a87b5c01ae5bcb998381099889306e