mod_compat_dialback: Workaround for Dialback with servers that violate RFC 6120 § 4.7.2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mod_compat_dialback/README.markdown Sun Oct 11 15:39:23 2015 +0200
@@ -0,0 +1,21 @@
+---
+summary: Workaround for Dialback with some servers that violate RFC 6120
+...
+
+This module provides a workaround for servers that do not set the `to`
+attribute on stream headers, which is required per [RFC6120]:
+
+> ## 4.7.2. to
+>
+> For initial stream headers in both client-to-server and
+> server-to-server communication, the initiating entity MUST include the
+> 'to' attribute and MUST set its value to a domainpart that the
+> initiating entity knows or expects the receiving entity to service.
+
+As a side effect of [this issue](https://prosody.im/issues/issue/285),
+Prosody 0.10 will be unable to do [Dialback][xep220] with servers that
+don't follow this.
+
+# Known servers affected
+
+* Openfire 3.10.2 (and probably earlier versions)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mod_compat_dialback/mod_compat_dialback.lua Sun Oct 11 15:39:23 2015 +0200
@@ -0,0 +1,15 @@
+-- Prosody IM
+-- Copyright (C) 2008-2010 Matthew Wild
+-- Copyright (C) 2008-2010 Waqas Hussain
+--
+-- This project is MIT/X11 licensed. Please see the
+-- COPYING file in the source package for more information.
+--
+
+module:set_global();
+
+module:global("s2s-stream-features-legacy", function (data)
+ if data.origin.type == "s2sin_unauthed" then
+ data.features:tag("dialback", { xmlns='urn:xmpp:features:dialback' }):up();
+ end
+end);