| 15 | static const auto LOGGER = Logger("HttpdReq"); |
| 16 | |
| 17 | bool getHeaderOrSendError(httpd_req_t* request, const std::string& name, std::string& value) { |
| 18 | size_t header_size = httpd_req_get_hdr_value_len(request, name.c_str()); |
| 19 | if (header_size == 0) { |
| 20 | httpd_resp_send_err(request, HTTPD_400_BAD_REQUEST, "header missing"); |
| 21 | return false; |
| 22 | } |
| 23 | |
| 24 | auto header_buffer = std::make_unique<char[]>(header_size + 1); |
| 25 | if (header_buffer == nullptr) { |
| 26 | LOGGER.error( LOG_MESSAGE_ALLOC_FAILED); |
| 27 | httpd_resp_send_500(request); |
| 28 | return false; |
| 29 | } |
| 30 | |
| 31 | if (httpd_req_get_hdr_value_str(request, name.c_str(), header_buffer.get(), header_size + 1) != ESP_OK) { |
| 32 | httpd_resp_send_500(request); |
| 33 | return false; |
| 34 | } |
| 35 | |
| 36 | value = header_buffer.get(); |
| 37 | return true; |
| 38 | } |
| 39 | |
| 40 | bool getMultiPartBoundaryOrSendError(httpd_req_t* request, std::string& boundary) { |
| 41 | std::string content_type_header; |
no test coverage detected