* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * Format and print ntp packets.
* By Jeffrey Mogul/DECWRL
* loosely based on print-bootp.c
*/
+/* \summary: Network Time Protocol (NTP) printer */
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
{
register int i;
register int f;
- register float ff;
+ register double ff;
i = EXTRACT_16BITS(&sfp->int_part);
f = EXTRACT_16BITS(&sfp->fraction);
- ff = f / 65536.0f; /* shift radix point by 16 bits */
- f = ff * 1000000.0f; /* Treat fraction as parts per million */
+ ff = f / 65536.0; /* shift radix point by 16 bits */
+ f = (int)(ff * 1000000.0); /* Treat fraction as parts per million */
ND_PRINT((ndo, "%d.%06d", i, f));
}
-#define FMAXINT (4294967296.0f) /* floating point rep. of MAXINT */
+#define FMAXINT (4294967296.0) /* floating point rep. of MAXINT */
static void
p_ntp_time(netdissect_options *ndo,
register int32_t i;
register uint32_t uf;
register uint32_t f;
- register float ff;
+ register double ff;
i = EXTRACT_32BITS(&lfp->int_part);
uf = EXTRACT_32BITS(&lfp->fraction);
ff = uf;
- if (ff < 0.0f) /* some compilers are buggy */
+ if (ff < 0.0) /* some compilers are buggy */
ff += FMAXINT;
- ff = ff / FMAXINT; /* shift radix point by 32 bits */
- f = ff * 1000000000.0f; /* treat fraction as parts per billion */
+ ff = ff / FMAXINT; /* shift radix point by 32 bits */
+ f = (uint32_t)(ff * 1000000000.0); /* treat fraction as parts per billion */
ND_PRINT((ndo, "%u.%09d", i, f));
#ifdef HAVE_STRFTIME
register uint32_t u, uf;
register uint32_t ou, ouf;
register uint32_t f;
- register float ff;
+ register double ff;
int signbit;
u = EXTRACT_32BITS(&lfp->int_part);
}
ff = f;
- if (ff < 0.0f) /* some compilers are buggy */
+ if (ff < 0.0) /* some compilers are buggy */
ff += FMAXINT;
- ff = ff / FMAXINT; /* shift radix point by 32 bits */
- f = ff * 1000000000.0f; /* treat fraction as parts per billion */
+ ff = ff / FMAXINT; /* shift radix point by 32 bits */
+ f = (uint32_t)(ff * 1000000000.0); /* treat fraction as parts per billion */
ND_PRINT((ndo, "%s%d.%09d", signbit ? "-" : "+", i, f));
}