To Md Lazreg:

I think I found it.

     ready_sockets = ::select(m_max_socket + 1, rfds, 0, 0,&tv);
     if (ready_sockets > 0)
     {
        if (FD_ISSET(s->get_sock(),p->get_rfds()))
        {
           new_s->set_non_blocking(true); /* GAK!!!! */
           if (s->accept(new_s))
           { /* HERE */
                      call the code above which will call SSL_accept
           }
           else
           {
            /*error handling*/
           }


The line marked with the 'GAK' should be:

                s->set_non_blocking(true);

You don't want the listening socket to block when you call 'accept' on it.
You can't make the newly-accepted socket non-blocking until after it exists.

At the 'HERE' tag, you should probably have a:
                new_s->set_non_blocking(true);

Because you don't want the newly-accepted connection to block either.
(Though you may already cover that by setting the BIO non-blocking.)

        DS


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to