Miranda and iq with id
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'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?
brong at fastmail.fm
More information about the Djabberd