From b918a7ea6fc7dc4fa51ae9a9e9d5e0f2b14bb2c3 Mon Sep 17 00:00:00 2001 From: Floris Bos Date: Tue, 26 Dec 2023 16:09:21 +0100 Subject: [PATCH] Retry on HTTP/2 frame errors as long as it do is making progress Ref #767 --- src/CMakeLists.txt | 4 ++-- src/downloadthread.cpp | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index fa9e082..aeddd85 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -8,8 +8,8 @@ OPTION (ENABLE_TELEMETRY "Enable sending telemetry" ON) project(rpi-imager LANGUAGES CXX C) set(IMAGER_VERSION_MAJOR 1) set(IMAGER_VERSION_MINOR 8) -set(IMAGER_VERSION_STR "${IMAGER_VERSION_MAJOR}.${IMAGER_VERSION_MINOR}.4") -set(IMAGER_VERSION_CSV "${IMAGER_VERSION_MAJOR},${IMAGER_VERSION_MINOR},4,0") +set(IMAGER_VERSION_STR "${IMAGER_VERSION_MAJOR}.${IMAGER_VERSION_MINOR}.5") +set(IMAGER_VERSION_CSV "${IMAGER_VERSION_MAJOR},${IMAGER_VERSION_MINOR},5,0") add_definitions(-DIMAGER_VERSION_STR="${IMAGER_VERSION_STR}") add_definitions(-DIMAGER_VERSION_CSV=${IMAGER_VERSION_CSV}) set(CMAKE_INCLUDE_CURRENT_DIR ON) diff --git a/src/downloadthread.cpp b/src/downloadthread.cpp index 3350b94..c9ec8e6 100644 --- a/src/downloadthread.cpp +++ b/src/downloadthread.cpp @@ -412,7 +412,9 @@ void DownloadThread::run() /* Deal with badly configured HTTP servers that terminate the connection quickly if connections stalls for some seconds while kernel commits buffers to slow SD card. And also reconnect if we detect from our end that transfer stalled for more than one minute */ - while (ret == CURLE_PARTIAL_FILE || ret == CURLE_OPERATION_TIMEDOUT || (ret == CURLE_RECV_ERROR && _lastDlNow != _lastFailureOffset) ) + while (ret == CURLE_PARTIAL_FILE || ret == CURLE_OPERATION_TIMEDOUT + || (ret == CURLE_HTTP2_STREAM && _lastDlNow != _lastFailureOffset) + || (ret == CURLE_RECV_ERROR && _lastDlNow != _lastFailureOffset) ) { time_t t = time(NULL); qDebug() << "HTTP connection lost. Time:" << t;