diff options
Diffstat (limited to 'main/openntpd/openntpd-3.9p1_reconnect_on_sendto_EINVAL.diff')
-rw-r--r-- | main/openntpd/openntpd-3.9p1_reconnect_on_sendto_EINVAL.diff | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/main/openntpd/openntpd-3.9p1_reconnect_on_sendto_EINVAL.diff b/main/openntpd/openntpd-3.9p1_reconnect_on_sendto_EINVAL.diff deleted file mode 100644 index adca55614a..0000000000 --- a/main/openntpd/openntpd-3.9p1_reconnect_on_sendto_EINVAL.diff +++ /dev/null @@ -1,43 +0,0 @@ -diff -Naur openntpd-3.9p1/client.c openntpd-3.9p1-fixed/client.c ---- openntpd-3.9p1/client.c 2006-05-14 07:29:21.000000000 +0200 -+++ openntpd-3.9p1-fixed/client.c 2006-10-11 02:41:44.000000000 +0200 -@@ -116,6 +116,7 @@ - client_query(struct ntp_peer *p) - { - int tos = IPTOS_LOWDELAY; -+ int result; - - if (p->addr == NULL && client_nextaddr(p) == -1) { - set_next(p, error_interval()); -@@ -163,9 +164,17 @@ - p->query->msg.xmttime.fractionl = arc4random(); - p->query->xmttime = gettime(); - -- if (ntp_sendmsg(p->query->fd, NULL, &p->query->msg, -- NTP_MSGSIZE_NOAUTH, 0) == -1) { -+ if ((result = ntp_sendmsg(p->query->fd, NULL, &p->query->msg, -+ NTP_MSGSIZE_NOAUTH, 0)) < 0) { - set_next(p, INTERVAL_QUERY_PATHETIC); -+ if (result == -2) { -+ /* -+ * got EINVAL in sendto(), probably the local socket -+ * address got invalidated -> force re-connect() -+ */ -+ close(p->query->fd); -+ p->query->fd = -1; -+ } - return (-1); - } - -diff -Naur openntpd-3.9p1/ntp_msg.c openntpd-3.9p1-fixed/ntp_msg.c ---- openntpd-3.9p1/ntp_msg.c 2006-05-14 07:29:21.000000000 +0200 -+++ openntpd-3.9p1-fixed/ntp_msg.c 2006-10-11 02:41:49.000000000 +0200 -@@ -98,6 +98,8 @@ - return (-1); - } - log_warn("sendto"); -+ if (errno == EINVAL) -+ return (-2); - return (-1); - } - |