aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-01-07Connection::resolveServer: abandon is not a failureKitsune Ral
So just reset the base URL and return, with no error signals.
2021-01-07BaseJob: setStatus(Pending) on scheduling a retryKitsune Ral
Fixes #437.
2021-01-07BaseJob: more loggingKitsune Ral
2021-01-07Prefer connecting to BaseJob::result(), not finished()Kitsune Ral
...because finished() includes abandoning and should only be relevant when lifecycle issues are involved.
2021-01-02Drop .travis.ymlKitsune Ral
[skip ci]
2021-01-02.clang-format: backport ClangFormat compat fixesKitsune Ral
Cherry-picked and squashed from 2fed7f8a and 23cf8bec.
2021-01-02Backport .github/workflows/ci.yml from masterKitsune Ral
Mostly taken from #434, except removed E2EE matrix variants since E2EE is not ready on 0.6.x and is discouraged from using.
2020-12-29Connection: fix FTBFS with Quotient_E2EE_ENABLEDKitsune Ral
(cherry picked from commit 0f974c0f96f29035ee766e8913504fed4a4903a5)
2020-12-28Connection: refactor the resolve/login codeKitsune Ral
1. resolveServer() now emits homeserverChanged() even when there's no .well-known file found. 2. checkAndConnect() entirely removed from the header file. 3. Sunny-day scenario for assumeIdentity() is now asynchronous, triggering a call to /whoami to double-check the user. (based on commit 6c9ff40dbd91cc4966f0ecf9ed817efc2495a2fb to master)
2020-12-28Cleanup and clang-tidy/clazy fixesKitsune Ral
(cherry picked from commit 56c1db077b5da653c230432abc6c746318a77bed)
2020-12-28BaseJob::initiate: add Q_LIKELYKitsune Ral
...to show the sunny-day case. (cherry picked from commit 5d15e3b23649a54abdb3812c10f4a7d2ce07d7dd)
2020-12-27Fix use-after-free of QNetworkReply in BaseJobNicolas Fella
Usually QNetworkAccessManager expects the user to delete the replies, but when the QNetworkAccessManager itself is deleted it deletes all pending replies (https://code.woboq.org/qt5/qtbase/src/network/access/qnetworkaccessmanager.cpp.html#529). This can lead to use-after-free crashes when d->reply is accessed. By putting the reply into a QPointer the exiting if(d->reply) checks can work properly. (cherry picked from commit 9d854e778d8d6ef8e03e1ea74fe958675b24fd45)
2020-12-27More comments/documentationKitsune Ral
Notably, recommend using loginFlowsChanged() rather than homeserverChanged() to detect when a Connection object is ready for a login sequence. Related: #427. (cherry picked from commit 8981c5451ac378f16d5b57d7460d053e2cbc666e)
2020-12-24Bump the version to 0.6.3Kitsune Ral
2020-12-24Refresh CONTRIBUTING.mdKitsune Ral
[skip ci]
2020-12-24quotest: wait until the final report is actually sentKitsune Ral
Previously the code was waiting until an arbitrary event is sent.
2020-12-24Room: don't accept . at 0-th position in the tagKitsune Ral
Also: use a structured binding for better code readability.
2020-12-24Fix clang-tidy/clazy warningsKitsune Ral
2020-12-23BaseJob: add [[fallthrough]] as clang-tidy saysKitsune Ral
2020-12-23BaseJob: tolerate unexpected error payloadsKitsune Ral
Proxy servers may return arbitrary HTML, for one example; so don't expect to find a valid JSON object in whatever non-empty payload next to a non-2xx HTTP code. Fixes #421.
2020-12-23Connection::resolveServer(): fix error handlingKitsune Ral
Part of the fix for #421.
2020-12-10Uri: fix a few cases of insufficient escapingKitsune Ral
2020-12-10Fix DELETE jobs with json dataTobias Fella
DeleteDeviceJob requires authentication, but the JSON data is not added for DELETE requests. Since QNetworkAccessManager::deleteResource does not support body data, we need to send a custom request.
2020-12-03Room: fix breakage in internal member mapKitsune Ral
The change in 39830496 led to prev_content becoming a fallback not only for displaying user names but also for storing them in the internal member map, which is really not what was intended.
2020-11-26quotest: Refreshed a commentKitsune Ral
[skip ci]
2020-11-24.clang-format: update for ClangFormat 10+Kitsune Ral
Also: add space before colon in range-based for from now on. [skip ci]
2020-11-19Fix Q_ASSERT failure on sending messagesKitsune Ral
Changes in e81117fb exposed a flaw in EncryptionEvent causing assertion failure when this event is default-initialised (i.e. no encryption).
2020-11-15Room: add power level events to redaction rulesKitsune Ral
2020-11-15MembershipType: drop warning on empty valuesKitsune Ral
This is a usual situation when a membership type is undefined; and the current code constructs _a lot_ of stub events by loading them from empty JSON. So just silence those warnings for now.
2020-11-15Room::P::getCurrentState<>(): bypass the factory chainKitsune Ral
This is to optimize a rather hot path creating stub events (for member events in bigger rooms, in particular) when the event type is known. Version 0.7 will have a completely different code based on event content rather than event that will obviate stubs creation but 0.6.x can benefit from it.
2020-11-14ConnectionData: fix defunct jobs stalling the queueKitsune Ral
2020-11-09Room: be more robust in Release modeKitsune Ral
...in one particular case, when trying to add a user to a room it's already a member of.
2020-11-08User: take profile data from prevContent when main content omits themKitsune Ral
Closes #412.
2020-10-230.6.2Kitsune Ral
2020-09-11Uri::toUrl(): fix incorrect matrix.to repKitsune Ral
The first character inside the fragment should be /
2020-09-11util.cpp: assert validity of regular expressionsKitsune Ral
2020-09-11More stringent serverpart checks in user idsKitsune Ral
May lead to new crashes due to nullptr returned from Connection::user() on more utterly invalid content from the wire that the library still doesn't properly invalidate. This has long been quite a good case for exceptions, or another error-handling framework: Connection::user() can return nullptr either when out of memory or when the id is invalid or empty, and other places are likely to treat invalid ids in different ways but probably just hope that memory exhaustion "never happens", or try to handle it in a quite different way than an empty or invalid id. Something to think of in 0.7.
2020-09-04Update documentationKitsune Ral
[skip ci]
2020-09-04More fixing of clazy warningsKitsune Ral
2020-09-04csapi/profile.h: require displayname/avatar_urlKitsune Ral
See https://github.com/matrix-org/matrix-doc/issues/2717
2020-09-04CONTRIBUTING.md: clarify the matrix-doc repo situationKitsune Ral
[skip ci]
2020-09-03Code formatting fixKitsune Ral
2020-09-03Address clazy warningsKitsune Ral
2020-09-03SyndData::parseJson: use fromJson()Kitsune Ral
...instead of a complicated explicit code converting from JSON to varianthash to hash.
2020-08-30Bump version in CMakeLists.txt to 0.6.1Kitsune Ral
The new release upcoming.
2020-08-23User: displayname() should fallback to name()Kitsune Ral
As of 0.6.1, User::name() triggers fetching the user profile (whether this is right is a separate question but that's the way it works with the current library API) - displayname() should use it rather than shortcut to d->defaultName to get results consistent with User::name().
2020-08-23csapi/profile.cpp: fix setting empty name/avatarKitsune Ral
This is a temporary workaround for https://github.com/matrix-org/synapse/issues/8029 - note that regenerating CS API code will lead to overwriting this. The proper fix should be done in matrix-doc (see https://github.com/matrix-org/matrix-doc/issues/2717).
2020-08-23More cleanup; drop Qt bearer management on Qt 5.15+Kitsune Ral
Qt 5.15 deprecates bearer management.
2020-08-22quotest: fix changeName test failuresKitsune Ral
Member renames upon profile changes don't come right away, it turns out; so check User::nameChanged instead of Room::memberRenamed.
2020-08-22Cleanup and some extra commentsKitsune Ral