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
- DJabberd::Config - Configuration options in djabberd.conf
Modules
- DJabberd - scalable, extensible Jabber/XMPP server.
- DJabberd::Agent - Abstract base class representing a software agent that talks XMPP
- DJabberd::Agent::Node - Abstract class for an agent that handles a specific node
- DJabberd::Component - Abstract class representing a component in DJabberd
- DJabberd::Component::Example - An example DJabberd service component
- DJabberd::Component::External - Interface to external plugins implementing JEP-0114
- DJabberd::Component::Node - Specialization of DJabberd::Agent::Node that knows it belongs to a component
- DJabberd::Connection::ComponentIn - JEP-0114 Server
- DJabberd::Connection::ComponentOut - JEP-0114 Client
- DJabberd::Delivery::ComponentConnection - Delivery through a JEP-0114 component connection
- DJabberd::Delivery::LocalVHosts - Controlled delivery to other local VHosts
- DJabberd::SASL - Base plugin for SASL Negotiation
- DJabberd::SASL::AuthenSASL - SASL Negotiation using Authen::SASL
- DJabberd::SASL::Connection - abstract base class for SASL connections
- DJabberd::SASL::DumbPlain - Dumb Plain SASL Auth plugin
- DJabberd::SASL::ManagerBase - Abstract base clase for the main SASL object.
Provides
- DJabberd::Authen in lib/DJabberd/Authen.pm
- DJabberd::Authen::AllowedUsers in lib/DJabberd/Authen/AllowedUsers.pm
- DJabberd::Authen::InMemoryOnly in lib/DJabberd/Authen/InMemoryOnly.pm
- DJabberd::Authen::StaticPassword in lib/DJabberd/Authen/StaticPassword.pm
- DJabberd::Bot in lib/DJabberd/Bot.pm
- DJabberd::Bot::Admin in lib/DJabberd/Bot/Admin.pm
- DJabberd::Bot::Demo in demo/lib/DJabberd/Bot/Demo.pm
- DJabberd::BotContext in lib/DJabberd/BotContext.pm
- DJabberd::Callback in lib/DJabberd/Callback.pm
- DJabberd::Cluster in lib/DJabberd/Cluster.pm
- DJabberd::ClusterMessage in lib/DJabberd/ClusterMessage.pm
- DJabberd::ClusterMessage::DeliverStanza in lib/DJabberd/ClusterMessage/DeliverStanza.pm
- DJabberd::Component::Example::ExampleNode in lib/DJabberd/Component/Example.pm
- DJabberd::Connection in lib/DJabberd/Connection.pm
- DJabberd::Connection::Admin in lib/DJabberd/Connection/Admin.pm
- DJabberd::Connection::ClientIn in lib/DJabberd/Connection/ClientIn.pm
- DJabberd::Connection::ClusterIn in lib/DJabberd/Connection/ClusterIn.pm
- DJabberd::Connection::ClusterOut in lib/DJabberd/Connection/ClusterOut.pm
- DJabberd::Connection::DialbackVerify in lib/DJabberd/Connection/DialbackVerify.pm
- DJabberd::Connection::OldSSLClientIn in lib/DJabberd/Connection/OldSSLClientIn.pm
- DJabberd::Connection::ServerIn in lib/DJabberd/Connection/ServerIn.pm
- DJabberd::Connection::ServerOut in lib/DJabberd/Connection/ServerOut.pm
- DJabberd::Connection::SimpleIn in lib/DJabberd/Connection/SimpleIn.pm
- DJabberd::DNS in lib/DJabberd/DNS.pm
- DJabberd::Delivery in lib/DJabberd/Delivery.pm
- DJabberd::Delivery::Local in lib/DJabberd/Delivery/Local.pm
- DJabberd::Delivery::S2S in lib/DJabberd/Delivery/S2S.pm
- DJabberd::DialbackParams in lib/DJabberd/DialbackParams.pm
- DJabberd::HookDocs in lib/DJabberd/HookDocs.pm
- DJabberd::IPEndPoint in lib/DJabberd/DNS.pm
- DJabberd::IQ in lib/DJabberd/IQ.pm
- DJabberd::JID in lib/DJabberd/JID.pm
- DJabberd::Log in lib/DJabberd/Log.pm
- DJabberd::Log::Junk in lib/DJabberd/Log.pm
- DJabberd::Message in lib/DJabberd/Message.pm
- DJabberd::Plugin in lib/DJabberd/Plugin.pm
- DJabberd::Plugin::Demo in demo/lib/DJabberd/Plugin/Demo.pm
- DJabberd::Presence in lib/DJabberd/Presence.pm
- DJabberd::PresenceChecker in lib/DJabberd/PresenceChecker.pm
- DJabberd::PresenceChecker::Dummy in lib/DJabberd/PresenceChecker/Dummy.pm
- DJabberd::PresenceChecker::Local in lib/DJabberd/PresenceChecker/Local.pm
- DJabberd::Queue in lib/DJabberd/Queue.pm
- DJabberd::Queue::ClusterOut in lib/DJabberd/Queue/ClusterOut.pm
- DJabberd::Queue::ServerOut in lib/DJabberd/Queue/ServerOut.pm
- DJabberd::QueueItem in lib/DJabberd/Queue.pm
- DJabberd::Roster in lib/DJabberd/Roster.pm
- DJabberd::RosterItem in lib/DJabberd/RosterItem.pm
- DJabberd::RosterStorage in lib/DJabberd/RosterStorage.pm
- DJabberd::RosterStorage::InMemoryOnly in lib/DJabberd/RosterStorage/InMemoryOnly.pm
- DJabberd::SASL::Connection::AuthenSASL in lib/DJabberd/SASL/Connection/AuthenSASL.pm
- DJabberd::SASL::DumbPlainManager in lib/DJabberd/SASL/DumbPlainManager.pm
- DJabberd::SASL::Manager::AuthenSASL in lib/DJabberd/SASL/Manager/AuthenSASL.pm
- DJabberd::SAXHandler in lib/DJabberd/SAXHandler.pm
- DJabberd::Stanza in lib/DJabberd/Stanza.pm
- DJabberd::Stanza::DialbackResult in lib/DJabberd/Stanza/DialbackResult.pm
- DJabberd::Stanza::DialbackVerify in lib/DJabberd/Stanza/DialbackVerify.pm
- DJabberd::Stanza::SASL in lib/DJabberd/Stanza/SASL.pm
- DJabberd::Stanza::StartTLS in lib/DJabberd/Stanza/StartTLS.pm
- DJabberd::Stanza::StreamFeatures in lib/DJabberd/Stanza/StreamFeatures.pm
- DJabberd::Stats in lib/DJabberd/Stats.pm
- DJabberd::StreamStart in lib/DJabberd/StreamStart.pm
- DJabberd::StreamVersion in lib/DJabberd/StreamVersion.pm
- DJabberd::Subscription in lib/DJabberd/Subscription.pm
- DJabberd::TestSAXHandler in lib/DJabberd/TestSAXHandler.pm
- DJabberd::TrackedSub in lib/DJabberd/Util.pm
- DJabberd::Util in lib/DJabberd/Util.pm
- DJabberd::VHost in lib/DJabberd/VHost.pm
- DJabberd::XMLElement in lib/DJabberd/XMLElement.pm
- DJabberd::XMLParser in lib/DJabberd/XMLParser.pm