fix(websocket): Return status code correctly on esp_websocket_client_send_with_opcode

This commit is contained in:
Sojan James
2023-10-23 10:55:43 +05:30
committed by Suren Gabrielyan
parent 3e8de3af3a
commit ac8f1de187

View File

@ -1200,6 +1200,7 @@ int esp_websocket_client_send_fin(esp_websocket_client_handle_t client, TickType
int esp_websocket_client_send_with_opcode(esp_websocket_client_handle_t client, ws_transport_opcodes_t opcode, const uint8_t *data, int len, TickType_t timeout) int esp_websocket_client_send_with_opcode(esp_websocket_client_handle_t client, ws_transport_opcodes_t opcode, const uint8_t *data, int len, TickType_t timeout)
{ {
int ret = ESP_OK;
if (client == NULL || len < 0 || (data == NULL && len > 0)) { if (client == NULL || len < 0 || (data == NULL && len > 0)) {
ESP_LOGE(TAG, "Invalid arguments"); ESP_LOGE(TAG, "Invalid arguments");
return ESP_FAIL; return ESP_FAIL;
@ -1212,24 +1213,28 @@ int esp_websocket_client_send_with_opcode(esp_websocket_client_handle_t client,
if (!esp_websocket_client_is_connected(client)) { if (!esp_websocket_client_is_connected(client)) {
ESP_LOGE(TAG, "Websocket client is not connected"); ESP_LOGE(TAG, "Websocket client is not connected");
ret = ESP_FAIL;
goto unlock_and_return; goto unlock_and_return;
} }
if (client->transport == NULL) { if (client->transport == NULL) {
ESP_LOGE(TAG, "Invalid transport"); ESP_LOGE(TAG, "Invalid transport");
ret = ESP_FAIL;
goto unlock_and_return; goto unlock_and_return;
} }
if (esp_websocket_new_buf(client, true) != ESP_OK) { if (esp_websocket_new_buf(client, true) != ESP_OK) {
ESP_LOGE(TAG, "Failed to setup tx buffer"); ESP_LOGE(TAG, "Failed to setup tx buffer");
ret = ESP_FAIL;
goto unlock_and_return; goto unlock_and_return;
} }
if (esp_websocket_client_send_with_exact_opcode(client, opcode | WS_TRANSPORT_OPCODES_FIN, data, len, timeout) != true) { if (esp_websocket_client_send_with_exact_opcode(client, opcode | WS_TRANSPORT_OPCODES_FIN, data, len, timeout) != true) {
ESP_LOGE(TAG, "Failed to send the buffer"); ESP_LOGE(TAG, "Failed to send the buffer");
ret = ESP_FAIL;
goto unlock_and_return; goto unlock_and_return;
} }
unlock_and_return: unlock_and_return:
xSemaphoreGiveRecursive(client->lock); xSemaphoreGiveRecursive(client->lock);
return ESP_FAIL; return ret;
} }
bool esp_websocket_client_is_connected(esp_websocket_client_handle_t client) bool esp_websocket_client_is_connected(esp_websocket_client_handle_t client)