If noselect is present in the configured options, don't assume it
cannot change and the effective options are equal. This fixes chronyc
selectopts +noselect command.
Fixes: 38777348143e ("sources: add function to modify selection options")
for (i = 0; i < n_sources; i++) {
options = sources[i]->conf_sel_options;
- if (options & SRC_SELECT_NOSELECT)
- continue;
-
- switch (sources[i]->type) {
- case SRC_NTP:
- options |= sources[i]->authenticated ? auth_ntp_options : unauth_ntp_options;
- break;
- case SRC_REFCLOCK:
- options |= refclk_options;
- break;
- default:
- assert(0);
+ if (!(options & SRC_SELECT_NOSELECT)) {
+ switch (sources[i]->type) {
+ case SRC_NTP:
+ options |= sources[i]->authenticated ? auth_ntp_options : unauth_ntp_options;
+ break;
+ case SRC_REFCLOCK:
+ options |= refclk_options;
+ break;
+ default:
+ assert(0);
+ }
}
if (sources[i]->sel_options != options) {
polltarget 192.168.123.1 10
selectopts 192.168.123.1 +trust +prefer -require
selectdata
+selectopts 192.168.123.1 +noselect -prefer -trust +require
+selectdata
delete 192.168.123.1"
run_test || test_fail
S Name/IP Address Auth COpts EOpts Last Score Interval Leap
=======================================================================
M node1\.net1\.clk N \-PT\-\- \-PT\-\- 0 1\.0 \+0ns \+0ns \?
+200 OK
+S Name/IP Address Auth COpts EOpts Last Score Interval Leap
+=======================================================================
+M node1\.net1\.clk N N\-\-R\- N\-\-R\- 0 1\.0 \+0ns \+0ns \?
200 OK$" || test_fail
chronyc_conf="