aboutsummaryrefslogtreecommitdiff
path: root/src/client
Commit message (Collapse)AuthorAgeFilesLines
* Fix undocumented Q_PROPERTiesLinus Jahn2020-02-048-73/+94
|
* Fix doxygen warnings about missing titles for \defgroupLinus Jahn2020-02-041-2/+15
|
* Add new QXmppRegistrationManagerLinus Jahn2020-02-043-4/+666
|
* Run clang-format also on all cpp filesLinus Jahn2020-02-0323-656/+437
|
* clang-format: Enable regrouping and sorting of includesLinus Jahn2020-02-0334-117/+124
|
* Replace manual xmlns writing by writeDefaultNamespace()Linus Jahn2020-01-292-2/+2
| | | | | | | This is the result of: sed -i 's/writeAttribute("xmlns", /writeDefaultNamespace(/g' \ $(find . -iname "*.cpp" -or -iname "*.h")
* QXmppClient: Remove obsolete methods for TLS managementLinus Jahn2020-01-292-45/+0
| | | | | | | | | | The methods are obsolete since the TLS manager has become an internal client extension. The methods were not of any use except for the TLS manager and should better not be public to the user at all (i.e. startSocketEncryption()). This can be done without any concerns because the methods were not part of the public API in any release, yet.
* Make QXmppTlsManager an internal client extensionLinus Jahn2020-01-293-9/+27
| | | | | | | | | | | This removes the QXmppTlsManager from the public API and makes it an internal client extension. It was not of any use for the end user and was configured via the QXmppClient (as before). This way we can obsolete some public methods of the QXmppClient, that also have been added with the new TLS manager. This can be done without any concerns because the manager was not part of the public API in any release, yet.
* Introduce QXmppInternalClientExtensionsLinus Jahn2020-01-293-0/+103
| | | | | | | | | | | | The new internal client extensions can be used to access private parts of the QXmppClient since QXmppInternalClientExtensions are a friend of the QXmppClient. The internal client extensions are not part of the public API, so you can't access them in an application using QXmpp. However, this was also the case before. If there is the need to access the internal extensions in the future, we'll still have all options open to change everything, because the classes are not part of the public API.
* QXmppClient: Split up QXmppClientPrivate into private headerLinus Jahn2020-01-292-25/+78
| | | | | | | This is required to access the QXmppClientPrivate from other classes. This way we can split up parts of the client into internal client extensions like the authentication manager, without the need of public methods in the client as with the current approach of the TLS manager.
* Update copyright notice in missing filesLinus Jahn2020-01-282-2/+2
|
* Move TLS negotiation into new QXmppTlsManagerLinus Jahn2020-01-205-43/+168
|
* Port majority of old-style connects (#237)JBB2020-01-2010-268/+127
| | | This provides more type safety and is future-proof.
* QXmppClient: Add missing '\since' tag to new indexOfExtension()Linus Jahn2020-01-191-3/+4
| | | | I forgot this in #241.
* QXmppClient: Add method to get index of extensionLinus Jahn2020-01-131-0/+24
|
* Bump copyright year to 2020Linus Jahn2020-01-0643-43/+43
|
* Add a .clang-format somewhat close to the current style0xd34df00d2019-12-2320-179/+167
|
* Replace emails in copyright headers by entries in the AUTHORS fileLinus Jahn2019-12-082-2/+2
| | | | Mostly this was a mistake by me in earlier contributions.
* QXmppClient: Set correct CSI state on connectLinus Jahn2019-11-281-2/+7
|
* QXmppClient: Only send CSI state when connectedLinus Jahn2019-11-281-1/+1
|
* Replace deprecated Q_ENUMS with Q_ENUMLinus Jahn2019-10-273-17/+15
| | | | | Q_ENUM exists since Qt 5.5, more details can be found here: https://woboq.com/blog/q_enum.html
* QXmppMucManager: Only return true if actually handled stanzaMartin Koller2019-10-271-3/+4
|
* Remove Qt < 5.7 compatibility codeLinus Jahn2019-10-231-13/+0
|
* Replace Q_FOREACH (foreach) by C++11 ranged for-loopsLinus Jahn2019-10-238-55/+51
| | | | | | | Q_FOREACH is bad and will be deprecated in the future: https://www.kdab.com/goodbye-q_foreach/ This also disables Q_FOREACH by defining QT_NO_FOREACH.
* Add \since QXmpp 1.1 to all new methods and classesLinus Jahn2019-10-231-0/+2
| | | | Methods of new classes have no \since tag.
* Port away from deprecated client extension getters of the QXmppClientLinus Jahn2019-10-235-37/+53
| | | | | This replaces the deprecated getters in the examples and in the documentation.
* Use raw literals, range based loops and autoJonah Brüchert2019-10-225-16/+16
|
* QXmppUploadRequestManager: Fix doxygen warningsLinus Jahn2019-10-212-9/+11
|
* Add unit tests for QXmppUploadRequestManagerblue2019-10-201-1/+0
| | | | Co-authored-by: Linus Jahn <lnj@kaidan.im>
* Implement XEP-0363: HTTP File Upload: UploadRequestManagerLinus Jahn2019-10-202-0/+391
| | | | | This adds a manager to simplify service discovery and IQ sending for XEP-0363: HTTP File Upload.
* QXmppTransferManager: Port away from QTime.elapsed()Jonah Brüchert2019-10-191-1/+2
|
* Merge remote-tracking branch 'origin/stable'Linus Jahn2019-10-141-4/+3
|\
| * Fix potential SEGFAULT on connection error0xd34df00d2019-10-141-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | `socketError()` calls `connectToNextDNSHost()` which might cause `socketError()` synchronously (and recursively), thus not giving a change for updating `nextSrvRecordIdx`. Overall, this results in attempting to connect to the same DNS record recursively, until the stack is exhausted, resulting in SEGFAULT. One of the solutions (done in this commit) is to increment the record index _before_ attempting to connect.
* | Deprecate QXmppClient::{rosterManager,vCardManager,versionManager}()Linus Jahn2019-10-142-0/+14
| | | | | | | | QXmppClient::findExtension() should be used instead.
* | Modernize codebase using clang-tidyJonah Brüchert2019-09-0825-93/+93
| | | | | | | | | | | | | | | | Using the following checks: * modernize-use-nullptr * modernize-use-override * modernize-use-using * modernize-use-bool-literals
* | Port deprecated method setCaCertificates of QSslSocketJonah Brüchert2019-09-031-2/+6
| |
* | MessageReceiptManager: Don't accept receipts from other resourcesLinus Jahn2019-05-051-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were some problems with buggy clients leading to that some messages were already marked as received, even though only another resource of the used account has got the message. Here is an example: [outgoing]: <message id="tH9OkRw" to="42@example.com" from="lnj@kaidan.im/kaidan.PR29" type="chat"> <body>test</body> <n1:request xmlns:n1="urn:xmpp:receipts"/> </message> [incoming]: <message to="lnj@kaidan.im/kaidan.PR29" from="lnj@kaidan.im/dino.dc02d539" id="410b33c3-1cd3-433e-8699-74a7583c2560"> <n1:received xmlns="urn:xmpp:receipts" id="tH9OkRw"/> </message> Here the other client "dino.dc02d539" sent an <received/> tag, although it actually received this message over carbons. To avoid that we need to ignore messages also from our bare JID.
* | [sasl] order mechanisms to prefer the most secureJeremy Lainé2019-01-182-11/+10
|/ | | | | | | | | | | | | | | | | | The previous logic was: - use the preferred SASL mechanism if available - otherwise use the first supported mechanism offered by the server However RFC 6120, section 6.3.3 states: "The initiating entity MUST maintain its own preference order independent of the preference order of the receiving entity." The new logic is: - order our supported mechanisms from most secure to least secure - if the user sets QXmppConfiguration::saslMechanism, put it first - use the best mechanism supported by the server
* Bump copyright year to 2019Jeremy Lainé2019-01-0841-41/+41
|
* Fix spelling errorsBoris Pek2019-01-085-6/+6
|
* Tiny addition to 439ad968c60d7cf44cc05cda72ebfdb1f8741045Boris Pek2019-01-031-1/+1
| | | | See: https://en.wikipedia.org/wiki/MacOS
* Set client type in discovery manager based on Qt OSLinus Jahn2019-01-031-1/+6
|
* Use QSysInfo for client OS in VersionManagerLinus Jahn2019-01-031-3/+8
| | | | | | The QXmppVersionManager will use QSysInfo in Qt 5.4 or later to determine the client's OS, so it will also contain the OS version or some codenames.
* Implement XEP-0352: Client State IndicationLinus Jahn2018-10-294-0/+41
| | | | | This commit is based on a pull request by fbeutel (GitHub) (see #87) and was rebased and slightly modified by me.
* Add missed variables initialization in constructors of few classes.Boris Pek2018-09-182-1/+3
|
* auto-connect to next DNS-SRV record server on connection failureMartin Koller2018-09-081-5/+23
| | | | | automatically try next server from DNS SRV record when connection to first can not be established
* Drop support for Qt 4Niels Ole Salscheider2017-09-042-18/+0
|
* Initial CMake build systemNiels Ole Salscheider2017-09-041-46/+0
|
* Add QXmppMamManager (XEP-0313)Niels Ole Salscheider2017-04-293-0/+218
|
* Implement XEP-0198: Stream Management (client only) (#99)Niels Ole Salscheider2017-02-122-52/+183
| | | | | | | | | | | | | | * Some features can be available with different namespaces (e.g. SM) * Provide static functions to convert between strings and stream errors Stream management will reuse this for <failed />. * [travis] test builds using clang * Implement XEP-0198: Stream Management (client only) * QXmppOutgoingClient: Move private methods to QXmppOutgoingClientPrivate