summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2011-08-20 10:47:48 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2011-08-20 10:47:48 +0200
commit0dd016245762d9e0c3b15cc3237ca67d49f2bb40 (patch)
treef59bd5f396b38f84c29ca2bc4ccec6d64a3cdc9e
parent4475463407f2002c916330122cf640889ec696aa (diff)
downloadgnutls-0dd016245762d9e0c3b15cc3237ca67d49f2bb40.tar.gz
Added hack for AIX systems that may not set errno property on EAGAIN.
-rw-r--r--lib/gnutls_buffers.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/gnutls_buffers.c b/lib/gnutls_buffers.c
index 5478b3ffa4..1956c333cb 100644
--- a/lib/gnutls_buffers.c
+++ b/lib/gnutls_buffers.c
@@ -137,11 +137,17 @@ reset_errno (gnutls_session_t session)
inline static int
get_errno (gnutls_session_t session)
{
+int ret;
+
if (session->internals.errnum != 0)
- return session->internals.errnum;
+ ret = session->internals.errnum;
else
- return session->internals.errno_func (session->
+ ret = session->internals.errno_func (session->
internals.transport_recv_ptr);
+#if defined(_AIX) || defined(AIX)
+ if (ret == 0) ret = EAGAIN;
+#endif
+ return ret;
}