v0.8.1 -- 28 Jul 2006
---------------------
- Registration: allow registration with services (*)
- async inbandbytestreams ack
- fixed memory leak in RosterItem
- RosterListener: announce un/available resource in itemUn/Available() (*)
- RosterManager: don't sync self contact to server
- PrivacyManager: give a privacy list a proper name (thanks to Chris Bond)
- InBandBytestreams: ack closing with correct ID
- Adhoc: provide requesting entities JID in the callback (*)
- DataForm: fixed few minor field handling bugs
- Client: allow lazy username provisioning
(*) these changes render 0.8.1 source incompatible compared to 0.8


v0.8 -- 08 Apr 2006
-------------------
- added an extensible message session abstraction
- added automatic MessageSession creation facilities upon incoming messages
- JEP-0022 (Message Events)
- JEP-0047 (In-Band Bytestreams)
- JEP-0054 (vcard-temp)
- JEP-0085 (Chat State Notifications)
- 'ported' to Linux on Arm (Intel XScale on gumstix in this case)
- RosterManager: returning true from RosterListener::unsubscriptionRequest()
  makes the RosterManager no longer remove the item from the roster. It is
  unsubscribed from only. Use unsubscribe( jid, msg, true ) to remove it manually.
- RosterListener: renamed itemChanged() --> presenceUpdated()
- RosterListener: added nonrosterPresenceReceived()
- revamped logging system, introducing per-ClientBase log instance
- Tag: renamed addAttrib() --> addAttribute()
- RosterItem & RosterListener: more const & return values and parameters
- RosterItem: support for multiple resources, introducing RosterItem::Resource
- renamed enum members from ALL_UPPER_CASE to MixedCase
- Stanza: added 'int priority()'
- SASL EXTERNAL and support for client key/cert
- RosterManager: added RosterItem* getRosterItem( const JID& jid )
- added extern "C" const char* gloox_version()
- Tag: made findChild(...) return 0 instead of new Tag (reverted change from 0.7.6)
- Tag: added addAttribute( const std::string, int )
- revamped MessageSession to accept external MessageFilters
- Disco: added const StringList& features()
- allow for immediate re-connect() after disconnect()
- fixed compilation with gcc 4.1
- semi fixed missing onDisconnect() call if file descriptor has been fetched and stream error occured


v0.7.6.1 -- 10 Feb 2006
-----------------------
- fixed OpenSSL check on MinGW


v0.7.6 -- 07 Feb 2006
--------------------
- fixed alignment issues on ARM
- more const'ness where possible (thanks to Marc Rousseau)
- configure checks for res_querydomain et.al.
- doc updates
- Tag: added findChild( name, attr, value )
- Tag: made findChild(...) return new Tag instead of 0
- DataForm (JEP-0004) awareness for Registration class
- workaround for iksemel's base64 bug
  SASL Plain with GTalk and SASL Digest-MD5 with Wildfire now possible
- XMPP version requirement relaxed for Components
- added __declspec( dllimport ) on win32 (thanks to Low Weng Liong)
- fixed OpenSSL lib dependency on MinGW (thanks to Low Weng Liong)
- 'ported' to Syllable


v0.7.5 -- 05 Jan 2006
--------------------
- fixed a crash occuring if no DNS servers could be reached
- added virtual destructors to *Handlers
- fixed &quot; bug
- various documentation updates


v0.7.4 -- 15 Dec 2005
--------------------
- RosterListener: added asynchronous subscription request notification
- LastActivity: fixed bug were stanza was not sent
- NonSaslAuth: don't confuse auth failure reason
- Connection: return correct disconnect reason if non-SASL auth fails in non-blocking connect mode
- RosterManager: handle 'early presence' correctly
- when using OpenSSL: imply: no cert == invalid cert
- RosterItem: added statusMsg()


v0.7.3 -- 10 Dec 2005
--------------------
- added optional OpenSSL support


v0.7.2 -- 06 Dec 2005
--------------------
- RosterManager: fixed a problem with servers not supporting private XML storage


v0.7.1 -- 24 Nov 2005
--------------------
- ported to NetBSD 2.1
- RosterManager: use the group's name, not 'group' (thanks to Maciej Paszta)
- RosterManager: update/set an item's name
- include config.h.win in distribution
- Stanza: allow presence broadcasting in createPresenceStanza()
- Client: allow registration with server which supports SASL ANONYMOUS
- Client: init m_jid::server for registration


v0.7 -- 02 Nov 2005
-------------------
- JEP-0004 (Data Forms) (complete, experimental)
- JEP-0013 (Flexible Offline Message Retrieval) (complete)
- JEP-0083 (Nested Roster Groups) (complete)
- JEP-0138 (Stream Compression) (experimental)
- removed pkg-config dependency (in check for iksemel)
- fixed pkg-config file (all libs)
- RosterItem: added status(); made setStatus() take a PresenceStatus
- RosterManager: added self-contact (optional; hard-wired in Client for now)
- Disco: no need to register the handler to receive query results (still necessary for 'set's)
- PrivateXML: no need to register the handler to store or receive private XML
- added IQ error handling in PrivateXML class
- port to Win32; SRV lookups do not work. See README.win32 for more information.
- some MacOS X #include fixes
- added Tag::clone() and Stanza::clone()
- added static functions to Stanza to create common packet types (IQ, Message, Presence, Subscription)
- gloox-config script
- call onDisconnect() in non-blocking connect() mode
- added debug notice about remote server not being XMPP compliant
- added an API docs notice about unsupported legacy SSL connections to port 5223
- fixed a presence related bug in Stanza, where presence always was reported as 'available' (thanks to
Luis Cidoncha)
- made code ISO C++ compliant (-pedantic et al.)
- various API doc fixes
- many more virtuals in the handler interfaces instead of empty functions
- export raw file descriptor
- got rid of libm(ath) dependency (by using ostringstream)
- always use pre-increment instead of post-increment in for-loops
- export classes on w32
- let configure check for libresolv
- don't use resolver functions on SkyOS for now (thanks to Peter Speybrouck & Robert Szeleney)
- made ClientBase::streamErrorAppCondition() const
- added ClientBase::removeConnectionListener()
- namespace checking for SASL success


