+/*********************************************************************
+ *
+ * Function : data_is_available
+ *
+ * Description : Waits for data to arrive on a socket.
+ *
+ * Parameters :
+ * 1 : fd = file descriptor of the socket to read
+ * 2 : seconds_to_wait = number of seconds after which we give up.
+ *
+ * Returns : TRUE if data arrived in time,
+ * FALSE otherwise.
+ *
+ *********************************************************************/
+int data_is_available(jb_socket fd, int seconds_to_wait)
+{
+ fd_set rfds;
+ struct timeval timeout;
+ int n;
+
+ memset(&timeout, 0, sizeof(timeout));
+ timeout.tv_sec = seconds_to_wait;
+
+#ifdef __OS2__
+ /* Copy and pasted from jcc.c ... */
+ memset(&rfds, 0, sizeof(fd_set));
+#else
+ FD_ZERO(&rfds);
+#endif
+ FD_SET(fd, &rfds);
+
+ n = select(fd+1, &rfds, NULL, NULL, &timeout);
+
+ /*
+ * XXX: Do we care about the different error conditions?
+ */
+ return (n == 1);
+}
+
+