diff options
Diffstat (limited to 'main/busybox/4006-ntpd-if-peer-does-not-reply-anymore-try-re-resolving.patch')
-rw-r--r-- | main/busybox/4006-ntpd-if-peer-does-not-reply-anymore-try-re-resolving.patch | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/main/busybox/4006-ntpd-if-peer-does-not-reply-anymore-try-re-resolving.patch b/main/busybox/4006-ntpd-if-peer-does-not-reply-anymore-try-re-resolving.patch deleted file mode 100644 index 8791b9735..000000000 --- a/main/busybox/4006-ntpd-if-peer-does-not-reply-anymore-try-re-resolving.patch +++ /dev/null @@ -1,67 +0,0 @@ -From c8641962e4cbde48108ddfc1c105e3320778190d Mon Sep 17 00:00:00 2001 -From: Denys Vlasenko <vda.linux@googlemail.com> -Date: Fri, 4 Mar 2016 07:26:08 +0100 -Subject: [PATCH 4006/4007] ntpd: if peer does not reply anymore, try - re-resolving its hostname - -function old new delta -ntpd_main 1053 1130 +77 -add_peers 166 195 +29 - -Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> ---- - networking/ntpd.c | 19 +++++++++++++++++++ - 1 file changed, 19 insertions(+) - -diff --git a/networking/ntpd.c b/networking/ntpd.c -index 517806e..4103189 100644 ---- a/networking/ntpd.c -+++ b/networking/ntpd.c -@@ -267,6 +267,7 @@ typedef struct { - - typedef struct { - len_and_sockaddr *p_lsa; -+ char *p_hostname; - char *p_dotted; - int p_fd; - int datapoint_idx; -@@ -781,11 +782,14 @@ add_peers(const char *s) - peer_t *pp = (peer_t *) item->data; - if (strcmp(p->p_dotted, pp->p_dotted) == 0) { - bb_error_msg("duplicate peer %s (%s)", s, p->p_dotted); -+ free(p->p_lsa); -+ free(p->p_dotted); - free(p); - return; - } - } - -+ p->p_hostname = xstrdup(s); - p->p_fd = -1; - p->p_xmt_msg.m_status = MODE_CLIENT | (NTP_VERSION << 3); - p->next_action_time = G.cur_time; /* = set_next(p, 0); */ -@@ -2332,6 +2336,21 @@ int ntpd_main(int argc UNUSED_PARAM, char **argv) - timeout = poll_interval(NOREPLY_INTERVAL); - bb_error_msg("timed out waiting for %s, reach 0x%02x, next query in %us", - p->p_dotted, p->reachable_bits, timeout); -+ -+ /* What if don't see it because it changed its IP? */ -+ if (p->reachable_bits == 0) { -+ len_and_sockaddr *lsa = host2sockaddr(p->p_hostname, 123); -+ if (lsa) { -+ char *dotted = xmalloc_sockaddr2dotted_noport(&lsa->u.sa); -+ //if (strcmp(dotted, p->p_dotted) != 0) -+ // bb_error_msg("peer IP changed"); -+ free(p->p_lsa); -+ free(p->p_dotted); -+ p->p_lsa = lsa; -+ p->p_dotted = dotted; -+ } -+ } -+ - set_next(p, timeout); - } - } --- -2.8.3 - |