aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-02-21Update documentationAlexey Rusakov
Replace references to Spectral with NeoChat as a more lively and better supported client; deprecate qmake; remove a mention that libQuotient uses LGPL-2.1-only because it's not true, according to ./COPYING
2021-02-21SECURITY.md: 0.5.x is no more supportedAlexey Rusakov
It's been 2 years, time to move on.
2021-02-21Update a comment that still mentions RiotAlexey Rusakov
2021-02-21Uri: support abbreviated types in Matrix URIsAlexey Rusakov
As per the latest iteration of MSC2312, room/, user/ and event/ are only supported for parsing and replication but not for emitting from Matrix identifiers.
2021-01-28Fix rich edits (transmit)Roland Pallai
The new formatted_body was not included into new content on edit due to badly constructed json. (cherry picked from commit df6b2d31ec8f2f5890826719e960f450a4968f22)
2021-01-28Fix rich replies json format (transmit)Roland Pallai
With this patch it looks like: "m.relates_to": { "m.in_reply_to": { "event_id": "$another:event.com" } } instead of: "m.relates_to": { "event_id": "$another:event.com", "rel_type": "m.in_reply_to" }, So it fits the specification by now. https://matrix.org/docs/spec/client_server/r0.6.1#rich-replies (cherry picked from commit b850edadde2299b122a5cd17da85e943430e43b7)
2021-01-25Connection: stop login flows job before resolvingAlexey Rusakov
This avoids a corner case when a login flows job finishes (or worse, goes for a retry) while the homeserver is (being) resolved, yielding the Connection object in an inconsistent state to the client.
2021-01-15CMakeLists.txt: 0.6.4Kitsune Ral
2021-01-15CONTRIBUTING.md: drop one last mention of Travis CIKitsune Ral
2021-01-12Don't run the test if TEST_USER is emptyKitsune Ral
2021-01-11LGTM: fine-tune the set of analysed filesKitsune Ral
2021-01-08Add a timeout to quotest runsKitsune Ral
The current Quotest gets stuck somewhere, and the its big internal 3-minute watchdog doesn't cut it for some reason. While investigating that, an external timeout would be quite handy.
2021-01-08quotest: use the target room for loadMembers testKitsune Ral
Now that we've crowded it with a few synthetic users, lazy-loading of members doesn't some other room to get tested. Bonus: Connection::roomByAlias() has its own very simple test now.
2021-01-07Connection: don't explicitly reset QPointersKitsune Ral
See #437 for the discussion. (cherry picked from commit 6101971af86fdecd084759aa039b9d20a9d662a7)
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