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 01ebbc3
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 11 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
4 changes: 2 additions & 2 deletions Quotient/connection.h
Original file line number Diff line number Diff line change
Expand Up @@ -766,12 +766,12 @@ public Q_SLOTS:
void stateChanged();
void loginError(QString message, QString details);

//! \brief A network request (job) started by callApi() has failed
//! \brief A network request (job) started by run() (including callApi()) has failed
//! \param request the pointer to the failed job
//! \sa callApi
void requestFailed(Quotient::BaseJob* request);

//! \brief A network request (job) failed due to network problems
//! \brief A network request (job) started by run() (including 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
Binary file added Quotient/csapi/.whoami.cpp.swp
Binary file not shown.
1 change: 1 addition & 0 deletions Quotient/csapi/whoami.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,5 @@ GetTokenOwnerJob::GetTokenOwnerJob()
makePath("/_matrix/client/v3", "/account/whoami"))
{
addExpectedKey("user_id");
setMaxRetries(std::numeric_limits<int>::max());
}

0 comments on commit 01ebbc3

Please sign in to comment.