Merge pull request #6542 from nextcloud/bugfix/avoidRepeatingTheSameNetworkError
only display changed network errors during validation of connection
This commit is contained in:
commit
3ea60ee8a9
|
@ -5,7 +5,7 @@ on:
|
|||
jobs:
|
||||
build:
|
||||
name: Linux Clang compilation and tests
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-latest
|
||||
container: ghcr.io/nextcloud/continuous-integration-client:client-5.15-15
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
@ -15,11 +15,11 @@ jobs:
|
|||
run: |
|
||||
mkdir build
|
||||
cd build
|
||||
cmake .. -G Ninja -DCMAKE_C_COMPILER=clang-14 -DCMAKE_CXX_COMPILER=clang++-14 -DCMAKE_BUILD_TYPE=Debug -DQUICK_COMPILER=ON -DBUILD_UPDATER=ON -DBUILD_TESTING=1 -DECM_ENABLE_SANITIZERS=address -DCMAKE_CXX_FLAGS=-Werror -DOPENSSL_ROOT_DIR=/usr/local/lib64
|
||||
cmake .. -G Ninja -DCMAKE_C_COMPILER=clang-14 -DCMAKE_CXX_COMPILER=clang++-14 -DCMAKE_BUILD_TYPE=Debug -DQUICK_COMPILER=ON -DBUILD_UPDATER=ON -DBUILD_TESTING=1 -DCMAKE_CXX_FLAGS=-Werror -DOPENSSL_ROOT_DIR=/usr/local/lib64
|
||||
ninja
|
||||
- name: Run tests
|
||||
run: |
|
||||
cd build
|
||||
useradd -m -s /bin/bash test
|
||||
chown -R test:test .
|
||||
su -c 'ASAN_OPTIONS=detect_odr_violation=0,detect_leaks=0 xvfb-run ctest --output-on-failure' test
|
||||
su -c 'xvfb-run ctest --output-on-failure' test
|
||||
|
|
|
@ -5,7 +5,7 @@ on:
|
|||
jobs:
|
||||
build:
|
||||
name: Linux GCC compilation and tests
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-latest
|
||||
container: ghcr.io/nextcloud/continuous-integration-client:client-5.15-15
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
@ -15,11 +15,11 @@ jobs:
|
|||
run: |
|
||||
mkdir build
|
||||
cd build
|
||||
cmake .. -G Ninja -DCMAKE_C_COMPILER=gcc-11 -DCMAKE_CXX_COMPILER=g++-11 -DCMAKE_BUILD_TYPE=Debug -DQUICK_COMPILER=ON -DBUILD_UPDATER=ON -DBUILD_TESTING=1 -DECM_ENABLE_SANITIZERS=address -DCMAKE_CXX_FLAGS=-Werror -DOPENSSL_ROOT_DIR=/usr/local/lib64
|
||||
cmake .. -G Ninja -DCMAKE_C_COMPILER=gcc-11 -DCMAKE_CXX_COMPILER=g++-11 -DCMAKE_BUILD_TYPE=Debug -DQUICK_COMPILER=ON -DBUILD_UPDATER=ON -DBUILD_TESTING=1 -DCMAKE_CXX_FLAGS=-Werror -DOPENSSL_ROOT_DIR=/usr/local/lib64
|
||||
ninja
|
||||
- name: Run tests
|
||||
run: |
|
||||
cd build
|
||||
useradd -m -s /bin/bash test
|
||||
chown -R test:test .
|
||||
su -c 'ASAN_OPTIONS=detect_odr_violation=0,detect_leaks=0 xvfb-run ctest --output-on-failure' test
|
||||
su -c 'xvfb-run ctest --output-on-failure' test
|
||||
|
|
|
@ -5,7 +5,7 @@ on:
|
|||
jobs:
|
||||
build:
|
||||
name: SonarCloud analysis
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-latest
|
||||
container: ghcr.io/nextcloud/continuous-integration-client:client-5.15-15
|
||||
env:
|
||||
SONAR_SERVER_URL: "https://sonarcloud.io"
|
||||
|
@ -25,7 +25,7 @@ jobs:
|
|||
run: |
|
||||
mkdir build
|
||||
cd build
|
||||
cmake .. -G Ninja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=gcc-11 -DCMAKE_CXX_COMPILER=g++-11 -DBUILD_UPDATER=ON -DBUILD_TESTING=1 -DBUILD_COVERAGE=ON -DOPENSSL_ROOT_DIR=/usr/local/lib64
|
||||
cmake .. -G Ninja -DCMAKE_C_COMPILER=gcc-11 -DCMAKE_CXX_COMPILER=g++-11 -DCMAKE_BUILD_TYPE=Debug -DQUICK_COMPILER=ON -DBUILD_UPDATER=ON -DBUILD_TESTING=1 -DCMAKE_CXX_FLAGS=-Werror -DOPENSSL_ROOT_DIR=/usr/local/lib64 -DBUILD_COVERAGE=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
|
||||
build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} ninja
|
||||
- name: Run tests
|
||||
run: |
|
||||
|
|
|
@ -117,7 +117,6 @@ void AccountState::setState(State state)
|
|||
|
||||
if (_state == SignedOut) {
|
||||
_connectionStatus = ConnectionValidator::Undefined;
|
||||
_connectionErrors.clear();
|
||||
} else if (oldState == SignedOut && _state == Disconnected) {
|
||||
// If we stop being voluntarily signed-out, try to connect and
|
||||
// auth right now!
|
||||
|
@ -297,8 +296,9 @@ void AccountState::checkConnectivity()
|
|||
return;
|
||||
}
|
||||
|
||||
auto *conValidator = new ConnectionValidator(AccountStatePtr(this));
|
||||
auto *conValidator = new ConnectionValidator(AccountStatePtr(this), _connectionErrors);
|
||||
_connectionValidator = conValidator;
|
||||
_connectionErrors.clear();
|
||||
connect(conValidator, &ConnectionValidator::connectionResult,
|
||||
this, &AccountState::slotConnectionValidatorResult);
|
||||
if (isConnected()) {
|
||||
|
|
|
@ -37,8 +37,9 @@ Q_LOGGING_CATEGORY(lcConnectionValidator, "nextcloud.sync.connectionvalidator",
|
|||
// This makes sure we get tried often enough without "ConnectionValidator already running"
|
||||
static qint64 timeoutToUseMsec = qMax(1000, ConnectionValidator::DefaultCallingIntervalMsec - 5 * 1000);
|
||||
|
||||
ConnectionValidator::ConnectionValidator(AccountStatePtr accountState, QObject *parent)
|
||||
ConnectionValidator::ConnectionValidator(AccountStatePtr accountState, const QStringList &previousErrors, QObject *parent)
|
||||
: QObject(parent)
|
||||
, _previousErrors(previousErrors)
|
||||
, _accountState(accountState)
|
||||
, _account(accountState->account())
|
||||
{
|
||||
|
@ -331,7 +332,7 @@ void ConnectionValidator::reportResult(Status status)
|
|||
emit connectionResult(status, _errors);
|
||||
|
||||
// notify user of errors
|
||||
if (!_errors.isEmpty()) {
|
||||
if (!_errors.isEmpty() && _previousErrors != _errors) {
|
||||
showSystrayErrorMessage();
|
||||
}
|
||||
|
||||
|
|
|
@ -79,7 +79,9 @@ class ConnectionValidator : public QObject
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ConnectionValidator(AccountStatePtr accountState, QObject *parent = nullptr);
|
||||
explicit ConnectionValidator(AccountStatePtr accountState,
|
||||
const QStringList &previousErrors,
|
||||
QObject *parent = nullptr);
|
||||
|
||||
enum Status {
|
||||
Undefined,
|
||||
|
@ -142,6 +144,7 @@ private:
|
|||
*/
|
||||
bool setAndCheckServerVersion(const QString &version);
|
||||
|
||||
const QStringList _previousErrors;
|
||||
QStringList _errors;
|
||||
AccountStatePtr _accountState;
|
||||
AccountPtr _account;
|
||||
|
|
Loading…
Reference in New Issue