aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2015-01-29 16:31:36 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2015-01-29 16:31:36 +0100
commitff3f3accc68c84851d1ea8cd995f9491b32bedef (patch)
treea7c01d5c96af6c0082fe0a04d0f7479a0bb6a16f
parent936c401077cc68d9e3dd7f1b0b293ee03ce02bf5 (diff)
downloadbusybox-w32-ff3f3accc68c84851d1ea8cd995f9491b32bedef.tar.gz
busybox-w32-ff3f3accc68c84851d1ea8cd995f9491b32bedef.tar.bz2
busybox-w32-ff3f3accc68c84851d1ea8cd995f9491b32bedef.zip
ntpd: get rid of G.initial_poll_complete
This speeds up syncing - now happens only just two replies from a peer. Especially useful for "ntpd -q". Shouldn't have ill effects: if we chose a bad peer, we will discover it later and switch to another one. The code is even smaller this way. Suggested by Miroslav Lichvar <mlichvar@redhat.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--networking/ntpd.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/networking/ntpd.c b/networking/ntpd.c
index 33cb1dcb1..c016bfc50 100644
--- a/networking/ntpd.c
+++ b/networking/ntpd.c
@@ -376,8 +376,6 @@ struct globals {
376 */ 376 */
377#define G_precision_sec 0.002 377#define G_precision_sec 0.002
378 uint8_t stratum; 378 uint8_t stratum;
379 /* Bool. After set to 1, never goes back to 0: */
380 smallint initial_poll_complete;
381 379
382#define STATE_NSET 0 /* initial state, "nothing is set" */ 380#define STATE_NSET 0 /* initial state, "nothing is set" */
383//#define STATE_FSET 1 /* frequency set from file */ 381//#define STATE_FSET 1 /* frequency set from file */
@@ -1084,7 +1082,7 @@ select_and_cluster(void)
1084 1082
1085 num_points = 0; 1083 num_points = 0;
1086 item = G.ntp_peers; 1084 item = G.ntp_peers;
1087 if (G.initial_poll_complete) while (item != NULL) { 1085 while (item != NULL) {
1088 double rd, offset; 1086 double rd, offset;
1089 1087
1090 p = (peer_t *) item->data; 1088 p = (peer_t *) item->data;
@@ -1649,7 +1647,7 @@ update_local_clock(peer_t *p)
1649 if (G.ntp_status & LI_MINUSSEC) 1647 if (G.ntp_status & LI_MINUSSEC)
1650 tmx.status |= STA_DEL; 1648 tmx.status |= STA_DEL;
1651 1649
1652 tmx.constant = G.poll_exp - 4; 1650 tmx.constant = (int)G.poll_exp - 4 > 0 ? (int)G.poll_exp - 4 : 0;
1653 /* EXPERIMENTAL. 1651 /* EXPERIMENTAL.
1654 * The below if statement should be unnecessary, but... 1652 * The below if statement should be unnecessary, but...
1655 * It looks like Linux kernel's PLL is far too gentle in changing 1653 * It looks like Linux kernel's PLL is far too gentle in changing
@@ -2285,7 +2283,6 @@ int ntpd_main(int argc UNUSED_PARAM, char **argv)
2285 VERB4 bb_error_msg("disabling burst mode"); 2283 VERB4 bb_error_msg("disabling burst mode");
2286 G.polladj_count = 0; 2284 G.polladj_count = 0;
2287 G.poll_exp = MINPOLL; 2285 G.poll_exp = MINPOLL;
2288 G.initial_poll_complete = 1;
2289 } 2286 }
2290 send_query_to_peer(p); 2287 send_query_to_peer(p);
2291 } else { 2288 } else {