Imported Upstream version 1.3.0
[deb_libnfs.git] / lib / socket.c
index 0f12697388779cd3f819bcf39c22227c0ddf225d..ea16d8c9e508f7ab247ec892b29196136717828c 100644 (file)
@@ -381,14 +381,17 @@ static int rpc_connect_sockaddr_async(struct rpc_context *rpc, struct sockaddr_s
         * to make the executable able to bind to a system port.
         */
        if (1) {
-               int port;
+               static int port = 200;
+               int i;
                int one = 1;
 
                setsockopt(rpc->fd, SOL_SOCKET, SO_REUSEADDR, (char *)&one, sizeof(one));
 
-               for (port = 200; port < 500; port++) {
+               for (i = 0; i < 500; i++) {
                        struct sockaddr_in sin;
 
+                       if(++port > 700) port = 200;
+
                        memset(&sin, 0, sizeof(sin));
                        sin.sin_port        = htons(port);
                        sin.sin_family      = AF_INET;
@@ -411,7 +414,7 @@ static int rpc_connect_sockaddr_async(struct rpc_context *rpc, struct sockaddr_s
        if (connect(rpc->fd, (struct sockaddr *)s, socksize) != 0 && errno != EINPROGRESS) 
 #endif
        {
-               rpc_set_error(rpc, "connect() to server failed");
+         rpc_set_error(rpc, "connect() to server failed. %s(%d)", strerror(errno), errno);
                return -1;
        }