mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-04 07:15:07 -05:00
ntp: use async name resolving for NTP sources
Use the new asynchronous call to resolve addresses of NTP servers configured by the server/peer directives. Introduce a callback to be notified when the first resolving attempt ends to correctly finish chronyd initialization (dumpfile reload and reference mode end).
This commit is contained in:
36
main.c
36
main.c
@@ -123,20 +123,10 @@ signal_cleanup(int x)
|
||||
/* ================================================== */
|
||||
|
||||
static void
|
||||
post_init_ntp_hook(void *anything)
|
||||
ntp_source_resolving_end(void)
|
||||
{
|
||||
if (ref_mode == REF_ModeInitStepSlew) {
|
||||
/* Remove the initstepslew sources and set normal mode */
|
||||
NSR_RemoveAllSources();
|
||||
ref_mode = REF_ModeNormal;
|
||||
REF_SetMode(ref_mode);
|
||||
}
|
||||
NSR_SetSourceResolvingEndHandler(NULL);
|
||||
|
||||
/* Close the pipe to the foreground process so it can exit */
|
||||
LOG_CloseParentFd();
|
||||
|
||||
CNF_AddSources();
|
||||
CNF_AddBroadcasts();
|
||||
if (reload) {
|
||||
/* Note, we want reload to come well after the initialisation from
|
||||
the real time clock - this gives us a fighting chance that the
|
||||
@@ -159,6 +149,28 @@ post_init_ntp_hook(void *anything)
|
||||
|
||||
/* ================================================== */
|
||||
|
||||
static void
|
||||
post_init_ntp_hook(void *anything)
|
||||
{
|
||||
if (ref_mode == REF_ModeInitStepSlew) {
|
||||
/* Remove the initstepslew sources and set normal mode */
|
||||
NSR_RemoveAllSources();
|
||||
ref_mode = REF_ModeNormal;
|
||||
REF_SetMode(ref_mode);
|
||||
}
|
||||
|
||||
/* Close the pipe to the foreground process so it can exit */
|
||||
LOG_CloseParentFd();
|
||||
|
||||
CNF_AddSources();
|
||||
CNF_AddBroadcasts();
|
||||
|
||||
NSR_SetSourceResolvingEndHandler(ntp_source_resolving_end);
|
||||
NSR_ResolveSources();
|
||||
}
|
||||
|
||||
/* ================================================== */
|
||||
|
||||
static void
|
||||
reference_mode_end(int result)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user