/* 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"
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);
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 {
exit(10);
}
- if (rpc_pmap_callit_async(rpc, MOUNT_PROGRAM, 2, 0, NULL, 0, pm_cb, &data) < 0) {
+ if (rpc_pmap2_callit_async(rpc, MOUNT_PROGRAM, 2, 0, NULL, 0, pm_cb, &data) < 0) {
printf("Failed to set up callit function\n");
exit(10);
}