[Dovecot] dot-containing foldernames \HasNoChildren bug ?

Samuel Kvasnica bugreports at list.ims.co.at
Mon Aug 9 23:15:40 EEST 2010


 Hi Timo,

hope this mails gets proper References in header, just bypassed the
upstream scalix server by postfix

On 08/09/2010 06:48 PM, Timo Sirainen wrote:
> Was there a reason for this change?
>> yes, I've got segfaults, mlist was zero ! But thats just an "intuitive"
>> patch without understanding what going on... 
> http://hg.dovecot.org/dovecot-2.0/rev/ed61aee681b8 should fix that.
thanks, sounds like never-ending escape story
>> i'm just terribly under pressure to get the setup working
> Have you considered on getting rid of listescape plugin and simply
> using :LAYOUT=fs? :) That should be more reliable..
Yes, I actually started my dovecot1.2 setup using fs layout because I
liked the idea. Unfortunately I've badly hit the brickwall during
the old server migration as it became during imapsync clear that 'new'
or 'tmp' are pretty common subfolder names for many users on site. And
I really did not want to restrict allowed folder names that much. Any
idea how to make 'new' or 'tmp' work with fs layout ?

>> actually, the LSUB command is totaly broken with listescape for
>> subfolders when using wildcards, and I cannot find the reason why. Not
>> only in shared area, also in INBOX root. Really got lost in the pointer
>> jungle, not sure how to debug further.
>>
>> no listescape example:
>>
>> . lsub "" "Public/public/%"
>> * LSUB () "/" "Public/public/ccc"
>> . OK Lsub completed.
> This looks like a public namespace, not private namespace? Anyway I see
> that the problem with shared/public mailboxes has to do with ACL plugin
> and listescape plugin interaction.
You are right, it is only related to public or shared namespaces.

> Problem 1) Rebuilding dovecot-acl-list:
>
> ACL plugin sees "foo.bar" mailbox name and then tries to look for its
> dovecot-acl file without going through listescape plugin, because it 
> never calls mailbox_alloc().
>
> In acllist_append() you could try replacing
> mail_namespace_get_storage_name() call with mailbox_alloc() and then
> using mailbox_get_name(). Then it should write the escaped name to
> dovecot-acl-list file.
>
> Problem 2) Reading dovecot-acl-list file:
>
> In acl_mailbox_try_list_fast() it reads the dovecot-acl-list with
> escaped names, but acl_mailbox_list_iter_next_info() compares them with
> unescaped names.
>
> Maybe in 1) case it should just keep the mailbox names in escaped form
> in dovecot-acl-list file so 2) wouldn't need to be changed.. In 1) case
> then you'd still need mailbox_alloc() and pass the escaped name to
> acl_object_init_from_name() so that it can read the right dovecot-acl
> file.
>
> I don't really want to try to fix this for v2.0. Seems like a pretty
> ugly mess that would be fixed much more easily by some API changes.
>

Ugh, this sounds really, really ugly. alc plugin was the only part where
I did not put printfs... ok, now I understand, there was just another
hook inbetween.
Well, if I don't get it working with fs layout, I will have to do some
"dirty" patch. I just wish you had written the code in c++...

Thanks.


More information about the dovecot mailing list