2026-03-15  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/tls.tcl: Use -validatecommand in addition to -command for
	  creating TLS channels with tls 1.8 and 2.0.

2026-03-13  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp.bosh.tcl, xmpp/poll.tcl, xmpp/tls.tcl: Drop version restriction
	  when loading the tls package to work with tls 2.0.

2025-05-03  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/xml.tcl: Do not convert to/from UTF-8 for tdom if Tcl is
	  compiled using TCL_UTF_MAX = 6. Tdom works fine in this case for
	  charactes beyond BMP.

2025-04-28  Sergei Golovan  <sgolovan@nes.ru>

	* tclxml/sgmlparser.tcl, tclxml/tclparser.tcl, tclxml/xmltcl.tcl,
	  xmpp/xmpp.tcl: Replace unnecessary calls to [sring compare] and
	  numerical comparisons (==, !=) by eq and ne expressions.

	* xmpp/jid.tcl: Introduce experimental full JID cache for normalized
	  JIDs.

	* xmpp/streamerror.tcl: Fix a bug with underreporting error text
	  messages.

2025-04-27  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/jid.tcl: Inline replacing resources in JIDs make it a bit
	  faster.

2025-04-24  Sergei Golovan  <sgolovan@nes.ru>

	* tclxml/xmltcl, xmpp/*.tcl: Refactor the code by replacing [string
	  equal] by [expr] equivalents, which are tiny bit faster.

	* xmpp/jid.tcl: Inline extraction of node, server and resource in
	  ::xmpp::jid::split to make it a bit faster.

	* examples/rssbot.tcl, xmpp/blocking.tcl, xmpp/pep.tcl,
	  xmpp/privacy.tcl, xmpp/pubsub.tcl, xmpp/roster.tcl: Switch to
	  ::xmpp::jid::removeResource from an obsolete
	  ::xmpp::jid::stripResource.

	* xmpp/xml.tcl: Optimize processing of element start, end and
	  character data.

2025-04-23  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/presence.tcl, xmpp/xmpp.tcl: Normalize the from JID before
	  processing incoming presence.

2025-04-15  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/muc.tcl: Fix adding real JID, affiliation and role arguments
	  to the event command call on incoming presence.

2025-04-11  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/xml.tcl: Do not use the trick with [encoding convertto] and
	  [encoding convertfrom] if parsing XML using tDom with Tcl 9.

2025-04-07  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/xml.tcl: Fix copyright year.

	* xmpp/xmpp.tcl: Remove a note about old [trace] syntax to support Tcl
	  8.3, because [trace] now uses modern syntax and supports Tcl 8.4 and
	  newer.

	* doc/xmpp.man, doc/xmpp_jid.man, doc/xmpp_xml.man: Document minimum
	  Tcl 8.4 requirement.

2025-03-30  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/compress.tcl, xmpp/sasl.tcl, xmpp/stanzaerror.tcl,
	  xmpp/streamerror.tcl, xmpp/zlib.tcl: Port to Tcl 9.0 per suggestions
	  of the migration tool to Tcl 9.

2025-03-15  Sergei Golovan  <sgolovan@nes.ru>

	* *: Port to Tcl 9.0 per suggestions of the migration tool to Tcl 9.

2024-10-18  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/xml.tcl: Encode XML to UTF-8 before sending it to the tDom
	  XML parser. This implements a workaround for a bug in tDom which
	  cannot parse a string with characters beyond BMP.
	* xmpp/sasl.tcl: Implement the SCRAM-SHA-256 authentication
	  mechanism.

2019-12-06  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/muc.tcl: Do not call the roster callback if a presence stanza
	  is received from the room itself (with empty resource part). these
	  stanzas don't update the room roster.

2019-10-11  Sergei Golovan  <sgolovan@nes.ru>

	* examples/jsend.tcl: Add -xml option to send a prepared XML stanza.

2016-01-11  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/xml.tcl: Replace a bunch of control characters by spaces when
	  create XML data to send.

2016-01-07  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/sasl.tcl: Add the user's JID as cdata to the EXTERNAL SASL
	  authentication response. This helps with prosody's mod_auth_ccert.
	  Also, don't register the server part for the EXTERNAL SASL
	  authentication mechaism.

	* examples/jsend.tcl: Added -cert option with a path to a client
	  certificate.

2016-01-06  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/pkgIndex.tcl, xmpp/sasl.tcl, xmpp/xmpp.tcl: Added preliminary
	  support for the EXTERNAL SASL authentication mechanism. Since it
	  results in adding -from attribute to the ::xmpp::openStream command,
	  the xmpp package version is bumped to 0.3.

2015-12-29  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/starttls.tcl, xmpp/tls.tcl: Added -tls1.1 and -tls1.2 options
	  to support TLS1.1 and TLS1.2 protocols and enabled them by default.
	  Disabled SSLv3 by default.

	* xmpp/bosh.tcl, xmpp/poll.tcl: Disabled SSLv3 and enabled TLS1.1 and
	  TLS1.2 protocols if available.

2015-12-21  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/pkgIndex.tcl, xmpp/roster.tcl: Fixed the ::xmpp::roster::send
	  routine to send only one item in jabber:iq:roster query (and actually
	  send it). Bumped the xmpp::roster package version to 0.2.

2015-12-20  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/xmpp.tcl: Always add the id attribute to outgoing IQ get or set
	  stanzas.

2015-12-11  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/hints.tcl, xmpp/pkgIndex.tcl: Implemented creating and parsing
	  message processing hints (XEP-0334).

	* license.terms: Updated copyright years.

2015-11-15  Sergei Golovan  <sgolovan@nes.ru>

	* examples/chessbot.tcl, examples/echo.tcl, examples/jsend.tcl,
	  examples/rssbot.tcl: Added the project directory to auto_path to
	  make sure the examples are working in-place.

2015-06-03  Sergei Golovan  <sgolovan@nes.ru>

	* Makefile: Added clean target.

2015-06-02  Sergei Golovan  <sgolovan@nes.ru>

	* Makefile: Added a simple makefile which installs the TclXMPP and
	  bundled TclXML into /usr/lib and jsend.tcl and rssbot.tcl into
	  /usr/local/bin (by default).

	* examples/rssbot.tcl: Replaced the literal rssbot.tcl string by
	  $argv0 in short help notice.

	* examples/rssbot.man: Added a short manpage for the rssbot RSS/XMPP
	  gateway example.

2015-06-01  Sergei Golovan  <sgolovan@nes.ru>

	* examples/jsend.tcl: Allow one to rename the jsend.tcl to jsend when
	  installing the examples.

	* examples/jsend.man: Added a short manual page for the jsend
	  command line client example.

2015-05-11  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/blocking.tcl, xmpp/bosh.tcl, xmpp/muc.tcl, xmpp/ping.tcl,
	  xmpp/poll.tcl: Removed tabulation characters and trailing
	  whitespaces.

2015-04-16  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/search.tcl: Fixed returning the parsed search items list.

2015-04-08  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/sm.tcl: Fixed error with undefined $xlib.

2015-04-07  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/sasl.tcl, xmpp/sm.tcl: Reset the stream management state on new
	  login attempt without resumption.

2015-04-05  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/sm.tcl: Implemented stream resumption support (it's still never
	  used yet).

	* xmpp/roster.tcl: Removed too modern [lassign] call.

	* xmpp/auth.tcl, xmpp/component.tcl, xmpp/pkgIndex.tcl, xmpp/sasl.tcl,
	  xmpp/sm.tcl, xmpp/xmpp.tcl: Started implementing the stream
	  management (XEP-0198) protocol. Currently only enabling stream
	  management and requesting/sending acknowledgements is impemented.
	  Stream resumption and calling back the client are to follow.

2015-04-02  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/sasl.tcl: Added a description header to the ::xmpp::sasl::auth
	  command.

2015-03-30  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/data.tcl: Removed Tclx's [lcontain] calls.

2015-03-29  Sergei Golovan  <sgolovan@nes.ru>

	* *: Removed no longer used SVN keyword placeholders.

2015-03-25  Sergei Golovan  <sgolovan@nes.ru>

	* doc/xmpp_xml.man, examples/chessbot.tcl, license.terms,
	  xmpp/sasl.tcl, xmpp/starttls.tcl: Fixed copyright years.

2014-04-11  Sergei Golovan  <sgolovan@nes.ru>

	* examples/chessbot.tcl: Fixed typo and made it work with the newer
	  GNUChess.

2014-02-16  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/roster.tcl: Removed usage of -index lsearch option because it
	  doesn't work with Tcl 8.4.

2014-02-02  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/xmpp.tcl: Added function which returns the current XMPP stream
	  features.

	* xmpp/roster.tcl: Implemented roster versioning as in XEP-0237
	  and later in RFC-6121 (thanks to Jan Zachorowski).

2014-01-30  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/sasl.tcl: Send XMPP session IQ only if it's present in the
	  stream features list.

2014-01-28  Sergei Golovan  <sgolovan@nes.ru>

	* doc/xmpp_xml.man: Fixed header (Fixes issue 3).

2013-12-23  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/bosh.tcl, xmpp/poll.tcl, xmpp/starttls.tcl, xmpp/tls.tcl:
	  Explicitly disabled SSLv2 and enabled TLSv1 protocols.

2013-12-04  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/bosh.tcl: Reduced empty packets polling frequency. Fixed
	  attributes list on rescheduling.

	* xmpp/bosh.tcl: Fixed sending of the terminate stream request.

2013-12-03  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/bosh.tcl: Initially implemented BOSH (XEP-0124 and XEP-0206)
	  transport support.

	* xmpp/poll.tcl, xmpp/tcp.tcl, xmpp/tls.tcl, xmpp/zlib.tcl: Added
	  reopenStream command, enabled synchronous closing of XMPP stream.
	  Bumped package versions to 0.2.

	* xmpp/xmpp.tcl: Added synchronous closing of XMPP stream. Use
	  reopenStream transport command were appropriate. Bumped package
	  version to 0.1.1.

	* xmpp/pkgIndex.tcl: Bumped transport package versions to 0.2 because
	  their user interface has been changed and the XMPP package version
	  to 0.1.1.

	* xmpp/poll.tcl: Code cleanup with using security keys.

	* xmpp/transport.tcl: Added support for reopenStream command. Bumped
	  package version to 0.2.

	* xmpp/sasl.tcl: Added another call to Debug proc.

	* examples/jsend.tcl: Removed cdata payload from jabber:iq:last
	  response. Use synchronous stream closing before exit. Added BOSH
	  transport support.

2013-11-10  Sergei Golovan  <sgolovan@nes.ru>

	* license.terms: Fixed copyright years.

2013-11-08  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/sasl.tcl: Added preliminary SCRAM mechanism support (it
	  requires not included into Tcllib yet SASL::SCRAM package, see
	  http://core.tcl.tk/tcllib/tktview?name=b8f35b9883). Use empty
	  authzid instead of user's bare JID.

	* examples/jsend.tcl: Use -host option for a server to connect to.
	  Added -digest option to allow jsend to use plaintext-based SASL
	  protocols.

2013-04-21  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/https.tcl: Removed domain flag from the NTLM greeting message.
	  This fixes authentication on ISA 2006 proxy.

	* xmpp/sasl.tcl: Added EXTERNAL mechanism.

	* xmpp/xml.tcl: Added -from option to the stream header, which is useful
	  for components.

2012-05-18  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/zlib.tcl: Added support for the native zlib coming with Tcl 8.6.
	  It takes precedense over the Ztcl package.

	* xmpp/pkgIndex.tcl: Added the xmpp::sasl package requirement into
	  xmpp::full loading code.

2012-05-10  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/pconnect.tcl, xmpp/tcp.tcl, xmpp/tls.tcl, xmpp/zlib.tcl: Removed
	  use of ceptcl because IPv6 support is now transparently provided by
	  Tcl/Tk 8.6. Also, removed -domain from the listed socket options.

2012-02-02  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/jid.tcl: Don't crash if stringprepped JID contains prohibited
	  characters in it as they might be outside BMP which Tcl/Tk don't
	  support properly.

2011-02-27  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/disco.tcl: Removed [lassign] because it requires Tcl 8.5.

	* xmpp/stanzaerror.tcl: Fixed message for 'auth' error type
	  (autorization error instead of authentication error).

2010-11-11  Sergei Golovan  <sgolovan@nes.ru>

	* examples/rssbot.tcl: Fixed typos in IQ registration.

	* xmpp/iq.tcl: Explicitly add from attribute to the response stanzas
	  to make IQ registering working in connections serving multiple JIDs.

	* xmpp/https.tcl, xmpp/socks4.tcl, xmpp/socks5.tcl: Moved canceling
	  timeout events up before debug output to prevent accidental firing.

2010-09-27  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/privacy.tcl: Fixed processing zero order when parsing incoming
	  privacy list (thanks to Vitaly Takmazov for bug triaging).

	* xmpp/xmpp.tcl: Don't call non-existent status procedure (closes: #1).

2010-07-31  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/zlib.tcl: Forget about zlib package from Ztcl to prevent
	  another clash with http package.

2010-05-02  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/muc.tcl: Fixed race condition when reporting MUC joininig
	  result back to a caller.

2010-04-30  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/privacy.tcl: Fixed registering jabber:iq:privacy namespace
	  for privacy lists pushes.

2010-03-08  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/pubsub.tcl: Fixed a few typos (thanks to Jan Zachorowski).

2010-02-15  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/muc.tcl: Fixed lowering affiliation to outcast.

2010-02-13  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/muc.tcl: Fixed processing error answer to join or change
	  nickname queries.

2010-02-08  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/muc.tcl: Fixed typos.

2010-02-06  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/muc.tcl: Execute callback on nickname change after the new
	  presence stanza with affiliation and role is arrived. Added an
	  experimental workaround for services which don't mirror stanza id
	  in error presences and don't add status code 110 to my own stanzas.

2010-02-01  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/jid.tcl, doc/xmpp_jid.man, xmpp/muc.tcl, xmpp/presence.tcl:
	  Added a new command replaceResource which replaces the resource
	  part of a JID by a given string. Renamed bareJid to removeResource
	  for consistency.

	* xmpp/muc.tcl: Added medium lebel commands to unban user and to
	  destroy a room. Fixed malformed JIDs creation in case when their
	  resource parts are empty. Don't reset own nickname on exit from a
	  room.

2010-01-30  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/muc.tcl: Added a new reported MUC event (disconnect). Fixed
	  race condition on leaving room and immediately entering.

	* xmpp/muc.tcl: Fixed calling events command on affiliation and role
	  changes. Implemented low and medium level commands for manipulating
	  users affiliations and roles.

2010-01-29  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/stanzaerror.tcl: Fixed numeric code processing for legacy
	  (pre-XMPP) error stanzas.

	* xmpp/jid.tcl: Cache stringprepped JID parts because stringprep is
	  really slow.

	* xmpp/data.tcl, xmpp/delay.tcl, xmpp/register.tcl, xmpp/roster.tcl,
	  xmpp/search.tcl, xmpp/stanzaerror.tcl: Don't use true and false as
	  boolean values because Tcl 8.3 doesn't understand them.

	* xmpp/presence.tcl: Added a new package xmpp::presence which stores
	  received presence information and allows to register presence
	  callbacks inside TclXMPP library.

	* xmpp/xmpp.tcl: Require xmpp::presence package and ignore illegal
	  received presence priorities (non-integer) and presence statuses
	  (not 'avay', 'chat', 'dnd', 'xa').

	* xmpp/muc.tcl: Started to implement MUC (XEP-0045). Currently joining,
	  leaving room, and changing nickname are implemented.

	* xmpp/pkgIndex.tcl: Added xmpp::presence and xmpp::muc packages.

2010-01-25  Sergei Golovan  <sgolovan@nes.ru>

	* *: Added 2010 to copyright statements.

2010-01-24  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/jid.tcl: Added stringprep support in JID normalization.

2010-01-23  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/negotiate.tcl, xmpp/register.tcl, xmpp/search.tcl: Reimplemented
	  calling back in a more sane way. Removed unused variable tmp.

	* xmpp/jid.tcl, doc/xmpp_jid.man: Renamed stripResource procedure to
	  bareJid. The former name is retained for backward compatibility.

	* xmpp/annotations.tcl, xmpp/blocking.tcl, xmpp/bob.tcl,
	  xmpp/bookmarks.tcl, xmpp/delimiter.tcl, xmpp/disco.tcl,
	  xmpp/metacontacts.tcl, xmpp/ping.tcl, xmpp/privacy.tcl,
	  xmpp/private.tcl, xmpp/roster.tcl, xmpp/xmpp.tcl: Removed useless
	  errorcodes from error returns.

	* xmpp/auth.tcl, xmpp/disco.tcl, xmpp/register.tcl, xmpp/search.tcl,
	  xmpp/starttls.tcl: Fixed labels (capitalization) and error messages
	  which are displayed to a user.

2010-01-18  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/privacy.tcl: Fixed processing server replies in synchronous mode
	  if multiple connections are opened (closes:
	  http://yo.jabber.ru/bugzilla/show_bug.cgi?id=394).

2010-01-17  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/https.tcl, xmpp/socks4.tcl, xmpp/socks5.tcl, xmpp/pconnect.tcl:
	  Return "timeout" status instead of "abort" in case of timeout because
	  "abort" means breaking connection process by a user.

2010-01-16  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/tcp.tcl, xmpp/tls.tcl, xmpp/zlib.tcl: Fixed opening connection
	  in asynchronous mode where the operation must always succeede and
	  its status is reported via a callback.

	* xmpp/sasl.tcl, xmpp/stanzaerror.tcl, xmpp/streamerror.tcl: Changed
	  capitalization of error messages.

2010-01-14  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/tcp.tcl, xmpp/tls.tcl, xmpp/zlib.tcl: Fixed aborting underlying
	  connection. Fixed connecting in asynchronous mode.

2010-01-08  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/compress.tcl, xmpp/starttls.tcl, xmpp/tls.tcl, xmpp/zlib.tcl:
	  Process errors when switching to or opening ZLIB or TLS channel and
	  don't throw it immediately to a user.

2010-01-04  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/pkgIndex.tcl, xmpp/privacy.tcl: Implemented low-level interface
	  to XMPP privacy lists (XEP-0016). Synchronous and asynchronous query
	  modes are supported.

2009-12-29  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/auth.tcl, xmpp/component.tcl, xmpp/compress.tcl, xmpp/iq.tcl,
	  xmpp/pconnect.tcl, xmpp/sasl.tcl, xmpp/starttls.tcl, xmpp/tcp.tcl,
	  xmpp/tls.tcl, xmpp/transport.tcl, xmpp/xml.tcl, xmpp/xmpp.tcl,
	  xmpp/zlib.tcl: Removed incorrect -errorinfo options from return
	  calls, and a bit improved error reporting in some catch calls.

	* xmpp/xmpp.tcl: Disconnect before connecting a stream if it isn't in
	  disconnected state. Also, don't react to stale stream headers after
	  stream abortion.

2009-10-27  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/poll.tcl, xmpp/xml.tcl: Removed trailing whitespaces.

2009-10-18  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/disco.tcl: Fixed calling back when info or items are received
	  with status error or abort.

2009-10-12  Sergei Golovan  <sgolovan@nes.ru>

	* examples/rssbot.tcl: Ignore messages with empty bodies.

2009-10-11  Sergei Golovan  <sgolovan@nes.ru>

	* examples/rssbot.tcl: Fixed removing extra space characters from HTML
	  descriptions. Fixed processing uppercase tags in HTML descriptions.

	* examples/jsend.tcl: Use ::xmpp::jid::split to parse from JID instead
	  of ::mime::parseaddress.

2009-10-10  Sergei Golovan  <sgolovan@nes.ru>

	* examples/rssbot.tcl: Get XML encoding from XML document itself and
	  not from HTTP header. Also, strip HTML markup from items description.

2009-10-04  Sergei Golovan  <sgolovan@nes.ru>

	* examples/jsend.tcl: Restored historical name and added -date option
	  to include delay subelement with a given date.

	* examples/rssbot.tcl: Adapted RSS bot from tkabber examples/tools to
	  TclXMPP. Also, added thorough dates parsers taken from Tclers' wiki
	  (http://wiki.tcl.tk/13094 and http://wiki.tcl.tk/24074).

2009-08-17  Sergei Golovan  <sgolovan@nes.ru>

	* auth.tcl, component.tcl, compress.tcl, sasl.tcl, starttls.tcl: Added
	  protection from a duble abort or timeout. Set JID after
	  authentiaction only in case of success.

	* streamerror.tcl, xml.tcl: Changed the way of generating stream XMLNS
	  prefix.

2009-08-11  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/ping.tcl: Fixed IQ registering (register ping tag instead of
	  query) and removed received XML from regitered callback invocation
	  because it's useless as it's supposed to be always empty.

	* xmpp/blocking.tcl: Added support for Simple Communication Blocking
	  (XEP-0191). It is untested because there's no server implementations
	  yet.

2009-08-03  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/ping.tcl, xmpp/pkgIndex.tcl: Added support for XMPP Ping
	  (XEP-0199). Client-side only for now.

	* xmpp/ping.tcl: Added reply to XMPP ping requests support.

2009-07-31  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/xml.tcl: Add unique XMLNS prefixes when serializing XML element
	  if it contains complex attributes with XMLNS prefix prepended to
	  attribute names. Otherwise serializing of parsed XML could end by
	  not-well-formed stanza.

	* examples/chessbot.tcl, examples/echo.tcl, examples/xsend.tcl: Fixed
	  processing secrets in config files, and enclosed all arithmetic
	  expressions into curly brackets.

2009-05-21  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/search.tcl: Fixed typo in procedure name.

2009-04-23  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/disco.tcl: Fixed disco#info and disco#items reply when the
	  query was received to a non-empty node.

2009-04-21  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/pubsub.tcl: Fixed IQ types in queries which request items or
	  configuration forms.

	* xmpp/pubsub.tcl: Fixed data forms returning when requesting
	  subscription options, node configuration, default node config
	  options.

2009-04-17  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/https.tcl: Fixed typo in status message.

	* xmpp/disco.tcl: Do not cache certain error conditions which may be
	  temporary.

2009-04-07  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/sasl.tcl: Do encode username and password into UTF-8 charset
	  if SASL package version is less than 1.3.2.

2009-04-05  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/auth.tcl, xmpp/sasl.tcl: Store user JID as a connection
	  property. It is useful for pubsub and PEP modules.

	* xmpp/pubsub.tcl, xmpp/pkgIndex.tcl: Added new pubsub interface
	  module (XEP-0060).

	* xmpp/pep.tcl, xmpp/pkgIndex.tcl: Added new PEP interface module
	  (XEP-0163).

2009-04-03  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/https.tcl: Fixed proxy NTLM authentication. Also, added a few
	  additional debug messages.

2009-03-31  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/sasl.tcl: Took into account that MD5-DIGEST SASL mechanism in
	  Tcllib converts username and password to UTF-8 itself. Also, split
	  SASL callbacks into two separate parts (one for users, another for
	  components).

2009-03-30  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/poll.tcl: Do not send Proxy-Authorization header if username
	  and password are empty.

	* xmpp/https.tcl, xmpp/ntlm.tcl, xmpp/pkgIndex.tcl: Removed redundant
	  ntlm package and switched to SASL::NTLM for NTLM authentication at
	  an HTTPS proxy server.

2009-03-29  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/pconnect.tcl, xmpp/https.tcl, xmpp/socks4.tcl, xmpp/socks5.tcl:
	  Return human-readable messages when errors occur. Added abortion
	  procedures to socks4 and socks5  packages, and a timeout procedure
	  to pconnect package.

	* xmpp/socks4.tcl, xmpp/socks5.tcl: Fixed reconstructing destination
	  address returned by a SOCKS proxy. Added support for IPv6 adresses
	  to socks5 package.

	* xmpp/poll.tcl: Added version to http package requirement to prevent
	  version 1.0 loading.

2009-03-27  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/zlib.tcl: Added a hack which doesn't allow to load xmpp::zlib
	  package if zlib from Ztcl can't be found. Also, moved zlib command to
	  ::xmpp::transport::zlib namespace because it isn't standard, so if,
	  for example, http package tries to get compressed data it fails.

2009-03-22  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/negotiate.tcl: Added the possibility of unregistering features.

	* xmpp/pconnect.tcl, xmpp/poll.tcl: Added -proxyfilter option for a
	  callback which is invoked if a connecting routine needs info on which
	  proxy to use for a particular host.

2009-03-17  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/disco.tcl: Cache negative answers to info and items queries
	  also. Also, check if an item is already in the cache before adding
	  it to prevent duplicates when several queries are run simultaneously.

	* xmpp/ntlm.tcl: Fixed calls to DES::des procedure in case if the
	  encrypting text begins with dash.

2009-03-15  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/data.tcl: Parse data forms media items.

2009-03-14  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/disco.tcl: Fixed searching cached info and items.

2009-03-13  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/bob.tcl: Removed erroneous cid: prefix from CID values.

	* xmpp/bob.tcl: Fixed typo.

2009-03-12  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/bob.tcl, xmpp/pkgIndex.tcl: Added a simple interface to Bits of
	  Binary (XEP-0231).

2009-03-05  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/iq.tcl: Fixed unregistering XMLNS if it was registered for
	  more than one callbacks for different types and/or tags.

2009-02-28  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/delay.tcl: Changed output format of ::xmpp::delay::parse
	  procedure to preserve optional from attribute.

2009-02-27  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/disco.tcl: Include in JID identity all received information and
	  not only category, type and name.

2009-02-23  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/disco.tcl, xmpp/pkgIndex.tcl: Added basic Service Discovery
	  support (XEP-0030).

	* *: Added 2009 to copyright statements.

2009-02-18  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/zlib.tcl: Ignore errors from fconfigure -flush input.

	* xmpp/https.tcl, xmpp/socks4.tcl, xmpp/socks5.tcl: Fixed comments.

2009-02-15  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/annotations.tcl, xmpp/bookmarks.tcl, xmpp/delimiter.tcl,
	  xmpp/metacontacts.tcl: Added serialize/deserialize procedures
	  which convert from/to internal representaton to/from XML. They
	  are useful in roster export/import routines.

2009-02-12  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/metacontacts.tcl: Made interface to retrieve/store procedures
	  more convenient.

2009-02-11  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/private.tcl: Added simple interface to private XML storage
	  (XEP-0049).

	* xmpp/annotations.tcl: Added storing/retieving roster notes
	  (XEP-0145).

	* xmpp/delimiter.tcl: Added storing/retrieving nested groups delimiter
	  (XEP-0083).

	* xmpp/metacontacts.tcl: Added storing/retrieving roster metacontacts
	  (XEP-0209).

	* xmpp/pkgIndex.tcl: Added the above packages.

	* xmpp/bookmarks.tcl, xmpp/pkgIndex.tcl: Added storing/retrieving
	  conference bookmarks (XEP-0048).

2009-02-10  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/tls.tcl: Changed -password option to -passwordcommand to avoid
	  clash with password for proxy.

2009-02-09  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/https.tcl: Changed HTTP protocol version in CONNECT query
	  from 1.1 to 1.0.

2008-12-17  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/poll.tcl: Fixed return value for procedure which pushes text
	  to an XMPP server.

2008-12-14  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/xmpp.tcl: Don't allow arbitrary message type. Made debug
	  messages a bit more clear and added timestamp to them.

2008-11-18  Sergei Golovan  <sgolovan@nes.ru>

	* doc/*.man: Made ViM modelines prettier.

2008-11-09  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/xmpp.tcl: Added a new log callback which is invoked on every
	  outgoing and incoming packet.

2008-11-03  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/tcp.tcl, xmpp/zlib.tcl: Fixed typo in a procedure which returns
	  connection socket IP address.

	* xmpp/negotiate.tcl, pkgIndex.tcl: Added a package which implements
	  feature negotiation protocol (XEP-0020).

	* xmpp/poll.tcl: Fixed typo.

	* xmpp/data.tcl: Fixed typo.

2008-11-02  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/data.tcl: Added a procedure which fills in form fields for
	  submission.

	* xmpp/search.tcl, xmpp/pkgIndex.tcl: Added a package which implements
	  support for Jabber Search (XEP-0055) queries.

	* xmpp/data.tcl: Treat missing form type as "form".

	* xmpp/search.tcl: Fixed typo and removed implicit field label.

	* xmpp/register.tcl, xmpp/pkgIndex.tcl: Added a new package which
	  implements support for In-Band Registration (XEP-0077) queries.

	* tclxml/*.tcl, doc/*.man, xmpp/register.tcl: Removed tabulation
	  characters from the sources and added ViM modelines which expand
	  them into spaces.

	* xmpp/xmpp.tcl: Don't add empty "to" attribute to sent IQ stanzas.

	* xmpp/register.tcl: Added support for data forms in error service
	  responses and added support for changing password.

	* xmpp/data.tcl: Added support for creating data forms.

	* xmpp/data.tcl: Added procedure which creates form field tuple in a
	  human readable way. Also, added field description and required
	  fields support for created data forms. Also, added basic result form
	  support.

2008-11-01  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/data.tcl, xmpp/pkgIndex.tcl: Added a new package for working
	  with data forms (XEP-0004).

	* xmpp/data.tcl: Return form type when searching for a data form.
	  Parse field elements in result forms.

	* xmpp/data.tcl: Fixed parsing items in a result form.

2008-10-31  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/xmpp.tcl: Protected unsetting of a variable which stores abort
	  commands because it may be unset during abort call.

2008-10-30  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/tcp.tcl, xmpp/tls.tcl, xmpp/zlib.tcl: Protected reading from
	  the XMPP socket and disconnect it in case of read error.

2008-10-27  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/tcp.tcl, xmpp/tls.tcl, xmpp/zlib.tcl: Removed calls to
	  non-existent fubction ::xmpp::log.

2008-10-25  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/xmpp.tcl: Don't check the from address for IQ relies and errors
	  because in order to be reliable it requires full JID normalization.
	  Use random IQ IDs to prevent accidental or malicious ID clashing.

	* xmpp/iq.tcl: Use empty string instead of "ignore" to signal that the
	  IQ answer will be later.

2008-10-24  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/xmpp.tcl: Fixed error stanza when aborting IQ on timeout, made
	  calling back when sending IQ failed to after idle, fixed IQ
	  callbacks to compare normalized JIDs when searching for reply.

2008-10-21  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/xml.tcl: Fixed typo.

	* xmpp/https.tcl: Added missing close bracket.

	* xmpp/socks4.tcl: Fixed version number.

2008-10-20  Sergei Golovan  <sgolovan@nes.ru>

	* doc/xmpp_jid.man, doc/xmpp_xml.man: Removed colons from filenames
	  as they cause problems on non-Unix systems.

	* xmpp/tcp.tcl, xmpp/tls.tcl, xmpp/zlib.tcl: Fixed variable name.

	* doc/xmpp.man: Added preliminary manual page for xmpp package.

	* xmpp/starttls.tcl, xmpp/tls.tcl: Changed -callback option to
	  -verifycommand and added -infocommand option which specifies
	  command to call upon successfully established TLS connection with
	  socket TLS status.

2008-10-19  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/xmpp.tcl: Fixed race condition where transport was already
	  closed, but was tried to send packets.

	* xmpp/tcp.tcl, xmpp/tls.tcl, xmpp/zlib.tcl: Clear readable fileevent
	  script when the socket is closed by the other side. Otherwise it can
	  be triggered continuously. Also, close socket.

	* xmpp/xmpp.tcl: Removed unnecessary rescheduling of ForcedDisconnect
	  call which now can't be executed twice (one time on the end of
	  strteam, and another time on the closure of the socket).

	* xmpp/tcp.tcl, xmpp/tls.tcl, xmpp/zlib.tcl: Removed unnecessary error
	  hidings by catch.

	* doc/xmpp::jid.man, doc/xmpp::xml.man: Added preliminary manual pages
	  for xmpp::jid and xmpp::xml packages. Currently they contain only
	  lists of commands.

	* xmpp/jid.tcl: Code cleanup.

2008-10-18  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/jid.tcl: Added default resource value (empty string).

	* xmpp/sasl.tcl: Use jid procedure instead of directly concatenating
	  user and server names.

	* xmpp/xmpp.tcl: Added packetID command which returns the next free
	  packet ID. Also, removed packet ID resetting on disconnect.

	* xmpp/xml.tcl: Added toTabbedText procedure for XML pretty-printing.

2008-10-17  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/streamerror.tcl: Added error condition to the call of error
	  client callback in additin to a readable message.

	* xmpp/xmpp.tcl: Return client callback code and error info to a
	  caller. It is useful for IQ callback where return code "return"
	  prevents processing the packet by internam IQ engine. Also, move
	  general IQ callback upper to make it executed not only for types
	  "get" and "set" but also for all other types.

	* xmpp/xml.tcl: Added a hack which helps to parse XML file with a
	  declararion at the beginning if tDOM parser is used. Also, fixed a
	  typo in create XML procedure.

	* xmpp/delay.tcl: Added a new procedure which checks if the message
	  is delayed.

	* xmpp/sasl.tcl: Renamed local variable which clashed with global one.

	* xmpp/auth.tcl, xmpp/compress.tcl, xmpp/sasl.tcl, xmpp/starttls.tcl:
	  Return full error stanza instead of error message.

	* xmpp/xmpp.tcl: Fixed transport switching.

	* xmpp/sasl.tcl: Fixed typo.

	* xmpp/xmpp.tcl: Fixed sending text.

	* xmpp/xml.tcl: Fixed creating XML element if it has empty subelements.

	* xmpp/streamerror.tcl: Removed extra closing parenthesis from error
	  message.

2008-10-15  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/xml.tcl: Added default (empty) XMLNS for empty prefix. Also,
	  closed the outmost XML element in data parsing routine.

	* xmpp/xml.tcl: Fixed using of Tcl-only parser from data parsing
	  routine.

2008-10-14  Sergei Golovan  <sgolovan@nes.ru>

	* tclxml/sgmlparser.tcl, tclxml/tclparser.tcl, tclxml/xmltcl.tcl,
	  xmpp/xml.tcl: Use non-XMLNS aware parser and process XMLNS prefixes
	  manually. This helps to ignore unbound prefixes when tDOM expat
	  parser is used.

	* xmpp/iq.tcl: Fixed typo.

	* xmpp/socks4.tcl: Changed case of ok and error status.

	* xmpp/xml.tcl: Fixed bug with forgotten namespaces stack while
	  resetting XML parser. Also, simplified prefixes processing.

2008-10-13  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/starttls.tcl, xmpp/tls.tcl: Made TLS import routine use its
	  default options if they weren't specified during STARTTLS or
	  opening TLS socket. Added options to choose protocol version to
	  XMPP TLS interface.

	* xmpp/xmpp.tcl: Added general IQ command (unfinished yet).

2008-10-12  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/roster.tcl: Removed unnecessary argument from roster item
	  command call.

2008-10-11  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/xmpp.tcl, examples/chessbot.tcl, examples/echo.tcl,
	  examples/xsend.tcl: Changed syntax of host and port arguments in
	  ::xmpp::connect because they clashed with proxy host and port
	  options.

	* xmpp/compress.tcl, xmpp/starttls.tcl: Made the compress and starttls
	  procedures return new stream session ID in case of success. This
	  allows to perform non-SASL authentication over compressed or
	  encrypted streams if a server offers it.

	* xmpp/sasl.tcl: Fixed typo.

2008-10-10  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/delay.tcl: Joined procedures which create delay element
	  following different XEPs into a single procedure.

	* xmpp/dns.tcl: Replaced own procedure which returns nameservers list
	  by a procedure from the dns package. Added DNS lookup abort
	  procedure and procedures to resolve HTTP-poll and BOSH URLs.

	* examples/xsend.tcl, xmpp/https.tcl, xmpp/starttls.tcl, xmpp/xml.tcl,
	  xmpp/xmpp.tcl: Fitted code into 80-character width strings.

	* tclxml/*: Removed 8.1 suffix from file names because they will never
	  be used with Tcl 8.0 or older.

	* examples/xsend.tcl: Added note about the authors.

	* xmpp/tcp.tcl, xmpp/tls.tcl, xmpp/zlib.tcl: Fixed bugs in abort
	  procedure where XML parser was destroyed unconditionally.

	* xmpp/zlib.tcl: Added -level option which allows to specify
	  compression level.

	* xmpp/socks4.tcl, xmpp/socks5.tcl: Moved to ::pconnect namespace.

	* xmpp/auth.tcl, xmpp/component.tcl, xmpp/ntlm.tcl, xmpp/pconnect.tcl,
	  xmpp/stanzaerror.tcl: Clarified descriptions.

	* xmpp/compress.tcl, xmpp/sasl.tcl, xmpp/starttls.tcl: Moved removing
	  stream features trace upper in abort procedures.

	* xmpp/poll.tcl: Changed -proxyHost, -proxyPort, -proxyUsername,
	  -proxyPassword and -proxyUseragent options to -host, -port,
	  -username, -password and -useragent to make them consistent with
	  ::pconnect::socket options.

	* xmpp/jid.tcl: Fixed file name in description.

	* xmpp/pkgIndex.tcl: Added xmpp::delay package.

	* xmpp/starttls.tcl: Changed -cacertstore option to -castore to make
	  it more similar to -cafile and -cadir.

	* xmpp/compress.tcl, xmpp/dns.tcl, xmpp/iq.tcl, xmpp/poll.tcl,
	  xmpp/starttls.tcl, xmpp/tcp.tcl, xmpp/tls.tcl, xmpp/transport.tcl,
	  xmpp/zlib.tcl: Added descriptions to all defined procedures.

	* xmpp/compress.tcl: Added -level option to choose compression level
	  when switching transport to zlib.

	* examples/chessbot.tcl, examples/echo.tcl, examples/xsend.tcl,
	  xmpp/auth.tcl, xmpp/component.tcl, xmpp/poll.tcl, xmpp/roster.tcl,
	  xmpp/tcp.tcl, xmpp/tls.tcl, xmpp/transport.tcl, xmpp/xmpp.tcl,
	  xmpp/zlib.tcl: Removed camel case from dash-options.

	* xmpp/stanzaerror.tcl: Added creating legacy error to error
	  procedure (with -old option).

2008-10-09  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/auth.tcl: Added a few checks for existing authentication token
	  in callbacks. Also, did a little code cleanup and clarified
	  comments.

2008-10-08  Sergei Golovan  <sgolovan@nes.ru>

	* xmpp/transport.tcl, xmpp/poll.tcl, xmpp/tcp.tcl, xmpp/tls.tcl,
	  xmpp/zlib.tcl: Added ip command (it will be used when IP should be
	  reported to another JID, e.g. in file transfer).

	* xmpp/auth.tcl, xmpp/component.tcl, xmpp/compress.tcl, xmpp/sasl.tcl,
	  xmpp/starttls.tcl, xmpp/xmpp.tcl: Added a simple way to abort long
	  procedures (connection, stream opening, STARTTLS, compress, SASL,
	  authentication). The corresponding abortion procedure is stored in a
	  variable and is called if necessary.

	* xmpp/auth.tcl, xmpp/component.tcl, xmpp/compress.tcl, xmpp/https.tcl,
	  xmpp/iq.tcl, xmpp/poll.tcl, xmpp/roster.tcl, xmpp/sasl.tcl,
	  xmpp/socks4.tcl, xmpp/socks5.tcl, xmpp/starttls.tcl, xmpp/xmpp.tcl:
	  Changed syntax of debug calls.

	* xmpp/roster.tcl: Made parsing the server answer a bit more efficient.

	* xmpp/iq.tcl: Changed the way registered IQ handlers are stored in an
	  array.

	* xmpp/xmpp.tcl: Added comments before all defined procedures.

2008-10-06  Sergei Golovan  <sgolovan@nes.ru>

	* */*: Removed spaces at the end of lines and expanded tabs in all
	  sources (except TclXML code).

2008-10-05  Sergei Golovan  <sgolovan@nes.ru>

	* examples/*, tclxml/*, xmpp/*: Initial version of XMPP client
	  library. It includes a Tcl-only XML parser from some old version of
	  TclXML and a few examples.
