mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-03 17:35:06 -05:00
cmdmon: add authdata command
Add a command to display information about authentication of NTP sources.
This commit is contained in:
45
cmdmon.c
45
cmdmon.c
@@ -136,6 +136,7 @@ static const char permissions[] = {
|
||||
PERMIT_AUTH, /* ADD_SOURCE */
|
||||
PERMIT_OPEN, /* NTP_SOURCE_NAME */
|
||||
PERMIT_AUTH, /* RESET_SOURCES */
|
||||
PERMIT_AUTH, /* AUTH_DATA */
|
||||
};
|
||||
|
||||
/* ================================================== */
|
||||
@@ -1235,6 +1236,46 @@ handle_reset_sources(CMD_Request *rx_message, CMD_Reply *tx_message)
|
||||
LCL_NotifyExternalTimeStep(&now, &cooked_now, 0.0, 0.0);
|
||||
}
|
||||
|
||||
/* ================================================== */
|
||||
|
||||
static void
|
||||
handle_auth_data(CMD_Request *rx_message, CMD_Reply *tx_message)
|
||||
{
|
||||
RPT_AuthReport report;
|
||||
IPAddr ip_addr;
|
||||
|
||||
UTI_IPNetworkToHost(&rx_message->data.auth_data.ip_addr, &ip_addr);
|
||||
|
||||
if (!NSR_GetAuthReport(&ip_addr, &report)) {
|
||||
tx_message->status = htons(STT_NOSUCHSOURCE);
|
||||
return;
|
||||
}
|
||||
|
||||
tx_message->reply = htons(RPY_AUTH_DATA);
|
||||
|
||||
switch (report.mode) {
|
||||
case NTP_AUTH_NONE:
|
||||
tx_message->data.auth_data.mode = htons(RPY_AD_MD_NONE);
|
||||
break;
|
||||
case NTP_AUTH_SYMMETRIC:
|
||||
tx_message->data.auth_data.mode = htons(RPY_AD_MD_SYMMETRIC);
|
||||
break;
|
||||
case NTP_AUTH_NTS:
|
||||
tx_message->data.auth_data.mode = htons(RPY_AD_MD_NTS);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
tx_message->data.auth_data.key_type = htons(report.key_type);
|
||||
tx_message->data.auth_data.key_id = htonl(report.key_id);
|
||||
tx_message->data.auth_data.key_length = htons(report.key_length);
|
||||
tx_message->data.auth_data.ke_attempts = htons(report.ke_attempts);
|
||||
tx_message->data.auth_data.last_ke_ago = htonl(report.last_ke_ago);
|
||||
tx_message->data.auth_data.cookies = htons(report.cookies);
|
||||
tx_message->data.auth_data.nak = htons(report.nak);
|
||||
}
|
||||
|
||||
/* ================================================== */
|
||||
/* Read a packet and process it */
|
||||
|
||||
@@ -1617,6 +1658,10 @@ read_from_cmd_socket(int sock_fd, int event, void *anything)
|
||||
handle_reset_sources(&rx_message, &tx_message);
|
||||
break;
|
||||
|
||||
case REQ_AUTH_DATA:
|
||||
handle_auth_data(&rx_message, &tx_message);
|
||||
break;
|
||||
|
||||
default:
|
||||
DEBUG_LOG("Unhandled command %d", rx_command);
|
||||
tx_message.status = htons(STT_FAILED);
|
||||
|
||||
Reference in New Issue
Block a user