aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Implement XEP-0231: Bits of Binary: content identifiersLinus Jahn2019-12-063-0/+304
| | | | | This implements parsing and serialization of content identifiers from XEP-0231: Bits of Binary in version 1.0.
* QXmppRegisterIq: Use d-pointer to maintain binary compat in futureLinus Jahn2019-12-062-33/+57
|
* 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-277-24/+20
| | | | | 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-2332-197/+179
| | | | | | | 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-239-2/+80
| | | | Methods of new classes have no \since tag.
* Refactor data form media elementLinus Jahn2019-10-232-45/+313
| | | | | | | | | | | * Add QXmppDataForm::MediaSource instead of using a QPair<QString, QString> to save the URIs and content types. * Deprecate QXmppDataForm::Media: The extra class was useless: Each Field has exactly one media element and the media element has only two attributes (size and media sources) * Add mediaSources and mediaSize attributes to the QXmppDataForm::Field * Deprecate getters/setters for the Media element of QXmppDataForm::Field (they are still working and tested)
* 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-2217-68/+66
|
* QXmppUploadRequestManager: Fix doxygen warningsLinus Jahn2019-10-212-9/+11
|
* Revert "Implement MIX-PAM XEP-0405: Roster IQ extension"Linus Jahn2019-10-212-93/+6
| | | | | | | | | | This reverts commit 740a085ef7ac707e2cc2217edf02e296c3f7692e. There were talks on the standards mailing list that the XEP will be changed and a private PEP node is used for distributing joined channels. Also no server (that I am aware of) supports the MIX roster extension, so I think it is the best we remove before the next release, so we do not have problems with deprecations and ABI compatibility.
* 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-203-0/+393
| | | | | This adds a manager to simplify service discovery and IQ sending for XEP-0363: HTTP File Upload.
* Implement XEP-0363: HTTP File Upload: Error casesLinus Jahn2019-10-202-17/+102
| | | | | This extends the QXmppStanza::Error by the error cases defined in XEP-0363: HTTP File Upload in version 0.9.0.
* QXmppStanza::Error: Use d-pointer to maintain binary compat in futureLinus Jahn2019-10-202-34/+58
|
* QXmppMessage: Add back QDateTime include to keep source compatibility (#221)JBB2019-10-201-0/+3
| | | Introduced by 98f2fd04b0a95840584320858ff54cd5caff8f70 (#213).
* QXmppTransferManager: Port away from QTime.elapsed()Jonah Brüchert2019-10-191-1/+2
|
* Refactor & clean up QXmppMessageLinus Jahn2019-10-194-312/+270
| | | | | | | | | | | | | | | This simplifies parsing and fixes a possible bug: The bug case looks like this: - We have one element we want to parse (e,g, "attachment" with namespace xyz) - There is another element called "attachment" in the stanza and it's located before the other element. - QXmppMessage tries to parse the attachment element using firstChildElement("attachment") and checks the namespace - The namespace (of the first) element doesn't match - The actual "attachment" element is not parsed This also fixes the "constructor does not initialize these fields: […]" warnings for QXmppMessagePrivate.
* Use QSharedData for QXmppHttpUploadIq private classesLinus Jahn2019-10-152-15/+26
|
* Use QSharedData for QXmppMixIqPrivateLinus Jahn2019-10-152-9/+25
|
* Use QSharedData for QXmppMixItem private classesLinus Jahn2019-10-152-5/+29
|
* Use QSharedData for QXmppRosterIqPrivate and ItemPrivateLinus Jahn2019-10-152-14/+16
|
* 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.
* | Add deprecation system similiar to Qt'sLinus Jahn2019-10-141-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | This adds the QXMPP_DISABLE_DEPRECATED_BEFORE option and a QXMPP_DEPRECATED_SINCE(major, minor) macro. They work like their Qt equivalent: - QXMPP_DISABLE_DEPRECATED_BEFORE defines the version number of source compatibility to be kept with. By default this is the major version (e.g. QXmpp 1.0.0) - QXMPP_DEPRECATED_SINCE(major, minor) returns true, if functions that got deprecated at this version should still be included.
* | Modernize codebase using clang-tidyJonah Brüchert2019-09-0877-338/+338
| | | | | | | | | | | | | | | | Using the following checks: * modernize-use-nullptr * modernize-use-override * modernize-use-using * modernize-use-bool-literals
* | Implement XEP-0334: Message Processing HintsLinus Jahn2019-09-084-0/+74
| | | | | | | | | | | | | | | | | | | | This implements parsing and serialization of XEP-0334: Message Processing Hints in version 0.3.0. https://xmpp.org/extensions/xep-0334.html Co-authored-by: Juan Aragon <jaaragont@gmail.com> Co-authored-by: Sam Truscott <sam@wumpus.co.uk>
* | Implement XEP-0380: Explicit Message EncryptionLinus Jahn2019-09-064-1/+145
| | | | | | | | | | | | | | This adds parsing and serialization for XEP-0380: Explicit Message Encryption in version 0.3.0. https://xmpp.org/extensions/xep-0380.html
* | Add register stream featureMelvin Keskin2019-09-064-0/+23
| | | | | | | | | | | | | | This adds parsing, serialization and a test for the 'register' stream feature of XEP-0077: In-Band Registration. Co-authored-by: Linus Jahn <lnj@kaidan.im>
* | Implement XEP-0367: Message AttachingLinus Jahn2019-09-064-7/+45
| | | | | | | | | | This adds parsing and serialization for XEP-0367: Message Attaching in version 0.3.0.
* | Port deprecated method setCaCertificates of QSslSocketJonah Brüchert2019-09-031-2/+6
| |
* | Port deprecated qSort invocations to std::sortJonah Brüchert2019-09-033-7/+7
| |
* | 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.
* | Implement XEP-0363: HTTP File Upload: Request/Slot IQsLinus Jahn2019-05-045-0/+356
| | | | | | | | | | This implements the IQs for requesting and receiving upload slots as defined by XEP-0363: HTTP File Upload in version 0.9.0.
* | Update implementation of XEP-0369 (v0.14.2) and XEP-0405 (v0.4.0)Linus Jahn2019-05-043-8/+8
| | | | | | | | | | The changes in the XEP only affected parts we haven't implemented yet, so updating was rather easy.
* | Implement XEP-0382: Spoiler messages (v0.2.0)Linus Jahn2019-05-044-0/+73
| | | | | | | | This adds parsing and serialization of spoilers in the QXmppMessage class.
* | Implement MIX-CORE XEP-0369: Info/Participant node itemsLinus Jahn2019-05-043-0/+315
| | | | | | | | | | | | | | | | | | This implements the pubsub items for the MIX participants and info node as defined by XEP-0369: Mediated Information eXchange (MIX) in version 0.14.2. https://xmpp.org/extensions/xep-0369.html#participants-node https://xmpp.org/extensions/xep-0369.html#info-node
* | Implement MIX-PAM XEP-0405: Roster IQ extensionLinus Jahn2019-05-012-6/+93
| | | | | | | | | | | | | | | | This adds the MIX extensions for roster queries as defined in XEP-0405: Mediated Information eXchange (MIX): Participant Server Requirements in version 0.4.0. https://xmpp.org/extensions/xep-0405.html#mix-roster-capability-sharing
* | Implement MIX-PAM XEP-0405: Presence extensionLinus Jahn2019-05-014-1/+58
| | | | | | | | | | | | | | | | This implements the new presence extension defined by XEP-0405: Mediated Information eXchange (MIX): Participant Server Requirements in version 0.4.0. https://xmpp.org/extensions/xep-0405.html#usecase-user-presence-receive
* | Implement MIX-CORE XEP-0396: Message extensionLinus Jahn2019-05-012-0/+52
| | | | | | | | | | | | | | This implements the new message extension specified by XEP-0369: Mediated Information eXchange (MIX) in version 0.14.2. https://xmpp.org/extensions/xep-0369.html#usecase-user-message
* | roster iq: Make use of d-pointerLinus Jahn2019-05-012-35/+77
| |
* | mix iq: Use d-pointer to remain binary compatibilityLinus Jahn2019-01-272-33/+53
| |
* | Implement XEP-0369/XEP-0405 (MIX): IQ queriesLinus Jahn2019-01-205-0/+293
| | | | | | | | | | | | This implements all used IQ queries of XEP-0369: Mediated Information eXchange (MIX) (v0.14.1) and XEP-0405: Mediated Information eXchange (MIX): Participant Server Requirements (v0.3.1), including unit tests.
* | [sasl] order mechanisms to prefer the most secureJeremy Lainé2019-01-183-13/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | [sasl] add support for SCRAM-SHA-1 and SCRAM-SHA-256Jeremy Lainé2019-01-172-2/+139
|/
* Bump copyright year to 2019Jeremy Lainé2019-01-08140-140/+140
|