]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
ChangeLog, ntp_proto.c:
authorHarlan Stenn <stenn@ntp.org>
Thu, 26 Apr 2001 02:54:00 +0000 (02:54 -0000)
committerHarlan Stenn <stenn@ntp.org>
Thu, 26 Apr 2001 02:54:00 +0000 (02:54 -0000)
  * ntpd/ntp_proto.c (fast_xmit): Implement DENY mode.
  From Dave Mills.

bk: 3ae78dc8mEctFrB4PvuxPJ52wN0WrQ

ChangeLog
ntpd/ntp_proto.c

index 920468b89bbfa478e4ce8f49d2bd62cc9afaf070..4c4b5a7ac3010232127c0a4e1051d878bed9c034 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2001-04-25  Harlan Stenn  <stenn@whimsy.udel.edu>
 
+       * ntpd/ntp_proto.c (fast_xmit): Implement DENY mode.
+       From Dave Mills.
+
        * ntpd/ntp_config.c: Add the "allan" tinker variable.
        From: Juha Sarlin <juha@c3l.tyreso.se>
 
index 9b49e1e244b51edb08f336fa4379111a25b21f25..bf689e73b690e18796b42f32b355701bf5af4000 100644 (file)
@@ -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