Avoid 507, reduce buffer stepwise until it fits

This commit is contained in:
MichaelDvP
2022-12-27 10:22:28 +01:00
parent 28de5bb097
commit a41de7ed1c
3 changed files with 15 additions and 21 deletions

View File

@@ -200,14 +200,12 @@ void WebCustomizationService::devices(AsyncWebServerRequest * request) {
// send back list of device entities
void WebCustomizationService::device_entities(AsyncWebServerRequest * request, JsonVariant & json) {
if (json.is<JsonObject>()) {
auto * response = new MsgpackAsyncJsonResponse(true, EMSESP_JSON_SIZE_XXXLARGE_DYN);
if (!response->getSize()) {
size_t buffer = EMSESP_JSON_SIZE_XXXLARGE_DYN;
auto * response = new PrettyAsyncJsonResponse(true, buffer);
while (!response->getSize()) {
delete response;
response = new MsgpackAsyncJsonResponse(true, 256);
response->setCode(507); // Insufficient Storage
response->setLength();
request->send(response);
return;
buffer -= 1024;
response = new PrettyAsyncJsonResponse(true, buffer);
}
for (const auto & emsdevice : EMSESP::emsdevices) {
if (emsdevice->unique_id() == json["id"]) {