A Conservative iChat

  • user warning: Table 'nolan.comments' doesn't exist query: SELECT COUNT(*) FROM comments WHERE nid = 308 AND status = 0 in /home/sneakin/web/nolan.eakins.net/includes/database.mysql.inc on line 120.
  • user warning: Table 'nolan.comments' doesn't exist query: SELECT c.cid as cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, c.homepage, u.uid, u.name AS registered_name, u.picture, u.data, c.score, c.users, c.thread, c.status FROM comments c INNER JOIN users u ON c.uid = u.uid WHERE c.nid = 308 AND c.status = 0 GROUP BY c.cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, u.picture, c.homepage, u.uid, u.name, u.picture, u.data, c.score, c.users, c.thread, c.status ORDER BY c.thread DESC LIMIT 0, 50 in /home/sneakin/web/nolan.eakins.net/includes/database.mysql.inc on line 120.
|

I just ran into a problem with iChat that would probably leave most mystified. I found out due to some unknown reason that iChat is very picky about the XML contained in its rosters. It doesn't ignore errors. Instead it just kicks you off saying that you have lost your connection.

The little snippet that was the culprit was a roster entry with a namespaced attribute:

<item jid='***@gmail.com' name='***' gr:t='B' subscription='both'/>

I'm not sure where that "gr:t" attribute came from, but that appears to have been iChat's choker. The only reason I noticed that was with Apple's Console utility. iChat was spitting out error messages to the system.log which included a block of XML that caused parse error 27, whatever that error means.

To get iChat working I had to use another client to remove and readd that roster entry. Not good for the neophytes.

I am left with a couple of questions though. Who uses the "gr:t" attribute, and what's it for? And can iChat either be a little more liberal in what it accepts or provide more help than "Lost connection" when the XML parser dies?

Ad's by Google