aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-01-07BaseJob: setStatus(Pending) on scheduling a retryKitsune Ral
Fixes #437. (cherry picked from commit 12e00b234e5c5f4ed57b5c400d06f780e71014f4)
2021-01-07Connection::resolveServer: abandon is not a failureKitsune Ral
So just reset the base URL and return, with no error signals. (cherry picked from commit be00308ad67286b45912202750fe49fb87f16e4a)
2021-01-07BaseJob: more loggingKitsune Ral
(cherry picked from commit 4f06d46d6d6062d6d17f69eeaddb7810edac5bbf)
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. (cherry picked from commit 90d41b697af39253483d9bcca4e57b11d2197112)
2021-01-07Merge pull request #436 from heirecka/datadir-instead-hard-coding-shareKitsune Ral
Use CMAKE_INSTALL_DATADIR instead of hard-coding share
2021-01-06Use CMAKE_INSTALL_DATADIR instead of hard-coding shareHeiko Becker
Signed-off-by: Heiko Becker <heirecka@exherbo.org>
2021-01-02Drop .travis.ymlKitsune Ral
[skip ci]
2021-01-02Merge pull request #434 from quotient-im/kitsune-gha-ciKitsune Ral
Migrate to GitHub Actions
2021-01-02Add Valgrind on LinuxKitsune Ral
2021-01-01GTAD requires GCC 8 at leastKitsune Ral
2021-01-01Add update-api supportKitsune Ral
Along adding update-api support DESTDIR and CMAKE_ARGS were moved to the environment setup step in order to use `${{ runner.workspace }}` for installation and not pollute `${{ github.workspace }}` where libQuotient sources reside.
2021-01-01Better quotest origin line; setup CC/CXX globallyKitsune Ral
There's no "job number" anymore but a textual description of the job is even better.
2021-01-01A few renames; trigger by PRs too; start quotestKitsune Ral
2021-01-01Add E2EE config; install libQuotient, build quotestKitsune Ral
2021-01-01Use the default path to install QtKitsune Ral
2021-01-01Fix using a C compiler for CXX; don't fail-fastKitsune Ral
2021-01-01.clang-format: more old ClangFormat compatKitsune Ral
2021-01-01.clang-format: ensure older ClangFormat compatibilityKitsune Ral
IndentGotoLabels is a ClangFormat 10 thing
2020-12-29First shot at GHAKitsune Ral
2020-12-28Merge pull request #425 from ognarb/stickerKitsune Ral
Add support for stickers
2020-12-28Merge branch 'kitsune-fix-msvc-build' into masterKitsune Ral
2020-12-28Connection: fix FTBFS with Quotient_E2EE_ENABLEDKitsune Ral
2020-12-28event.h: Fix breakage of AppVeyor CIKitsune Ral
The breakage was caused by 639f1d48.
2020-12-28Add cmake changeCarl Schwan
2020-12-28Add support for sticker eventsCarl Schwan
2020-12-28Room: inline a once-used variableKitsune Ral
2020-12-28Room: really fix namesakes assertion failureKitsune Ral
This removes now-deprecated RoomMemberEvent API usages and also does a few more things differently from the stable branch. Rather than rely on prev_content (the way pre-0.7 goes), processStateEvent() now includes a pre-check for no-op state events (the fix in ff020f3b turned out to be insufficient for such events and they still caused the same assertion failure at some point down the line). Now the state event is only added to currentState and, where relevant, to baseState, if it actually changes the room state; otherwise, it is ignored for the purpose of state tracking (even when still added to the timeline, if it came in the timeline block). One side-effect of this change is that processStateEvent() now returns OtherChange instead of NoChange for unknown state events. At the same time removeMemberFromMap() now has an additional safety net, making sure that a given user is actually deleted from the map even if their name is mismatched. This comes at a cost of looking through the whole hashmap but normally should not occur with the current code that shaves away no-op state events. We'll only see when some client starts to actively use 0.7 (quotest doesn't trigger those).
2020-12-28Add a new logging category for room member changesKitsune Ral
MEMBERS, aka quotient.events.members.* - this was promised in ff020f3b but not actually done "before merging".
2020-12-28Use generated SetReadMarkerJob instead of PostReadMarkersJobKitsune Ral
2020-12-28BaseJob::initiate: add Q_LIKELYKitsune Ral
...to show the sunny-day case.
2020-12-28Cleanup and clang-tidy/clazy fixesKitsune Ral
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. 4. LoginFlow aliases is moved out from LoginFlows to Quotient namespace.
2020-12-28More comments/documentationKitsune Ral
Notably, recommend using loginFlowsChanged() rather than homeserverChanged() to detect when a Connection object is ready for a login sequence. Related: #427.
2020-12-28event.h: Minor tweaks around visit<>Kitsune Ral
2020-12-27function_traits<>: define as empty by defaultKitsune Ral
An incomplete type was preventing some SFINAE cases for literal types.
2020-12-27Merge pull request #430 from nicolasfella/replycleanupKitsune Ral
Fix use-after-free of QNetworkReply in BaseJob
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.
2020-12-24Refresh CONTRIBUTING.mdKitsune Ral
[skip ci] (cherry picked from commit de2fa43fc7cc89b4a45cbd885866b5ca747751ef)
2020-12-24quotest: wait until the final report is actually sentKitsune Ral
Previously the code was waiting until an arbitrary event is sent. (cherry picked from commit 424d5c33542c4c38baefb773163e9ebed1accfb6)
2020-12-24Room: don't accept . at 0-th position in the tagKitsune Ral
Also: use a structured binding for better code readability. (cherry picked from commit 66972c81d018231f08f3767feda4b41ae5e1b8e0)
2020-12-24Fix clang-tidy/clazy warningsKitsune Ral
(cherry picked from commit 0a2acd750a4155969092be674ed3dd9a71b2354f)
2020-12-23BaseJob::Status: add comparison with intKitsune Ral
Since Status single-parameter constructor is (intentionally) not explicit, comparisons may not do what's expected in cases like the one fixed by 3ef036cd. This makes comparisons "do the right thing".
2020-12-23BaseJob: add [[fallthrough]] as clang-tidy saysKitsune Ral
(cherry picked from commit 1a832ae9b6a0d679b551fd644136e4bc17e7db29)
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