Merge branch 'feature/http_request_example_receiving_timeout' into 'master'

Added socket receiving timeout, ref. TW#14353 / GitHub  issue #844

See merge request !1241
This commit is contained in:
Ivan Grokhotkov 2017-09-11 18:17:01 +08:00
commit 4bd12e10e7

View File

@ -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));