Miranda and iq with id

Bron Gondwana brong at fastmail.fm
Tue Jul 29 05:26:24 UTC 2008


So &DJabberd::IQ::process contains this:

||     # Trillian Jabber 3.1 is stupid and sends a lot of IQs (but non-important ones)
||     # without ids.  If we respond to them (also without ids, or with id='', rather),
||     # then Trillian crashes.  So let's just ignore them.
||     return unless defined($self->id) && length($self->id);

And Miranda attempts to update the roster like this:

22241 DEBUG DJabberd.Connection.XML.ClientIn         2 < <iq type='set'><query xmlns='jabber:iq:roster'><item jid='brong at fastmail.fm' subscription='both' name='brong at fastmail.fm'><group>FastMail</group></item></query></iq>
22241 DEBUG DJabberd.Connection.XML.ClientIn         2 < <iq type='set'><query xmlns='jabber:iq:roster'><item jid='brong at fastmail.fm' subscription='both' name='brong'/></query></iq>

==========

Now clearly both clients are in a state of sin and should be taken
out the back and quietly put out of their misery, but the reality
is that people like using them.  Wow.  And I thought IMAP clients
were bad enough.


Seems to me we might need a more robust "quirks detection mode".

Looking back through the entire conversation with Miranda, I see:

22241 DEBUG DJabberd.Connection.XML.ClientIn         2 < <presence><priority>0</priority><c xmlns='http://jabber.org/protocol/caps' node='http://miranda-im.org/caps' ext='mood' ver='0.7.3.0'/><status>Yep, I&apos;m here.</status></presence> 

This is, I think, the only place where the Mirandaness of this
connection is really clearly spelled out.  There's also a bunch
of ids like:

22241 DEBUG DJabberd.Connection.XML.ClientIn         2 < <iq type='get' id='mir_244' to='fastmail.fm'><query xmlns='http://jabber.org/protocol/disco#info'/></iq> 
22241 DEBUG DJabberd.Connection.XML.ClientIn         2 < <iq type='get' id='mir_245'><query xmlns='jabber:iq:privacy'/></iq>

So I guess it would be possible to add a "smells like client $foo"
field to the connection and enable quirks on a more selective basis.

I have no problem with that - I've done similar things for DAV to
work around client bugs as well.  My question is more:


a) do other people care?
b) do other people have another opinion on the best structural way
   to integrate this?

(I guess there's a zeroth question: has anyone already solved this?)

c) does anyone have any other special client quirks they want to
   name and shame?


Bron.


  
-- 
  Bron Gondwana
  brong at fastmail.fm



More information about the Djabberd mailing list