Merge branch 'master' of github.com:sahlberg/libnfs
[deb_libnfs.git] / examples / nfsclient-bcast.c
index 89434d5561bc303699f0bbb7b9f05e93a74d664d..498e0e7f4fcbad8c4b79ec84533cbe9d930cf849 100644 (file)
@@ -18,6 +18,7 @@
 /* Example program using the lowlevel raw broadcast interface.
  */
 
+#include "config.h"
 #include <stdio.h>
 #include <unistd.h>
 #include <stdlib.h>
@@ -31,7 +32,6 @@
 #include <netdb.h>
 #include "libnfs.h"
 #include "libnfs-raw.h"
-#include "libnfs-private.h"
 #include "libnfs-raw-mount.h"
 #include "libnfs-raw-portmap.h"
 
@@ -127,7 +127,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 +145,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 {