* bootstrap.conf (gnulib_modules): Add `fcntl'.
+ (gnulib_modules): Add `ioctl'.
+
2011-03-26 Giuseppe Scrivano <gscrivano@gnu.org>
* configure.ac: Fix the gnutls detection.
getpeername
getsockname
gnupload
+ioctl
iconv-h
listen
maintainer-makefile
dnl Deal with specific hosts
case $host_os in
*mingw32* )
- AC_SUBST(W32LIBS, '-lws2_32')
+ AC_SUBST(W32LIBS, '-lws2_32 -lgdi32')
AC_LIBOBJ([mswindows])
;;
esac
2011-04-03 Giuseppe Scrivano <gscrivano@gnu.org>
- * gnutls.c: Include <fcntl.h>
+ * gnutls.c: Include <fcntl.h>.
(wgnutls_peek): Make the socket non blocking before attempt a read.
+ * gnutls.c: Include <sys/ioctl.h>.
+ (wgnutls_peek) [F_GETFL]: Use fcntl.
+ (wgnutls_peek) [! F_GETFL]: Use ioctl.
+
+
2011-03-31 Giuseppe Scrivano <gscrivano@gnu.org>
* recur.c (download_child_p): When --no-parent is used, check that the
#include <gnutls/gnutls.h>
#include <gnutls/x509.h>
#include <fcntl.h>
+#include <sys/ioctl.h>
#include "utils.h"
#include "connect.h"
if (bufsize > offset)
{
+#ifdef F_GETFL
int flags;
flags = fcntl (fd, F_GETFL, 0);
if (flags < 0)
ret = fcntl (fd, F_SETFL, flags | O_NONBLOCK);
if (ret < 0)
return ret;
-
+#else
+ /* XXX: Assume it was blocking before. */
+ const int zero = 0;
+ ret = ioctl (fd, FIONBIO, &zero);
+ if (ret < 0)
+ return ret;
+#endif
do
{
ret = gnutls_record_recv (ctx->session, buf + offset,
ctx->peeklen += ret;
}
+#ifdef F_GETFL
fcntl (fd, F_SETFL, flags);
if (ret < 0)
return ret;
+#else
+ const int one = 1;
+ ret = ioctl (fd, FIONBIO, &one);
+ if (ret < 0)
+ return ret;
+#endif
}
return offset + ret;