The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.85 - 2011-06-13

  • Fix an XML entity injection attack allowing the attacker to read random files from the server. Reported by Wouter Coekaerts <wouter@coekaerts.be>. (Yann Kerherve <yann@cyberion.net>)
  • Support intermediate SSL certificates. (Rajiv Aaron Manglani <rajiv@brontes3d.com>)
  • SASL support (Previously released, but not advertised here) (Yann Kerherve <yann@cyberion.net>)
  • Implement proper support for XML namespace prefixes (Daniel Ruoso <daniel@ruoso.com>)
  • Meta: djabberd is now hosted on http://github.com/djabberd
  • Meta: The core repository is now separated from plugins.
  • Treat the node and domain parts of a JID as case-insensitive as per the XMPP spec. This creates a dependency on the CPAN module Unicode::Stringprep. A backward-compatibility setting is provided for servers that have existing non-normalized JIDs stored, since they are likely to be broken by this change until their stored data is normalized. Patch from Alex Vandiver <alexmv@bestpractical.com>
  • Some configuration file docs (Alex Vandiver <alexmv@bestpractical.com>)
  • Improve debugging information for S2S connections. (Alex Vandiver <alexmv@bestpractical.com>)
  • Remove the stream:features-in-dialback quirk hack, since it breaks interop with a few different implementations and is incorrect per spec. This may break interop with some other implementation, but we've been unable to determine which one, so I'm assuming that it's no longer an issue. (Alex Vandiver <alexmv@bestpractical.com>)
  • Small tweak to comment and logging in DJabberd::Connection::ServerOut (Alex Vandiver <alexmv@bestpractical.com>)
  • Don't treat hostnames that look like 192.168.0.1.domain.com as IP addresses. (Reported by Domrachev Ivan <domrachev.ivan@gmail.com>).
  • new hook chain called "SendFeatures" allows plugins to add xml to the stream:features stanza returned by the server
  • new hook chain called "HandleStanza" allows plugins to register for and then handle what would otherwise be unsupported-stanza-type
  • SSL memory leak fix (http://codereview.appspot.com/2326)
  • hook chain callback logging fix merged from 'kane-hacking' branch

Changes for version 0.84_01 - 2009-07-31

  • SARTAK caught a typo in BotContext.pm where a qr was used in a place that obviously should have been qq.
  • "use bytes" in Connection.pm, which reportedl fixes UTF-8 corruption in rosters (Aleksey Luzin <subscr@p34.net>)
  • If an explicit configuration file location is given to djabberd, don't fall back on the built-in default locations. If the user wanted the defaults, he wouldn't have used the --conffile option.
  • Allow the location of the log4perl configuration file to be set via a command-line argument to djabberd. (Jakob Burkhart <igotimac@gmail.com>)
  • Correct support for re-using an S2S connection for multiple source domains. (Adrian Ulrich <slack@blinkenlights.ch>)
  • Jacob Burkhart <igotimac@gmail.com>: Fix memory leak when using SSL
  • Michael Scherer <misc@mandriva.org>: more helpful error messages in logs after dialback failure (shows hosts in question)
  • Piers Harding <piers@ompka.net>: Fix bug where server wasn't including a "from" attribute in IQ responses.
  • Multiple resources of the same local JID are now made aware of one another via presence stanzas as required by the spec.
  • don't leak UDP sockets on DNS SRV lookup timeouts
  • handle improper SSL disconnects without spinning CPU
  • Updated DJabberd::Component::Example which uses the correct API. The previous example didn't actually work anymore.
  • Add POD for DJabberd::Agent, DJabberd::Component and a bunch of other related modules.
  • Make bots automatically accept roster subscription requests.

Documentation

Configuration options in djabberd.conf

Modules

scalable, extensible Jabber/XMPP server.
Abstract base class representing a software agent that talks XMPP
Abstract class for an agent that handles a specific node
Abstract class representing a component in DJabberd
An example DJabberd service component
Interface to external plugins implementing JEP-0114
Specialization of DJabberd::Agent::Node that knows it belongs to a component
Delivery through a JEP-0114 component connection
Controlled delivery to other local VHosts
Base plugin for SASL Negotiation
SASL Negotiation using Authen::SASL
abstract base class for SASL connections
Dumb Plain SASL Auth plugin
Abstract base clase for the main SASL object.

Provides

in lib/DJabberd/Authen.pm
in lib/DJabberd/Authen/AllowedUsers.pm
in lib/DJabberd/Authen/InMemoryOnly.pm
in lib/DJabberd/Authen/StaticPassword.pm
in lib/DJabberd/Bot.pm
in lib/DJabberd/Bot/Admin.pm
in demo/lib/DJabberd/Bot/Demo.pm
in lib/DJabberd/BotContext.pm
in lib/DJabberd/Callback.pm
in lib/DJabberd/Cluster.pm
in lib/DJabberd/ClusterMessage.pm
in lib/DJabberd/ClusterMessage/DeliverStanza.pm
in lib/DJabberd/Component/Example.pm
in lib/DJabberd/Connection.pm
in lib/DJabberd/Connection/Admin.pm
in lib/DJabberd/Connection/ClientIn.pm
in lib/DJabberd/Connection/ClusterIn.pm
in lib/DJabberd/Connection/ClusterOut.pm
in lib/DJabberd/Connection/DialbackVerify.pm
in lib/DJabberd/Connection/OldSSLClientIn.pm
in lib/DJabberd/Connection/ServerIn.pm
in lib/DJabberd/Connection/ServerOut.pm
in lib/DJabberd/Connection/SimpleIn.pm
in lib/DJabberd/DNS.pm
in lib/DJabberd/Delivery.pm
in lib/DJabberd/Delivery/Local.pm
in lib/DJabberd/Delivery/S2S.pm
in lib/DJabberd/DialbackParams.pm
in lib/DJabberd/HookDocs.pm
in lib/DJabberd/DNS.pm
in lib/DJabberd/IQ.pm
in lib/DJabberd/JID.pm
in lib/DJabberd/Log.pm
in lib/DJabberd/Log.pm
in lib/DJabberd/Message.pm
in lib/DJabberd/Plugin.pm
in demo/lib/DJabberd/Plugin/Demo.pm
in lib/DJabberd/Presence.pm
in lib/DJabberd/PresenceChecker.pm
in lib/DJabberd/PresenceChecker/Dummy.pm
in lib/DJabberd/PresenceChecker/Local.pm
in lib/DJabberd/Queue.pm
in lib/DJabberd/Queue/ClusterOut.pm
in lib/DJabberd/Queue/ServerOut.pm
in lib/DJabberd/Queue.pm
in lib/DJabberd/Roster.pm
in lib/DJabberd/RosterItem.pm
in lib/DJabberd/RosterStorage.pm
in lib/DJabberd/RosterStorage/InMemoryOnly.pm
in lib/DJabberd/SASL/Connection/AuthenSASL.pm
in lib/DJabberd/SASL/DumbPlainManager.pm
in lib/DJabberd/SASL/Manager/AuthenSASL.pm
in lib/DJabberd/SAXHandler.pm
in lib/DJabberd/Stanza.pm
in lib/DJabberd/Stanza/DialbackResult.pm
in lib/DJabberd/Stanza/DialbackVerify.pm
in lib/DJabberd/Stanza/SASL.pm
in lib/DJabberd/Stanza/StartTLS.pm
in lib/DJabberd/Stanza/StreamFeatures.pm
in lib/DJabberd/Stats.pm
in lib/DJabberd/StreamStart.pm
in lib/DJabberd/StreamVersion.pm
in lib/DJabberd/Subscription.pm
in lib/DJabberd/TestSAXHandler.pm
in lib/DJabberd/Util.pm
in lib/DJabberd/Util.pm
in lib/DJabberd/VHost.pm
in lib/DJabberd/XMLElement.pm
in lib/DJabberd/XMLParser.pm