There needs to be a call to fcntl(fd,F_SETFL,O_NONBLOCK) just after the socket() call and error status check.
-Kyle H On Thu, Nov 6, 2008 at 8:08 AM, Ben Sandee <[EMAIL PROTECTED]> wrote: > Hi there, > > I'm investigating a case where a customer's prngd service was blocking, > which by itself is not supposed to happen AFAIK. This was causing a > hard-to-diagnose startup hang for our code that uses OpenSSL. The call to > RAND_egd() was blocking in a call to read(). > > I would like to address this issue so that even with a misbehaving prngd, > our code will fail reliably rather than hanging. The documentation for > RAND_egd() states specifically that non-blocking I/O is used to read from > the EGD; analysis of the code leads me to believe otherwise, but I'm not > particularly familiar with networking code. > > Can anyone confirm my suspicions that the reads are indeed taking place > using blocking sockets and that the documentation is wrong? I believe the > code in question is in rand_egd.c and the documentation is in the > RAND_egd.pod (the "Notes" section, second paragraph). > > Thanks! > Ben > ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager [EMAIL PROTECTED]