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 be3bb9e36..c51205e82 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));