Make private DNS connect timeout configurable

It could take time to connect to a private DNS server if the system
allows 6 syn-retransmissions (net.ipv4.tcp_syn_retries = 6), which
can take time more than 2 minutes.

This change allows us to configure the timeout value via dnsresolver
binder service, and keep the default timeout value the same as the
original design.

Bug: 120182528
Bug: 141218721
Test: atest --include-subdirs packages/modules/DnsResolver
Test: m com.android.resolv
      adb install com.android.resolv
      rebooted
Change-Id: I8711a31172cfc671bf348191db363e7863831470
12 files changed
tree: bf26dc64b738a3d7482d418d1bcb30f76ae9f615
  1. aidl/
  2. apex/
  3. binder/
  4. include/
  5. tests/
  6. .editorconfig
  7. Android.bp
  8. Dns64Configuration.cpp
  9. Dns64Configuration.h
  10. DnsProxyListener.cpp
  11. DnsProxyListener.h
  12. DnsResolver.cpp
  13. DnsResolver.h
  14. dnsresolver_binder_test.cpp
  15. DnsResolverService.cpp
  16. DnsResolverService.h
  17. DnsTlsDispatcher.cpp
  18. DnsTlsDispatcher.h
  19. DnsTlsQueryMap.cpp
  20. DnsTlsQueryMap.h
  21. DnsTlsServer.cpp
  22. DnsTlsServer.h
  23. DnsTlsSessionCache.cpp
  24. DnsTlsSessionCache.h
  25. DnsTlsSocket.cpp
  26. DnsTlsSocket.h
  27. DnsTlsSocketFactory.h
  28. DnsTlsTransport.cpp
  29. DnsTlsTransport.h
  30. getaddrinfo.cpp
  31. getaddrinfo.h
  32. gethnamaddr.cpp
  33. gethnamaddr.h
  34. hostent.h
  35. IDnsTlsSocket.h
  36. IDnsTlsSocketFactory.h
  37. IDnsTlsSocketObserver.h
  38. libnetd_resolv.map.txt
  39. LockedQueue.h
  40. NOTICE
  41. OWNERS
  42. PREUPLOAD.cfg
  43. PrivateDnsConfiguration.cpp
  44. PrivateDnsConfiguration.h
  45. README-DoT.md
  46. README.md
  47. res_cache.cpp
  48. res_comp.cpp
  49. res_debug.cpp
  50. res_debug.h
  51. res_init.cpp
  52. res_init.h
  53. res_mkquery.cpp
  54. res_query.cpp
  55. res_send.cpp
  56. res_send.h
  57. res_state.cpp
  58. res_state_ext.h
  59. res_stats.cpp
  60. resolv_cache.h
  61. resolv_cache_unit_test.cpp
  62. resolv_integration_test.cpp
  63. resolv_private.h
  64. resolv_static.h
  65. resolv_tls_unit_test.cpp
  66. resolv_unit_test.cpp
  67. ResolverController.cpp
  68. ResolverController.h
  69. ResolverEventReporter.cpp
  70. ResolverEventReporter.h
  71. ResolverStats.h
  72. sethostent.cpp
  73. stats.proto
  74. TEST_MAPPING
README.md

Logging

This code uses LOG(X) for logging. Log levels are VERBOSE,DEBUG,INFO,WARNING and ERROR. The default setting is WARNING and logs relate to WARNING and ERROR will be shown. If you want to enable the DEBUG level logs, using following command. adb shell service call dnsresolver 10 i32 1 VERBOSE 0 DEBUG 1 INFO 2 WARNING 3 ERROR 4 Verbose resolver logs could contain PII -- do NOT enable in production builds.