forked from boostorg/beast
@@ -3,6 +3,7 @@
|
|||||||
WebSocket:
|
WebSocket:
|
||||||
|
|
||||||
* Add websocket async echo ssl server test:
|
* Add websocket async echo ssl server test:
|
||||||
|
* Fix eof error on ssl::stream shutdown
|
||||||
|
|
||||||
API Changes:
|
API Changes:
|
||||||
|
|
||||||
|
@@ -170,6 +170,12 @@ operator()(error_code ec,
|
|||||||
};
|
};
|
||||||
|
|
||||||
auto& d = *d_;
|
auto& d = *d_;
|
||||||
|
if(d.state == do_teardown + 1 && ec == boost::asio::error::eof)
|
||||||
|
{
|
||||||
|
// Rationale:
|
||||||
|
// http://stackoverflow.com/questions/25587403/boost-asio-ssl-async-shutdown-always-finishes-with-an-error
|
||||||
|
ec = {};
|
||||||
|
}
|
||||||
if(! ec)
|
if(! ec)
|
||||||
{
|
{
|
||||||
d.cont = d.cont || again;
|
d.cont = d.cont || again;
|
||||||
@@ -952,6 +958,12 @@ do_close:
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
websocket_helpers::call_teardown(next_layer(), ec);
|
websocket_helpers::call_teardown(next_layer(), ec);
|
||||||
|
if(ec == boost::asio::error::eof)
|
||||||
|
{
|
||||||
|
// Rationale:
|
||||||
|
// http://stackoverflow.com/questions/25587403/boost-asio-ssl-async-shutdown-always-finishes-with-an-error
|
||||||
|
ec = {};
|
||||||
|
}
|
||||||
failed_ = ec != 0;
|
failed_ = ec != 0;
|
||||||
if(failed_)
|
if(failed_)
|
||||||
return;
|
return;
|
||||||
@@ -960,7 +972,14 @@ do_close:
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(! ec)
|
if(! ec)
|
||||||
|
{
|
||||||
websocket_helpers::call_teardown(next_layer(), ec);
|
websocket_helpers::call_teardown(next_layer(), ec);
|
||||||
|
if(ec == boost::asio::error::eof)
|
||||||
|
{
|
||||||
|
// (See above)
|
||||||
|
ec = {};
|
||||||
|
}
|
||||||
|
}
|
||||||
if(! ec)
|
if(! ec)
|
||||||
ec = error::closed;
|
ec = error::closed;
|
||||||
failed_ = ec != 0;
|
failed_ = ec != 0;
|
||||||
|
Reference in New Issue
Block a user