| 5415 | } |
| 5416 | |
| 5417 | inline bool Server::routing(Request &req, Response &res, Stream &strm) { |
| 5418 | if (pre_routing_handler_ && |
| 5419 | pre_routing_handler_(req, res) == HandlerResponse::Handled) { |
| 5420 | return true; |
| 5421 | } |
| 5422 | |
| 5423 | // File handler |
| 5424 | bool is_head_request = req.method == "HEAD"; |
| 5425 | if ((req.method == "GET" || is_head_request) && |
| 5426 | handle_file_request(req, res, is_head_request)) { |
| 5427 | return true; |
| 5428 | } |
| 5429 | |
| 5430 | if (detail::expect_content(req)) { |
| 5431 | // Content reader handler |
| 5432 | { |
| 5433 | ContentReader reader( |
| 5434 | [&](ContentReceiver receiver) { |
| 5435 | return read_content_with_content_receiver( |
| 5436 | strm, req, res, std::move(receiver), nullptr, nullptr); |
| 5437 | }, |
| 5438 | [&](MultipartContentHeader header, ContentReceiver receiver) { |
| 5439 | return read_content_with_content_receiver(strm, req, res, nullptr, |
| 5440 | std::move(header), |
| 5441 | std::move(receiver)); |
| 5442 | }); |
| 5443 | |
| 5444 | if (req.method == "POST") { |
| 5445 | if (dispatch_request_for_content_reader( |
| 5446 | req, res, std::move(reader), |
| 5447 | post_handlers_for_content_reader_)) { |
| 5448 | return true; |
| 5449 | } |
| 5450 | } else if (req.method == "PUT") { |
| 5451 | if (dispatch_request_for_content_reader( |
| 5452 | req, res, std::move(reader), |
| 5453 | put_handlers_for_content_reader_)) { |
| 5454 | return true; |
| 5455 | } |
| 5456 | } else if (req.method == "PATCH") { |
| 5457 | if (dispatch_request_for_content_reader( |
| 5458 | req, res, std::move(reader), |
| 5459 | patch_handlers_for_content_reader_)) { |
| 5460 | return true; |
| 5461 | } |
| 5462 | } else if (req.method == "DELETE") { |
| 5463 | if (dispatch_request_for_content_reader( |
| 5464 | req, res, std::move(reader), |
| 5465 | delete_handlers_for_content_reader_)) { |
| 5466 | return true; |
| 5467 | } |
| 5468 | } |
| 5469 | } |
| 5470 | |
| 5471 | // Read content into `req.body` |
| 5472 | if (!read_content(strm, req, res)) { return false; } |
| 5473 | } |
| 5474 |
nothing calls this directly
no test coverage detected