the paraslash-0.2.12 release tarball
[paraslash.git] / recv.c
diff --git a/recv.c b/recv.c
index fd82bc0fa6d998e51072284aefe1dc5d79dd3663..af15eb07efb005f8b959e764d74b1bf2a27db60d 100644 (file)
--- a/recv.c
+++ b/recv.c
@@ -19,6 +19,7 @@
 
 #include "recv.h"
 #include "recv.cmdline.h"
+#include "fd.h"
 #include "error.h"
 
 struct gengetopt_args_info conf;
@@ -81,16 +82,14 @@ recv:
        FD_ZERO(&rfds);
        FD_ZERO(&wfds);
        timeout.tv_sec = 0;
-       timeout.tv_usec = 1000 * 1000;
+       timeout.tv_usec = 999 * 1000;
        max = -1;
        ret = r->pre_select(&rn, &rfds, &wfds, &timeout);
-       max = MAX(max, ret);
+       max = PARA_MAX(max, ret);
 
-       PARA_DEBUG_LOG("timeout: %lums\n", tv2ms(&timeout));
-       ret = select(max + 1, &rfds, &wfds, NULL, &timeout);
+       PARA_DEBUG_LOG("timeout: %lums, max: %d\n", tv2ms(&timeout), max);
+       ret = para_select(max + 1, &rfds, &wfds, &timeout);
        if (ret < 0) {
-               if (errno == EINTR || errno == EAGAIN)
-                       goto recv;
                ret = -E_RECV_SELECT;
                goto out;
        }