Bug Report: %% variables not expanded properly with shared namespace using . as separator

Hugh Bragg hughbragg at dodo.com.au
Fri Feb 19 13:38:05 UTC 2016



On 19/02/2016 8:09 PM, Steffen Kaiser wrote:
> On Fri, 19 Feb 2016, Hugh Bragg wrote:
>
> > Subject: Bug Report: %% variables not expanded properly with shared
> namespace
> >     using . as separator
>
> > I think this is a bug.
> > I'd expect that location %% variables are translated the same way %
> > variables are interpreted, but apparently this isn't the case.
> > virtual folders work fine, but my shared folders fail because of the .
> > in the domain name.
> > What I get is the following:
>
> > # doveadm acl debug -u user1 at domain1.com.au shared.user2 at domain2.com.au
> > doveadm(user1 at domain1.com.au): Error: Mailbox 'com.au' in namespace
> > 'shared.user2 at domain2.' doesn't exist in
> > /var/mail/vhosts/domain2/user2/mail/.com.au
>
> > namespace others {
> >  list = children
> >  location =
> >
> maildir:/var/mail/vhosts/%%d/%%n/mail:INDEX=/var/mail/vhosts/%d/%n/shared/%%u
> >  prefix = shared.%%u.
>
> The mailbox Trash of user user1 at domain1.com.au would spell as IMAP token:
>
> shared.user1 at domain1.com.au.Trash
>
> Because . is the hierarchie separator, Dovecot must break the string
> at the 2nd ., because it cannot determine which dot comes from a
> domain name and which is a separator.
>

That's much is clear and that's the issue. The Virtual can achieve this,
so why don't these plugins use the mail_home, mail_location, %% variable
which are used to create the string?
It looks like when the string representing the mailbox if constructed,
all the information is available, but that the plugin doesn't use this
and parses the string again.
I suppose the virtual plugin handles this differently. I can't tell if
it's a sequencing issue or and configuration access problem.

> -- Steffen Kaiser
- Hugh



More information about the dovecot mailing list