mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-03 18:35:06 -05:00
cmdmon: add smoothtime command
This adds a command to reset or activate the time smoothing process.
This commit is contained in:
34
cmdmon.c
34
cmdmon.c
@@ -164,6 +164,7 @@ static const char permissions[] = {
|
||||
PERMIT_AUTH, /* RESELECTDISTANCE */
|
||||
PERMIT_AUTH, /* MODIFY_MAKESTEP */
|
||||
PERMIT_OPEN, /* SMOOTHING */
|
||||
PERMIT_AUTH, /* SMOOTHTIME */
|
||||
};
|
||||
|
||||
/* ================================================== */
|
||||
@@ -1250,6 +1251,35 @@ handle_smoothing(CMD_Request *rx_message, CMD_Reply *tx_message)
|
||||
|
||||
/* ================================================== */
|
||||
|
||||
static void
|
||||
handle_smoothtime(CMD_Request *rx_message, CMD_Reply *tx_message)
|
||||
{
|
||||
struct timeval now;
|
||||
int option;
|
||||
|
||||
if (!SMT_IsEnabled()) {
|
||||
tx_message->status = htons(STT_NOTENABLED);
|
||||
return;
|
||||
}
|
||||
|
||||
option = ntohl(rx_message->data.smoothtime.option);
|
||||
SCH_GetLastEventTime(&now, NULL, NULL);
|
||||
|
||||
switch (option) {
|
||||
case REQ_SMOOTHTIME_RESET:
|
||||
SMT_Reset(&now);
|
||||
break;
|
||||
case REQ_SMOOTHTIME_ACTIVATE:
|
||||
SMT_Activate(&now);
|
||||
break;
|
||||
default:
|
||||
tx_message->status = htons(STT_INVALID);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* ================================================== */
|
||||
|
||||
static void
|
||||
handle_sourcestats(CMD_Request *rx_message, CMD_Reply *tx_message)
|
||||
{
|
||||
@@ -1920,6 +1950,10 @@ read_from_cmd_socket(void *anything)
|
||||
handle_smoothing(&rx_message, &tx_message);
|
||||
break;
|
||||
|
||||
case REQ_SMOOTHTIME:
|
||||
handle_smoothtime(&rx_message, &tx_message);
|
||||
break;
|
||||
|
||||
case REQ_SOURCESTATS:
|
||||
handle_sourcestats(&rx_message, &tx_message);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user