diff --git a/sources.c b/sources.c index 261d31d..e8e9705 100644 --- a/sources.c +++ b/sources.c @@ -587,18 +587,17 @@ update_sel_options(void) 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) { diff --git a/test/simulation/110-chronyc b/test/simulation/110-chronyc index 33d204b..97abc21 100755 --- a/test/simulation/110-chronyc +++ b/test/simulation/110-chronyc @@ -350,6 +350,8 @@ minstratum 192.168.123.1 1 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 @@ -372,6 +374,10 @@ check_chronyc_output "^200 OK 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="