Refactoring before supporting multiple NTP servers
Refactoring changes to make it easier to support NTP configuration that contains multiple NTP servers to try. As part of this change, the NTP server configuration is being changed from a simple hostname to a URI in the form ntp://<host>[:port]. This is a local scheme introduced for this commit for this purpose and not (currently) an official, registered IANA URI scheme. Settings parsing in NtpTrustedTime retains support for the simple hostname-only form to avoid introducing incompatibilities when devices upgrade and have settings values from earlier releases. All other cases (config.xml, commandline) are updated here to only support the new URI form as these don't have backwards compatibility guarantees. A later commit will add: + The settings / config changes to support a list of URIs in the format introduced in this commit, i.e. in place of the single one supported today. + The server request loop / server stickiness need to support multiple servers. Switching to a URI over a simpler encoding scheme means: 1) Not having to deal with parsing awkward host + port cases, like IPv6 addresses which contain colons, e.g. "[:::1]:1234" (these are used in in our tests). 2) Opens up the possibility of future protocols like NTS via a different URI scheme, and future parameterization of NTP server config with query params, paths, or similar. 3) Easy delimiting of lists later using a whitespace character like space, which will be encoded when part of a URI. This can be used for extending settings parsing to support multiple, space-delimited configs as settings code doesn't support multi-value settings out of the box (unlike config / commandline cases, which are comparatively easy). This commit contains a new OWNERS file for NtpTrustedTimeTest. The file has been populated with ownership information for TypedValueTest using information from the OWNERS for the code under test. Ignore-AOSP-First: The OWNERS change relates to a file landing internally Bug: 223365217 Test: atest frameworks/base/core/tests/coretests/src/android/util/NtpTrustedTimeTest.java Test: atest cts/tests/tests/os/src/android/os/cts/SystemClockSntpTest.java Change-Id: I3afbd04659b4e4ee336619ea5ac6db7588057d6e
Loading
Please register or sign in to comment