mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-03 17:55:07 -05:00
sources: reselect earlier when removing selected source
When a selected source is being removed, reset the instance and rerun the selection while the source is still marked as selected. This forces a "Can't synchronise" message to be logged when all sources are removed. Reported-by: Thomas Lange <thomas@corelatus.se>
This commit is contained in:
@@ -314,8 +314,12 @@ void SRC_DestroyInstance(SRC_Instance instance)
|
||||
if (last_updated_inst == instance)
|
||||
last_updated_inst = NULL;
|
||||
|
||||
/* Force reselection if currently selected */
|
||||
SRC_ResetInstance(instance);
|
||||
|
||||
assert(initialised);
|
||||
if (instance->index < 0 || instance->index >= n_sources ||
|
||||
instance->index == selected_source_index ||
|
||||
instance != sources[instance->index])
|
||||
assert(0);
|
||||
|
||||
@@ -330,10 +334,7 @@ void SRC_DestroyInstance(SRC_Instance instance)
|
||||
|
||||
update_sel_options();
|
||||
|
||||
/* If this was the previous reference source, we have to reselect! */
|
||||
if (selected_source_index == dead_index)
|
||||
SRC_ReselectSource();
|
||||
else if (selected_source_index > dead_index)
|
||||
if (selected_source_index > dead_index)
|
||||
--selected_source_index;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user