Add configure test for arpa/inet.h
[deb_libnfs.git] / lib / socket.c
index 66e1021c5892d52bbd3933318eba32c8a4bc7fa4..8dc3ed2d6b0d5a9fc1a5d731f2cd96bd3ad0d48c 100644 (file)
    You should have received a copy of the GNU Lesser General Public License
    along with this program; if not, see <http://www.gnu.org/licenses/>.
 */
-#ifdef WIN32
-#include "win32_compat.h"
-#define ioctl ioctlsocket
-#define close closesocket
-#else
-#include <unistd.h>
-#include <arpa/inet.h>
-#include <sys/ioctl.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#endif/*WIN32*/
-
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
 #include "aros_compat.h"
 #endif
 
+#ifdef WIN32
+#include "win32_compat.h"
+#endif
+
+#ifdef HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+
 #ifdef HAVE_POLL_H
 #include <poll.h>
 #endif
 
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <fcntl.h>
-#include <string.h>
-#include <errno.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#ifdef HAVE_SYS_IOCTL_H
+#include <sys/ioctl.h>
+#endif
+
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+
 #ifdef HAVE_SYS_FILIO_H
 #include <sys/filio.h>
 #endif
+
 #ifdef HAVE_SYS_SOCKIO_H
 #include <sys/sockio.h>
 #endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <fcntl.h>
+#include <string.h>
+#include <errno.h>
 #include <sys/types.h>
 #include "libnfs-zdr.h"
 #include "libnfs.h"
@@ -397,8 +411,12 @@ static int rpc_connect_sockaddr_async(struct rpc_context *rpc, struct sockaddr_s
                static int portOfs = 0;
                const int firstPort = 512;      /* >= 512 according to Sun docs */
                const int portCount = IPPORT_RESERVED - firstPort;
-               int startOfs = portOfs, port, rc;
+               int startOfs, port, rc;
 
+               if (portOfs == 0) {
+                       portOfs = time(NULL) % 400;
+               }
+               startOfs = portOfs;
                do {
                        rc = -1;
                        port = htons(firstPort + portOfs);