At 18:52 07/08/01 +0200, you wrote:
>On Tue, Aug 07, 2001 at 05:28:25PM +0100, Garrard Cole wrote:
>> I have an SSL-enabled POP server using OpenSSL 0.9.4. running on Windows NT
>> using non-blocking socket i/o.
>
>0.9.4 is quite old, a lot of bugs have been fixed since the release of 0.9.4.
>Please upgrade to 0.9.6b.
>
>> One particular customer has their POP client (Eudora 5.1) setup to check
>> mail every minute. After about an hour or so, the customer receives a
>> connection failure and the server log shows the SSL initialisation failed
>> with the following error
>>
>> error:00000000:lib(0):func(0):reason(0) (0)
>
>This means, that no error was detected.
>(error in the sense of a hard error internally detected in the library)
>
>> I include a code fragment below for the server accept function, which is
>> based on some OpenSSL sample code.
>>
>> I dont know how to resolve this. Any suggestions? Is the error handling
>> correct?
>
>No. Please check out SSL_get_error() with all options, especially
>SSL_ERROR_ZERO_RETURN.
>
This conflicts with the actions described in the notes for SSL_accept with
non-blocking sockets. Are these notes incorrect or incomplete?
>You could use ssldump to get a dump of the faulty connection, but you will
>see quite a lot of data before it comes to the interesting part.
>
>> AFAIK, Eudora uses it's own SSL implementation. Assuming this, are there
>> any known interoperability issues between OpenSSL and the Eudora
>> implementation?
>
>I have not heard of any (whatever this means :-).
>
>> do
>> {
>> err = SSL_accept( ssl );
>> error = SSL_get_error( ssl, err );
>> } while ( error == SSL_ERROR_WANT_READ || error ==
SSL_ERROR_WANT_WRITE );
>
>Did you leave out select() (or whatever its called on Windblows)? If not,
>you are burning cycles waiting on the process to continue.
>
select can be used Windblows in much the same way as on Eunuchs.
>At this point, further evalute "error", at least print it to get more
>information.
>
>
>> if ( err <= 0 )
>> {
>
>> error = ERR_get_error();
>>
>> ERR_error_string( error, buf );
>
>Read the manual page for ERR_get_error(). "error == 0" means, that no
>more errors are in the error queue:
> if (error != 0)
> ERR_error_string(error, buf);
>
>Best regards,
> Lutz
>--
>Lutz Jaenicke [EMAIL PROTECTED]
>BTU Cottbus http://www.aet.TU-Cottbus.DE/personen/jaenicke/
>Lehrstuhl Allgemeine Elektrotechnik Tel. +49 355 69-4129
>Universitaetsplatz 3-4, D-03044 Cottbus Fax. +49 355 69-4153
>______________________________________________________________________
>OpenSSL Project http://www.openssl.org
>User Support Mailing List [EMAIL PROTECTED]
>Automated List Manager [EMAIL PROTECTED]
>
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]