]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
Cleanup from John Hay.
authorHarlan Stenn <stenn@ntp.org>
Thu, 4 Jul 2002 06:43:41 +0000 (02:43 -0400)
committerHarlan Stenn <stenn@ntp.org>
Thu, 4 Jul 2002 06:43:41 +0000 (02:43 -0400)
bk: 3d23ee9dGhMNVjGtB5CXV1SeA4_XtQ

include/ntpd.h
ntpd/ntp_crypto.c
ntpd/ntp_proto.c

index 32f15c2a2c856d4c587ea77e4f7a14ad30963487..2440c386cf56af1d7af2b89016ebb4530aaa4ede 100644 (file)
@@ -142,7 +142,7 @@ extern      void    resetmanycast   P((void));
 /* ntp_crypto.c */
 #ifdef OPENSSL
 extern void    crypto_recv     P((struct peer *, struct recvbuf *));
-extern int     crypto_xmit     P((struct pkt *, struct sockaddr_in *, int, struct exten *, keyid_t));
+extern int     crypto_xmit     P((struct pkt *, struct sockaddr_storage *, int, struct exten *, keyid_t));
 extern keyid_t session_key     P((struct sockaddr_storage *, struct sockaddr_storage *, keyid_t, keyid_t, u_long));
 extern void    make_keylist    P((struct peer *, struct interface *));
 extern void    key_expire      P((struct peer *));
index 4db826104f08dbdf015932735f6c05248f0e7316..3984770ae7af15c53e62047f79259e7196bf30a3 100644 (file)
@@ -1084,7 +1084,7 @@ crypto_recv(
 int
 crypto_xmit(
        struct pkt *xpkt,       /* transmit packet pointer */
-       struct sockaddr_in *srcadr_sin, /* active runway */
+       struct sockaddr_storage *srcadr_sin,    /* active runway */
        int     start,          /* offset to extension field */
        struct exten *ep,       /* extension pointer */
        keyid_t cookie          /* session cookie */
@@ -1313,14 +1313,20 @@ crypto_xmit(
         * persistent rascals we toss back a kiss-of-death grenade.
         */
        if (rval > XEVNT_TSP) {
-               struct sockaddr_in mskadr_sin;
+               struct sockaddr_storage mskadr_sin;
                int     hismode;
                int     resflag = RES_DONTSERVE | RES_TIMEOUT;
 
                opcode |= CRYPTO_ERROR;
                sprintf(statstr, "error %x opcode %x", rval, opcode);
                record_crypto_stats(srcadr_sin, statstr);
-               mskadr_sin.sin_addr.s_addr = ~(u_int32)0;
+               memset((char *)&mskadr_sin, 0, sizeof(struct sockaddr_storage));
+               mskadr_sin.ss_family = srcadr_sin->ss_family;
+               if (mskadr_sin.ss_family == AF_INET)
+                       GET_INADDR(mskadr_sin) =~(u_int32)0;
+               else
+                       memset(&GET_INADDR6(mskadr_sin), 0xff,
+                           sizeof(struct in6_addr));
                hismode = PKT_MODE(xpkt->li_vn_mode);
                if (hismode != MODE_BROADCAST && hismode != MODE_SERVER)
                        resflag |= RES_DEMOBILIZE;
index 185ee1c6575c239e7c05bedc00edd326fb028f51..23b36b50e5023f86d4a0b8a54bdd6ff2307a5487 100644 (file)
@@ -716,7 +716,15 @@ receive(
                        crypto_recv(peer, rbufp);
                        if (peer->flash) {
                                unpeer(peer);
-                               mskadr_sin.sin_addr.s_addr =~(u_int32)0;
+                               memset((char *)&mskadr_sin, 0,
+                                   sizeof(struct sockaddr_storage));
+                               mskadr_sin.ss_family =
+                                   rbufp->recv_srcadr.ss_family;
+                               if (mskadr_sin.ss_family == AF_INET)
+                                       GET_INADDR(mskadr_sin) =~(u_int32)0;
+                               else
+                                       memset(&GET_INADDR6(mskadr_sin), 0xff,
+                                           sizeof(struct in6_addr));
                                hack_restrict(RESTRICT_FLAGS,
                                    &rbufp->recv_srcadr, &mskadr_sin,
                                    RESM_NTPONLY, RES_DONTSERVE |
@@ -978,8 +986,15 @@ receive(
                                }
                                peer->flash |= TEST4;
                                memcpy(&peer->refid, "CRYP", 4);
-                               mskadr_sin.sin_addr.s_addr =
-                                   ~(u_int32)0;
+                               memset((char *)&mskadr_sin, 0,
+                                   sizeof(struct sockaddr_storage));
+                               mskadr_sin.ss_family =
+                                   rbufp->recv_srcadr.ss_family;
+                               if (mskadr_sin.ss_family == AF_INET)
+                                       GET_INADDR(mskadr_sin) =~(u_int32)0;
+                               else
+                                       memset(&GET_INADDR6(mskadr_sin), 0xff,
+                                           sizeof(struct in6_addr));
                                if (hismode != MODE_BROADCAST &&
                                    hismode != MODE_SERVER)
                                        resflag |= RES_DEMOBILIZE;