cmdmon: rename reset command to reset sources
Add a sources option for the reset command in case there are other components that would need to be reset.
This commit is contained in:
parent
195ff5c51b
commit
43dc0b3295
6 changed files with 29 additions and 17 deletions
2
candm.h
2
candm.h
|
@ -103,7 +103,7 @@
|
||||||
#define REQ_ONOFFLINE 63
|
#define REQ_ONOFFLINE 63
|
||||||
#define REQ_ADD_SOURCE 64
|
#define REQ_ADD_SOURCE 64
|
||||||
#define REQ_NTP_SOURCE_NAME 65
|
#define REQ_NTP_SOURCE_NAME 65
|
||||||
#define REQ_RESET 66
|
#define REQ_RESET_SOURCES 66
|
||||||
#define N_REQUEST_TYPES 67
|
#define N_REQUEST_TYPES 67
|
||||||
|
|
||||||
/* Structure used to exchange timespecs independent of time_t size */
|
/* Structure used to exchange timespecs independent of time_t size */
|
||||||
|
|
20
client.c
20
client.c
|
@ -1269,7 +1269,7 @@ give_help(void)
|
||||||
"cyclelogs\0Close and re-open log files\0"
|
"cyclelogs\0Close and re-open log files\0"
|
||||||
"dump\0Dump measurements and NTS keys/cookies\0"
|
"dump\0Dump measurements and NTS keys/cookies\0"
|
||||||
"rekey\0Re-read keys\0"
|
"rekey\0Re-read keys\0"
|
||||||
"reset\0Drop all measurements\0"
|
"reset sources\0Drop all measurements\0"
|
||||||
"shutdown\0Stop daemon\0"
|
"shutdown\0Stop daemon\0"
|
||||||
"\0\0"
|
"\0\0"
|
||||||
"Client commands:\0\0"
|
"Client commands:\0\0"
|
||||||
|
@ -1299,6 +1299,7 @@ enum {
|
||||||
TAB_COMPLETE_BASE_CMDS,
|
TAB_COMPLETE_BASE_CMDS,
|
||||||
TAB_COMPLETE_ADD_OPTS,
|
TAB_COMPLETE_ADD_OPTS,
|
||||||
TAB_COMPLETE_MANUAL_OPTS,
|
TAB_COMPLETE_MANUAL_OPTS,
|
||||||
|
TAB_COMPLETE_RESET_OPTS,
|
||||||
TAB_COMPLETE_SOURCES_OPTS,
|
TAB_COMPLETE_SOURCES_OPTS,
|
||||||
TAB_COMPLETE_SOURCESTATS_OPTS,
|
TAB_COMPLETE_SOURCESTATS_OPTS,
|
||||||
TAB_COMPLETE_MAX_INDEX
|
TAB_COMPLETE_MAX_INDEX
|
||||||
|
@ -1324,6 +1325,7 @@ command_name_generator(const char *text, int state)
|
||||||
};
|
};
|
||||||
const char *add_options[] = { "peer", "pool", "server", NULL };
|
const char *add_options[] = { "peer", "pool", "server", NULL };
|
||||||
const char *manual_options[] = { "on", "off", "delete", "list", "reset", NULL };
|
const char *manual_options[] = { "on", "off", "delete", "list", "reset", NULL };
|
||||||
|
const char *reset_options[] = { "sources", NULL };
|
||||||
const char *sources_options[] = { "-a", "-v", NULL };
|
const char *sources_options[] = { "-a", "-v", NULL };
|
||||||
const char *sourcestats_options[] = { "-a", "-v", NULL };
|
const char *sourcestats_options[] = { "-a", "-v", NULL };
|
||||||
static int list_index, len;
|
static int list_index, len;
|
||||||
|
@ -1331,6 +1333,7 @@ command_name_generator(const char *text, int state)
|
||||||
names[TAB_COMPLETE_BASE_CMDS] = base_commands;
|
names[TAB_COMPLETE_BASE_CMDS] = base_commands;
|
||||||
names[TAB_COMPLETE_ADD_OPTS] = add_options;
|
names[TAB_COMPLETE_ADD_OPTS] = add_options;
|
||||||
names[TAB_COMPLETE_MANUAL_OPTS] = manual_options;
|
names[TAB_COMPLETE_MANUAL_OPTS] = manual_options;
|
||||||
|
names[TAB_COMPLETE_RESET_OPTS] = reset_options;
|
||||||
names[TAB_COMPLETE_SOURCES_OPTS] = sources_options;
|
names[TAB_COMPLETE_SOURCES_OPTS] = sources_options;
|
||||||
names[TAB_COMPLETE_SOURCESTATS_OPTS] = sourcestats_options;
|
names[TAB_COMPLETE_SOURCESTATS_OPTS] = sourcestats_options;
|
||||||
|
|
||||||
|
@ -1362,6 +1365,8 @@ command_name_completion(const char *text, int start, int end)
|
||||||
tab_complete_index = TAB_COMPLETE_ADD_OPTS;
|
tab_complete_index = TAB_COMPLETE_ADD_OPTS;
|
||||||
} else if (!strcmp(first, "manual ")) {
|
} else if (!strcmp(first, "manual ")) {
|
||||||
tab_complete_index = TAB_COMPLETE_MANUAL_OPTS;
|
tab_complete_index = TAB_COMPLETE_MANUAL_OPTS;
|
||||||
|
} else if (!strcmp(first, "reset ")) {
|
||||||
|
tab_complete_index = TAB_COMPLETE_RESET_OPTS;
|
||||||
} else if (!strcmp(first, "sources ")) {
|
} else if (!strcmp(first, "sources ")) {
|
||||||
tab_complete_index = TAB_COMPLETE_SOURCES_OPTS;
|
tab_complete_index = TAB_COMPLETE_SOURCES_OPTS;
|
||||||
} else if (!strcmp(first, "sourcestats ")) {
|
} else if (!strcmp(first, "sourcestats ")) {
|
||||||
|
@ -2836,10 +2841,17 @@ process_cmd_shutdown(CMD_Request *msg, char *line)
|
||||||
|
|
||||||
/* ================================================== */
|
/* ================================================== */
|
||||||
|
|
||||||
static void
|
static int
|
||||||
process_cmd_reset(CMD_Request *msg, char *line)
|
process_cmd_reset(CMD_Request *msg, char *line)
|
||||||
{
|
{
|
||||||
msg->command = htons(REQ_RESET);
|
if (!strcmp(line, "sources")) {
|
||||||
|
msg->command = htons(REQ_RESET_SOURCES);
|
||||||
|
} else {
|
||||||
|
LOG(LOGS_ERR, "Invalid syntax for reset command");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ================================================== */
|
/* ================================================== */
|
||||||
|
@ -3139,7 +3151,7 @@ process_line(char *line)
|
||||||
} else if (!strcmp(command, "reselectdist")) {
|
} else if (!strcmp(command, "reselectdist")) {
|
||||||
do_normal_submit = process_cmd_reselectdist(&tx_message, line);
|
do_normal_submit = process_cmd_reselectdist(&tx_message, line);
|
||||||
} else if (!strcmp(command, "reset")) {
|
} else if (!strcmp(command, "reset")) {
|
||||||
process_cmd_reset(&tx_message, line);
|
do_normal_submit = process_cmd_reset(&tx_message, line);
|
||||||
} else if (!strcmp(command, "retries")) {
|
} else if (!strcmp(command, "retries")) {
|
||||||
ret = process_cmd_retries(line);
|
ret = process_cmd_retries(line);
|
||||||
do_normal_submit = 0;
|
do_normal_submit = 0;
|
||||||
|
|
8
cmdmon.c
8
cmdmon.c
|
@ -135,7 +135,7 @@ static const char permissions[] = {
|
||||||
PERMIT_AUTH, /* ONOFFLINE */
|
PERMIT_AUTH, /* ONOFFLINE */
|
||||||
PERMIT_AUTH, /* ADD_SOURCE */
|
PERMIT_AUTH, /* ADD_SOURCE */
|
||||||
PERMIT_OPEN, /* NTP_SOURCE_NAME */
|
PERMIT_OPEN, /* NTP_SOURCE_NAME */
|
||||||
PERMIT_AUTH, /* RESET */
|
PERMIT_AUTH, /* RESET_SOURCES */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ================================================== */
|
/* ================================================== */
|
||||||
|
@ -1226,7 +1226,7 @@ handle_ntp_source_name(CMD_Request *rx_message, CMD_Reply *tx_message)
|
||||||
/* ================================================== */
|
/* ================================================== */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
handle_reset(CMD_Request *rx_message, CMD_Reply *tx_message)
|
handle_reset_sources(CMD_Request *rx_message, CMD_Reply *tx_message)
|
||||||
{
|
{
|
||||||
struct timespec cooked_now, now;
|
struct timespec cooked_now, now;
|
||||||
|
|
||||||
|
@ -1613,8 +1613,8 @@ read_from_cmd_socket(int sock_fd, int event, void *anything)
|
||||||
handle_ntp_source_name(&rx_message, &tx_message);
|
handle_ntp_source_name(&rx_message, &tx_message);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case REQ_RESET:
|
case REQ_RESET_SOURCES:
|
||||||
handle_reset(&rx_message, &tx_message);
|
handle_reset_sources(&rx_message, &tx_message);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -1177,12 +1177,12 @@ also re-reads the server NTS keys if
|
||||||
<<chrony.conf.adoc#ntsrotate,automatic rotation>> is disabled in the
|
<<chrony.conf.adoc#ntsrotate,automatic rotation>> is disabled in the
|
||||||
configuration file.
|
configuration file.
|
||||||
|
|
||||||
[[reset]]*reset*::
|
[[reset]]*reset* *sources*::
|
||||||
The *reset* command causes *chronyd* to drop all measurements and switch to the
|
The *reset sources* command causes *chronyd* to drop all measurements and
|
||||||
unsynchronised state. This command can help *chronyd* with recovery when the
|
switch to the unsynchronised state. This command can help *chronyd* with
|
||||||
measurements are known to be no longer valid or accurate, e.g. due to moving
|
recovery when the measurements are known to be no longer valid or accurate,
|
||||||
the computer to a different network, or resuming the computer from a low-power
|
e.g. due to moving the computer to a different network, or resuming the
|
||||||
state (which resets the system clock).
|
computer from a low-power state (which resets the system clock).
|
||||||
|
|
||||||
[[shutdown]]*shutdown*::
|
[[shutdown]]*shutdown*::
|
||||||
The *shutdown* command causes *chronyd* to exit. This is equivalent to sending
|
The *shutdown* command causes *chronyd* to exit. This is equivalent to sending
|
||||||
|
|
|
@ -123,7 +123,7 @@ static const struct request_length request_lengths[] = {
|
||||||
REQ_LENGTH_ENTRY(ntp_source, null), /* ADD_SOURCE */
|
REQ_LENGTH_ENTRY(ntp_source, null), /* ADD_SOURCE */
|
||||||
REQ_LENGTH_ENTRY(ntp_source_name,
|
REQ_LENGTH_ENTRY(ntp_source_name,
|
||||||
ntp_source_name), /* NTP_SOURCE_NAME */
|
ntp_source_name), /* NTP_SOURCE_NAME */
|
||||||
REQ_LENGTH_ENTRY(null, null), /* RESET */
|
REQ_LENGTH_ENTRY(null, null), /* RESET_SOURCES */
|
||||||
};
|
};
|
||||||
|
|
||||||
static const uint16_t reply_lengths[] = {
|
static const uint16_t reply_lengths[] = {
|
||||||
|
|
|
@ -138,7 +138,7 @@ for chronyc_conf in \
|
||||||
"rekey" \
|
"rekey" \
|
||||||
"reselect" \
|
"reselect" \
|
||||||
"reselectdist 1e-3" \
|
"reselectdist 1e-3" \
|
||||||
"reset" \
|
"reset sources" \
|
||||||
"settime 16:30" \
|
"settime 16:30" \
|
||||||
"settime 16:30:05" \
|
"settime 16:30:05" \
|
||||||
"settime Nov 21, 2015 16:30:05" \
|
"settime Nov 21, 2015 16:30:05" \
|
||||||
|
|
Loading…
Reference in a new issue