From: Harlan Stenn Date: Thu, 26 Apr 2001 02:54:00 +0000 (-0000) Subject: ChangeLog, ntp_proto.c: X-Git-Tag: NTP_4_0_99_M~38 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e193dd70d67ff64ccb7fc51df4913673bf0e41f3;p=thirdparty%2Fntp.git ChangeLog, ntp_proto.c: * ntpd/ntp_proto.c (fast_xmit): Implement DENY mode. From Dave Mills. bk: 3ae78dc8mEctFrB4PvuxPJ52wN0WrQ --- diff --git a/ChangeLog b/ChangeLog index 920468b89b..4c4b5a7ac3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2001-04-25 Harlan Stenn + * ntpd/ntp_proto.c (fast_xmit): Implement DENY mode. + From Dave Mills. + * ntpd/ntp_config.c: Add the "allan" tinker variable. From: Juha Sarlin diff --git a/ntpd/ntp_proto.c b/ntpd/ntp_proto.c index 9b49e1e244..bf689e73b6 100644 --- a/ntpd/ntp_proto.c +++ b/ntpd/ntp_proto.c @@ -303,8 +303,9 @@ receive( current_time, ntoa(&rbufp->dstadr->sin), ntoa(&rbufp->recv_srcadr), restrict_mask); #endif - if (restrict_mask & RES_IGNORE) + if (restrict_mask & RES_IGNORE) { return; /* no amything */ + } pkt = &rbufp->recv_pkt; if (PKT_VERSION(pkt->li_vn_mode) == NTP_VERSION) { sys_newversionpkt++; @@ -2319,17 +2320,26 @@ fast_xmit( rpkt = &rbufp->recv_pkt; if (rbufp->dstadr->flags & INT_MULTICAST) rbufp->dstadr = findinterface(&rbufp->recv_srcadr); - xpkt.li_vn_mode = PKT_LI_VN_MODE(sys_leap, - PKT_VERSION(rpkt->li_vn_mode), xmode); - xpkt.stratum = STRATUM_TO_PKT(sys_stratum); - xpkt.ppoll = rpkt->ppoll; - xpkt.precision = sys_precision; - xpkt.rootdelay = HTONS_FP(DTOFP(sys_rootdelay)); - xpkt.rootdispersion = HTONS_FP(DTOUFP(sys_rootdispersion)); - xpkt.refid = sys_refid; - HTONL_FP(&sys_reftime, &xpkt.reftime); - xpkt.org = rpkt->xmt; - HTONL_FP(&rbufp->recv_time, &xpkt.rec); + if (xmode == 0) { + xpkt.li_vn_mode = PKT_LI_VN_MODE((LEAP_NOTINSYNC), + PKT_VERSION(rpkt->li_vn_mode), + PKT_MODE(rpkt->li_vn_mode)); + xpkt.stratum = STRATUM_TO_PKT(0); + memcpy(&xpkt.refid, "DENY", 4); + } else { + xpkt.li_vn_mode = PKT_LI_VN_MODE(sys_leap, + PKT_VERSION(rpkt->li_vn_mode), xmode); + xpkt.stratum = STRATUM_TO_PKT(sys_stratum); + xpkt.ppoll = rpkt->ppoll; + xpkt.precision = sys_precision; + xpkt.rootdelay = HTONS_FP(DTOFP(sys_rootdelay)); + xpkt.rootdispersion = + HTONS_FP(DTOUFP(sys_rootdispersion)); + xpkt.refid = sys_refid; + HTONL_FP(&sys_reftime, &xpkt.reftime); + xpkt.org = rpkt->xmt; + HTONL_FP(&rbufp->recv_time, &xpkt.rec); + } /* * If the received packet contains a MAC, the transmitted packet