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
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…