diff -up ntp-4.2.6p4/ntpstat-0.2/ntpstat.c.errorbit ntp-4.2.6p4/ntpstat-0.2/ntpstat.c
--- ntp-4.2.6p4/ntpstat-0.2/ntpstat.c.errorbit 2011-10-06 13:41:38.591669772 +0200
+++ ntp-4.2.6p4/ntpstat-0.2/ntpstat.c 2011-10-06 16:50:01.708315811 +0200
@@ -104,6 +104,7 @@ int main (void) {
FD_ZERO(&fds);
inet_aton("127.0.0.1", &address);
+ memset(&sock, 0, sizeof (sock));;
sock.sin_family = AF_INET;
sock.sin_addr = address;
sock.sin_port = htons(NTP_PORT);
@@ -159,15 +160,18 @@ int main (void) {
die ("return data appears to be invalid based on status word");
}
- if (!(ntpmsg.byte2 | EMASK)) {
+ if (ntpmsg.byte2 & EMASK) {
fprintf (stderr,"status byte2 is %02x\n", ntpmsg.byte2 );
die ("error bit is set in reply");
}
- if (!(ntpmsg.byte2 | MMASK)) {
+ /* ignore the more bit */
+#if 0
+ if (ntpmsg.byte2 & MMASK) {
fprintf (stderr,"status byte2 is %02x\n", ntpmsg.byte2 );
fprintf (stderr,"More bit unexpected in reply");
}
+#endif
/* if the leap indicator (LI), which is the two most significant bits
in status byte1, are both one, then the clock is not synchronised. */