Ticket #9 (closed defect: fixed)

Opened 4 years ago

Last modified 2 years ago

Rewrite Jabber module

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

Description

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

Change History

Changed 4 years ago 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  http://iksemel.jabberstudio.org/ too BTW.

Changed 4 years ago by wilmer

  • component changed from irc to jabber

Changed 4 years ago 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.)

Changed 4 years ago by wilmer

  • milestone set to 1.1?

Changed 4 years ago by wilmer

  • version 0.99 deleted

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...

Changed 4 years ago 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. ;-)

Changed 3 years ago 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).

Changed 3 years ago by wilmer

  • reporter changed from anonymous to jelmer

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

Changed 3 years ago 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?

Changed 3 years ago by wilmer

  • milestone changed from 1.1 to 1.2

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

Changed 3 years ago by hrr

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

Changed 3 years ago 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.

Changed 3 years ago 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. :-)

Changed 3 years ago 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. :-)

Changed 3 years ago by wilmer

This can now be downloaded from:  http://code.bitlbee.org/wilmer/new-jabber/ (use bzr).

Tested against a few other Jabber servers now.

Changed 3 years ago 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...

Changed 3 years ago by wilmer

  • milestone changed from 1.2 to 1.1

Add/Change #9 (Rewrite Jabber module)

Author


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


Action
as closed
Next status will be 'reopened'
 
Note: See TracTickets for help on using tickets.