dovecot-1.2: dict proxy: Use base_dir as the default dict-server...
dovecot at dovecot.org
dovecot at dovecot.org
Sun Jun 28 05:09:06 EEST 2009
details: http://hg.dovecot.org/dovecot-1.2/rev/eed86bcc33aa
changeset: 9174:eed86bcc33aa
user: Timo Sirainen <tss at iki.fi>
date: Sat Jun 27 22:08:33 2009 -0400
description:
dict proxy: Use base_dir as the default dict-server location.
diffstat:
18 files changed, 46 insertions(+), 25 deletions(-)
src/dict/dict-server.c | 3 ++-
src/dict/main.c | 6 ++++--
src/lib-dict/Makefile.am | 1 -
src/lib-dict/dict-client.c | 6 ++++--
src/lib-dict/dict-client.h | 2 +-
src/lib-dict/dict-db.c | 7 ++++---
src/lib-dict/dict-file.c | 3 ++-
src/lib-dict/dict-private.h | 2 +-
src/lib-dict/dict-sql.c | 2 +-
src/lib-dict/dict.c | 4 ++--
src/lib-dict/dict.h | 2 +-
src/master/dict-process.c | 2 ++
src/plugins/acl/Makefile.am | 3 ++-
src/plugins/acl/acl-lookup-dict.c | 7 +++++--
src/plugins/expire/expire-plugin.c | 8 ++++++--
src/plugins/expire/expire-tool.c | 3 ++-
src/plugins/quota/Makefile.am | 3 ++-
src/plugins/quota/quota-dict.c | 7 +++++--
diffs (286 lines):
diff -r 2db158dd88be -r eed86bcc33aa src/dict/dict-server.c
--- a/src/dict/dict-server.c Sat Jun 27 21:52:30 2009 -0400
+++ b/src/dict/dict-server.c Sat Jun 27 22:08:33 2009 -0400
@@ -404,7 +404,8 @@ static int dict_client_dict_init(struct
return -1;
}
- conn->dict = dict_init(uri, conn->value_type, conn->username);
+ conn->dict = dict_init(uri, conn->value_type, conn->username,
+ getenv("BASE_DIR"));
if (conn->dict == NULL) {
/* dictionary initialization failed */
i_error("Failed to initialize dictionary '%s'", conn->name);
diff -r 2db158dd88be -r eed86bcc33aa src/dict/main.c
--- a/src/dict/main.c Sat Jun 27 21:52:30 2009 -0400
+++ b/src/dict/main.c Sat Jun 27 22:08:33 2009 -0400
@@ -90,8 +90,10 @@ static void main_init(void)
path = getenv("DICT_LISTEN_FROM_FD");
fd = path == NULL ? -1 : DICT_MASTER_LISTENER_FD;
- if (path == NULL)
- path = DEFAULT_DICT_SERVER_SOCKET_PATH;
+ if (path == NULL) {
+ path = t_strconcat(getenv("BASE_DIR"),
+ DEFAULT_DICT_SERVER_SOCKET_FNAME, NULL);
+ }
dict_server = dict_server_init(path, fd);
}
diff -r 2db158dd88be -r eed86bcc33aa src/lib-dict/Makefile.am
--- a/src/lib-dict/Makefile.am Sat Jun 27 21:52:30 2009 -0400
+++ b/src/lib-dict/Makefile.am Sat Jun 27 22:08:33 2009 -0400
@@ -6,7 +6,6 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/src/lib \
-I$(top_srcdir)/src/lib-sql \
-I$(top_srcdir)/src/lib-settings \
- -DPKG_RUNDIR=\""$(rundir)"\" \
$(SQL_CFLAGS)
base_sources = \
diff -r 2db158dd88be -r eed86bcc33aa src/lib-dict/dict-client.c
--- a/src/lib-dict/dict-client.c Sat Jun 27 21:52:30 2009 -0400
+++ b/src/lib-dict/dict-client.c Sat Jun 27 22:08:33 2009 -0400
@@ -297,7 +297,8 @@ static void client_dict_disconnect(struc
static struct dict *
client_dict_init(struct dict *driver, const char *uri,
- enum dict_data_type value_type, const char *username)
+ enum dict_data_type value_type, const char *username,
+ const char *base_dir)
{
struct client_dict *dict;
const char *dest_uri;
@@ -323,7 +324,8 @@ client_dict_init(struct dict *driver, co
/* path given */
dict->path = p_strdup_until(pool, uri, dest_uri);
} else {
- dict->path = DEFAULT_DICT_SERVER_SOCKET_PATH;
+ dict->path = p_strconcat(pool, base_dir,
+ "/"DEFAULT_DICT_SERVER_SOCKET_FNAME, NULL);
}
dict->uri = p_strdup(pool, dest_uri + 1);
return &dict->dict;
diff -r 2db158dd88be -r eed86bcc33aa src/lib-dict/dict-client.h
--- a/src/lib-dict/dict-client.h Sat Jun 27 21:52:30 2009 -0400
+++ b/src/lib-dict/dict-client.h Sat Jun 27 22:08:33 2009 -0400
@@ -3,7 +3,7 @@
#include "dict.h"
-#define DEFAULT_DICT_SERVER_SOCKET_PATH PKG_RUNDIR"/dict-server"
+#define DEFAULT_DICT_SERVER_SOCKET_FNAME "dict-server"
#define DICT_CLIENT_PROTOCOL_MAJOR_VERSION 2
#define DICT_CLIENT_PROTOCOL_MINOR_VERSION 0
diff -r 2db158dd88be -r eed86bcc33aa src/lib-dict/dict-db.c
--- a/src/lib-dict/dict-db.c Sat Jun 27 21:52:30 2009 -0400
+++ b/src/lib-dict/dict-db.c Sat Jun 27 22:08:33 2009 -0400
@@ -137,9 +137,10 @@ static int db_dict_open(struct db_dict *
return 0;
}
-static struct dict *db_dict_init(struct dict *driver, const char *uri,
- enum dict_data_type value_type,
- const char *username)
+static struct dict *
+db_dict_init(struct dict *driver, const char *uri,
+ enum dict_data_type value_type,
+ const char *username, const char *base_dir ATTR_UNUSED)
{
struct db_dict *dict;
pool_t pool;
diff -r 2db158dd88be -r eed86bcc33aa src/lib-dict/dict-file.c
--- a/src/lib-dict/dict-file.c Sat Jun 27 21:52:30 2009 -0400
+++ b/src/lib-dict/dict-file.c Sat Jun 27 22:08:33 2009 -0400
@@ -66,7 +66,8 @@ static struct dotlock_settings file_dict
static struct dict *file_dict_init(struct dict *driver, const char *uri,
enum dict_data_type value_type ATTR_UNUSED,
- const char *username ATTR_UNUSED)
+ const char *username ATTR_UNUSED,
+ const char *base_dir ATTR_UNUSED)
{
struct file_dict *dict;
diff -r 2db158dd88be -r eed86bcc33aa src/lib-dict/dict-private.h
--- a/src/lib-dict/dict-private.h Sat Jun 27 21:52:30 2009 -0400
+++ b/src/lib-dict/dict-private.h Sat Jun 27 22:08:33 2009 -0400
@@ -6,7 +6,7 @@ struct dict_vfuncs {
struct dict_vfuncs {
struct dict *(*init)(struct dict *dict_driver, const char *uri,
enum dict_data_type value_type,
- const char *username);
+ const char *username, const char *base_dir);
void (*deinit)(struct dict *dict);
int (*lookup)(struct dict *dict, pool_t pool,
diff -r 2db158dd88be -r eed86bcc33aa src/lib-dict/dict-sql.c
--- a/src/lib-dict/dict-sql.c Sat Jun 27 21:52:30 2009 -0400
+++ b/src/lib-dict/dict-sql.c Sat Jun 27 22:08:33 2009 -0400
@@ -64,7 +64,7 @@ static struct dict *
static struct dict *
sql_dict_init(struct dict *driver, const char *uri,
enum dict_data_type value_type ATTR_UNUSED,
- const char *username)
+ const char *username, const char *base_dir ATTR_UNUSED)
{
struct sql_dict *dict;
pool_t pool;
diff -r 2db158dd88be -r eed86bcc33aa src/lib-dict/dict.c
--- a/src/lib-dict/dict.c Sat Jun 27 21:52:30 2009 -0400
+++ b/src/lib-dict/dict.c Sat Jun 27 22:08:33 2009 -0400
@@ -64,7 +64,7 @@ void dict_drivers_unregister_builtin(voi
}
struct dict *dict_init(const char *uri, enum dict_data_type value_type,
- const char *username)
+ const char *username, const char *base_dir)
{
struct dict *dict;
const char *p, *name;
@@ -85,7 +85,7 @@ struct dict *dict_init(const char *uri,
} T_END;
return dict == NULL ? NULL :
- dict->v.init(dict, p+1, value_type, username);
+ dict->v.init(dict, p+1, value_type, username, base_dir);
}
void dict_deinit(struct dict **_dict)
diff -r 2db158dd88be -r eed86bcc33aa src/lib-dict/dict.h
--- a/src/lib-dict/dict.h Sat Jun 27 21:52:30 2009 -0400
+++ b/src/lib-dict/dict.h Sat Jun 27 22:08:33 2009 -0400
@@ -29,7 +29,7 @@ void dict_drivers_unregister_all(void);
/* Open dictionary with given URI (type:data).
If URI is invalid, returns NULL. */
struct dict *dict_init(const char *uri, enum dict_data_type value_type,
- const char *username);
+ const char *username, const char *base_dir);
/* Close dictionary. */
void dict_deinit(struct dict **dict);
diff -r 2db158dd88be -r eed86bcc33aa src/master/dict-process.c
--- a/src/master/dict-process.c Sat Jun 27 21:52:30 2009 -0400
+++ b/src/master/dict-process.c Sat Jun 27 22:08:33 2009 -0400
@@ -103,6 +103,8 @@ static int dict_process_create(struct di
env_put(t_strconcat("DICT_LISTEN_FROM_FD=",
process->listener->path, NULL));
+ env_put(t_strconcat("BASE_DIR=", settings_root->defaults->base_dir,
+ NULL));
if (settings_root->defaults->dict_db_config != NULL) {
env_put(t_strconcat("DB_CONFIG=",
settings_root->defaults->dict_db_config,
diff -r 2db158dd88be -r eed86bcc33aa src/plugins/acl/Makefile.am
--- a/src/plugins/acl/Makefile.am Sat Jun 27 21:52:30 2009 -0400
+++ b/src/plugins/acl/Makefile.am Sat Jun 27 22:08:33 2009 -0400
@@ -4,7 +4,8 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/src/lib-mail \
-I$(top_srcdir)/src/lib-imap \
-I$(top_srcdir)/src/lib-index \
- -I$(top_srcdir)/src/lib-storage
+ -I$(top_srcdir)/src/lib-storage \
+ -DPKG_RUNDIR=\""$(rundir)"\"
lib01_acl_plugin_la_LDFLAGS = -module -avoid-version
diff -r 2db158dd88be -r eed86bcc33aa src/plugins/acl/acl-lookup-dict.c
--- a/src/plugins/acl/acl-lookup-dict.c Sat Jun 27 21:52:30 2009 -0400
+++ b/src/plugins/acl/acl-lookup-dict.c Sat Jun 27 22:08:33 2009 -0400
@@ -37,7 +37,7 @@ static struct dict *acl_dict;
void acl_lookup_dicts_init(void)
{
- const char *uri;
+ const char *uri, *base_dir;
uri = getenv("ACL_SHARED_DICT");
if (uri == NULL) {
@@ -48,7 +48,10 @@ void acl_lookup_dicts_init(void)
return;
}
- acl_dict = dict_init(uri, DICT_DATA_TYPE_STRING, "");
+ base_dir = getenv("BASE_DIR");
+ if (base_dir == NULL)
+ base_dir = PKG_RUNDIR;
+ acl_dict = dict_init(uri, DICT_DATA_TYPE_STRING, "", base_dir);
if (acl_dict == NULL)
i_fatal("acl: dict_init(%s) failed", uri);
}
diff -r 2db158dd88be -r eed86bcc33aa src/plugins/expire/expire-plugin.c
--- a/src/plugins/expire/expire-plugin.c Sat Jun 27 21:52:30 2009 -0400
+++ b/src/plugins/expire/expire-plugin.c Sat Jun 27 22:08:33 2009 -0400
@@ -285,7 +285,7 @@ static void expire_mail_storage_created(
void expire_plugin_init(void)
{
- const char *expunge_env, *altmove_env, *dict_uri;
+ const char *expunge_env, *altmove_env, *dict_uri, *base_dir;
expunge_env = getenv("EXPIRE");
altmove_env = getenv("EXPIRE_ALTMOVE");
@@ -297,7 +297,11 @@ void expire_plugin_init(void)
expire.env = expire_env_init(expunge_env, altmove_env);
/* we're using only shared dictionary, the username
doesn't matter. */
- expire.db = dict_init(dict_uri, DICT_DATA_TYPE_UINT32, "");
+ base_dir = getenv("BASE_DIR");
+ if (base_dir == NULL)
+ base_dir = PKG_RUNDIR;
+ expire.db = dict_init(dict_uri, DICT_DATA_TYPE_UINT32, "",
+ base_dir);
if (expire.db == NULL)
i_fatal("expire plugin: dict_init() failed");
diff -r 2db158dd88be -r eed86bcc33aa src/plugins/expire/expire-tool.c
--- a/src/plugins/expire/expire-tool.c Sat Jun 27 21:52:30 2009 -0400
+++ b/src/plugins/expire/expire-tool.c Sat Jun 27 22:08:33 2009 -0400
@@ -281,7 +281,8 @@ static void expire_run(bool testrun)
ctx.testrun = testrun;
ctx.auth_conn = auth_master_init(auth_socket, getenv("DEBUG") != NULL);
env = expire_env_init(expire, expire_altmove);
- dict = dict_init(getenv("EXPIRE_DICT"), DICT_DATA_TYPE_UINT32, "");
+ dict = dict_init(getenv("EXPIRE_DICT"), DICT_DATA_TYPE_UINT32, "",
+ base_dir);
if (dict == NULL)
i_fatal("dict_init() failed");
diff -r 2db158dd88be -r eed86bcc33aa src/plugins/quota/Makefile.am
--- a/src/plugins/quota/Makefile.am Sat Jun 27 21:52:30 2009 -0400
+++ b/src/plugins/quota/Makefile.am Sat Jun 27 22:08:33 2009 -0400
@@ -5,7 +5,8 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/src/lib-mail \
-I$(top_srcdir)/src/lib-storage \
-I$(top_srcdir)/src/lib-storage/index \
- -I$(top_srcdir)/src/lib-storage/index/maildir
+ -I$(top_srcdir)/src/lib-storage/index/maildir \
+ -DPKG_RUNDIR=\""$(rundir)"\"
lib10_quota_plugin_la_LDFLAGS = -module -avoid-version
diff -r 2db158dd88be -r eed86bcc33aa src/plugins/quota/quota-dict.c
--- a/src/plugins/quota/quota-dict.c Sat Jun 27 21:52:30 2009 -0400
+++ b/src/plugins/quota/quota-dict.c Sat Jun 27 22:08:33 2009 -0400
@@ -31,7 +31,7 @@ static int dict_quota_init(struct quota_
static int dict_quota_init(struct quota_root *_root, const char *args)
{
struct dict_quota_root *root = (struct dict_quota_root *)_root;
- const char *username, *p;
+ const char *username, *p, *base_dir;
p = args == NULL ? NULL : strchr(args, ':');
if (p == NULL) {
@@ -72,7 +72,10 @@ static int dict_quota_init(struct quota_
/* FIXME: we should use 64bit integer as datatype instead but before
it can actually be used don't bother */
- root->dict = dict_init(args, DICT_DATA_TYPE_STRING, username);
+ base_dir = getenv("BASE_DIR");
+ if (base_dir == NULL)
+ base_dir = PKG_RUNDIR;
+ root->dict = dict_init(args, DICT_DATA_TYPE_STRING, username, base_dir);
return root->dict != NULL ? 0 : -1;
}
More information about the dovecot-cvs
mailing list