]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - fd.c
configure.ac: print optional executables in configuration output
[paraslash.git] / fd.c
diff --git a/fd.c b/fd.c
index d1e0412d3f3f22174229eab26582b9a688707e85..dd07466cef2623e5aaa053178d7eda9e992e3dcd 100644 (file)
--- a/fd.c
+++ b/fd.c
@@ -47,8 +47,8 @@ int file_exists(const char *fn)
  * \param n the highest-numbered descriptor in any of the two sets, plus 1
  * \param readfds fds that should be checked for readability
  * \param writefds fds that should be checked for writablility
- * \param timeout upper bound on the amount of time elapsed before select()
- *  returns
+ * \param timeout_tv upper bound on the amount of time elapsed before select()
+ * returns
  *
  * \return The return value of the underlying select() call.
  *
@@ -56,11 +56,11 @@ int file_exists(const char *fn)
  * \sa select(2) select_tut(2)
  */
 int para_select(int n, fd_set *readfds, fd_set *writefds,
-               struct timeval *timeout)
+               struct timeval *timeout_tv)
 {
        int ret, err;
        do {
-               ret = select(n, readfds, writefds, NULL, timeout);
+               ret = select(n, readfds, writefds, NULL, timeout_tv);
                err = errno;
        } while (ret < 0 && err == EINTR);
        if (ret < 0)
@@ -100,10 +100,20 @@ int mark_fd_nonblock(int fd)
 */
 void para_fd_set(int fd, fd_set *fds, int *max_fileno)
 {
+
        if (fd < 0 || fd >= FD_SETSIZE) {
                PARA_EMERG_LOG("fatal: tried to add invalid fd %d\n", fd);
                exit(EXIT_FAILURE);
        }
+#if 0
+       {
+               int flags = fcntl(fd, F_GETFL);
+               if (!(flags & O_NONBLOCK)) {
+                       PARA_EMERG_LOG("fd %d is a blocking file descriptor\n", fd);
+                       exit(EXIT_FAILURE);
+               }
+       }
+#endif
        FD_SET(fd, fds);
        *max_fileno = PARA_MAX(*max_fileno, fd);
 }