Fixed crash on server when Content-Length parameter was set to a non-number.
This commit is contained in:
parent
739da9c1e6
commit
d74505ed86
1 changed files with 15 additions and 10 deletions
|
|
@ -272,16 +272,21 @@ namespace SimpleWeb {
|
||||||
std::shared_ptr<boost::asio::deadline_timer> timer;
|
std::shared_ptr<boost::asio::deadline_timer> timer;
|
||||||
if(timeout_content>0)
|
if(timeout_content>0)
|
||||||
timer=set_timeout_on_socket(socket, timeout_content);
|
timer=set_timeout_on_socket(socket, timeout_content);
|
||||||
|
try {
|
||||||
boost::asio::async_read(*socket, request->streambuf,
|
auto content_length=stoull(it->second);
|
||||||
boost::asio::transfer_exactly(stoull(it->second)-num_additional_bytes),
|
boost::asio::async_read(*socket, request->streambuf,
|
||||||
[this, socket, request, timer]
|
boost::asio::transfer_exactly(stoull(it->second)-num_additional_bytes),
|
||||||
(const boost::system::error_code& ec, size_t /*bytes_transferred*/) {
|
[this, socket, request, timer]
|
||||||
if(timeout_content>0)
|
(const boost::system::error_code& ec, size_t /*bytes_transferred*/) {
|
||||||
timer->cancel();
|
if(timeout_content>0)
|
||||||
if(!ec)
|
timer->cancel();
|
||||||
find_resource(socket, request);
|
if(!ec)
|
||||||
});
|
find_resource(socket, request);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch(const std::exception& e) {
|
||||||
|
std::cerr << e.what() << std::endl;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
find_resource(socket, request);
|
find_resource(socket, request);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue