diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2011-04-08 00:24:38 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2011-04-08 00:25:10 +0200 |
commit | 25c578c6fa50a83e20fc14d7659405a525a7ce9e (patch) | |
tree | 0ce6dfa7d1f542053d5fd52886e60000394ce94a | |
parent | bdeb1f5fb5741a4c287cdf3f23bb120fef6553ad (diff) | |
download | gnutls-25c578c6fa50a83e20fc14d7659405a525a7ce9e.tar.gz |
win32 fixes for set_global_errno(). Based on patch by LRN.
-rw-r--r-- | lib/gnutls_buffers.c | 20 |
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 |