Opened at 2008-06-20T19:41:45Z
Closed at 2008-06-21T23:53:46Z
#422 closed defect (fixed)
JID resource strings are case sensitive and should not be forced to lower case (patch supplied)
Reported by: | 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: |
Description
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)
Change History (3)
Changed at 2008-06-20T19:42:50Z by
Attachment: | jid_preserve_resource_case.diff added |
---|
comment:1 Changed at 2008-06-21T00:11:31Z by
(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
Resolution: | → fixed |
---|---|
Status: | new → closed |
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)
jid_preserve_resource_case.diff