Skip to content

Commit

Permalink
connection: emit networkError in all cases
Browse files Browse the repository at this point in the history
  • Loading branch information
tdfischer committed Jul 18, 2023
1 parent 0e10076 commit 4a74de6
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 10 deletions.
15 changes: 6 additions & 9 deletions Quotient/connection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -211,10 +211,7 @@ void Connection::assumeIdentity(const QString& mxId, const QString& accessToken)
d->completeSetup(job->userId());
});
connect(job, &BaseJob::failure, this, [this, job] {
if (job->error() == BaseJob::StatusCode::NetworkError)
emit networkError(job->errorString(), job->rawDataSample(),
job->maxRetries(), -1);
else
if (job->error() != BaseJob::StatusCode::NetworkError)
emit loginError(job->errorString(), job->rawDataSample());
});
});
Expand Down Expand Up @@ -448,11 +445,6 @@ void Connection::sync(int timeout)
d->syncJob = nullptr;
emit syncDone();
});
connect(job, &SyncJob::retryScheduled, this,
[this, job](int retriesTaken, int nextInMilliseconds) {
emit networkError(job->errorString(), job->rawDataSample(),
retriesTaken, nextInMilliseconds);
});
connect(job, &SyncJob::failure, this, [this, job] {
// SyncJob persists with retries on transient errors; if it fails,
// there's likely something serious enough to stop the loop.
Expand Down Expand Up @@ -1624,6 +1616,11 @@ BaseJob* Connection::run(BaseJob* job, RunningPolicy runningPolicy)
// Reparent to protect from #397, #398 and to prevent BaseJob* from being
// garbage-collected if made by or returned to QML/JavaScript.
job->setParent(this);
connect(job, &BaseJob::retryScheduled, this,
[this, job](int retriesTaken, int nextInMilliseconds) {
emit networkError(job->errorString(), job->rawDataSample(),
retriesTaken, nextInMilliseconds);
});
connect(job, &BaseJob::failure, this, &Connection::requestFailed);
job->initiate(d->data.get(), runningPolicy & BackgroundRequest);
return job;
Expand Down
2 changes: 1 addition & 1 deletion Quotient/connection.h
Original file line number Diff line number Diff line change
Expand Up @@ -771,7 +771,7 @@ public Q_SLOTS:
//! \sa callApi
void requestFailed(Quotient::BaseJob* request);

//! \brief A network request (job) failed due to network problems
//! \brief A network request (job) started by callAPI() failed due to network problems
//!
//! This is _only_ emitted when the job will retry on its own;
//! once it gives up, requestFailed() will be emitted.
Expand Down

0 comments on commit 4a74de6

Please sign in to comment.