On Thu, 2009-03-26 at 20:19 -0400, Philip Gladstone wrote:
> Is anyone still looking at the problem, or does someone have the ideal
> solution?

Attached is _my_ ideal solution to the problem. :)
 - Alex
>From 25b6b152fac968eb92ba234141a5c12a2a661ba6 Mon Sep 17 00:00:00 2001
From: Alex Vandiver <ale...@mit.edu>
Date: Fri, 27 Mar 2009 00:17:55 -0400
Subject: [PATCH] Don't attempt to send <stream:features/> if we're the initiating entity in s2s

To address each point in the comment this patch removes:

 * We can only reasonably suspect the remote server can "eat a dick"
   if they provide the <eatadick/> element in their <stream:features/>
   response.  Unfortunately, this element is not in any
   standards-track extension of XMPP.

 * The remote server does not expect to get features; as the RFC
   ( http://xmpp.org/rfcs/rfc3920.html#rfc.section.4.6 ) states, only
   the receiving server is expected to send <stream:features/>, and
   hence the remote end will not know what to make of it.

 * XMPP 1.0 + dialback is only "old-school" because djabberd does not
   (yet) support TLS or SASL server-to-server authentication.
   Dialback is still a fully-supported, if "weak", form of server
   identity verification in XMPP 1.0.

 * I suspect you _were_ still confused.
---
 DJabberd/lib/DJabberd/Connection/ServerOut.pm |    9 ---------
 1 files changed, 0 insertions(+), 9 deletions(-)

diff --git a/DJabberd/lib/DJabberd/Connection/ServerOut.pm b/DJabberd/lib/DJabberd/Connection/ServerOut.pm
index 62de7c5..b1f41db 100644
--- a/DJabberd/lib/DJabberd/Connection/ServerOut.pm
+++ b/DJabberd/lib/DJabberd/Connection/ServerOut.pm
@@ -84,15 +84,6 @@ sub on_stream_start {
 
     $self->log->debug("Connection $self->{id} supports dialback");
 
-    if ($ss->version->supports_features) {
-        # they can eat a dick for all we care.  they get no features.
-        # what is this weird XMPP 1.0 + old-school Dialback world anyway?
-        # maybe we're still confused.  FIXME: care.
-        my $features = "<stream:features></stream:features>";
-        $self->write($features);
-        $self->log->debug("$self->{id} sending '$features'");
-    }
-
     my $vhost       = $self->{queue}->vhost;
     my $orig_server = $vhost->name;
     my $recv_server = $self->{queue}->domain;
-- 
1.6.2.1.321.g7b198.dirty

Reply via email to