Discussion:
boost asio ssl read issue
(too old to reply)
Ananth
2016-10-24 16:27:37 UTC
Permalink
Hi,

I have posted the question here at StackForge with all the details.

http://stackoverflow.com/questions/40163626/boost-asio-
ssl-not-working-as-expected-when-used-with-null-buffers

Basically, http://www.boost.org/doc/libs/1_40_0/doc/html/
boost_asio/overview/core/reactor.html
did not work when used with ssl. With plain-tcp steam socket, it works fine.

o If we do ssl_socket->lowest_layer().async_read_some(null_buffers(),
read_cb), then we do get all data in read_cb, but read_cb keep getting
called endlessly (and read_some then returns 0, with error 11 resource
unavailable) (This causes cpu remain over-utilized for ever)

If we do ssl_socket->async_read_some(null_buffers(), read_cb), then it
works fine with small amounts of data. When larger data is to be received
(~20MB or so), then not all data is received. around 1% of data towards the
end is never received by the application. My guess is that data is sitting
in openssl library some where

I tried with latest ssl and boost code, but that did not help either.

Can some one please help ?

Thanks,
Ananth
Ananth
2016-10-24 16:32:43 UTC
Permalink
Never mind. I did not realize that this is not a boost specific email
group. I have posted the same to boost-***@lists.boost.org

Thanks
Ananth
Post by Ananth
Hi,
I have posted the question here at StackForge with all the details.
http://stackoverflow.com/questions/40163626/boost-asio-
ssl-not-working-as-expected-when-used-with-null-buffers
Basically, http://www.boost.org/doc/libs/1_40_0/doc/html/
boost_asio/overview/core/reactor.html
did not work when used with ssl. With plain-tcp steam socket, it works
fine.
o If we do ssl_socket->lowest_layer().async_read_some(null_buffers(),
read_cb), then we do get all data in read_cb, but read_cb keep getting
called endlessly (and read_some then returns 0, with error 11 resource
unavailable) (This causes cpu remain over-utilized for ever)
If we do ssl_socket->async_read_some(null_buffers(), read_cb), then it
works fine with small amounts of data. When larger data is to be received
(~20MB or so), then not all data is received. around 1% of data towards the
end is never received by the application. My guess is that data is sitting
in openssl library some where
I tried with latest ssl and boost code, but that did not help either.
Can some one please help ?
Thanks,
Ananth
Loading...