#9 closed defect (fixed)

Rewrite Jabber module

Reported by: Jelmer Vernooij Owned by:
Priority: wishlist Milestone: 1.2
Component: Jabber Version:
Keywords: Cc:
IRC client+version: Client-independent Operating System: Public server
OS version/distro:


The current Jabber module, which was inherited from gaim, needs replacement. It includes a verbatim copy of the expat XML library and the code is very hairy (uses it's own memory allocation system, for example).

Maybe use libxml2 or the built-in XML support from Glib (don't know if that's sufficient?)

Attachments (0)

Change History (17)

comment:1 Changed at 2005-11-08T12:19:54Z by wilmer

Yeah, certainly a good plan, it's also starting to have stability problems. Mysterious crashes, that kind of things. The code's too hairy for my taste.

And it also gets rid of the Moz-licensed part of the code, which I wouldn't quite mind at all.

We have to take a look at too BTW.

comment:2 Changed at 2005-11-08T12:20:00Z by wilmer

Component: ircjabber

comment:3 Changed at 2005-11-16T16:20:07Z by wilmer

Related bugs:

#15 #20

Possibly the showing-up-offline problem is because the person was on-line from two places and signed off one of them, the Jabber lib doesn't seem to handle this very well yet.

If anyone knows another nice Jabber lib, please post it here. I know about loudmouth, but I'm afraid it won't integrate very well. (And I don't want to depend on it as a shlib.)

comment:4 Changed at 2005-11-17T23:41:54Z by wilmer

Milestone: 1.1?

comment:5 Changed at 2005-12-06T17:31:36Z by wilmer

Version: 0.99

Marked #20 as a dupe of this one.

No idea which Jabber lib could be suitable. I wonder how hard it would be to write our own around a simple XML-lib, to keep the source small...

comment:6 Changed at 2005-12-06T17:32:16Z by wilmer

Oh yes, of course the fact that #20 is closed now means that this one can't be closed before the new lib supports groupchats. ;-)

comment:7 Changed at 2006-02-16T17:33:13Z by ipo@…

Nice, I really hope this rewrite happens because the Jabber module currently lacks a couple of features that I think are essential:

  • Support for setting the resource (currently hardcoded as BitlBee in jabber.c)
  • Support for changing the priority (currently hardcoded Somewheretm as zero).

comment:8 Changed at 2006-02-16T19:12:11Z by wilmer

Reporter: changed from anonymous to Jelmer Vernooij

Setting the resource is possible already. Something like jabber@…/resource. Don't know about priority.

comment:9 Changed at 2006-02-22T23:21:01Z by alansyoungiii@…

I didn't know that ... can you point to any documentation on that? And is there a way to *reset* the resource once it's been set?

comment:10 Changed at 2006-04-01T14:14:11Z by wilmer

Milestone: 1.11.2

Oh, sorry, missed your question. No, I'm afraid there isn't, except re-adding the account.

comment:11 Changed at 2006-05-31T20:14:07Z by hrr

Is muc support is considered to include in new jabber module?

comment:12 Changed at 2006-06-25T15:16:39Z by a.kucera@…

I would certainly appreciate a good Jabber integration as well, because I could use BitlBee with Qunu, which I can't right now because of the missing groupchat feature.

comment:13 Changed at 2006-09-19T12:48:38Z by wilmer

I'm now working on this! I'm using the GLib XML parser code for it, plus some pretty compact piece of code that stores parse trees in memory for easier handling by the module. Wrote it during the last three days, works pretty well so far. And it's incomparably smaller than the shite we're using now. :-)

comment:14 Changed at 2006-09-24T20:13:45Z by wilmer

This is going very well now, I got some quite well-working code already.

Okay, I only tested it on my jabberd @ localhost (laptop) so far, so it needs some real-world testing, but I hope that'll come soon. :-)

comment:15 Changed at 2006-10-01T23:28:16Z by wilmer

This can now be downloaded from: (use bzr).

Tested against a few other Jabber servers now.

comment:16 Changed at 2006-10-15T10:34:22Z by wilmer

I reopened the Jabber groupchat support ticket (#20) so this ticket doesn't have to wait for the groupchats to work.

This new Jabber module might appear in a 1.1 pre-release soon...

comment:17 Changed at 2006-10-22T13:45:42Z by wilmer

Milestone: 1.21.1

Modify Ticket

as closed The ticket will remain with no owner.
The resolution will be deleted.

Add Comment

E-mail address and name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.