[Dovecot] Configuration file changes

Timo Sirainen tss at iki.fi
Wed Jul 2 00:26:16 EEST 2003


On Tue, 2003-07-01 at 23:16, Farkas Levente wrote:
> so what I do not understand:
> - what the "group" means? why not just a simple {} pair?

Well, it's just the syntax.. I think simple {} would be less readable.

> - until no there wasn't any king of grouping eg. what can I write inside 
> a login {} part? what is the server part ? etc... it seems to me a 
> config file can become a big mass.

Currently there's:

login = imap
login_executable = /usr/libexec/dovecot/imap-login
login_user = dovecot
login_process_size = 16
..etc..

login = pop3
login_executable = /usr/libexec/dovecot/pop3-login
.. you could override any other login_* settings here for pop3..

"login {}" would simply replace this with:

login imap {
  executable = /usr/libexec/dovecot/imap-login
  user = dovecot
  process_size = 16
}

login pop3 {
  executable = /usr/libexec/dovecot/pop3-login
}

Although I'm still not really sure how this would work either. Currently
the settings in login group you defined first (imap by default) are used
as defaults for the second login group (pop3). That's kind of messy I
think..

Maybe I should completely drop the login group and rather make protocol
groups. Something like:

# settings here would be global for both imap and pop3, but nothing
# would stop you from overriding them inside imap/pop3 group.
login_user = dovecot

imap {
  login_executable = /usr/libexec/dovecot/imap-login
  login_process_size = 16
  default_mail_env = maildir:~/Maildir
}

pop3 {
  login_executable = /usr/libexec/dovecot/pop3-login
  login_process_size = 16
  default_mail_env = maildir:~/Maildir:INDEX=MEMORY
}

> - in the 1. case server a is a union of all group where "server a" 
> appear or???

Um. No. There was 4 different servers. Two IMAP servers, two POP3
servers. Each one listening in different address, each one having
separate settings. The groups around them were used only to provide some
common settings for the servers under it.

> everybody else understand it and just I'm so stupid?

I don't know, it seems quite clear to me :) The basic idea should be
this:

# default setting for everything that is defined below:
default_mail_env = /var/mail/%u

server {
  # this server uses the default_mail_env above
  listen = a.server.org
}

server {
  listen = b.server.org
  # here we override the default_mail_env. it's used only by this server
  default_mail_env = ~/Maildir
}

group {
  # this is used for the two servers defined below
  default_mail_env = maildir:~/Maildir:INDEX=MEMORY
  server {
    listen = c.server.org
  }
  server {
    listen = d.server.org
  }
}

server {
  # default_mail_env is again the /var/mail/%u which was defined in
  # root level
  listen = e.server.org
}

So most of the settings wouldn't belong to any group. You can define
them in the root level which means they're global. You can override
globals inside groups. You can override group settings in subgroups.
etc.

I'm not sure if I should allow naming the groups/servers/etc. They don't
really matter, but they might be useful for statistics and error
messages.




More information about the dovecot mailing list