[Dovecot] dot-containing foldernames \HasNoChildren bug ?

Samuel Kvasnica bugreports at list.ims.co.at
Fri Aug 6 17:51:11 EEST 2010


 Hi Timo,

On 08/06/2010 03:54 PM, Timo Sirainen wrote:
> On Fri, 2010-08-06 at 11:31 +0200, Samuel Kvasnica wrote:
>
>> I got 2.0 from trunk kind of working now, but the listescape is still
>> broken ! The haschildren flag is correct now, but I cannot use (list or
>> create) any subfolders in general when listescape enabled
>> in config, only folders directly in inbox root work normal.
>>
>> When clicking e.g. at folder 'zzz', getting these error messages on client:
>> "The current operation on 'zzz' did not suceed. The mail server for
>> account xxx at aaa.com responded: Invalid mailbox name: xxx/zzz"
> And this is the latest hg? I thought
> http://hg.dovecot.org/dovecot-2.0/rev/827ebadc5995 fixed this bug. Also
Well, I work only with subversion, no experience with mercurial. But I
downloaded the bz2 for tip from dovecot-2.0, I suppose tip is the
"trunk" which should include all latest changes. Currently it is
dovecot-2-0-4ef2280ee490 and it is still broken. If listescape is
included and I click on any subfolder in thunderbird, get those error
messages.

> I can't reproduce it:
>
> x create a.b/x
> x OK Create completed.
> x create x/y
> x OK Create completed.

for me it is:

. create my.test/eee
. NO Invalid mailbox name: my.test/eee

or even without dot

. create xxx/aaa
. NO Invalid mailbox name: xxx/aaa

while root level works:
. create eee
. OK Create completed.




> What's your current doveconf -n output?
>
# 2.0.rc4: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.31.13-18-xen x86_64 openSUSE 11.2 (x86_64) xfs
auth_master_user_separator = #                               
auth_mechanisms = plain login                                
auth_verbose = yes                                           
disable_plaintext_auth = no                                  
hostname = imap                                              
log_path = /var/log/dovecot                                  
mail_access_groups = vmail                                   
mail_debug = yes                                             
mail_gid = vmail                                             
mail_location = maildir:/data/vmail/%u/Maildir               
mail_plugins = fts fts_squat acl imap_acl quota imap_quota   
mail_privileged_group = vmail                                
mail_uid = vmail                                             
managesieve_notify_capability = mailto                       
managesieve_sieve_capability = comparator-i;octet
comparator-i;ascii-casemap fileinto reject envelope encoded-character
vacation subaddress comparator-i;ascii-numeric relational regex
imap4flags copy include variables body enotify environment mailbox date
spamtest spamtestplus
virustest                                                                                                                           

namespace
{                                                                                                                             

  hidden =
no                                                                                                                           

  inbox =
yes                                                                                                                           

  list =
yes                                                                                                                            

  location
=                                                                                                                            

  prefix
=                                                                                                                              

  separator =
/                                                                                                                         

  subscriptions =
yes                                                                                                                   

  type =
private                                                                                                                        

}                                                                                                                                       

namespace
{                                                                                                                             

  list =
children                                                                                                                       

  location =
maildir:/data/vmail/%%u/Maildir:INDEX=/data/vmail/%u/index/shared/%%u                                                      

  prefix =
Shared/%%u/                                                                                                                  

  separator =
/                                                                                                                         

  subscriptions =
no                                                                                                                    

  type =
shared                                                                                                                         

}                                                                                                                                       

namespace
{                                                                                                                             

  location =
maildir:/data/vmail/Public:CONTROL=/data/vmail/%u/index/public:INDEX=/data/vmail/%u/index/public                           

  prefix =
Public/                                                                                                                      

  separator =
/                                                                                                                         

  subscriptions =
no                                                                                                                    

  type =
public                                                                                                                         

}                                                                                                                                       

passdb
{                                                                                                                                

  args =
/etc/dovecot/dovecot.deny                                                                                                      

  deny =
yes                                                                                                                            

  driver =
passwd-file                                                                                                                  

}                                                                                                                                       

passdb
{                                                                                                                                

  args =
/etc/dovecot/passwd.masters                                                                                                    

  driver =
passwd-file                                                                                                                  

  master =
yes                                                                                                                          

}                                                                                                                                       

passdb
{                                                                                                                                

  args =
/etc/dovecot/dovecot-ldap_pass.conf                                                                                            

  driver =
ldap                                                                                                                         

}                                                                                                                                       

plugin
{                                                                                                                                

  acl =
vfile:/etc/dovecot/global-acls:cache_secs=300                                                                                   

  acl_shared_dict =
file:/var/lib/dovecot/shared-mailboxes.db                                                                           

  fts =
squat                                                                                                                           

  fts_squat = partial=4
full=7                                                                                                          

  listescape_char = \
  quota = maildir:User quota
  quota_rule = *:storage=16G
  quota_rule2 = Trash:storage=+100M
  quota_rule3 = Junk:ignore
  quota_warning = storage=85%% quota_warning 85 %u
  quota_warning2 = storage=95%% quota_warning 95 %u
  sieve = /data/vmail/%u/.dovecot.sieve
  sieve_dir = /data/vmail/%u/sieve
}
postmaster_address = postmaster at ims.co.at
protocols = imap sieve
service imap {
  process_limit = 2048
}
service quota-warning {
  executable = script /etc/dovecot/quota-warning.sh
  unix_listener quota-warning {
    user = vmail
  }
  user = dovecot
}
ssl = no
userdb {
  args = /etc/dovecot/dovecot-ldap_user.conf
  driver = ldap
}
verbose_proctitle = yes
protocol lda {
  mail_plugins = $mail_plugins acl sieve quota listescape
}
protocol imap {
  mail_plugins = $mail_plugins fts fts_squat acl imap_acl quota
imap_quota listescape
}





More information about the dovecot mailing list