memcpy(p, &msg->reftime.int_part, sizeof(msg->reftime.int_part)); p += sizeof(msg->reftime.int_part); memcpy(p, &msg->reftime.fraction, sizeof(msg->reftime.fraction)); p += sizeof(msg->reftime.fraction); memcpy(p, &msg->orgtime.int_part, sizeof(msg->orgtime.int_part)); p += sizeof(msg->orgtime.int_part); memcpy(p, &msg->orgtime.fraction, sizeof(msg->orgtime.fraction)); p += sizeof(msg->orgtime.fraction); memcpy(p, &msg->rectime.int_part, sizeof(msg->rectime.int_part)); p += sizeof(msg->rectime.int_part); memcpy(p, &msg->rectime.fraction, sizeof(msg->rectime.fraction)); p += sizeof(msg->rectime.fraction); memcpy(p, &msg->xmttime.int_part, sizeof(msg->xmttime.int_part)); p += sizeof(msg->xmttime.int_part); memcpy(p, &msg->xmttime.fraction, sizeof(msg->xmttime.fraction)); p += sizeof(msg->xmttime.fraction);
memcpy(p, &msg->reftime.int_partl, sizeof(msg->reftime.int_partl)); p += sizeof(msg->reftime.int_partl); memcpy(p, &msg->reftime.fractionl, sizeof(msg->reftime.fractionl)); p += sizeof(msg->reftime.fractionl); memcpy(p, &msg->orgtime.int_partl, sizeof(msg->orgtime.int_partl)); p += sizeof(msg->orgtime.int_partl); memcpy(p, &msg->orgtime.fractionl, sizeof(msg->orgtime.fractionl)); p += sizeof(msg->orgtime.fractionl); memcpy(p, &msg->rectime.int_partl, sizeof(msg->rectime.int_partl)); p += sizeof(msg->rectime.int_partl); memcpy(p, &msg->rectime.fractionl, sizeof(msg->rectime.fractionl)); p += sizeof(msg->rectime.fractionl); memcpy(p, &msg->xmttime.int_partl, sizeof(msg->xmttime.int_partl)); p += sizeof(msg->xmttime.int_partl); memcpy(p, &msg->xmttime.fractionl, sizeof(msg->xmttime.fractionl)); p += sizeof(msg->xmttime.fractionl);
ntp_sendmsg(int fd, struct sockaddr *sa, struct ntp_msg *msg, ssize_t len,    int auth){	char		 buf[NTP_MSGSIZE];	char		*p;	u_int8_t	sa_len;	p = buf;	memcpy(p, &msg->status, sizeof(msg->status));	p += sizeof(msg->status);	memcpy(p, &msg->stratum, sizeof(msg->stratum));	p += sizeof(msg->stratum);	memcpy(p, &msg->ppoll, sizeof(msg->ppoll));	p += sizeof(msg->ppoll);	memcpy(p, &msg->precision, sizeof(msg->precision));	p += sizeof(msg->precision);	memcpy(p, &msg->rootdelay.int_part, sizeof(msg->rootdelay.int_part));	p += sizeof(msg->rootdelay.int_part);	memcpy(p, &msg->rootdelay.fraction, sizeof(msg->rootdelay.fraction));	p += sizeof(msg->rootdelay.fraction);	memcpy(p, &msg->dispersion.int_part, sizeof(msg->dispersion.int_part));	p += sizeof(msg->dispersion.int_part);	memcpy(p, &msg->dispersion.fraction, sizeof(msg->dispersion.fraction));	p += sizeof(msg->dispersion.fraction);	memcpy(p, &msg->refid, sizeof(msg->refid));	p += sizeof(msg->refid);	memcpy(p, &msg->reftime.int_part, sizeof(msg->reftime.int_part));	p += sizeof(msg->reftime.int_part);	memcpy(p, &msg->reftime.fraction, sizeof(msg->reftime.fraction));	p += sizeof(msg->reftime.fraction);	memcpy(p, &msg->orgtime.int_part, sizeof(msg->orgtime.int_part));	p += sizeof(msg->orgtime.int_part);	memcpy(p, &msg->orgtime.fraction, sizeof(msg->orgtime.fraction));	p += sizeof(msg->orgtime.fraction);	memcpy(p, &msg->rectime.int_part, sizeof(msg->rectime.int_part));	p += sizeof(msg->rectime.int_part);	memcpy(p, &msg->rectime.fraction, sizeof(msg->rectime.fraction));	p += sizeof(msg->rectime.fraction);	memcpy(p, &msg->xmttime.int_part, sizeof(msg->xmttime.int_part));	p += sizeof(msg->xmttime.int_part);	memcpy(p, &msg->xmttime.fraction, sizeof(msg->xmttime.fraction));	p += sizeof(msg->xmttime.fraction);	if (sa != NULL)		sa_len = SA_LEN(sa);	else		sa_len = 0;	if (sendto(fd, &buf, len, 0, sa, sa_len) != len) {		if (errno == ENOBUFS || errno == EHOSTUNREACH ||		    errno == ENETDOWN || errno == EHOSTDOWN) {			/* logging is futile */			return (-1);		}		log_warn("sendto");		return (-1);	}	return (0);}