| 5823 | } |
| 5824 | |
| 5825 | inline bool Server::routing(Request &req, Response &res, Stream &strm) { |
| 5826 | if (pre_routing_handler_ && |
| 5827 | pre_routing_handler_(req, res) == HandlerResponse::Handled) { |
| 5828 | return true; |
| 5829 | } |
| 5830 | |
| 5831 | // File handler |
| 5832 | bool is_head_request = req.method == "HEAD"; |
| 5833 | if ((req.method == "GET" || is_head_request) && |
| 5834 | handle_file_request(req, res, is_head_request)) { |
| 5835 | return true; |
| 5836 | } |
| 5837 | |
| 5838 | if (detail::expect_content(req)) { |
| 5839 | // Content reader handler |
| 5840 | { |
| 5841 | ContentReader reader( |
| 5842 | [&](ContentReceiver receiver) { |
| 5843 | return read_content_with_content_receiver( |
| 5844 | strm, req, res, std::move(receiver), nullptr, nullptr); |
| 5845 | }, |
| 5846 | [&](MultipartContentHeader header, ContentReceiver receiver) { |
| 5847 | return read_content_with_content_receiver(strm, req, res, nullptr, |
| 5848 | std::move(header), |
| 5849 | std::move(receiver)); |
| 5850 | }); |
| 5851 | |
| 5852 | if (req.method == "POST") { |
| 5853 | if (dispatch_request_for_content_reader( |
| 5854 | req, res, std::move(reader), |
| 5855 | post_handlers_for_content_reader_)) { |
| 5856 | return true; |
| 5857 | } |
| 5858 | } else if (req.method == "PUT") { |
| 5859 | if (dispatch_request_for_content_reader( |
| 5860 | req, res, std::move(reader), |
| 5861 | put_handlers_for_content_reader_)) { |
| 5862 | return true; |
| 5863 | } |
| 5864 | } else if (req.method == "PATCH") { |
| 5865 | if (dispatch_request_for_content_reader( |
| 5866 | req, res, std::move(reader), |
| 5867 | patch_handlers_for_content_reader_)) { |
| 5868 | return true; |
| 5869 | } |
| 5870 | } else if (req.method == "DELETE") { |
| 5871 | if (dispatch_request_for_content_reader( |
| 5872 | req, res, std::move(reader), |
| 5873 | delete_handlers_for_content_reader_)) { |
| 5874 | return true; |
| 5875 | } |
| 5876 | } |
| 5877 | } |
| 5878 | |
| 5879 | // Read content into `req.body` |
| 5880 | if (!read_content(strm, req, res)) { return false; } |
| 5881 | } |
| 5882 |
nothing calls this directly
no test coverage detected