|
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