Changelog


version 1.0.28 released: 22 Nov 2023

  • fixed SCRAM-SHA-1-PLUS with OpenSSL and TLS 1.3 (fixes #302)


version 1.0.27 released: 24 Apr 2023
Note: This release is not binary compatible with previous releases. It is source compatible.

  • BookmarkStorage: allow empty bookmark names (as per spec) (fixes #300)
  • MUCRoom: added send( message, subject, StanzaExtensionList ) (fixes #301)


version 1.0.26 released: 19 Mar 2023

  • MUCRoom: init m_session (fixes #293)
  • TLSOpenSSL: use system certificates for verification (fixes #292)
  • ConnectionTCPServer: compilation fix for musl (fixes #291)


version 1.0.25 released: 16 Mar 2023

  • compile fixes for modern compilers
  • Tag: expose internal NodeList for optional XHTML-IM rendering without external parser; compile with –enable-xhtmlim (fixes #297)
  • enabled/fixed support for TLS 1.3


version 1.0.24 released: 14 Jul 2020
Note: This release is not binary compatible with previous releases. It is source compatible.

  • Tag: fixed XML namespace for attribute with empty namespace (fixes #278) (thanks to drizt72)
  • PubSub::Event: add simple ctor (thanks to Daniel Kraft)
  • PubSub::Manager: fixed subscription error case handling (thanks to Daniel Kraft)
  • PubSub: fixed support for instant nodes
  • RosterManager: fixed behavior if subscription attribute is absent in roster item


version 1.0.23 released: 08 Dec 2019

  • fixed a memory leak in dns.cpp (thanks to Daniel Kraft)
  • fixed session management/stream resumption (thanks to Michel Vedrine, François Ferreira-de-Sousa, Frédéric Rossi)
  • MUCRoom::MUCUser: include reason if set
  • ClientBase: fix honorThreadID (first noticed by Erik Johansson in 2010)
  • TLSGnuTLS: disabled TLS 1.3 for now, as there are connection issues with it


version 1.0.22 released: 04 Jan 2019

  • TLSOpenSSLBase: conditionally compile in TLS compression support only if available in OpenSSL (fixes #276) (thanks to Dominyk Tiller)
  • TLSGNUTLS*Anon: fix GnuTLS test by explicitely requesting ANON key exchange algorithms (fixes #279) (thanks to elexis)
  • TLSGNUTLSClient: fix server cert validation by adding gnutls_certificate_set_x509_system_trust() (fixes #280) (thanks to elexis)
  • DNS: fix compilation on OpenBSD sparc64 (fixes #281) (thanks to Anthony Anjbe)
  • Enable getaddrinfo by default (fixes #282) (thanks to Filip Moc)


version 1.0.21 released: 12 Jun 2018

  • InBandBytestream: error handling corrected
  • doc fix: CertInfo::date_from/to set correctly when using OpenSSL


version 1.0.20 released: 26 Feb 2017
Note: This release is not binary compatible with previous releases. It is source compatible.

  • BytestreamDataHandler: added callback for acknowledged packets
  • ConnectionTCPClient: compile fix for Win32 (broken in 1.0.19)
  • ConnectionTCPClient: no-block fix
  • use ws2_32.lib instead of ws_32.lib on Win32


version 1.0.19 released: 21 Feb 2017
Note: This release is not binary compatible with previous releases. It is source compatible.

  • ConnectionTCPServer: cleanup
  • lots of compile-time warnings removed
  • TLSOpenSSL: made it speak TLSv1.1 and 1.2 again (thanks to Nicolas Belouin)
  • added Client State Indication (XEP-0352)
  • CertInfo struct: fixed protocol version when using OpenSSL
  • TLSOpenSSL: fixed compilation with OpenSSL 1.1.0
  • Registration: added Resource Constraint error condition (thanks to elexis1987) (#267)
  • ConnectionTCP: fixed some blocking (thanks to Marco Ciprietti)


version 1.0.18 released: 10 Nov 2016

  • TLSOpenSSL: fixed wildcard certificate support (#262)
  • Pubsub::Event: fixed potential NULL dereference (#257)
  • ConnectionTCPServer: fixed listening on local socket
  • Adhoc: fixed memory leak (thanks to Erik Horemans)
  • documentation fixes (Adhoc::Plugin, StanzaExtension)
  • ConnectionTLS: delete old connection in setConnectionImpl() (thanks to Erik Horemans) and clarify this in the documentation
  • Tag: Android compilation fix (thanks to Erik Horemans)
  • ConnectionSOCKS5Proxy: improved compatibility (thanks to Erik Horemans)
  • util: Android compilation fix (thanks to Erik Horemans)
  • Client, ClientBase: avoid ‘from’ attribute when doing resource binding (#265)
  • MUCRoom: allow empty message body if extension is present (#264) (thanks to Tom Quackenbush)
  • ConnectionBOSH: initialize ‘hold’ to 1 to improve compatibility (#238)
  • ConnectionTCPServer: actually accept incoming connections


version 1.0.17 released: 23 Aug 2016
Note: This release is not binary compatible with previous releases. It is source compatible.

  • MingW compile fixes (thanks to Florian Niebel)
  • properly use winsock2 (thanks to Kau)
  • a few fixes for uclibc++ compatibility (thanks to Erik Horemans)
  • Message: removed bogus hard-coded namespace to fix component use


version 1.0.16 released: 16 Jul 2016

  • PubSubManager: properly include publish options (thanks to Iban Ulov)
  • PubSubManager: properly parse subscriptions in ctor (thanks to Joe Best)
  • Resource: fixed high memory usage when receiving presence stanzas (#259) (thanks to Manuel)


version 1.0.15 released: 25 Apr 2016

  • Error: fix copy ctor (thanks to Olivier Tchilinguirian)
  • ClientBase: properly fix handling of MUC invitation declines (wrong in 1.0.14) (thanks to Martin Hillmeier and Matias Snellingen) (#248)
  • MUCRoom: handle SendRoomConfig (thanks to Matias Snellingen) (#253)
  • soversion bump, missed that for 1.0.14 (thanks to Vincent Cheng)
  • TLSGNUTLSClient: fixed off-by-one error in certificate verification
  • IPv6 fixes


version 1.0.14 released: 11 Aug 2015
Note: This release is not binary compatible with previous releases. It is source compatible.

  • IOData: make it possible to pass more than one element as in/out/error data
  • Client: fix resetting of presence status text
  • TLSSChannel: fix memory leak (thanks to Alexander Weisner)
  • Error: added setAppError() to set application-specific error message
  • PubSub::Item: added setPayload(), setID()
  • Adhoc: return clone of plugin
  • PubSub::Manager: fix finding of subscription type (thanks to BillHoo)
  • ChatStateFilter: fix enable logic (thanks to Ivan Shmakov)
  • MessageEvent: added parsing of (thanks to Ivan Shmakov)
  • MessageEvent: added id() (thanks to Ivan Shmakov)
  • ClientBase: handle MUC invitation declines properly (thanks to Matias Snellingen)
  • DNS: IPv6 fix (thanks to garimacoe) (#249)
  • DelayedDelivery: propagate internal state properly (#251)
  • PubSub::Manager: fix GetSubscriberList and GetAffiliateList


version 1.0.13 released: 31 Jan 2015
Note: This release is not binary compatible with previous releases. It is source compatible.

  • fixed compilation with libressl (thanks to Heiko Becker)
  • added IO Data (XEP-0244)
  • serialise access to compressionZlib::cleanup for thread safety (thanks to Stephen Hilliard)
  • prevent infinite loop in Tag::setCData() (thanks to Stephen Hilliard)
  • TLSOpenSSL: memory leak on every client connection attempt (thanks to Stephen Hilliard)
  • Client: initialize m_smWanted to avoid connection failures (thanks to Stephen Hilliard)


version 1.0.12 released: 12 Nov 2014

  • TLSOpenSSLClient/Server: disabled SSLv3


version 1.0.11 released: 13 Sep 2014

  • GnuTLS: updated use of priority API
  • LinkLocal*: compile fixes for MSVC 2008 (thanks to Serhiy M. Vasylenko)
  • fixed Debian bug #746857, worked around #758899
  • fixed memory leak (#240)
  • fixed compatibility with recent GnuTLS versions, fixed GnuTLS check (thanks to Andreas Metzler) (#231)
  • Jingle::Session: fixed state error (thanks to leerymatthew) (#236)


version 1.0.10 released: 09 Apr 2014

  • TLSSChannel: use malloc/realloc/free instead of their legacy Local* variants (fixes #222)
  • VCard: remove \r from vcard photos. Fixes a recent change Facebook made to their vcard pictures (patch by Fernando Sanchez)
  • Jingle: fixed replying; distinguish between ‘from’ and ‘initiator’; added Jingle::Session::setInitiator()
  • Jingle: fixed ::ICEUDP to actually add candidates; added ::Session::initiator(), ::setHandler(), ::sessionAccept( PluginList ); fixed storing of new sessions in ::SessionManager (patches by Erich Keane)
  • Jingle: removed Jingle::setInitiator() and ::setResponder() (now provided by ctor)
  • AtomicRefCount: fixed compilation on iOS (patch by Erich Keane)
  • Jingle::Plugin: added JinglePluginType, pluginType(), and findPlugin() to easily look for and retrieve specific plugins
  • ConnectionBOSH: fixed return value for recv() (patch by Sudarshan Prasad)
  • Parser: get rid of bogus isValid() (fixes #180, #224)


version 1.0.9 released: 15 Oct 2013

  • changed colon to dash in uid generation to possibly fix #191
  • added Channel Binding (needed for SASL SCRAM-SHA-1-PLUS) to SChannel on win32 (untested)
  • fixed SCRAM-SHA-1-PLUS


version 1.0.8 released: 15 Oct 2013

  • ConnectionTLS: make stacked TLS/SSL connections work again with HTTP proxies
  • added SASL SCRAM-SHA-1/SCRAM-SHA-1-PLUS authentication mechanisms (GnuTLS & OpenSSL only) (#201)
  • properly seed the RNG
  • SHA::hex(): finalize() only once


version 1.0.7.1 released: 11 Oct 2013

  • fixed/updated the win32 project files


version 1.0.7 released: 11 Oct 2013

  • added Jingle (XEP-0166)
  • added Jingle ICE-UDP Transport (XEP-0176)
  • added Jingle File Transfer (XEP-0234)
  • fixed compilation in iOS7 SDK (thanks to Kurt Vermeersch)
  • fixed bug in stanza handling/counting related to Stream Management (patch by Norbert Riedlin)
  • added protected ClientBase::stanzasSent() to return sent stanzas (if Stream Management enabled)


version 1.0.6 released: 04 Sep 2013

  • ClientBase: removed check for empty message body –> messages of type chat with empty bodies will be passed on to listeners – required for Message Carbons
  • MessageSession: removed check for empty message body –> messages of type chat with empty bodies will be passed on to listeners – required for Message Carbons
  • don’t send presence after stream resumption
  • added ClientBase::sendQueue()
  • documentation updates and fixes


version 1.0.5 released: 02 Sep 2013

  • added support for Stanza Forwarding (XEP-0297)
  • added support for Message Carbons (XEP-0280)


version 1.0.4 released: 30 Aug 2013

  • added support for Stream Management (XEP-0198)
  • Fix some iterator usage for portability related to erase (patch by Daniel Bowen)
  • Ensure setting a connection does not leave a deleted value in the member variable for a time (patch by Daniel Bowen)
  • Add operator< and relatives to JID so that it can be in a map (patch by Daniel Bowen)
  • Sandboxing on Apple doesn’t like getprotobyname (patch by Daniel Bowen)
  • MessageSession::send(): removed default argument of 2nd parameter to remove ambiguity of MS::send( string ) (#206) (source incompatible!)
  • VCard: renamed setPhoto( string ) to setPhotoUri( string ) (#166) (source and binary incompatible)


version 1.0.3 released: 22 Jul 2013

  • changed license to GPLv3
  • removed space from VS project name (–> gloox-1.0)
  • VCardUpdate: fixed handling of empty hash (#203)
  • VCardUpdate: added hasPhoto() to inidicate whether there was a photo tag (#203)
  • compilation fixed when using getaddrinfo (patch by Roy van Dam)
  • Receipt: recognize id attribute (patch by Dídac Pérez) (#208)
  • MessageSession: added MS::send( string& ) to properly provide a base for MUCMS::send( string& ) (#206)
  • really fixed memory leak in prep::idna()
  • gloox.vcproj: removed not-yet-present tlsgnutlsserver.cpp/.h


version 1.0.2 released: 05 Jul 2013

  • SOCKS5Bytestream: Don’t wait for incoming data, notify about open stream immediately upon connection (patch by Erik Horemans)
  • fixed/updated Code::Blocks and VS project files (fixes #197, #198)
  • fixed memory leak in ClientBase (fixes #204)
  • fixed memory leak in prep::idna()

version 1.0.1 released: 29 Jun 2013

  • added support for Serverless Messaging (XEP-0174)
  • TLSOpenSSLServer: compilation fix
  • don’t bail on DNS TCP queries
  • fixed µs timeout value (now defaults to 1.000.000)
  • omit port in initial greeting (usually -1 anyway)
  • fixed SHA1 hashes of 55 byte strings (#164)
  • fixed CFLAGS and LIBS in pkg-config file (#163)
  • fixed SOCKS5Bytestream double close notification
  • tell gcrypt that we’re using pthreads (if available)
  • ClientBase: send IQ error response for unsupported features
  • ClientBase: fixed potential infinite loop on IQ error
  • ClientBase: fixed NTLM auth
  • ClientBase, SEF: mutex-protected SE handling
  • PubSub: added ‘subscribe & configure’
  • PubSub: added optional subid
  • SOCKS5BytestreamServer: expose local socket
  • RosterManager: don’t use string-comparison on JIDs; use JID class
  • NonSASLAuth: fixed resource usage by deprecating ClientBase::m_selectedResource
  • InBandBytestream: don’t call handler in dtor
  • util: fixed long2string()
  • fixed a few leaks in GnutTLS client code (#181)
  • VCard: made getters const (#186) (binary-incompatible change!)
  • PubsubManager: fixed using wrong Tag (#190)
  • Search: fixed search() (#193)
  • DNS: fix socket leak if no network connection is available (#192)
  • PubsubManager: unconditionally call handleItemPublication() (#194)
  • configure: Added -lgcrypt (dependency of GNUTLS)

version 1.0 released: 31 Oct 2009

  • XEP-0020 (Feature Negotiation) wrapper
  • XEP-0060 (Publish-Subscribe)
  • XEP-0071 (XHTML-IM) wrapper
  • XEP-0115 (Entity Capabilities)
  • XEP-0124 (BOSH)
  • XEP-0172 (User Nickname)
  • XEP-0184 (Message Receipts)
  • XEP-0199 (XMPP Ping)
  • XEP-0206 (XMPP Over BOSH)
  • integrated XEP-0047 (In-Band Bytestreams) with XEP-0096 (File Transfer)
  • integrated XEP-0066 (Out-of-Band Data) with XEP-0096 (File Transfer)
  • added IQ, Message, Subscription, Presence classes
  • added SASL error malformed-request from RFC 3920bis
  • added StanzaExtension and ported all XEPs
  • DataForm: removed ‘Form’ prefix from DataForm::DataFormType enum members
  • DataForm: removed ‘Field’ prefix from DataForm::FieldType enum members
  • JID: made setters return success/failure
  • Parser: feed() returns -1 on success, parse error position otherwise
  • Parser and Tag: support mixed content xml
  • Parser: XML namespace support
  • ConnectionListener: added onResourceBind( resource ) to notify about successfully bound resources
  • ConnectionListener: onResourceBindError() takes pointer to Error object
  • ConnectionListener: onSessionCreateError() takes pointer to Error object
  • Client: support for binding and unbinding of additional resources
  • SIProfileFTHandler: handleFTRequest() doesn’t pass an id anymore, just a sid
  • SIProfileFT: acceptFTRequest() and declineFTRequest() don’t take an id argument anymore, just a sid
  • Tag: check input for XML conformance
  • Tag: made findTag(), findTagList(), findCData() const
  • RosterItem: SubscriptionEnum moved to gloox namespace; renamed to SubscriptionType
  • MessageSession::send(): added StanzaExtensionList parameter
  • added SASL NTLM authentication (experimental, windows only)
  • added VC project files
  • deprecated:
    • MUCRoomHandler::handleMUCMessage( MUCRoom*, string, string, bool, string, bool ), use handleMUCMessage( MUCRoom*, Message&, bool )
  • removed:
    • class XDelayedDelivery, use DelayedDelivery
    • JID::fullJID(), use ctor
    • JID::empty(), use operator bool()
    • Tag::empty(), use operator bool()
    • Stanza::createMessageStanza(), Stanza::createPresenceStanza(), Stanza::createIqStanza(), Stanza::createSubscriptionStanza(), use Message, Presence, IQ, Subscription instead

… and many more…

Older versions…