接前一篇文章:ESP32-C3在MQTT访问时出现“transport_base: Poll timeout or error”问题的分析(1)
前一篇文章在分析定位笔者所遇MQTT(MQTTs)传输时问题的时候,定位到了问题是出自于components\components\tcp_transport\transport_ssl.c的ssl_write函数。本回开始,就围绕ssl_write函数展开探究和解析,力求能够找到问题的根源,至少在此过程中对于乐鑫ESP-IDF的MQTT通讯底层代码机制有更深层次的了解,而这也正是笔者长期以来一直想做的事,正好借着这个机会、以此为契机进行展开。
为了便于理解和回顾,再次贴出笔者所欲问题以及代码出处。
components\components\tcp_transport\transport_ssl.c的ssl_write函数源码如下:
static int ssl_write(esp_transport_handle_t t, const char *buffer, int len, int timeout_ms)
{
int poll;
transport_esp_tls_t *ssl =