v0.6.3 -- 15 Sep 2005
---------------------
- #include fixes for MacOS X


v0.6.2 -- 23 Sep 2005
---------------------
- pkgconfig file


v0.6.1 -- 22 Sep 2005
---------------------
- fixed Makefile.ams for make distcheck
- removed unused iksemel types and includes
- made void ClientBase::send( const std::string& ) private
- made void ClientBase::send( Tag* ) virtual
- Tag constructor: parent must know about its new child
- avoid non-constant array sizes in getID() et al.


v0.6 -- 02 Sep 2005
-------------------
- more namespace checking
- extraction of application-specific error condition element of stream & stanza errors
- SASL Anonymous mechanism
- JEP-0012 (Last Activity) (experimental)
- fixes for a couple of small problems reported by Konstantin Klyagin
- made checkStreamVersion() a protected virtual
- extensive doc update: mainpage
- added 'from' attribute to presence stanzas (seems necessary under some circumstances, reported by Johan Bondeson)
- disabled sending of ack'ing 'subscribe'/'unsubscribe' in response to 'subscribed'/'unsubscribed' due to problems with jabberd2


v0.5 -- 28 Aug 2005
-------------------
- xml:lang for initial stream
- xml:lang support for subject, body and status of message and presence stanzas, respectively
- added ability to specify a server to connect to which is different from the JID's domain part
- xmpp version check
- recognition of all stream errors as defined in RFC 3920, including xml:lang of the text element
- recognition of all SASL/Non-SASL error conditions as defined in RFC 3920 and JEP-0078
- added a LogHandler for external (non-tty) logging (thanks to Konstantin Klyagin)
- re-introduction of non-blocking connect (thanks to Konstantin Klyagin)
- recognition of all stanza errors as defined in RFC 3920, including xml:lang of the text element
- only include non-empty attributes
- prefer child elements over cdata when returning a tag's xml, prevents empty log if whitespace was sent
- correctly detect availability presence
- take autoPresence etc. into account when doing non-SASL auth
- in the JEP-0092 (Software Version) implementation: OS support, create a valid 'result' type of packet


v0.4.1 -- 25 Aug 2005
---------------------
- install missing header files (gloox.h, tag.h, stanza.h)


v0.4 -- 25 Aug 2005
-------------------
- fixed some memory leaks
- renamed classes: JClient    --> Client
                   JComponent --> Component
- got rid of the Iksemelmm wrapper classes
- added native Tag and Stanza classes
- added a (dummy) Parser class which currently only converts from Iksemel
  types to gloox native types
- natively handle connection (send & recv), incl. TLS/SSL
- a generic tag handler (for non-XMPP:Core elements)
- fixed roster management (somehow everything but the jid in the initial
  roster was ignored)
- process resource binding response
- process session creation response
- added forgotten 'autojoin' attribute to bookmark storage
- got rid of the thread
- TLS/SSL certificate verification
- changed license to GNU GPL


v0.3.2 -- 09 Aug 2005
---------------------
- fixed namespace typos
- correctly handle explicitely given port numbers


v0.3.1 -- 09 Aug 2005
---------------------
- documentation updates
- fixed crash with bare JID in constructor of JClient


v0.3  --  08 Aug 2005
---------------------
- use ID tracking whereever possible/feasible
- privacy lists (RFC 3921)
- wrapped everything in 'gloox' namespace
- JEP-0048 (Bookmark Storage)
- JEP-0145 (Annotations)
- replaced IQ-Tag handler with better IQ-Namespace handler
- removed generic (catch-all) IQ handler
- JEP-0114 (Jabber Component Protocol)
- unregister *Handlers and *Listeners on destruction (thanks to Ray Keung)
- overhauled Private XML Storage
- revision of JEP-0050 (Ad-hoc Commands)
- revision of JEP-0030 (Service Discovery)
- overhauled Roster management
  - finished RosterItem class
- JEP-0078 (Non-SASL Authentication)
- SRV lookups (w/o sorting by weight/cost)
- fix for JEP-0077 implementation to be compatible with ejabberd 0.9.1 which
  sends registration values back in the result.


v0.2  --  08 Jul 2005
---------------------
- JEP-0077 (In-Band Registration)
- prepping of JIDs according to RFC 3920


v0.1  --  04 May 2005
---------------------
* initial release with support for
  - JEP-0030 (Service Discovery)
  - JEP-0049 (Private XML Storage)
  - JEP-0050 (Ad-hoc Commands) (providing commands to remote entities is implemented)
  - JEP-0092 (Software Version)
- removed iksemelmm dependency
- iq xmlns filter
- introduced result handler
- extracted disco into separate class
