This release brings MANY new features among MANY bugfixes.
Main changes are:
- Component clustering
- Many virtual hosts in one SM process
- FreeBSD kqueue support
- PBX integration interface
- Memory usage improvements
- XML serializer fixes
- 64 bit platform fixes
- SQLite is a default storage backend
You may read about the clustering and virtual hosts in my blog posts:
- http://tomasz.sterna.tv/2009/06/virtual-domains-for-jabberd2/
- http://tomasz.sterna.tv/2009/06/clustering-for-jabberd2/
- http://tomasz.sterna.tv/2009/06/transport-clustering-in-jabberd2/
ChangeLog:
* Enable experimental features by default
* Added external to authentication mechanisms examples
* change the definition of xhash_walker, in case that somebody
zaps items of the hash table while walking.
* Merged a patch for size_t related GSASL crash on 64bit platform.
Fixes Bug #367783
* VERY crude test infrastructure added
* Fixed S2S incoming packet beeing damaged while mangling. When
there are already 'jabber:client' elements move them to next
namespace before cutting uri_CLIENT chain.
* should put method:xhash_free to pool_cleanup instead of
method:pool_free.
* should use method:pmalloco to allocate memory for xhash:stat.
* Removed check of multiple names from legacy components
connections
* Inform about select() FD_SETSIZE overrun
* Gracefully abort when MIO was not allocated
* Do not throw stream errors on SSL wrapper sockets when
pre-stream
* Gracefully abort when MIO was not created
* SSL errors are undefined-condition not internal errors
* Do not send invalid XML down the outgoing stream
* Correctly iterate streams while shutdown
* Proper checks for serviced domains in SM
* Do not crash on shutdown with pending streams
* Get outgoing packets to/from addresses from the packet data
* Do not disable superseeded <session> request yet
* Return feature-not-implemented when user client requested not
implemented feature
* Proper Makefile dependencies for etc/ files
* Remove presence routing optimisations. We now do not have
authoritative domain information. There may be other SM
servicing the domain.
* Implemented component clustering. You may now connect many SM
instances and external components servicing the same domain. The
routing is based on user JID, which (after hashing) selects the
component to deliver packet to.
* Split shahash to shahas_raw() and shahash_r()
* Attach <error/> element in root namespace
* Use SM id as a response packet source
* Process disco results to sm id also
* Better error packet generation
* Use router.lost setting after router disconnection.
* Minor ns check fix
* Added preliminary support for multiple component routes for one
domain name.
* Fixed some signedness compilation warnings
* Defaulting to SQLite storage
* Implemented virtual hosts support in SM. (merged r791-792,r797
from vhosts branch) Session Manager is now able to handle more
than one domain. This means that you do not need to launch more
than one sm process instance for many domains with same
configuration.
* Drop IQ result packet before delivering them to the router. User
client is generating IQ result packet for every server generated
IQ set. If we do not process them in SM module, we should not
deliver them back to the client.
* Fixed mutual subscription flow
* Fixed xhash freeing related crash
* Implemented correct disco#info for 'sessions' node
* Merged xhash optimisations by Eric Liang. Refs Bug #385035
* Merged crypt() password support for LDAP backend by Dan
Fandrich. Closes Bug #384940
* Do not null first bytes of just freed memory
* Do not close already closed sockets
* Give hint on user.auto-create when user not found in storage
* Removed unneded C++ compiler check from configure. Fixes Bug
#383571
* Merged patch for problem with os_copy() compilation in
ldap_vcard backend. Fixes Bug #383526
* Merged patch for problem with crypt() support compilation in
MySQL backend. Fixes Bug #383516
* Merged patch fixing Cyrus SASL decode calls. Fies Bug #383512
* Merged patch to not link PAM to every lib. Fies Bug #383506
* Implemented PBX integration interface. You may now start/stop
``fake'' sessions in SM with a pipe interface commands.
* Merged patch with kqueue support by jh. Bug #373159
* Mark user table as freed on free
For a full ChangeLog see:
http://codex.xiaoka.com/svn/jabberd2/tags/jabberd-2.2.9/ChangeLog
--
Tomasz Sterna
Instant Messaging & EDI Consultant
Open Source Developer
http://tomasz.sterna.tv/http://www.xiaoka.com/
--
To unsubscribe send a mail to jabberd2+unsubscribe@lists.xiaoka.com
Update to Jabberd 2.2.8:
From the release announcement:
What changed:
- User can message/query own resources
- Settable size for vCard image field
- Proper server disco#info answer
- Support for /etc/hosts lookup (as a last resort)
- many stability fixes
Security Note: r765 fixes a possible router crasher when an "evil"
directly connected component may crash router (thus the whole
server). Since components are considered trusted, this is a minor
issue. But once a remote user finds a way of triggering the "bad"
packet from a component, this might become a serious issue. You've
been warned.
Changelog:
* Proper check for valid arguments in nad_find_namespace(). Fixes Bug
#364816.
* fix for ser_string_get missing from storage_db.so by Michael Weiser.
Fixes Bug #345947
* Send all in-sess generated and not processed packets to the wild.
* Proper order of redirect and background job operators
* Merged support for settable vCard and vCard-avatar fields size by
Sylvain Rochet. Fixes Bug #336123
* Redirecting both stdout and stdin to /dev/null on daemon launch.
Fixes Bug #349714
* Give both disco#info and disco#items to disco#info query. Fixes Bug
#349134.
* End SM session when client disconnects before session start recieved
* Replying with presence-unsubscribed to presence-probe only. Fixes Bug
#341170.
* Added /etc/hosts support in s2s resolver. Thanks to Gebi Miguel.
Fixes#63
* New Visual Studio 2008 compatible README.win32
* Visual Studio 2008 (SP1) projects migration
* Use only necessary link libraries
* Use own OpenSSL libraries (i.e. libeay32.lib instad of libeay32MT.lib
from Shining Light Productions)
* Add OpenSSL directly to the build, avoiding problems with OpenSSL
installation on some systems
* Remove OpenSSL check (now it is installed inside jabberd2 folder)
* Check VS 2008 RTM on Vista and Windows 7 too
* Define target versions to Win2k and IE4 to avoid problems with Vista
SDK
+ cleanup junky comments
* util.h is local in util folder
* Add SSL_OP_NO_TICKET definition for older OpenSSL installations.
Fixes#256
* ANSI C compatibility, variable declaration at the beginning of the
block.
Features:
Most annoying bug that got fixed is dropping presence-unavailable
packet from GTalk.
There is also a nice new feature for router-filter users and
for multihomed machines.
ChangeLog:
* Implemented GSASL qop-int integrity checks with
gsasl_decode()/gsasl_encode() functions. Refs #233
* Implemented router-filter packet logging. Closes#176
* Proper mangling jabber:client to jabber:client namespace in
incoming S2S packets. Fixes#267
* Merged patch to specify origin IP addres of S2S connections
For a full ChangeLog see:
http://svn.xiaoka.com/jabberd2/tags/jabberd-2.2.6/ChangeLog
Jabberd is a XMPP/Jabber server.
ChangeLog:
* Fixed an issue when one invalid outgoing domain resolution would
iterate over ALL outgoing resolution queues and bounce all
waiting outgoing packets.
* [CRASHER] Fixed bug in _nad_lp0() that could produce 'unbound
prefix' XML parse errors in rare cases. This leads to components
disconnection and shutdown.
* Fixed double free in mod_amp. Fixes#265
* Initialization of first element of attrs_vcard. Thanks to
Andreas Hofmeister.
* Merged FreeBSD BekeleyDB detection fix. Closes#261
* When unblocking the last user in the list of users, update the
zlist->last pointer to avoid crashing later on.
* Linking libutil.la to authreg_pipe.so statically. Fixes#257
* Removed all NAD caching. This should reduce memory usage and
memory growth.
* Clarified usage of <id/> attributes in configuration file
* Merged Oracle DB fixes submitted by Oleksiy Kramarenko
* MIO_ERROR is not l-value on Windows [706], one should use
MIO_SETERROR(e) instead of MIO_ERROR = e (#224)
* Add a key to the status table in MySQL. This should make queries
to that table a bit faster.
* Proper check whether the connection is TLS encrypted
* Sending S2S client certificate during S2S encrypted session
establishment
* Added a key to the status table in db-setup.mysql.
* Setting MIO_ERROR to EFAULT:'Bad address' on IP address
resolution failure. Fixes#224
* Merged Debian Bug #493765 patch for LDAP_DEPRECATED functions.
Thanks to Dann Frazier. Fixes#240
* Merged patch to fix freed DNS queue data on unreachable domain.
Thanks to Simon Arlott. Closes#253
* Merged patch to reload users file on SIGHUP. Thanks to Simon
Arlott. Closes#254
* Refs #252 - no closing SX on zero buffer read
* Merged IDNA domains resolution support patch by Norman Rasmussen
* Fixed typo in starttls option name. Fixes#247
* Handle trusts based on bare and full JID roster items
* Using Cyrus sasl_encode64/decode64() in CyrusSASL backend
instead of APR ones
ChangeLog:
* [WIN32] libidn & gsasl downloads are now at GNU servers.
* Fix a memory leak when using stanza rate limiting
* Detecting unrecoverable stream errors on establishing an
outgoing s2s connection. Refs #244
* Do not offer compression if STARTTLS is required and not enabled
* Return better error on STARTTLS required failure.
* [WIN32] server.pem has to be permanent in order to not disappear
on upgrade.
* [WIN32] Put stats on the main folder of win32 distro too.
* [WIN32] Cleanup win32 README a bit.
* [WIN32] Don't override server.pem on upgrade.
* [WIN32] Bump minor revision to 2.2.
* [WIN32] Unfortunately we need to wait on services during setup
or uninstallation and upgrades will fail.
* [WIN32] Fix latest WiX 3 Beta compatibility.
* [WIN32] Add TLS server certificate for default win32 c2s config.
* [WIN32] Create initial SQLite database on build.
* [WIN32] Add stream compression support and zlib1 dependencies.
* [WIN32] Remove ENABLE_SUPERSEDED from projects, this is now part
of config.h for win32.
* [WIN32] Don't fail when service fails to start (Should popup
ignore box)
* [WIN32] Add udns library to setup.
* [WIN32] Adding udns dependency in the README.win32
* Implemented logging of compressed conection established. Closes
#243
* [WIN32] Change default SM storage driver to SQLite on Windows.
* [WIN32] Use DES_crypt as a replacement for Posix crypt on
Windows.
* [WIN32] Add UDNS dependencies for linkage.
* [WIN32] File must be opened as binary (only Windows affected),
so fseek & ftell tells proper size for the buffer. With single
"r" buffer will be too small.
* [WIN32] generate configuration XML files out of dist files on
build (using Perl)
* [WIN32] copy default server.pem (localhost)
* [WIN32] add Perl dependency to README.win32
* [WIN32] Using SubWCRev from TortoiseSVN for version files
generation, updating notes.
* [WIN32] Enable USE_LIBSUBST for Windows builds.
* Implemented My IP Address extension
http://delta.affinix.com/specs/xmppstream.html#myip
* SSL certificate loading fixes
* Implemented MIO read throttling in c2s. Now we pause reading
socket instead of disconnection on throttle.
* Removed scod module.
* Added a maximum stanza limit to c2s. This can be used to set an
upper limit on the number of individual requests that can be
made in a given window of time.
* Fix a bug in s2s where xmlns="jabber:client" would get appended
to an incoming stanza even though the stanza already had an
xmlns attribute set.
For a full ChangeLog see:
http://svn.xiaoka.com/jabberd2/tags/jabberd-2.2.2/ChangeLog
read: http://svn.xiaoka.com/jabberd2/trunk/UPGRADE
This is a big bugfix release.
ChangeLog:
* Removed jid prep cache and mysql filters cache. These are known
to grow without restrictions causing memory "leak".
* Fix in jabber:iq:register example in router-filter.xml
* Fix in lookup.resolve-ipv6 in s2s.xml handling
* Fix c2s's byte rate limiting.
* Make c2s's connection rate limiting and router's byte rate
limiting work better.
* Comments and spelling errors fixes
* Fix a potential memory leak when attempting to read from a
socket that has been closed.
* Improve the documentation for <max_fds> in the configuration
files.
* Merged MySQL crypt()ed password full implementation. Closes#228
* Re-use DB query the filter instead of recreating it.
* Added --without-subst option to disable subst/ library building.
* Do not bounce s2s error packets
* Fixed filtered packets error reporting
* Changed router-filter example, because resource is not matched
For a full ChangeLog see:
http://svn.xiaoka.com/jabberd2/tags/jabberd-2.2.1/ChangeLog
What changed:
- UDNS library required
- GnuSASL 0.2.26 or higher version required
- resolver component removed
Resolver is now built in S2S component, so you need to add <lookup/>
section to your s2s.xml config. Then remove resolver component from
your configuration.
MIO backend, some XMPP compliance fixes, new Win32 build, compilation
fixes and more...
ChangeLog:
* Fixed endless loop for failed session closure
* Fixed packet to non-existing users handling to be conformant to RFC
3921bis 8.1. No Such User
* Fixed loop on select. Closes#125
* Added pam authpipe script
* Added example pam.d/jabber file from Gentoo
* Changed example localdomain names to FQDN localhost.localdomain
* Fixed Win32 build
* Update of Visual Studio dependent libraries
* Using MIO_WOULDBLOCK for Windows.
* Added db-update.sqlite
* Define S_IRUSR, S_IWUSR, S_IRGRP to 0 on Windows, as we don't have
unix permissions there and those variables are undefined.
* JABBERD2_API for _stanza_errors[], so it is exported in Windows to DLL.
* moved _mio_wnd_proc to mio_wsasync.c (better for debugging)
* fixed defer_free in right structure
* check socked range in _mio_wnd_proc in case we get some invalid
WM_APP + sthing message
* added patch from Dan Hulme zeroing structures added to free pool
(thanks Dan!)
* Send vacation reply only to humans (full JIDs). Fixes#186
* Updated supported protocol listing
* Updated license template
* Using OpenSSL implementation of SHA1 hash if OpenSSL library enabled
* Added check whether -O optimization is to high. Fixes#100
* Changed contact address to list address
* Added BerkeleyDB dump script
* Added BerkeleyDB-2-MySQL migration script
* Implemented XEP-0232: Software Information
* Fixed possible crash when debug is on
* Fix for session restoration packet without queued result
For a full ChangeLog see:
http://svn.xiaoka.com/jabberd2/tags/jabberd-2.1.23/ChangeLog
o Use BUILDLINK_TRANSFORM to fix path for db4 headers.
o Fix typos of previous commit.
o Add rc.d scripts for all jabberd services (c2s, router, etc).
o Minor cleanups to Makefile.
o Remove pidfiles via stop_postcmd.
I think it's ready for pkgsrc, I'll import it after the freeze.
WRKSRC. LIBTOOL_OVERRIDE defaults to "libtool */libtool and */*/libtool,"
meaning that, in most packages, there's no need to set it.
So: Nuke tons of LIBTOOL_OVERRIDE=${WRKSRC} and adjust a few
SHLIBTOOL_OVERRIDEs (remove ${WRKSRC} from them).
Changes since the previous version:
* Brought privacy lists into line with latest spec
* Fixed registration bug & password changing security hole
* Fixed DIGEST-MD5 "qop" attribute handling
* Fixed a number of c2s/s2s I/O race conditions
* Fixed keepalives (now work with SSL/TLS connections)
* Fixed build against OpenLDAP 2.2
* Updated presence broadcast semantics
* Added calls to PAM account management functions
* Added handling for zero-length LDAP passwords
* Added checks for Berkeley DB 4.2
* Added check for vsyslog() and workaround code for systems that don't
have it (eg HP-UX)
* Removed -R flags from link directives