[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [sr #107464] Secure Connections on AIX using non blocking socket
From: |
Bjørn Christensen |
Subject: |
RE: [sr #107464] Secure Connections on AIX using non blocking socket |
Date: |
Thu, 26 Aug 2010 11:47:32 +0200 |
Hello Nikos!
The code in _gnutls_read fires a gnutls_assert if recv return -1 and the errno
is different from EAGAIN and EINTR. _gnutls_read function returns
GNUTLS_E_PULL_ERROR.
I think the assertion leads to the HandShake being terminated.
In the _gnutls_read when recv returns -1 and no errno it is treated as a fatal
error assert and GNUTLS_E_PULL_ERROR.
Mayby is would be enough to not return the GNUTLS_E_PULL_ERROR if the errno is
zero?
/bhc
-----Original Message-----
From: address@hidden [mailto:address@hidden On Behalf Of Nikos Mavrogiannopoulos
Sent: 26. august 2010 11:38
To: Bjørn Christensen
Cc: address@hidden
Subject: Re: [sr #107464] Secure Connections on AIX using non blocking socket
2010/8/26 Bjørn Christensen <address@hidden>:
> I have tried to remove the hack I have put into the _gnutls_read and added
> gnutls_transport_set_lowat() to zero.
> That does not solve the problem, recv still return -1 with no errno set and
> that still causes _gnutls_read to assert.
> I can not set in which context it would be ok to return -1 from recv and not
> set the errno.
A call might return -1 and no errno, but this should be treated as
fatal error and not as EINTR or EAGAIN. That's why we cannot add such
a hack to main code. You'd better keep the hack then and file a bug
report on AIX.
regards,
Nikos