summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2011-04-08 00:24:38 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2011-04-08 00:25:10 +0200
commit25c578c6fa50a83e20fc14d7659405a525a7ce9e (patch)
tree0ce6dfa7d1f542053d5fd52886e60000394ce94a
parentbdeb1f5fb5741a4c287cdf3f23bb120fef6553ad (diff)
downloadgnutls-25c578c6fa50a83e20fc14d7659405a525a7ce9e.tar.gz
win32 fixes for set_global_errno(). Based on patch by LRN.
-rw-r--r--lib/gnutls_buffers.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/gnutls_buffers.c b/lib/gnutls_buffers.c
index 5f148156a9..1fb90a5484 100644
--- a/lib/gnutls_buffers.c
+++ b/lib/gnutls_buffers.c
@@ -57,6 +57,9 @@
#include <system.h>
#include <errno.h>
+#ifdef _WIN32
+# include <windows.h>
+#endif
#ifndef EAGAIN
#define EAGAIN EWOULDBLOCK
@@ -115,7 +118,24 @@ gnutls_transport_set_errno (gnutls_session_t session, int err)
void
gnutls_transport_set_global_errno (int err)
{
+#ifdef _WIN32
+ /* Keep this in sync with system_errno */
+ switch (err)
+ {
+ case EAGAIN:
+ SetLastError (WSAEWOULDBLOCK);
+ break;
+ case EINTR:
+ SetLastError (WSAEINTR);
+ break;
+ default:
+ /* We don't care about anything else */
+ SetLastError (NO_ERROR);
+ break;
+ }
+#else
errno = err;
+#endif
}
/* Buffers received packets of type APPLICATION DATA and