>From: owner-openssl-us...@openssl.org On Behalf Of Derek Cole
>Sent: Sunday, 14 October, 2012 17:36

>I am trying to use SSL_connect. I have bound a socket to my interface, 
>set up the context, and call SSL_connect(). This is returning a -1, 
>which I catch, and call SSL_get_error() to fall through a switch 
>statement. It is retuning a SSL_ERROR_WANT_WRITE

Presumably on a nonblocking socket, or you shouldn't get WANT_WRITE.
And presumably you mean an SSL object created from an SSL_CTX object.
Although both of these can be called context in a generic sense, 
openssl uses that term for SSL_CTX.

>So I am trying to use pselect in a while loop here to get the return. 
>I call SSL_get_fd() to get the file descriptor, FD_SET() to add 
>to my fd_set, and then pselect(ssl_fd+1, 0, &fds, 0, &timeout, NULL)
>This reaches my timeout every time. Is there a reason to see why 
>it is not connecting, even though the intiial SSL_connect returned
WANT_WRITE? 
        
You say you bound the socket (which isn't usually needed on an 
outgoing connection) but you don't say you TCP-connected it. 
Only after it's connected -- and I believe fully-connected 
for nonblocking, but I'm not positive of that -- can it show 
either writable or readable to pselect et amici.

SSL_connect only does the SSL part, not the TCP part. 
If you use connect_BIO to create the socket, *it* does 
the TCP-connect, but in that case you wouldn't directly 
manipulate the socket as you describe.

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to