Added error logging for ws send, and naming for fs ws

This commit is contained in:
Niklas Jensen
2026-01-15 20:05:46 +01:00
committed by Rune Harlyk
parent 4fa3939209
commit 6b96d0deba
2 changed files with 21 additions and 13 deletions
@@ -34,7 +34,12 @@ void Websocket::send(const uint8_t* data, size_t len, int cid) {
if (cid >= 0) { if (cid >= 0) {
auto* client = socket_.getClient(cid); auto* client = socket_.getClient(cid);
if (client) { if (client) {
client->sendMessage(HTTPD_WS_TYPE_BINARY, data, len); esp_err_t err = client->sendMessage(HTTPD_WS_TYPE_BINARY, data, len);
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to send message to client %d: %s (len=%u)", cid, esp_err_to_name(err), len);
}
} else {
ESP_LOGW(TAG, "Client %d not found for send", cid);
} }
} else { } else {
socket_.sendAll(HTTPD_WS_TYPE_BINARY, data, len); socket_.sendAll(HTTPD_WS_TYPE_BINARY, data, len);
+15 -12
View File
@@ -291,17 +291,17 @@ socket_message_FSUploadStartResponse FileSystemHandler::handleUploadStart(const
} }
socket_message_FSUploadChunkResponse FileSystemHandler::handleUploadChunk(const socket_message_FSUploadChunkRequest& req) { socket_message_FSUploadChunkResponse FileSystemHandler::handleUploadChunk(const socket_message_FSUploadChunkRequest& req) {
socket_message_FSUploadChunkResponse response = socket_message_FSUploadChunkResponse_init_zero; socket_message_FSUploadChunkResponse fs_up_response = socket_message_FSUploadChunkResponse_init_zero;
std::string transferId(req.transfer_id); std::string transferId(req.transfer_id);
strncpy(response.transfer_id, transferId.c_str(), sizeof(response.transfer_id) - 1); strncpy(fs_up_response.transfer_id, transferId.c_str(), sizeof(fs_up_response.transfer_id) - 1);
response.chunk_index = req.chunk_index; fs_up_response.chunk_index = req.chunk_index;
auto it = transfers_.find(transferId); auto it = transfers_.find(transferId);
if (it == transfers_.end()) { if (it == transfers_.end()) {
response.success = false; fs_up_response.success = false;
strncpy(response.error, "Invalid transfer ID", sizeof(response.error) - 1); strncpy(fs_up_response.error, "Invalid transfer ID", sizeof(fs_up_response.error) - 1);
return response; return fs_up_response;
} }
TransferState& state = it->second; TransferState& state = it->second;
@@ -310,16 +310,19 @@ socket_message_FSUploadChunkResponse FileSystemHandler::handleUploadChunk(const
// Write chunk data // Write chunk data
size_t bytesWritten = state.file.write(req.data.bytes, req.data.size); size_t bytesWritten = state.file.write(req.data.bytes, req.data.size);
if (bytesWritten != req.data.size) { if (bytesWritten != req.data.size) {
response.success = false; fs_up_response.success = false;
strncpy(response.error, "Failed to write chunk", sizeof(response.error) - 1); strncpy(fs_up_response.error, "Failed to write chunk", sizeof(fs_up_response.error) - 1);
state.file.close(); state.file.close();
transfers_.erase(it); transfers_.erase(it);
return response; return fs_up_response;
} }
// Flush to ensure data is written
state.file.flush();
state.chunksProcessed++; state.chunksProcessed++;
response.success = true; fs_up_response.success = true;
response.transfer_complete = req.is_last; fs_up_response.transfer_complete = req.is_last;
ESP_LOGI(TAG, "Upload chunk %u/%u: %u bytes", state.chunksProcessed, state.totalChunks, bytesWritten); ESP_LOGI(TAG, "Upload chunk %u/%u: %u bytes", state.chunksProcessed, state.totalChunks, bytesWritten);
@@ -330,7 +333,7 @@ socket_message_FSUploadChunkResponse FileSystemHandler::handleUploadChunk(const
ESP_LOGI(TAG, "Upload completed: %s", state.path.c_str()); ESP_LOGI(TAG, "Upload completed: %s", state.path.c_str());
} }
return response; return fs_up_response;
} }
socket_message_FSCancelTransferResponse FileSystemHandler::handleCancelTransfer(const socket_message_FSCancelTransferRequest& req) { socket_message_FSCancelTransferResponse FileSystemHandler::handleCancelTransfer(const socket_message_FSCancelTransferRequest& req) {