On Sun, Aug 05, 2007 at 12:44:27PM +0200, Matthias Wimmer wrote: > Robin Redeker schrieb: > >But the problem that we have then is that a 1.0 server, which will only > >receive escaped JIDs, stores those (escaped) 1.1 JIDs in the 1.0 contacts > >roster as escaped JIDs (because he doesn't even know they are escaped > >JIDs!). > > > >That means that after migration (1.0 server upgrades software to a 1.1 > >capable one) those JIDs are still in their escaped form in the roster. > >And because there doesn't happen any escaping between 1.1 servers our > >recently upgraded 1.0 server has broken rosters. > > I'd say that this just means that when migrating from a 1.0 server to a > 1.1 server, that you have to convert the roster as it is stored on the > server. > > This is something the server implementation has to handle. E.g. by > flagging rosters that are created on the 1.1 software are that have > already been converted. Whenever the software reads a roster without > this flag, it knows it has to convert the roster first. > > Sorry, but I don't see the problem. Some sort of the same logic is also > needed for converting account names from a 1.0 server on upgrade to a > 1.1 server. >
The problem is that you don't know which JID was a 1.1 JID before it was escaped. So you would unescape every JID in the roster, leading to falsely unescaped JIDs. Of course we currently don't have many JIDs with a \ in the nodepart, and probably even less which would represent an escaped JID. But you will have false positives, like jabber.org currently has '[EMAIL PROTECTED]', that will be unescaped with your logic when migrating to 1.1 to 'stpeter @jabber.org' which would be wrong IMO. Robin
