#define DBG(s)
-#include "sysdep/defines.h"
+#include "config.h"
+
+#include "defines.h"
#include <sys/types.h>
#include <sys/time.h>
return (fd);
}
+void clear_thread_flags(void)
+{
+#if !defined(BLOCKING_CALLS)
+ int fl, fd;
+
+#if defined(HAVE_FCNTL) && defined(O_NONBLOCK)
+ fd = fileno(stdin);
+ fl = fcntl(fd, F_GETFL, 0);
+ fl = fcntl(fd, F_SETFL, fl & (~O_NONBLOCK));
+
+ fd = fileno(stdout);
+ fl = fcntl(fd, F_GETFL, 0);
+ fl = fcntl(fd, F_SETFL, fl & (~O_NONBLOCK));
+
+ fd = fileno(stderr);
+ fl = fcntl(fd, F_GETFL, 0);
+ fl = fcntl(fd, F_SETFL, fl & (~O_NONBLOCK));
+#elif defined(HAVE_IOCTL) && defined(FIONBIO)
+ fl = 0;
+ fd = fileno(stdin);
+ (void) ioctl(fd, FIONBIO, &fl);
+
+ fd = fileno(stdout);
+ (void) ioctl(fd, FIONBIO, &fl);
+
+ fd = fileno(stderr);
+ (void) ioctl(fd, FIONBIO, &fl);
+#endif
+
+#endif
+fflush (stdout);
+fflush (stderr);
+}
+
+
/*
* Threaded create socket.
*/
#if defined(BLOCKING_CALLS)
blockOnFile(fd, TH_ACCEPT);
#endif
- r = accept(fd, addr, len);
+ r = accept(fd, addr, (size_t*)len);
if (r >= 0
|| !(errno == EINPROGRESS || errno == EALREADY
|| errno == EWOULDBLOCK))