Re: METADATA help

Marco <[email protected]>
Newsgroups gmane.mail.imap.cyrus
Message-ID <[email protected]>
Oh, I have found the solution!

It seems that in the annotation_definitions file the *name* of the 
third-party annotation MUST be down-case.

The RFC5464 says:

"Except as noted otherwise, all alphabetic characters are case-
    insensitive.  The use of upper or lower case characters to define
    token strings is for editorial clarity only.  Implementations MUST
    accept these strings in a case-insensitive fashion."

So this could be a bug...

Interesting this: if I define a downcase name in the file, then the 
GET/SETMETADATA works case insensitive as expected. But if the name in 
annotation file is uppercase, the imap metadata commands return NIL or 
Permission denied.

Kind Regards
Marco


Il 28/04/2020 12:49, Marco ha scritto:
> Hello,
> 
>    I have some problems in Cyrus 3.0.13 with user defined metadata.
> 
> Let suppose I define in imapd.conf
> 
>      annotation_definitions: /etc/annoIMAP.conf
> 
> and annoIMAP.conf is:
> 
> /vendor/example/partition/comune.prova.it,server,string,backend,value.priv,lrswipkxtea 
> 
> 
> With this configuration all works fine with the old annotatemore 
> "standard". I can set and read annotations.
> 
> But time will crawl, so I have to adopt the new METADATA standard 
> (RFC5464) to manage these values.
> 
> If I try
> 
> a SETMETADATA "" (/private/vendor/example/partition/comune.prova.it 
> "prova1")
> a NO Permission denied
> 
> I have to do this to set the value:
> 
> a SETANNOTATION "" "/vendor/example/partition/comune.prova.it" 
> ("value.priv" "prova1")
> a OK Completed
> 
> 
> Now, with
> 
> a GETMETADATA "" "/private/*"
> * METADATA "" ("/private/vendor/example/partition/comune.prova.it" 
> "prova1" "/private/vendor/cmu/cyrus-imapd/squat" NIL 
> "/private/vendor/cmu/cyrus-imapd/expire" NIL 
> "/private/vendor/cmu/cyrus-imapd/usercounters" "3 0 0 0 0 0 0 0 0 0 0" 
> "/private/vendor/cmu/cyrus-imapd/usermodseq" "0" "/private/comment" NIL 
> "/private/admin" NIL)
> 
> but if I ask only my user defined metadata:
> a GETMETADATA "" "/private/vendor/example/partition/comune.prova.it"
> * METADATA "" ("/private/vendor/example/partition/comune.prova.it" NIL)
> 
> the server tell me NIL in place of "prova1".
> 
> I would ask an help with this protocol:
> 
> - I would like to know why SETMETADATA fails with "Permission denied" in 
> above example.
> 
> - Then I have to know why a wildcard query show me the "prova1" value in
> "/private/vendor/example/partition/comune.prova.it", but when I query 
> only the value of "/private/vendor/example/partition/comune.prova.it" 
> the answer is NIL.
> 
> Other detail:
> name       : Cyrus IMAPD
> version    : 3.0.13-6.el8
> vendor     : Project Cyrus
> support-url: https://www.cyrusimap.org
> os         : Linux
> os-version : 4.18.0-147.8.1.el8_1.x86_64
> environment: Built w/Cyrus SASL 2.1.27
>               Running w/Cyrus SASL 2.1.27
>               Built w/OpenSSL 1.1.1c FIPS  28 May 2019
>               Running w/OpenSSL 1.1.1c FIPS  28 May 2019
>               Built w/zlib 1.2.11
>               Running w/zlib 1.2.11
>               CMU Sieve 3.0
>               NET-SNMP
>               mmap = shared
>               lock = fcntl
>               nonblock = fcntl
>               idle = idled
> 
> 
> Thank you very much
> Kind Regards
> 
> Marco
> ----
> Cyrus Home Page: http://www.cyrusimap.org/
> List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/
> To Unsubscribe:
> https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus
> 

----
Cyrus Home Page: http://www.cyrusimap.org/
List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/
To Unsubscribe:
https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.