On Wed, Feb 19, 2003 at 06:10:13PM +0100, Ralph via RT wrote: > on AIX (64bit) I noticed a major problem with non-blocking sockets. > Methods SSL_connect(), SSL_read() and SSL_write() should return > SSL_ERROR_WANT_READ or SSL_ERROR_WANT_WRITE if they need to complete > their tasks but the socket couldn't handle all the work. > > But instead, the methods return SSL_ERROR_SYSCALL when the underlying > socket gave errno=EWOULDBLOCK or errno=EAGAIN (means: the application > should retry with these functions if it has not been completed, yet) > from their respective functions (read() and write()). > > For these specific system error numbers, the SSL functions should return > SSL_ERROR_WANT_* return codes, shouldn't they?
> PS: However, on AIX 4.2 and earlier, this didn't seem to be a problem. > Funny, isn't it? (But these versions are not supported by IBM anymore!) It's not SSL_connect() etc. that will return these error codes, it's SSL_get_error(). But probably you meant that, or you would not get SSL_ERROR_SYSCALL. Can you tell what is going on by looking at the definition of SSL_get_error (ssl/ssl_lib.c) and BIO_sock_should_retry and BIO_sock_non_fatal_error (crypto/bio/bss_bio.c)? You might want to add some debugging output in BIO_sock_non_fatal_error(). -- Bodo Möller <[EMAIL PROTECTED]> PGP http://www.informatik.tu-darmstadt.de/TI/Mitarbeiter/moeller/0x36d2c658.html * TU Darmstadt, Theoretische Informatik, Alexanderstr. 10, D-64283 Darmstadt * Tel. +49-6151-16-6628, Fax +49-6151-16-6036 ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]