bk: 4ace7a3fiffP7_5KZBotmQNrs6OsJQ
+* Broadcast and transit phase cleanup from Dave Mills.
(4.2.5p229) 2009/10/07 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1334] ntpsnmpd undefined reference to `ntpqOptions'.
* Change ntpsnmpd/Makefile.am include file order to fix FreeBSD build.
if (len < VALUE_LEN)
return (XEVNT_LEN);
- if (opcode == (CRYPTO_AUTO | CRYPTO_RESP) &&
- peer->cast_flags & MDF_BCLNT) {
+ if (opcode == (CRYPTO_AUTO | CRYPTO_RESP) && (peer->pmode ==
+ MODE_BROADCAST || (peer->cast_flags & MDF_BCLNT))) {
if (ntohl(ep->associd) != peer->assoc)
return (XEVNT_ERR);
} else {
process_packet(peer, pkt, rbufp->recv_length);
/*
- * In interleaved mode update the state variables.
+ * In interleaved mode update the state variables. Also adjust the
+ * transmit phase to avoid crossover.
*/
if (peer->flip != 0) {
peer->rec = p_rec;
peer->dst = rbufp->recv_time;
+ if (peer->nextdate - current_time < (1 << min(peer->ppoll,
+ peer->hpoll)) / 2)
+ peer->nextdate++;
+ else
+ peer->nextdate--;
}
}