further header cleanup
[paraslash.git] / fd.c
diff --git a/fd.c b/fd.c
index f5d326c044d4e9b08aec613b25845a9e074aa3ea..dc22d147711cbf2d152d895293bf79a4190352b5 100644 (file)
--- a/fd.c
+++ b/fd.c
@@ -20,6 +20,7 @@
 
 #include "para.h"
 
+#include <fcntl.h>
 #include <sys/select.h>
 
 #include "error.h"
@@ -84,3 +85,18 @@ int mark_fd_nonblock(int fd)
        return 1;
 }
 
+/**
+ * set a file descriptor in a fd_set
+ *
+ * \param fd the file descriptor to be set
+ * \param fds the file descriptor set
+ * \param max_fileno highest-numbered file descriptor
+ *
+ * This wrapper for FD_SET() passes its first two arguments to \p FD_SET. Upon
+ * return, \a max_fileno contains the maximum of the old_value and \a fd.
+*/
+void para_fd_set(int fd, fd_set *fds, int *max_fileno)
+{
+       FD_SET(fd, fds);
+       *max_fileno = MAX(*max_fileno, fd);
+}