> I was thinking about an alternate solution, using blocking sockets,
> and doing the connect on another thread. If the user cancels the
> operation I'd close the socket (BIO_free) and I guess the connect
> would return with an error and the thread would exit then. Seems a
> little dirty but it could simplify my life. What do you think?
>
> Cheers,
> Gabriel.


I wouldn't recommend that for three reasons. First, you may be on a platform
that doesn't support threads or doesn't support threads well. Second, there
will always be a race window where the user might close the socket right as
you're about to call 'connect'. If that happens, you may wind up
'connect'ing somoene else's socket. Third, it has a complexity and
hackishness that increases the risk that odd things will happen.

Calling 'getpeername' is a pretty common way to determine if a socket is
connected.

DS


__________________________________________________ ____________________
OpenSSL Project http://www.openssl.org
User Support Mailing List openssl-users@openssl.org
Automated List Manager majordomo@openssl.org