Tuesday, May 3, 2005

gaim & jabber

I use gaim as my primary IM client due to its multi-protocol support and the fact that I've been using it for five years and habits are hard to kill.

A while back I submitted a minor patch (3 lines, with some help from some of the developers on that, so I would even hasten to say that I wrote the patch) for a dns whitespace issue. Due to my growing interest in jabber, I want to see gaim support more XMPP features. The first one I decided to try and tackle is resource priority. I sent an email to the devel list requesting commentary on the proper implemnattion of priority in gaim and solicited a couple of possible options. We'll see how things go.

Looking at the source this time around things seem a bit easier. I blame this in part upon Chris since he's been helping me understand C a bit more. (For all the ladies out there, yep, Chris is a geek, you need not talk to him anymore all hope for him is lost).

There are two options for setting/supporting resource priority in gaim. One method is tie it to the account, and allow the client to have only one priority no matter what status it is set to. Eg, no matter if you're Away, DND, Missing, or Available the client would always have the same priority and would always have messages routed to/past it when another client with lower/higher is online.

The other option is have priority tied directly to status, so that all different statuses will have variable priorities; an example of this would be if you were away for your client to have a -100 priority but if you were available a 5 priority, that way if you were on said client and around then you'd get messages routed for anything with a priority less than 5, but if you were to set it to away, you'd more than likely not get any messages as they'd be routed to a different higher priority resource. This second method seems to be what the gaim developers had in mind when sprinkling the little bits of priority code in the jabber protocol plugin thinger.