external plugin and yahoo registering

Martin Atkins mart at degeneration.co.uk
Wed Nov 7 19:31:57 UTC 2007

Franky Van Liedekerke wrote:
> Hi all,
> I have some issues with the current CVS and was wondering if anybody else experiences the same behavior:
> 1) when I define an external component (eg for msn), the order of the lines seems to be important: using
>    <Plugin DJabberd::PresenceChecker::Local />
>    <Plugin DJabberd::Delivery::Local />
>    <Plugin DJabberd::Delivery::S2S />
>    <Plugin DJabberd::Plugin::EntityTime />
> before my subdomain:
>    <Subdomain msn>
>       <Plugin DJabberd::Component::External>
>           ListenPort 5347
>           Secret xxxx
>       </Plugin>
>    </Subdomain>
> the subdomains fails to function correctly (what I mean in this case: the msn plugin connects fine, but then I can't register or see any of the possibilities the msn connector has).
> Is this normal? Or should the subdomains always be defined first? Is the order not that relevant for eg. sqlite authentication?

Internally some of these plugins end up adding handlers to the delivery 
hook inside the server, so any stanza recieved is passed to each of 
these in order until one declares that it has delivered it.

In your case, the S2S plugin is probably trying to deliver the stanza 
externally because it doesn't match the VHost's own domain.

<Subdomain> behind the scenes just creates a new VHost and uses the 
DJabberd::Delivery::LocalVHosts plugin to arrange for local delivery, so 
there isn't actually anything special about a subdomain as far as 
delivery goes.

In general, you should order your plugins by how "close" they are to the 
current VHost to ensure correct operation:
   * Delivery to the same vhost (DJabberd::Delivery::Local)
   * Delivery to other local vhosts (DJabberd::Delivery::LocalVHosts or
   * Delivery to other servers (DJabberd::Delivery::S2S)

The other plugins you've used here aren't delivery plugins, so their 
order is not significant here.

(I realise you probably already figured most of this out, but I thought 
I'd spell it out in case it is of help to anyone else.)

More information about the Djabberd mailing list