From 5b8835f46bafe7d2c3e61f5c2a113c20a38b6278 Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Thu, 26 Aug 2010 10:29:58 +0200 Subject: [PATCH] Support prefer and noselect options in chronyc --- candm.h | 2 ++ client.c | 7 +++---- cmdmon.c | 3 ++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/candm.h b/candm.h index 1c7cccf..b0f0a3e 100644 --- a/candm.h +++ b/candm.h @@ -223,6 +223,8 @@ typedef struct { #define REQ_ADDSRC_ONLINE 0x1 #define REQ_ADDSRC_AUTOOFFLINE 0x2 #define REQ_ADDSRC_IBURST 0x4 +#define REQ_ADDSRC_PREFER 0x8 +#define REQ_ADDSRC_NOSELECT 0x10 typedef struct { IPAddr ip_addr; diff --git a/client.c b/client.c index 1e44031..329d1d9 100644 --- a/client.c +++ b/client.c @@ -934,9 +934,6 @@ process_cmd_add_server_or_peer(CMD_Request *msg, char *line) if (data.params.min_stratum) { fprintf(stderr, "Option minstratum not supported\n"); break; - } else if (data.params.sel_option != SRC_SelectNormal) { - fprintf(stderr, "Options noselect and prefer not supported\n"); - break; } msg->data.ntp_source.port = htonl((unsigned long) data.port); @@ -950,7 +947,9 @@ process_cmd_add_server_or_peer(CMD_Request *msg, char *line) msg->data.ntp_source.flags = htonl( (data.params.online ? REQ_ADDSRC_ONLINE : 0) | (data.params.auto_offline ? REQ_ADDSRC_AUTOOFFLINE : 0) | - (data.params.iburst ? REQ_ADDSRC_IBURST : 0)); + (data.params.iburst ? REQ_ADDSRC_IBURST : 0) | + (data.params.sel_option == SRC_SelectPrefer ? REQ_ADDSRC_PREFER : 0) | + (data.params.sel_option == SRC_SelectNoselect ? REQ_ADDSRC_NOSELECT : 0)); result = 1; break; diff --git a/cmdmon.c b/cmdmon.c index 9219af1..598998b 100644 --- a/cmdmon.c +++ b/cmdmon.c @@ -1244,12 +1244,13 @@ handle_add_source(NTP_Source_Type type, CMD_Request *rx_message, CMD_Reply *tx_m params.online = ntohl(rx_message->data.ntp_source.flags) & REQ_ADDSRC_ONLINE ? 1 : 0; params.auto_offline = ntohl(rx_message->data.ntp_source.flags) & REQ_ADDSRC_AUTOOFFLINE ? 1 : 0; params.iburst = ntohl(rx_message->data.ntp_source.flags) & REQ_ADDSRC_IBURST ? 1 : 0; + params.sel_option = ntohl(rx_message->data.ntp_source.flags) & REQ_ADDSRC_PREFER ? SRC_SelectPrefer : + ntohl(rx_message->data.ntp_source.flags) & REQ_ADDSRC_NOSELECT ? SRC_SelectNoselect : SRC_SelectNormal; params.max_delay = UTI_FloatNetworkToHost(rx_message->data.ntp_source.max_delay); params.max_delay_ratio = UTI_FloatNetworkToHost(rx_message->data.ntp_source.max_delay_ratio); /* not transmitted in cmdmon protocol yet */ params.min_stratum = 0; - params.sel_option = SRC_SelectNormal; status = NSR_AddSource(&rem_addr, type, ¶ms); switch (status) {