#422 closed defect (fixed)

JID resource strings are case sensitive and should not be forced to lower case (patch supplied)

Reported by: logan@… Owned by:
Priority: normal Milestone: 1.2.1
Component: BitlBee Version: 1.2
Keywords: Cc:
IRC client+version: Client-independent Operating System: Public server
OS version/distro:


Some jabber server implementations do case sensitive matches against the resource string at the end of a JID. The jabber_normalize function in jabber_util.c converts the entire JID including the resource string to lower case. The result being that with some jabber IM server implementations you can receive IMs with bitlbee but can't reply because the recipient resource string has been forced to all lower case.

I'm definitely not a jabber expert but it seems from a quick glance at the standards that the resource strings should be case sensitive. The jabber 2008 standards reference RFC3920 which in appendix D defers JID case sensitivity discussion to JEP/XEP-0029 "Definition of Jabber Identifiers (JIDs)". Section 2.4 of that document says "Resources identifiers are case-sensitive and are limited to 256 bytes."

If it saves any time, I've attached a patch (patch -p0 < jid_preserve_resource_case.diff) that fixes the problem for me.

Thanks for a very useful tool.

  • logan

Attachments (1)

jid_preserve_resource_case.diff (577 bytes) - added by logan@… at 2008-06-20T19:42:50Z.

Download all attachments as: .zip

Change History (3)

Changed at 2008-06-20T19:42:50Z by logan@…


comment:1 Changed at 2008-06-21T00:11:31Z by wilmer

(Although normally I get really angry when people set miletones themselves, I agree with you on this one. :-))

I saw this problem before. Google Talk seems to be fine with this with normal messages, but IQs don't always get delivered properly. This case sensitivity thing is a major PITA unfortunately. Your patch should work, although it makes BitlBee more case-sensitive about things too. But if that's what the standard requires, it should do that.

I'll try this out and see if everything will continue to work properly.

comment:2 Changed at 2008-06-21T23:53:46Z by wilmer

Resolution: fixed
Status: newclosed

Okay, that's fixed. The fix is a little bit bigger, I also added unittest for the whole JID handling code since it's quite a mess and it's a miracle that it works. Now it's proven. ;o)


Modify Ticket

as closed The ticket will remain with no owner.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment

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

Note: See TracTickets for help on using tickets.