]> sjero.net Git - wget/commitdiff
Fix build under Windows.
authorGiuseppe Scrivano <gscrivano@gnu.org>
Sun, 3 Apr 2011 18:23:31 +0000 (20:23 +0200)
committerGiuseppe Scrivano <gscrivano@gnu.org>
Sun, 3 Apr 2011 18:23:31 +0000 (20:23 +0200)
ChangeLog
bootstrap.conf
configure.ac
src/ChangeLog
src/gnutls.c

index ba5af9abba726dbac23099606bd48c45d98533fe..27e1d068f6bd3f7d67d0a2b2e49dbcb00585827e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,8 @@
 
        * bootstrap.conf (gnulib_modules): Add `fcntl'.
 
 
        * bootstrap.conf (gnulib_modules): Add `fcntl'.
 
+       (gnulib_modules): Add `ioctl'.
+
 2011-03-26  Giuseppe Scrivano  <gscrivano@gnu.org>
 
        * configure.ac: Fix the gnutls detection.
 2011-03-26  Giuseppe Scrivano  <gscrivano@gnu.org>
 
        * configure.ac: Fix the gnutls detection.
index 3fb3bdfb4ed6da881c63024cb8c9e926778c87f2..70fdfb70406299a2d8d3bee0dfdeb5c3e456487d 100644 (file)
@@ -39,6 +39,7 @@ getpass-gnu
 getpeername
 getsockname
 gnupload
 getpeername
 getsockname
 gnupload
+ioctl
 iconv-h
 listen
 maintainer-makefile
 iconv-h
 listen
 maintainer-makefile
index 2c01089f484650d65d85a49271852c581f7ada1f..205b6533853aca5c1c48da214b194c6b04d1a217 100644 (file)
@@ -223,7 +223,7 @@ WGET_NSL_SOCKET
 dnl Deal with specific hosts
 case $host_os in
   *mingw32* )
 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
     AC_LIBOBJ([mswindows])
     ;;
 esac
index ef3a863b1d5e31b1726191fbdac7641afadf2004..4c0ff9cdfb88914e541b8ef4c28b78638c832420 100644 (file)
@@ -1,8 +1,13 @@
 2011-04-03  Giuseppe Scrivano  <gscrivano@gnu.org>
 
 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.
 
        (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
 2011-03-31  Giuseppe Scrivano  <gscrivano@gnu.org>
 
        * recur.c (download_child_p): When --no-parent is used, check that the
index 4f38aca1d9c43ed302159d3ecf29c0e8f44fe29b..2e5f89a781888f68af3362562a4539e81263cfa0 100644 (file)
@@ -41,6 +41,7 @@ as that of the covered work.  */
 #include <gnutls/gnutls.h>
 #include <gnutls/x509.h>
 #include <fcntl.h>
 #include <gnutls/gnutls.h>
 #include <gnutls/x509.h>
 #include <fcntl.h>
+#include <sys/ioctl.h>
 
 #include "utils.h"
 #include "connect.h"
 
 #include "utils.h"
 #include "connect.h"
@@ -183,6 +184,7 @@ wgnutls_peek (int fd, char *buf, int bufsize, void *arg)
 
   if (bufsize > offset)
     {
 
   if (bufsize > offset)
     {
+#ifdef F_GETFL
       int flags;
       flags = fcntl (fd, F_GETFL, 0);
       if (flags < 0)
       int flags;
       flags = fcntl (fd, F_GETFL, 0);
       if (flags < 0)
@@ -191,7 +193,13 @@ wgnutls_peek (int fd, char *buf, int bufsize, void *arg)
       ret = fcntl (fd, F_SETFL, flags | O_NONBLOCK);
       if (ret < 0)
         return ret;
       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,
       do
         {
           ret = gnutls_record_recv (ctx->session, buf + offset,
@@ -214,9 +222,16 @@ wgnutls_peek (int fd, char *buf, int bufsize, void *arg)
           ctx->peeklen += ret;
         }
 
           ctx->peeklen += ret;
         }
 
+#ifdef F_GETFL
       fcntl (fd, F_SETFL, flags);
       if (ret < 0)
         return ret;
       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;
     }
 
   return offset + ret;