Merge branch 'fix/esp_mbedtls_write_api' into 'master'

Fix esp_mbedtls_write API

Closes IDFGH-5751

See merge request espressif/esp-idf!15171
This commit is contained in:
Aditya Patwardhan 2021-09-15 17:42:21 +00:00
commit b1e73137f3
3 changed files with 7 additions and 3 deletions

View File

@ -404,6 +404,10 @@ int esp_tls_conn_http_new_async(const char *url, const esp_tls_cfg_t *cfg, esp_t
* of bytes actually written to the TLS/SSL connection.
* - <0 if write operation was not successful, because either an
* error occured or an action must be taken by the calling process.
* - ESP_TLS_ERR_SSL_WANT_READ/
* ESP_TLS_ERR_SSL_WANT_WRITE.
* if the handshake is incomplete and waiting for data to be available for reading.
* In this case this functions needs to be called again when the underlying transport is ready for operation.
*/
static inline ssize_t esp_tls_conn_write(esp_tls_t *tls, const void *data, size_t datalen)
{

View File

@ -198,10 +198,10 @@ ssize_t esp_mbedtls_write(esp_tls_t *tls, const char *data, size_t datalen)
mbedtls_print_error_msg(ret);
return ret;
} else {
// Exitting the tls-write process as less than desired datalen are writable
// Exiting the tls-write process as less than desired datalen are writable
ESP_LOGD(TAG, "mbedtls_ssl_write() returned -0x%04X, already written %d, exitting...", -ret, written);
mbedtls_print_error_msg(ret);
return written;
return (written > 0) ? written : ret;
}
}
written += ret;

View File

@ -409,7 +409,7 @@ ssize_t esp_wolfssl_read(esp_tls_t *tls, char *data, size_t datalen)
ssize_t esp_wolfssl_write(esp_tls_t *tls, const char *data, size_t datalen)
{
ssize_t ret = wolfSSL_write( (WOLFSSL *)tls->priv_ssl, (unsigned char *) data, datalen);
if (ret < 0) {
if (ret <= 0) {
int err = wolfSSL_get_error( (WOLFSSL *)tls->priv_ssl, ret);
if (err != WOLFSSL_ERROR_WANT_READ && err != WOLFSSL_ERROR_WANT_WRITE) {
ESP_INT_EVENT_TRACKER_CAPTURE(tls->error_handle, ESP_TLS_ERR_TYPE_WOLFSSL, -err);