mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-03 21:05:06 -05:00
Merge code for adding NTP server and peer in cmdmon
This commit is contained in:
54
cmdmon.c
54
cmdmon.c
@@ -1228,7 +1228,7 @@ handle_cmdaccheck(CMD_Request *rx_message, CMD_Reply *tx_message)
|
|||||||
/* ================================================== */
|
/* ================================================== */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
handle_add_server(CMD_Request *rx_message, CMD_Reply *tx_message)
|
handle_add_source(NTP_Source_Type type, CMD_Request *rx_message, CMD_Reply *tx_message)
|
||||||
{
|
{
|
||||||
NTP_Remote_Address rem_addr;
|
NTP_Remote_Address rem_addr;
|
||||||
SourceParameters params;
|
SourceParameters params;
|
||||||
@@ -1251,53 +1251,7 @@ handle_add_server(CMD_Request *rx_message, CMD_Reply *tx_message)
|
|||||||
params.min_stratum = 0;
|
params.min_stratum = 0;
|
||||||
params.sel_option = SRC_SelectNormal;
|
params.sel_option = SRC_SelectNormal;
|
||||||
|
|
||||||
status = NSR_AddSource(&rem_addr, NTP_SERVER, ¶ms);
|
status = NSR_AddSource(&rem_addr, type, ¶ms);
|
||||||
switch (status) {
|
|
||||||
case NSR_Success:
|
|
||||||
tx_message->status = htons(STT_SUCCESS);
|
|
||||||
break;
|
|
||||||
case NSR_AlreadyInUse:
|
|
||||||
tx_message->status = htons(STT_SOURCEALREADYKNOWN);
|
|
||||||
break;
|
|
||||||
case NSR_TooManySources:
|
|
||||||
tx_message->status = htons(STT_TOOMANYSOURCES);
|
|
||||||
break;
|
|
||||||
case NSR_InvalidAF:
|
|
||||||
tx_message->status = htons(STT_INVALIDAF);
|
|
||||||
break;
|
|
||||||
case NSR_NoSuchSource:
|
|
||||||
assert(0);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ================================================== */
|
|
||||||
|
|
||||||
static void
|
|
||||||
handle_add_peer(CMD_Request *rx_message, CMD_Reply *tx_message)
|
|
||||||
{
|
|
||||||
NTP_Remote_Address rem_addr;
|
|
||||||
SourceParameters params;
|
|
||||||
NSR_Status status;
|
|
||||||
|
|
||||||
UTI_IPNetworkToHost(&rx_message->data.ntp_source.ip_addr, &rem_addr.ip_addr);
|
|
||||||
rem_addr.local_ip_addr.family = IPADDR_UNSPEC;
|
|
||||||
rem_addr.port = (unsigned short)(ntohl(rx_message->data.ntp_source.port));
|
|
||||||
params.minpoll = ntohl(rx_message->data.ntp_source.minpoll);
|
|
||||||
params.maxpoll = ntohl(rx_message->data.ntp_source.maxpoll);
|
|
||||||
params.presend_minpoll = ntohl(rx_message->data.ntp_source.presend_minpoll);
|
|
||||||
params.authkey = ntohl(rx_message->data.ntp_source.authkey);
|
|
||||||
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.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, NTP_PEER, ¶ms);
|
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case NSR_Success:
|
case NSR_Success:
|
||||||
tx_message->status = htons(STT_SUCCESS);
|
tx_message->status = htons(STT_SUCCESS);
|
||||||
@@ -2167,11 +2121,11 @@ read_from_cmd_socket(void *anything)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case REQ_ADD_SERVER:
|
case REQ_ADD_SERVER:
|
||||||
handle_add_server(&rx_message, &tx_message);
|
handle_add_source(NTP_SERVER, &rx_message, &tx_message);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case REQ_ADD_PEER:
|
case REQ_ADD_PEER:
|
||||||
handle_add_peer(&rx_message, &tx_message);
|
handle_add_source(NTP_PEER, &rx_message, &tx_message);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case REQ_DEL_SOURCE:
|
case REQ_DEL_SOURCE:
|
||||||
|
|||||||
Reference in New Issue
Block a user