Configure check for sys/time.h
[deb_libnfs.git] / examples / nfsclient-bcast.c
index 89434d5561bc303699f0bbb7b9f05e93a74d664d..62ea6549d29ba295003feeb82932565545c0aa44 100644 (file)
 
 /* Example program using the lowlevel raw broadcast interface.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
-#include <stdio.h>
+#ifdef WIN32
+#include "win32_compat.h"
+#endif
+
+#ifdef HAVE_POLL_H
+#include <poll.h>
+#endif
+
+#ifdef HAVE_UNISTD_H
 #include <unistd.h>
+#endif
+
+#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <poll.h>
 #include <errno.h>
-#include <sys/socket.h>
-#include <sys/ioctl.h>
+
+#ifdef HAVE_SYS_TIME_H
 #include <sys/time.h>
+#endif
+
+#ifdef HAVE_NET_IF_H
 #include <net/if.h>
+#endif
+
+#ifdef HAVE_NETDB_H
 #include <netdb.h>
+#endif
+
+#ifdef HAVE_SYS_IOCTL_H
+#include <sys/ioctl.h>
+#endif
+
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+
+#include "libnfs-zdr.h"
 #include "libnfs.h"
 #include "libnfs-raw.h"
 #include "libnfs-private.h"
@@ -127,7 +157,7 @@ int main(int argc _U_, char *argv[] _U_)
        ifc.ifc_buf = NULL;
        ifc.ifc_len = size;
 
-       while (ifc.ifc_len == size) {
+       while(ifc.ifc_len > (size - sizeof(struct ifreq))) {
                size *= 2;
 
                free(ifc.ifc_buf);      
@@ -145,7 +175,7 @@ int main(int argc _U_, char *argv[] _U_)
                char bcdd[16];
 
                ifr = (struct ifreq *)ptr;
-#if HAVE_SOCKADDR_LEN
+#ifdef HAVE_SOCKADDR_LEN
                if (ifr->ifr_addr.sa_len > sizeof(struct sockaddr)) {
                        ptr += sizeof(ifr->ifr_name) + ifr->ifr_addr.sa_len;
                } else {