Skip to content
Snippets Groups Projects
Commit c9076bf1 authored by Eric Younger's avatar Eric Younger
Browse files

Fixed string to float conversion by adding a try catch for invalid inputs.

parent 260755ec
No related branches found
No related tags found
No related merge requests found
......@@ -744,6 +744,7 @@ namespace SimpleWeb {
void write(const std::shared_ptr<Session> &session,
std::function<void(std::shared_ptr<typename ServerBase<socket_type>::Response>, std::shared_ptr<typename ServerBase<socket_type>::Request>)> &resource_function) {
auto response = std::shared_ptr<Response>(new Response(session, config.timeout_content), [this](Response *response_ptr) {
auto response = std::shared_ptr<Response>(response_ptr);
response->send_on_delete([this, response](const error_code &ec) {
......@@ -762,11 +763,21 @@ namespace SimpleWeb {
return;
}
}
try{
if(std::stof(response->session->request->http_version) >= 1.1) {
auto new_session = std::make_shared<Session>(this->config.max_request_streambuf_size, response->session->connection);
this->read(new_session);
return;
}
} catch (const std::invalid_argument& ex) {
std::cerr << "Invalid argument: " << "Http Version not valid" << '\n';
} catch(const std::out_of_range& ex){
std::cerr << "Invalid argument: " << "Http Version too large" << '\n';
}
}
else if(this->on_error)
this->on_error(response->session->request, ec);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment