MCPcopy Create free account
hub / github.com/CalcProgrammer1/OpenRGB / routing

Method routing

dependencies/httplib/httplib.h:5417–5492  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5415}
5416
5417inline 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

Callers

nothing calls this directly

Calls 2

expect_contentFunction · 0.85
read_contentFunction · 0.85

Tested by

no test coverage detected