Skip to content

@lnjX lnjX released this Jul 20, 2020

The most important change of this release is the fix of CVE-2017-5603. QXmpp is
not vulnerable to roster push attacks (CVE-2016-9928).


  • QXmppRosterIq: Set subscriptionType to NotSet correctly (#293, @melvo)
  • Fix QXMPP_EXPORT define when linking statically (#299, @leobasilio)
  • QXmppMessageReceiptManager: Ignore all error messages (#300, @lnjX)
  • QXmppCarbonManager: Fix CVE-2017-5603 (missing sender check) (#304, @lnjX)
Assets 2

@lnjX lnjX released this Apr 6, 2020 · 45 commits to master since this release

QXmpp complys with the XMPP Compliance Suites 2020 (XEP-0423) for client development in the Core, IM and Advanced Mobile suites now. For this prupose it has been updated to RFC6120 and RFC6121. ABI compatibility was kept with this release (apart from classes marked as 'NOT FINALIZED').

New features:

  • Port QXmppCallManager to GStreamer (#207, @olesalscheider)
  • Add XEP-0245: The /me Command (#276, @lnjX)
  • Add XEP-0357: Push Notifications: Enable/disable IQ (#271, @JBBgameich, @ZatroxDE)
  • Add XEP-0359: Unique and Stable Stanza IDs (#256, @lnjX)
  • Add XEP-0428: Fallback Indication (#253, @lnjX)
  • Update from RFC3920 to RFC6120:
    • Deprecate PaymentRequired stanza error condition as it was not adopted in RFC6120 (#277, @lnjX)
    • Add PolicyViolation stanza error condition added in RFC6120 (#279, @lnjX)
    • Add redirection URI from RFC6120 for Gone and Redirect conditions (#280, @lnjX)
    • Add 'by' attribute to QXmppStanza::Error from RFC6120 (#283, @lnjX)
  • Update from RFC3921 to RFC6121:
    • Add pre-approved presence subscriptions (#285, @lnjX):
      • Add 'approved' attribute to QXmppRosterIq
      • Add stream feature for pre-approved presence subscriptions
    • Add stream feature for roster versioning (#286, @lnjX)
  • Use QUuid by default to generate unique stanza IDs (#255, @lnjX)
  • Add roster extension for MIX-PAM (XEP-0405) (#175, @lnjX)
  • Update MAM to v0.6 (including namespace bump to urn:xmpp:mam:2) (#254, #257, @lnjX)
  • Add not-authorized stream error condition in QXmppOutgoingClient (#191, @henry61024)
  • Add missing static service discovery features for supported message extensions (#287, @lnjX)
  • Add utility constructor to QXmppDataForm and QXmppDataForm::Field to make creation of forms easier (#273, @lnjX)


  • Make QXmpp work with projects using QT_NO_KEYWORDS (#258, @tomcucinotta)
  • Add hyperlinks to XEP references in the documentation (@lnjX)
  • Move from Travis-CI to GitHub Actions (#265, @jlaine)
  • Replace deprecated qsrand() and qrand() by QRandomGenerator (#267, @melvo)
  • Add tests for QXmppStanza::Error parsing (#279, @lnjX)


  • QXmppStanza::Error::Condition::PaymentRequired: The error condition was unused and not adopted in RFC6120
Assets 2

@lnjX lnjX released this Mar 31, 2020 · 115 commits to master since this release

This release contains some bug fixes that have been found in the last two
months. Also, the coverage has slightly improved due to new unit tests for the
bug fixes.


  • QXmppRegistrationManager: Fix failed and succeeded signals are both emitted on success (#260, @melvo)
  • QXmppMessageReceiptManager: Fix receipts are sent on error messages (#269, @TheBluestBird)
  • QXmppVCardManager: Fix clientVCardReceived() not emitted when IQ is from the bare JID of the user (#281, @melvo, @lnjX)
  • QXmppRosterManager: Fix 'ask' attribute is included when renaming item (#262, @melvo, @lnjX)
  • QXmppRosterIq: Add missing implementation of the copy constructor (@lnjX)
Assets 2

@lnjX lnjX released this Feb 10, 2020 · 126 commits to master since this release


QXmpp now requires Qt 5.7 or later. Unfortunately ABI compatibility was not
kept this release again. Code coverage has been improved from 68.93% to 69.55%.

New features:

  • Implement XEP-0077: In-band registration:
    • Add registration manager with full unit tests (#248, @lnjX)
    • Add registered and remove to the IQ (#240, @lnjX)
  • Implement XEP-0231: Bits of Binary (#230, @lnjX)
  • Add QXmppClient::indexOfExtension<T>() (#241, @lnjX)
  • Add QXmppStartTlsPacket to replace fixed XML data (#236, @lnjX)
  • Move TLS code to private QXmppTlsManager (#236, @lnjX)
  • Add private QXmppInternalClientExtensions to access private part of the
    client (#243, @lnjX)
  • Add utility methods to QXmppRegisterIq to create common requests (#247, @lnjX)


  • QXmppMucManager: Make it possible to handle stanzas not handled by the
    manager (#226, @kollix)
  • Only send Client State Indication (CSI) states when connected (#232, @lnjX)
  • Fix no documentation is generated for QXmppStanza::Error and
    QXmppStreamFeatures (@lnjX)
  • Fix some doxygen warnings and undocumented Q_PROPERTYs (@lnjX)


  • Replace deprecated Q_FOREACH (#210, @lnjX)
  • Replace deprecated Q_ENUMS with Q_ENUM (#227, @lnjX)
  • Replace deprecated signal/slots syntax (#237, @JBBgameich)
  • Switch to Ubuntu Bionic for Travis-CI builds (#210, @lnjX)
  • Use QSharedDataPointers for QXmppRegisterIq, QXmppPubSubIq,
    QXmppDiscoveryIq, QXmppMam{Query,Result}Iq, QXmppStreamFeatures
    (#230, #235, #252, @lnjX)
  • Refactor QXmppPubSubIq and add missing tests (#235, @lnjX)
  • Refactor QXmppPresence and add missing tests (#231, @lnjX)
  • Replace manual xmlns writing by writeDefaultNamespace() (#244, @lnjX)
  • Use QT_VERSION_CHECK to generate QXMPP_VERSION (#238, @lnjX)
  • Add clang-format file (#239, @0xd34df00d)
Assets 2

@lnjX lnjX released this Apr 1, 2020 · 189 commits to master since this release

All new classes and methods in this release are marked in the documentation
with since QXmpp 1.1.

New features:

  • Add support for SCRAM-SHA-1 and SCRAM-SHA-256 (#183, @jlaine)
  • Order SASL mechanisms to prefer the most secure (#187, @jlaine)
  • Add XEP-0334: Message Processing Hints (v0.3.0) (#212, @lnjX, @jaragont, @sam-truscott)
  • Add XEP-0363: HTTP File Upload (v0.9.0) (#188, @lnjX)
  • Add XEP-0367: Message Attaching (v0.3.0) (#196, @lnjX)
  • Add XEP-0369: Mediated Information eXchange (MIX) (v0.14.2) (partially):
    • Add QXmppMixIq to manage/join channels (#174, @lnjX)
    • Add QXmppMessage and QXmppPresence extensions for MIX (#175, @lnjX)
    • Add channel info and participant PubSub/PEP items (#179, @lnjX)
  • Add XEP-0380: Explicit Message Encryption (v0.3.0) (#199, @lnjX)
  • Add XEP-0382: Spoiler messages (v0.2.0) (#195, @lnjX)


  • Do not accept receipts from other resources of the used account (#192, lnjX)
  • cmake: Set minimum version before creating project() and bump to 3.3 (#205, @JBBgameich)


  • Deprecate QXmppClient extension getters (#214, @lnjX):
    • QXmppClient::rosterManager(): Use QXmppClient::findExtension<QXmppRosterManager>() instead
    • QXmppClient::vCardManager(): Use QXmppClient::findExtension<QXmppVCardManager>() instead
    • QXmppClient::versionManager(): Use QXmppClient::findExtension<QXmppVersionManager>() instead
  • Refactor data form media element, deprecate QXmppDataForm::Media (#222, @lnjX):
    • QXmppDataForm::Media: Use a list of the new QXmppDataForm::MediaSource in combination with a QSize
    • QXmppDataForm::Field::media() / QXmppDataForm::Field::setMedia(): Use QXmppDataForm::Field::mediaSources() and QXmppDataForm::Field::mediaSize()


  • Replace deprecated qSort() by std::sort() (#206, @JBBgameich)
  • Do not use deprecated QSslSocket::setCaCertificates() (#206, @JBBgameich)
  • Modernize code by using nullptr, override, etc. (#204, @JBBgameich)
  • Move attributes into private d-pointer for future ABI compatibility:
  • Use raw literals, range based loops and auto (#224, @JBBgameich)
Assets 2

@lnjX lnjX released this Apr 1, 2020 · 246 commits to master since this release

  • Fix potential SEGFAULT on connection error (#216, @0xd34df00d)
  • Fix SO_VERSION to 1: ABI has changed since last minor release (#185, @tehnick)
  • Add CMake option for internal tests (BUILD_INTERNAL_TESTS) (#184, @jlaine)
Assets 2

@lnjX lnjX released this Apr 1, 2020 · 252 commits to master since this release

New features:


  • Do not ignore SSL errors by default (#113), if you need to deal with
    broken SSL configurations, set QXmppConfiguration::ignoreSslErrors to true.
  • Disable tests that require QXMPP_AUTOTEST_EXPORT (fixes #149) (@jlaine)
  • Fix QXmppSslServer::incomingConnection signature (#131, @olesalscheider)
  • Add missed variables initialization in constructors of few classes
    (#122, @tehnick)


  • travis: Test builds with clang (@0xd34df00d)
  • travis: Switch to Ubuntu Xenial (#151, @tehnick)
  • tests: Generate coverage repot (@jlaine)
  • Build examples by default


Assets 2

@lnjX lnjX released this Apr 1, 2020 · 333 commits to master since this release

  • Add QXmppIceConnection::gatheringState property.
  • Improve QXmppTransferManager::sendFile's handling of QIODevice ownership.
  • Fix QXmppTransferManagerFix convering filename to a QUrl.
Assets 2

@lnjX lnjX released this Apr 1, 2020 · 350 commits to master since this release

  • Fix build error for debug builds.
  • Allow QXmppJingleIq to have multiple contents.
Assets 2

@lnjX lnjX released this Apr 1, 2020 · 364 commits to master since this release

  • Fix build error when VPX support is enabled (issue 71).
Assets 2
You can’t perform that action at this time.