aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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. (cherry picked from commit 9ef83e044ed4f8409156b19d529dfc7e45f565c1)
2020-12-23Connection::resolveServer(): fix error handlingKitsune Ral
Part of the fix for #421. (cherry picked from commit 104356d945671762af23e346f7898a3208770d97)
2020-12-22Merge pull request #423 from quotient-im/kitsune-fix-namesakes-failureKitsune Ral
Room: fix breakage in internal member map
2020-12-10Uri: fix a few cases of insufficient escapingKitsune Ral
2020-12-10Merge pull request #420 from TobiasFella/work/deletefixKitsune Ral
Fix DELETE jobs with json data
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-03CMakeLists.txt: fix configuration failuresKitsune Ral
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. A lot of debug logging has been added - this will be moved to a new logging category before merging.
2020-12-03CMakeLists.txt: reworked configuration loggingKitsune Ral
Notably, screen-wide ==== fences are gone, and the status messages are now located next to where the relevant piece of configuration occurs, instead of having a configuration summary block. Also, features related to code generation have been added for feature_summary().
2020-12-02Merge pull request #416 from ognarb/work/cmakefeaturesummaryKitsune Ral
Add feature summary to cmake file
2020-11-27Merge pull request #418 from ognarb/work/QT_NO_KEYWORDSKitsune Ral
Make it compile with QT_NO_KEYWORDS
2020-11-27Make it compile with QT_NO_KEYWORDSCarl Schwan
2020-11-26Enable QT_NO_URL_CAST_FROM_STRING and QT_STRICT_ITERATORS.David Faure
* QT_NO_URL_CAST_FROM_STRING makes it clearer where QUrls are created from QStrings (which incurs a parsing cost). * QT_STRICT_ITERATORS helps detecting where begin()/end() is used instead of cbegin()/cend(). KDE developers have verified that the generated assembly code is identical.
2020-11-26Add feature summary to cmake fileCarl Schwan
2020-11-24csapi/search.*Kitsune Ral
2020-11-24CMakeLists.txt: enable generating csapi/search.*Kitsune Ral
Now that the logic behind producing the C++ structures changed (they are filled in on the fly, rather than created upon job completion and then copied/moved by the accessor), GTAD makes buildable code for search.yaml.
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-15Cleanup across event classesKitsune Ral
In particular: removed unnecessary #includes, deprecated and no more used constructs, replaced stored members with dynamic generation from JSON (TypingEvent and, especially promising for performance, ReceiptEvent)
2020-11-14Make StateEventBase Q_GADGET tooKitsune Ral
To align with the two other base event classes (Event and RoomEvent).
2020-11-14CleanupKitsune Ral
2020-11-14Drop EventFactory<RoomPowerLevelsEvent>Kitsune Ral
RoomPowerLevelsEvent is not used in csapi/ classes so the factory is of no use either.
2020-11-14ConnectionData: fix defunct jobs stalling the queueKitsune Ral
2020-11-12Room: add power level events to redaction rulesKitsune Ral
2020-11-12More JSON key constantsKitsune Ral
2020-11-11.clang-format: update for ClangFormat 10+Kitsune Ral
Also: add space before colon in range-based for from now on. [skip ci]
2020-11-10MembershipType: 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-08Room: drop setMemberState()Kitsune Ral
2020-11-08More robust member profile data retrievalKitsune Ral
MemberEventContent: displayname and avatarUrl are now Omittables; CS API doesn't guarantee their presence (see also https://github.com/matrix-org/matrix-doc/issues/1375) but Quotient used to assume they are always there, causing #412. RoomMemberEvent: displayname() -> newDisplayName() and avatarUrl() -> newAvatarUrl(), to emphasise the actual semantics (and also the changed interface). The old signatures still work but are deprecated. Instead of roomMembername() (with weird camel-casing), three new methods in addition to safeMemberName() are introduced to Room: - memberName() - produces the "best known" display name for a given member; User::name() uses it to avoid the pitfall of #412. - disambiguatedMemberName() - this is what roomMembername() used to be; not recommended for direct use when UI is concerned. - safeMemberName() - remains as is, with the fix to the documentation that used to mislead that the function returns HTML-escaped content (it didn't, and doesn't). - htmlSafeMemberName() - does what safeMemberName() claimed to do. Respectively, memberNames() is deprecated in favor of safeMemberNames() and htmlSafeMemberNames(). The corresponding Q_PROPERTY uses safeMemberNames() now. Similar to memberName(), Room has got memberAvatarUrl() to spare User class from diving into Room state to find the member avatar URL. Closes #412.
2020-11-08converters.h: add QUrl supportKitsune Ral
2020-11-06ChangePasswordJob: logoutDevices doesn't need OmittableKitsune Ral
This is generated by GTAD 0.7.1 (to be released), based on the changed registration.yaml (to be committed and pulled).
2020-11-06Further restrict IPv6 branch of ServerPartRegExKitsune Ral
2020-11-06.clang-format: add SpaceInEmptyBlock: false (clang 10)Kitsune Ral
2020-11-06Uri::toUrl(): fix incorrect matrix.to repKitsune Ral
The first character inside the fragment should be / (cherry picked from commit 948be2ef2bf04e306fbb0e2c3e0a98f4151337a7)
2020-11-06util.cpp: assert validity of regular expressionsKitsune Ral
(cherry picked from commit 0e87640560343c15b0a218796509d2d94e1a5c77)
2020-11-06More 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. (cherry picked from commit 3c85f049389dec3b0ee6406f0be2cfaf0089f1fe)
2020-10-28Merge pull request #411 from JohnDr/johnd-modsKitsune Ral
Added filter param to getPreviousContent
2020-10-27Added filter param to getPreviousContent so that a server side filterJohn
can be applied.
2020-09-04Update documentationKitsune Ral
[skip ci]
2020-09-04CONTRIBUTING.md: clarify the matrix-doc repo situationKitsune Ral
[skip ci]
2020-09-04Fixes of clazy warningsKitsune Ral
2020-09-04SyndData::parseJson: use fromJson()Kitsune Ral
...instead of a complicated explicit code converting from JSON to varianthash to hash.
2020-09-04csapi/profile.*: require displayname/avatar_urlKitsune Ral
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 FTBFS after a sloppy cherry-pickKitsune Ral
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
2020-08-11Build system optimisationsKitsune Ral
* -DQT_NO_JAVA_STYLE_ITERATORS * Use precompiled headers on CMake >= 3.16 (except GCC, blame its cheap PCH implementation) * -fvisibility-inlines-hidden when using CMake
2020-08-11Drop unneeded #includeKitsune Ral
2020-08-04quotest: fix the log wordingKitsune Ral
2020-08-04Connection: self-delete after emitting loggedOut()Kitsune Ral
The Connection object has quite few uses after logging out - neither rooms nor users under it no more represent actual situation, and the object cannot be cleanly reused for a new login (also, the use case for that is pretty dubious). This doesn't cover the case when the session has been forcibly logged-out by the server (causing loginError() to be emitted) - in that case re-authentication is an expected flow.