aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
|
* Fix spelling errorsBoris Pek2019-01-0813-15/+15
|
* Implement XEP-0319: Last User Interaction in PresenceLinus Jahn2019-01-044-14/+47
|
* 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-0308: Last Message CorrectionLinus Jahn2018-12-304-0/+42
|
* Add partial support of XEP-0066: Out of Band DataLinus Jahn2018-12-194-0/+36
| | | | | Today this is most important for attaching URLs generated by XEP-0363: HTTP File Upload for a very basic form of media/file sharing.
* add BUILD_SHARED to support library type and add BUILD_SHARED to READMEZam2018-11-261-1/+6
|
* Implement XEP-0352: Client State IndicationLinus Jahn2018-10-298-1/+68
| | | | | This commit is based on a pull request by fbeutel (GitHub) (see #87) and was rebased and slightly modified by me.
* Fix spelling errorBoris Pek2018-10-081-1/+1
|
* Add missed variables initialization in constructors of few classes.Boris Pek2018-09-185-3/+13
|
* QXmppElement: add self-assignment check to 'operator='.Boris Pek2018-09-181-4/+7
|
* [socks] fix a compiler warning on MSVCJeremy Lainé2018-09-181-1/+1
|
* 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