Browse Source

NetworkClient Debugging

v0.9.4
Guy Turcotte 2 years ago
parent
commit
cf43331964
  1. 25
      src/services/network_client.cpp

25
src/services/network_client.cpp

@ -211,18 +211,27 @@ static esp_err_t http_event_handler(esp_http_client_event_t * evt)
//ESP_LOGI(TAG, "key = %s, value = %s", evt->header_key, evt->header_value);
if (strcmp("Content-Length", evt->header_key) == 0) {
buffer_size = atoi(evt->header_value);
if (buffer_size > 0) {
buffer_ptr = buffer = new uint8_t[buffer_size];
}
}
break;
case HTTP_EVENT_ON_DATA:
ESP_LOGI(TAG, "HTTP_EVENT_ON_DATA, len=%d", evt->data_len);
if (!esp_http_client_is_chunked_response(evt->client)) {
//ESP_LOGI(TAG, "len = %d, %.*s", evt->data_len, evt->data_len, (char*)evt->data);
if ((buffer_ptr != nullptr) && ((buffer_ptr + evt->data_len) <= (buffer + buffer_size))) {
memcpy(buffer_ptr, evt->data, evt->data_len);
buffer_ptr += evt->data_len;
if ((buffer == nullptr) && (buffer_size > 0) {
buffer_ptr = buffer = (uint8_t *) malloc(buffer_size);
}
if (buffer_ptr != nullptr) {
if ((buffer_ptr + evt->data_len) <= (buffer + buffer_size)) {
memcpy(buffer_ptr, evt->data, evt->data_len);
buffer_ptr += evt->data_len;
}
else {
int size = (buffer + buffer_size) - buffer_ptr;
if ((size > 0) && (size <= evt->data_len)) {
memcpy(buffer_ptr, evt->data, size);
buffer_ptr += size;
}
}
}
}
@ -244,7 +253,7 @@ NetworkClient::downloadFile(const char * url, int32_t * defaultLen)
if (!connected) return nullptr;
buffer = buffer_ptr = nullptr;
buffer_size = -1;
buffer_size = *defaultLen;
esp_http_client_config_t config;
@ -263,5 +272,7 @@ NetworkClient::downloadFile(const char * url, int32_t * defaultLen)
}
esp_http_client_cleanup(client);
*defaultLen = buffer_size;
return buffer;
}

Loading…
Cancel
Save