MCPcopy Create free account
hub / github.com/bmorcelli/Launcher / httpEventHandler

Function httpEventHandler

src/idf/idf_http_client.cpp:23–53  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

21};
22
23esp_err_t httpEventHandler(esp_http_client_event_t *evt) {
24 if (!evt || !evt->user_data) return ESP_OK;
25
26 HttpRequestContext *request = static_cast<HttpRequestContext *>(evt->user_data);
27 LauncherHttpResponse *response = request->response;
28 if (evt->event_id == HTTP_EVENT_ON_HEADER && response) {
29 int status = evt->client ? esp_http_client_get_status_code(evt->client) : 0;
30 if (status >= 300 && status < 400) return ESP_OK;
31 if (evt->header_key && evt->header_value && strcasecmp(evt->header_key, "Content-Length") == 0) {
32 response->content_length = atoll(evt->header_value);
33 } else if (
34 evt->header_key && evt->header_value && strcasecmp(evt->header_key, "Content-Range") == 0
35 ) {
36 strncpy(response->content_range, evt->header_value, sizeof(response->content_range) - 1);
37 response->content_range[sizeof(response->content_range) - 1] = '\0';
38 }
39 } else if (evt->event_id == HTTP_EVENT_ON_DATA && evt->data && evt->data_len > 0) {
40 int status = evt->client ? esp_http_client_get_status_code(evt->client) : 0;
41 if (status >= 300 && status < 400) { return ESP_OK; }
42 if (status > 0 && (status < 200 || status >= 300)) {
43 request->callbackOk = false;
44 return ESP_FAIL;
45 }
46 if (request->cb &&
47 !request->cb(static_cast<const uint8_t *>(evt->data), evt->data_len, request->ctx)) {
48 request->callbackOk = false;
49 return ESP_FAIL;
50 }
51 }
52 return ESP_OK;
53}
54
55bool executeGet(
56 const char *url, LauncherHttpChunkCb cb, void *ctx, LauncherHttpResponse *response, const char *headerKey,

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected