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