| 6803 | } |
| 6804 | |
| 6805 | inline bool Server::routing(Request &req, Response &res, Stream &strm) { |
| 6806 | if (pre_routing_handler_ && |
| 6807 | pre_routing_handler_(req, res) == HandlerResponse::Handled) { |
| 6808 | return true; |
| 6809 | } |
| 6810 | |
| 6811 | // File handler |
| 6812 | auto is_head_request = req.method == "HEAD"; |
| 6813 | if ((req.method == "GET" || is_head_request) && |
| 6814 | handle_file_request(req, res, is_head_request)) { |
| 6815 | return true; |
| 6816 | } |
| 6817 | |
| 6818 | if (detail::expect_content(req)) { |
| 6819 | // Content reader handler |
| 6820 | { |
| 6821 | ContentReader reader( |
| 6822 | [&](ContentReceiver receiver) { |
| 6823 | return read_content_with_content_receiver( |
| 6824 | strm, req, res, std::move(receiver), nullptr, nullptr); |
| 6825 | }, |
| 6826 | [&](MultipartContentHeader header, ContentReceiver receiver) { |
| 6827 | return read_content_with_content_receiver(strm, req, res, nullptr, |
| 6828 | std::move(header), |
| 6829 | std::move(receiver)); |
| 6830 | }); |
| 6831 | |
| 6832 | if (req.method == "POST") { |
| 6833 | if (dispatch_request_for_content_reader( |
| 6834 | req, res, std::move(reader), |
| 6835 | post_handlers_for_content_reader_)) { |
| 6836 | return true; |
| 6837 | } |
| 6838 | } else if (req.method == "PUT") { |
| 6839 | if (dispatch_request_for_content_reader( |
| 6840 | req, res, std::move(reader), |
| 6841 | put_handlers_for_content_reader_)) { |
| 6842 | return true; |
| 6843 | } |
| 6844 | } else if (req.method == "PATCH") { |
| 6845 | if (dispatch_request_for_content_reader( |
| 6846 | req, res, std::move(reader), |
| 6847 | patch_handlers_for_content_reader_)) { |
| 6848 | return true; |
| 6849 | } |
| 6850 | } else if (req.method == "DELETE") { |
| 6851 | if (dispatch_request_for_content_reader( |
| 6852 | req, res, std::move(reader), |
| 6853 | delete_handlers_for_content_reader_)) { |
| 6854 | return true; |
| 6855 | } |
| 6856 | } |
| 6857 | } |
| 6858 | |
| 6859 | // Read content into `req.body` |
| 6860 | if (!read_content(strm, req, res)) { return false; } |
| 6861 | } |
| 6862 |
nothing calls this directly
no test coverage detected