diff --git a/main.c b/main.c index e8daf33..dec753d 100644 --- a/main.c +++ b/main.c @@ -150,8 +150,8 @@ post_init_ntp_hook(void *anything) RCL_StartRefclocks(); /* Special modes can end only when sources update their reachability. - Give up immediatelly if there are no sources. */ - if (ref_mode != REF_ModeNormal && !SRC_ReadNumberOfSources()) { + Give up immediatelly if there are no active sources. */ + if (ref_mode != REF_ModeNormal && !SRC_ActiveSources()) { REF_SetUnsynchronised(); } } diff --git a/sources.c b/sources.c index 8ba1190..8eae88b 100644 --- a/sources.c +++ b/sources.c @@ -373,6 +373,10 @@ special_mode_end(void) int i; for (i = 0; i < n_sources; i++) { + /* No updates from inactive sources */ + if (!sources[i]->active) + continue; + /* Don't expect more updates than from an offline iburst NTP source */ if (sources[i]->reachability_size >= SOURCE_REACH_BITS - 1) continue;