From: krzychb Date: Mon, 11 Sep 2017 03:15:39 +0000 (+0200) Subject: Added socket receiving timeout, ref. TW#14353 / GitHub issue #844 X-Git-Tag: v3.1-dev~294^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=40798867042a24ddbebfcee37c90fae158bd48b6;p=esp-idf Added socket receiving timeout, ref. TW#14353 / GitHub issue #844 --- diff --git a/examples/protocols/http_request/main/http_request_example_main.c b/examples/protocols/http_request/main/http_request_example_main.c index be3bb9e364..c51205e821 100644 --- a/examples/protocols/http_request/main/http_request_example_main.c +++ b/examples/protocols/http_request/main/http_request_example_main.c @@ -132,7 +132,7 @@ static void http_get_task(void *pvParameters) vTaskDelay(1000 / portTICK_PERIOD_MS); continue; } - ESP_LOGI(TAG, "... allocated socket\r\n"); + ESP_LOGI(TAG, "... allocated socket"); if(connect(s, res->ai_addr, res->ai_addrlen) != 0) { ESP_LOGE(TAG, "... socket connect failed errno=%d", errno); @@ -153,6 +153,18 @@ static void http_get_task(void *pvParameters) } ESP_LOGI(TAG, "... socket send success"); + struct timeval receiving_timeout; + receiving_timeout.tv_sec = 5; + receiving_timeout.tv_usec = 0; + if (setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &receiving_timeout, + sizeof(receiving_timeout)) < 0) { + ESP_LOGE(TAG, "... failed to set socket receiving timeout"); + close(s); + vTaskDelay(4000 / portTICK_PERIOD_MS); + continue; + } + ESP_LOGI(TAG, "... set socket receiving timeout success"); + /* Read HTTP response */ do { bzero(recv_buf, sizeof(recv_buf));