From 13cc46c50949df81b7741b6f015ce8a1a2e9bf30 Mon Sep 17 00:00:00 2001 From: yougaliu Date: Mon, 26 Aug 2019 15:36:16 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E4=BF=AE=E6=AD=A3http=E6=8E=A5=E6=94=B6?= =?UTF-8?q?=E7=9A=84=E8=B6=85=E6=97=B6=E5=88=A4=E6=96=AD=E3=80=82=202.=20l?= =?UTF-8?q?ist=5Fremove=E5=A2=9E=E5=8A=A0list=E9=95=BF=E5=BA=A6=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/farra/utils_httpc.c | 20 ++++++++++++-------- src/utils/farra/utils_list.c | 3 ++- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/utils/farra/utils_httpc.c b/src/utils/farra/utils_httpc.c index a425205a..5b69925e 100644 --- a/src/utils/farra/utils_httpc.c +++ b/src/utils/farra/utils_httpc.c @@ -374,6 +374,8 @@ static int _http_client_recv(HTTPClient *client, char *buf, int min_len, int max else if (rc == QCLOUD_ERR_SSL_READ_TIMEOUT || rc == QCLOUD_ERR_TCP_READ_TIMEOUT) { if (*p_read_len == client_data->retrieve_len || client_data->retrieve_len == 0) rc = QCLOUD_ERR_SUCCESS; + else + Log_e("network_stack read timeout"); } else if (rc == QCLOUD_ERR_TCP_PEER_SHUTDOWN && *p_read_len > 0) { /* HTTP server give response and close this connection */ @@ -424,9 +426,11 @@ static int _http_client_retrieve_content(HTTPClient *client, char *data, int len if (rc != QCLOUD_ERR_SUCCESS) { IOT_FUNC_EXIT_RC(rc); - }else if(0 == left_ms(&timer)){ - IOT_FUNC_EXIT_RC(QCLOUD_ERR_HTTP_TIMEOUT); - } + } + if (0 == left_ms(&timer)) { + Log_e("HTTP read timeout!"); + IOT_FUNC_EXIT_RC(QCLOUD_ERR_HTTP_TIMEOUT); + } if (len == 0) { /* read no more data */ @@ -532,8 +536,10 @@ static int _http_client_retrieve_content(HTTPClient *client, char *data, int len rc = _http_client_recv(client, data, 1, max_len, &len, left_ms(&timer), client_data); if (rc != QCLOUD_ERR_SUCCESS) { IOT_FUNC_EXIT_RC(rc); - }else if(0 == left_ms(&timer)){ - IOT_FUNC_EXIT_RC(QCLOUD_ERR_HTTP_TIMEOUT); + } + if (left_ms(&timer) == 0) { + Log_e("HTTP read timeout!"); + IOT_FUNC_EXIT_RC(QCLOUD_ERR_HTTP_TIMEOUT); } } } while (readLen); @@ -724,9 +730,7 @@ static int _http_client_recv_response(HTTPClient *client, uint32_t timeout_ms, H if (rc != QCLOUD_ERR_SUCCESS) { IOT_FUNC_EXIT_RC(rc); - }else if(0 == left_ms(&timer)){ - IOT_FUNC_EXIT_RC(QCLOUD_ERR_HTTP_TIMEOUT); - } + } buf[reclen] = '\0'; diff --git a/src/utils/farra/utils_list.c b/src/utils/farra/utils_list.c index 2fbf24c7..b2bf1a0c 100644 --- a/src/utils/farra/utils_list.c +++ b/src/utils/farra/utils_list.c @@ -228,7 +228,8 @@ void list_remove(List *self, ListNode *node) } HAL_Free(node); - --self->len; + if (self->len) + --self->len; } /*