From: Harlan Stenn Date: Sat, 13 Jul 2002 19:13:42 +0000 (-0400) Subject: Merge cleanup from John Hay. X-Git-Tag: NTP_4_1_73~115 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=be2bb2a98f523e87b2b170e5ce444e4a8f394ab2;p=thirdparty%2Fntp.git Merge cleanup from John Hay. bk: 3d307be6WJ0FRQJBV2T-49tzj9ka5w --- diff --git a/include/ntp.h b/include/ntp.h index 52ec364b38..e487228bad 100644 --- a/include/ntp.h +++ b/include/ntp.h @@ -514,6 +514,17 @@ struct peer { #define GET_INADDR(src) (CAST_V4(src)->sin_addr.s_addr) #define GET_INADDR6(src) (CAST_V6(src)->sin6_addr) +#define SET_HOSTMASK(addr, family) \ + do { \ + memset((char *)(addr), 0, sizeof(struct sockaddr_storage)); \ + (addr)->ss_family = (family); \ + if ((family) == AF_INET) \ + GET_INADDR(*(addr)) = 0xffffffff; \ + else \ + memset(&GET_INADDR6(*(addr)), 0xff, \ + sizeof(struct in6_addr)); \ + } while(0) + /* * NTP packet format. The mac field is optional. It isn't really * an l_fp either, but for now declaring it that way is convenient. diff --git a/ntpd/ntp_proto.c b/ntpd/ntp_proto.c index 9c5cd72655..ea90503ad9 100644 --- a/ntpd/ntp_proto.c +++ b/ntpd/ntp_proto.c @@ -166,10 +166,10 @@ transmit( "DENY") == 0 || strcmp((char *)&peer->refid, "CRYP") == 0) { - struct sockaddr_in mskadr_sin; + struct sockaddr_storage mskadr_sin; - mskadr_sin.sin_addr.s_addr = - 0xffffffff; + SET_HOSTMASK(&mskadr_sin, + peer->srcadr.ss_family); hack_restrict(RESTRICT_FLAGS, &peer->srcadr, &mskadr_sin, 0, RES_DONTTRUST | @@ -316,7 +316,6 @@ receive( int is_authentic; /* cryptosum ok */ keyid_t skeyid; /* cryptographic keys */ struct sockaddr_storage *dstadr_sin; /* active runway */ - struct sockaddr_storage mskadr_sin; /* mask for restrict */ l_fp p_org; /* originate timestamp */ l_fp p_xmt; /* transmit timestamp */ int rval; /* cookie snatcher */ @@ -746,19 +745,12 @@ receive( if (crypto_flags) { if ((rval = crypto_recv(peer, rbufp)) != XEVNT_OK) { - struct sockaddr_in mskadr_sin; + struct sockaddr_storage mskadr_sin; unpeer(peer); sys_restricted++; - 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) = 0xffffffff; - else - memset(&GET_INADDR6(mskadr_sin), 0xff, - sizeof(struct in6_addr)); + SET_HOSTMASK(&mskadr_sin, + rbufp->recv_srcadr.ss_family); hack_restrict(RESTRICT_FLAGS, &rbufp->recv_srcadr, &mskadr_sin, 0, RES_DONTTRUST | RES_TIMEOUT);