static ssize_t tls_read(struct esp_tls *tls, char *data, size_t datalen)
{
- return SSL_read(tls->ssl, data, datalen);
+ ssize_t ret = SSL_read(tls->ssl, data, datalen);
+ if (ret < 0) {
+ int err = SSL_get_error(tls->ssl, ret);
+ if (err != SSL_ERROR_WANT_WRITE && err != SSL_ERROR_WANT_READ) {
+ ESP_LOGE(TAG, "read error :%d:\n", ret);
+ }
+ return -err;
+ }
+ return ret;
}
static int esp_tcp_connect(const char *host, int hostlen, int port)
static ssize_t tls_write(struct esp_tls *tls, const char *data, size_t datalen)
{
- return SSL_write(tls->ssl, data, datalen);
+ ssize_t ret = SSL_write(tls->ssl, data, datalen);
+ if (ret < 0) {
+ int err = SSL_get_error(tls->ssl, ret);
+ if (err != SSL_ERROR_WANT_WRITE && err != SSL_ERROR_WANT_READ) {
+ ESP_LOGE(TAG, "write error :%d:\n", ret);
+ }
+ return -err;
+ }
+ return ret;
}
struct esp_tls *esp_tls_conn_new(const char *hostname, int hostlen, int port, struct esp_tls_cfg *cfg)