mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
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:
commit
b1e73137f3
@ -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)
|
||||
{
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user