# HG changeset patch # User Timo Sirainen # Date 1246154913 14400 # Node ID eed86bcc33aa46972c37eba52b428ade09bc9048 # Parent 2db158dd88bee7a87e7a1d053caf3c5b795bf79d dict proxy: Use base_dir as the default dict-server location. 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 @@ 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 @@ 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 @@ -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 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 @@ /* 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 @@ 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 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 *(*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 * 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 @@ } 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 @@ } 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 @@ /* 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 @@ 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 @@ -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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ -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_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 @@ /* 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; }