client: add sourcename command

Add a new command to print the original name of a source specified by
address. This could be useful in scripts to avoid having to run the
sources command with and without -N.
This commit is contained in:
Miroslav Lichvar 2019-12-05 13:25:10 +01:00
parent 50e5865c73
commit bfcd8ecc56
2 changed files with 34 additions and 0 deletions

View file

@ -1213,6 +1213,7 @@ give_help(void)
"\0according to network configuration\0" "\0according to network configuration\0"
"polltarget <address> <target>\0Modify poll target\0" "polltarget <address> <target>\0Modify poll target\0"
"refresh\0Refresh IP addresses\0" "refresh\0Refresh IP addresses\0"
"sourcename <address>\0Display original name\0"
"\0\0" "\0\0"
"Manual time input:\0\0" "Manual time input:\0\0"
"manual off|on|reset\0Disable/enable/reset settime command\0" "manual off|on|reset\0Disable/enable/reset settime command\0"
@ -2081,6 +2082,27 @@ check_for_verbose_flag(char *line)
/* ================================================== */ /* ================================================== */
static int
process_cmd_sourcename(char *line)
{
IPAddr ip_addr;
char name[256];
if (!UTI_StringToIP(line, &ip_addr)) {
LOG(LOGS_ERR, "Could not read address");
return 0;
}
if (!get_source_name(&ip_addr, name, sizeof (name)))
return 0;
print_report("%s\n", name, REPORT_END);
return 1;
}
/* ================================================== */
static int static int
process_cmd_sources(char *line) process_cmd_sources(char *line)
{ {
@ -3093,6 +3115,9 @@ process_line(char *line)
ret = process_cmd_smoothing(line); ret = process_cmd_smoothing(line);
} else if (!strcmp(command, "smoothtime")) { } else if (!strcmp(command, "smoothtime")) {
do_normal_submit = process_cmd_smoothtime(&tx_message, line); do_normal_submit = process_cmd_smoothtime(&tx_message, line);
} else if (!strcmp(command, "sourcename")) {
do_normal_submit = 0;
ret = process_cmd_sourcename(line);
} else if (!strcmp(command, "sources")) { } else if (!strcmp(command, "sources")) {
do_normal_submit = 0; do_normal_submit = 0;
ret = process_cmd_sources(line); ret = process_cmd_sources(line);

View file

@ -761,6 +761,15 @@ Sources that stop responding will be replaced with newly resolved addresses
automatically after 8 polling intervals, but this command can still be useful automatically after 8 polling intervals, but this command can still be useful
to replace them immediately and not wait until they are marked as unreachable. to replace them immediately and not wait until they are marked as unreachable.
[[sourcename]]*sourcename* _address_::
The *sourcename* command prints the original hostname or address that was
specified for an NTP source in the configuration file, or the *add* command.
This command is an alternative to the *-N* option, which can be useful in
scripts.
+
Note that different NTP sources can share the same name, e.g. servers from a
pool.
=== Manual time input === Manual time input
[[manual]] [[manual]]