changeset 1900:41ebdb331b94

mod_compat_dialback: Workaround for Dialback with servers that violate RFC 6120 ยง 4.7.2
author Kim Alvefur <zash@zash.se>
date Sun, 11 Oct 2015 15:39:23 +0200
parents ceb594a14a18
children 392e62f518a5
files mod_compat_dialback/README.markdown mod_compat_dialback/mod_compat_dialback.lua
diffstat 2 files changed, 36 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /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);