Boost logo

Boost :

From: Christopher Kohlhoff (chris_at_[hidden])
Date: 2006-07-14 08:43:39


EMalenfant_at_[hidden] wrote:
> I know next to nothing about asio's SSL implementation, but
> this reference to buffer sizes reminds me of a problem that we
> saw in a previous version of TAO:
> http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=1429
>
> The fix in that case was to enable partial writes in open ssl,
> using SSL_set_mode to enable SSL_MODE_ENABLE_PARTIAL_WRITE and
> SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER.

The symptoms in that bug report do sound similar based on what
Scott and Viktor have said.

Scott, you might try this change to see if it makes a difference:

--- include/asio/ssl/detail/openssl_stream_service.hpp 16 Jun 2006 11:52:28 -0000 1.11
+++ include/asio/ssl/detail/openssl_stream_service.hpp 14 Jul 2006 12:28:36 -0000
@@ -179,6 +179,7 @@
     impl = new impl_struct;
     impl->ssl = ::SSL_new(context.impl());
     ::SSL_set_mode(impl->ssl, SSL_MODE_ENABLE_PARTIAL_WRITE);
+ ::SSL_set_mode(impl->ssl, SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER);
     ::BIO* int_bio = 0;
     impl->ext_bio = 0;
     ::BIO_new_bio_pair(&int_bio, 8192, &impl->ext_bio, 8192);

However I'm not particularly optimistic that it's the same
problem, since SSL_MODE_ENABLE_PARTIAL_WRITE is already set and
from my reading of the code, the same buffer is reused until all
data is sent (so in theory SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER
is not needed).

Cheers,
Chris


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk