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@domain1.com.au shared.user2@domain2.com.au doveadm(user1@domain1.com.au): Error: Mailbox 'com.au' in namespace 'shared.user2@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@domain1.com.au would spell as IMAP token:
shared.user1@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