ntpd: add optional support for /etc/ntp.conf
function old new delta add_peers - 98 +98 packed_usage 29470 29511 +41 ntp_init 407 428 +21 pw_encrypt 14 27 +13 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 3/0 up/down: 173/0) Total: 173 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
f332617fbd
commit
504fe45f35
@ -664,6 +664,14 @@ config FEATURE_NTPD_SERVER
|
|||||||
Make ntpd usable as a NTP server. If you disable this option
|
Make ntpd usable as a NTP server. If you disable this option
|
||||||
ntpd will be usable only as a NTP client.
|
ntpd will be usable only as a NTP client.
|
||||||
|
|
||||||
|
config FEATURE_NTPD_CONF
|
||||||
|
bool "Make ntpd understand /etc/ntp.conf"
|
||||||
|
default y
|
||||||
|
depends on NTPD
|
||||||
|
help
|
||||||
|
Make ntpd look in /etc/ntp.conf for peers. Only "server address"
|
||||||
|
is supported.
|
||||||
|
|
||||||
config PSCAN
|
config PSCAN
|
||||||
bool "pscan"
|
bool "pscan"
|
||||||
default y
|
default y
|
||||||
|
@ -42,6 +42,13 @@
|
|||||||
//usage: )
|
//usage: )
|
||||||
//usage: "\n -S PROG Run PROG after stepping time, stratum change, and every 11 mins"
|
//usage: "\n -S PROG Run PROG after stepping time, stratum change, and every 11 mins"
|
||||||
//usage: "\n -p PEER Obtain time from PEER (may be repeated)"
|
//usage: "\n -p PEER Obtain time from PEER (may be repeated)"
|
||||||
|
//usage: IF_FEATURE_NTPD_CONF(
|
||||||
|
//usage: "\n If -p is not given, read /etc/ntp.conf"
|
||||||
|
//usage: )
|
||||||
|
|
||||||
|
// -l and -p options are not compatible with "standard" ntpd:
|
||||||
|
// it has them as "-l logfile" and "-p pidfile".
|
||||||
|
// -S and -w are not compat either, "standard" ntpd has no such opts.
|
||||||
|
|
||||||
#include "libbb.h"
|
#include "libbb.h"
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
@ -730,7 +737,7 @@ reset_peer_stats(peer_t *p, double offset)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
add_peers(char *s)
|
add_peers(const char *s)
|
||||||
{
|
{
|
||||||
peer_t *p;
|
peer_t *p;
|
||||||
|
|
||||||
@ -2087,14 +2094,34 @@ static NOINLINE void ntp_init(char **argv)
|
|||||||
"d" /* compat */
|
"d" /* compat */
|
||||||
"46aAbgL", /* compat, ignored */
|
"46aAbgL", /* compat, ignored */
|
||||||
&peers, &G.script_name, &G.verbose);
|
&peers, &G.script_name, &G.verbose);
|
||||||
if (!(opts & (OPT_p|OPT_l)))
|
|
||||||
bb_show_usage();
|
|
||||||
// if (opts & OPT_x) /* disable stepping, only slew is allowed */
|
// if (opts & OPT_x) /* disable stepping, only slew is allowed */
|
||||||
// G.time_was_stepped = 1;
|
// G.time_was_stepped = 1;
|
||||||
if (peers) {
|
if (peers) {
|
||||||
while (peers)
|
while (peers)
|
||||||
add_peers(llist_pop(&peers));
|
add_peers(llist_pop(&peers));
|
||||||
} else {
|
}
|
||||||
|
#if ENABLE_FEATURE_NTPD_CONF
|
||||||
|
else {
|
||||||
|
parser_t *parser;
|
||||||
|
char *token[3];
|
||||||
|
|
||||||
|
parser = config_open("/etc/ntp.conf");
|
||||||
|
while (config_read(parser, token, 3, 1, "# \t", PARSE_NORMAL)) {
|
||||||
|
if (strcmp(token[0], "server") == 0 && token[1]) {
|
||||||
|
add_peers(token[1]);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
bb_error_msg("skipping %s:%u: unimplemented command '%s'",
|
||||||
|
"/etc/ntp.conf", parser->lineno, token[0]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
config_close(parser);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
if (G.peer_cnt == 0) {
|
||||||
|
if (!(opts & OPT_l))
|
||||||
|
bb_show_usage();
|
||||||
/* -l but no peers: "stratum 1 server" mode */
|
/* -l but no peers: "stratum 1 server" mode */
|
||||||
G.stratum = 1;
|
G.stratum = 1;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user