That was the trick - I was trying to write to a  :
  BIO* bioMem = BIO_new(BIO_f_buffer());

which doesn't really make sense.

Indeed, this is working:
    BIO* bioMem = BIO_new(BIO_s_mem());
    SSL_set_bio(m_ssl, NULL, bioMem);
    SSL_write(m_ssl, responseData, nRespDataSize);

My SSL object (m_ssl) now has wbio set to the new "memory buffer" BIO (bioMem),
and bioMem shows the correct number of bytes written in num_write.

Good catch - many thanks!
n8



--------------------------------------------------------------------------------
From: owner-openssl-us...@openssl.org
[mailto:owner-openssl-us...@openssl.org] On Behalf Of Galina Goncharov
Sent: Sunday, March 15, 2009 9:14 PM
To: openssl-users@openssl.org
Subject: Re: TLS, BIOs, SSL_read/write


an other thought - I didn't notice your third SSL_set_bio(m_ssl, NULL,
bioMem); so my suggestion wasn't quite correct.
and its always usfull to get error by calling SSL_get_error() - it can
point to right direction.


and below is from other thread:


=====
The BIO_new_mem_buf creates a read-only buffer.
If you want to write to memory use
bio = BIO_new(BIO_s_mem());
and use BIO_get_mem_ptr to get a pointer to the buffer.
===




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

Reply via email to