Cyrus 2.4 and RFC5256 (SORT and THREAD Extensions)
Olivier ROLAND
cyrus-dev at edla.org
Thu Sep 30 07:55:41 EDT 2010
Hi,
Sorry but Cyrus 2.4 does not seem to conform to RFC 5256 as stated in
doc/spec.html
Here is an excerpt from RFC5256 (Chapter 7.Internationalization Considerations)
As stated in the introduction, the rules of I18NLEVEL=1 as described
in [IMAP-I18N] MUST be followed; that is, the SORT and THREAD
extensions MUST collate strings according to the i;unicode-casemap
collation
Here is an excerpt from draft-ietf-imapext-sort-19 which indeed is the
actual implementation in Cyrus.
If the server does not support the [IMAP-I18N] COMPARATOR extension, the
collation algorithm used is the "en;ascii-casemap" collation
described in [COMPARATOR].
This "slight" change was introduced [sic] in
draft-ietf-imapext-sort-20 and discussed here
http://www.imc.org/ietf-imapext/mail-archive/msg04187.html
Actually in Cyrus 2.4 cache items are stored in ascii. RFC 5256
require them to be UTF-8 to be sorted as required.
That probably implies in Cyrus code :
- store cache items in UTF-8
- increment CACHE_VERSION
- check everything that will be broken by UTF-8 (actual sort
code probably is)
Olivier ROLAND
ATOS Origin.
More information about the Cyrus-devel
mailing list