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.
