From: Timo Sirainen Date: Sun, 4 May 2008 15:12:28 +0000 (+0300) Subject: Added dict_db_config setting to point to a Berkeley DB config file. X-Git-Tag: 1.1.rc5~21 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a540926a125bf91fde6813413d8cf07922eed3d7;p=thirdparty%2Fdovecot%2Fcore.git Added dict_db_config setting to point to a Berkeley DB config file. --HG-- branch : HEAD --- diff --git a/doc/dovecot-db.conf b/doc/dovecot-db.conf new file mode 100644 index 0000000000..165dc1305d --- /dev/null +++ b/doc/dovecot-db.conf @@ -0,0 +1,11 @@ +# Example DB_CONFIG for Berkeley DB. Typically dict_db_config setting is used +# to point to this file. +# http://www.oracle.com/technology/documentation/berkeley-db/db/ref/env/db_config.html + +# Maximum number of simultaneous transactions. +set_tx_max 1000 + +# http://www.oracle.com/technology/documentation/berkeley-db/db/ref/lock/max.html +#set_lk_max_locks 1000 +#set_lk_max_lockers 1000 +#set_lk_max_objects 1000 diff --git a/dovecot-example.conf b/dovecot-example.conf index e388638cc5..f0f9137690 100644 --- a/dovecot-example.conf +++ b/dovecot-example.conf @@ -1055,6 +1055,10 @@ dict { #quota = mysql:/etc/dovecot-dict-quota.conf } +# Path to Berkeley DB's configuration file. See doc/dovecot-db.conf for an +# example. +#dict_db_config = + ## ## Plugin settings ## diff --git a/src/master/dict-process.c b/src/master/dict-process.c index 088124a0ae..eb7fcf7e54 100644 --- a/src/master/dict-process.c +++ b/src/master/dict-process.c @@ -84,6 +84,12 @@ static int dict_process_start(struct dict_process *process) child_process_init_env(); env_put(t_strconcat("DICT_LISTEN_FROM_FD=", process->path, NULL)); + if (settings_root->defaults->dict_db_config != NULL) { + env_put(t_strconcat("DB_CONFIG=", + settings_root->defaults->dict_db_config, + NULL)); + } + dicts = array_get(&settings_root->dicts, &count); i_assert((count % 2) == 0); for (i = 0; i < count; i += 2) diff --git a/src/master/master-settings-defs.c b/src/master/master-settings-defs.c index af28d63347..8cb56718bb 100644 --- a/src/master/master-settings-defs.c +++ b/src/master/master-settings-defs.c @@ -124,5 +124,8 @@ static struct setting_def setting_defs[] = { DEF_STR(pop3_client_workarounds), DEF_STR(pop3_logout_format), + /* dict */ + DEF_STR(dict_db_config), + { 0, NULL, 0 } }; diff --git a/src/master/master-settings.c b/src/master/master-settings.c index 9ec1edc436..c3211781b2 100644 --- a/src/master/master-settings.c +++ b/src/master/master-settings.c @@ -290,6 +290,9 @@ struct settings default_settings = { MEMBER(pop3_client_workarounds) "", MEMBER(pop3_logout_format) "top=%t/%p, retr=%r/%b, del=%d/%m, size=%s", + /* dict */ + MEMBER(dict_db_config) NULL, + /* .. */ }; diff --git a/src/master/master-settings.h b/src/master/master-settings.h index 2a3d582033..29da4e36fc 100644 --- a/src/master/master-settings.h +++ b/src/master/master-settings.h @@ -136,6 +136,9 @@ struct settings { const char *pop3_client_workarounds; const char *pop3_logout_format; + /* dict */ + const char *dict_db_config; + /* .. */ ARRAY_TYPE(listener) listens; ARRAY_TYPE(listener) ssl_listens;