mirror of
https://github.com/espressif/esp-protocols.git
synced 2025-07-16 20:12:13 +02:00
fix(websocket): Return status code correctly on esp_websocket_client_send_with_opcode
This commit is contained in:
committed by
Suren Gabrielyan
parent
3e8de3af3a
commit
ac8f1de187
@ -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)
|
||||||
|
Reference in New Issue
Block a user