dovecot-2.0: dict proxy: Use base_dir as the default dict-server...
dovecot at dovecot.org
dovecot at dovecot.org
Sun Jun 28 05:09:08 EEST 2009
details: http://hg.dovecot.org/dovecot-2.0/rev/ee99bb70b05f
changeset: 9545:ee99bb70b05f
user: Timo Sirainen <tss at iki.fi>
date: Sat Jun 27 22:08:48 2009 -0400
description:
dict proxy: Use base_dir as the default dict-server location.
diffstat:
17 files changed, 31 insertions(+), 19 deletions(-)
src/dict/Makefile.am | 3 ++-
src/dict/dict-connection.c | 3 ++-
src/dict/dict-settings.c | 2 ++
src/dict/dict-settings.h | 1 +
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/plugins/acl/acl-lookup-dict.c | 3 ++-
src/plugins/expire/expire-plugin.c | 3 ++-
src/plugins/expire/expire-tool.c | 3 ++-
src/plugins/quota/quota-dict.c | 3 ++-
diffs (241 lines):
diff -r 3f4ae64b27ac -r ee99bb70b05f src/dict/Makefile.am
--- a/src/dict/Makefile.am Sat Jun 27 22:07:35 2009 -0400
+++ b/src/dict/Makefile.am Sat Jun 27 22:08:48 2009 -0400
@@ -8,7 +8,8 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/src/lib-settings \
-I$(top_srcdir)/src/lib-dict \
-I$(top_srcdir)/src/lib-sql \
- -DDICT_MODULE_DIR=\""$(moduledir)/dict"\"
+ -DDICT_MODULE_DIR=\""$(moduledir)/dict"\" \
+ -DPKG_RUNDIR=\""$(rundir)"\"
dict_LDFLAGS = -export-dynamic
diff -r 3f4ae64b27ac -r ee99bb70b05f src/dict/dict-connection.c
--- a/src/dict/dict-connection.c Sat Jun 27 22:07:35 2009 -0400
+++ b/src/dict/dict-connection.c Sat Jun 27 22:08:48 2009 -0400
@@ -82,7 +82,8 @@ static int dict_connection_dict_init(str
}
uri = strlist[i+1];
- conn->dict = dict_init(uri, conn->value_type, conn->username);
+ conn->dict = dict_init(uri, conn->value_type, conn->username,
+ dict_settings->base_dir);
if (conn->dict == NULL) {
/* dictionary initialization failed */
i_error("Failed to initialize dictionary '%s'", conn->name);
diff -r 3f4ae64b27ac -r ee99bb70b05f src/dict/dict-settings.c
--- a/src/dict/dict-settings.c Sat Jun 27 22:07:35 2009 -0400
+++ b/src/dict/dict-settings.c Sat Jun 27 22:08:48 2009 -0400
@@ -9,6 +9,7 @@
{ type, #name, offsetof(struct dict_settings, name), NULL }
static struct setting_define dict_setting_defines[] = {
+ DEF(SET_STR, base_dir),
DEF(SET_STR, dict_db_config),
{ SET_STRLIST, "dict", offsetof(struct dict_settings, dicts), NULL },
@@ -16,6 +17,7 @@ static struct setting_define dict_settin
};
struct dict_settings dict_default_settings = {
+ MEMBER(base_dir) PKG_RUNDIR,
MEMBER(dict_db_config) "",
MEMBER(dicts) ARRAY_INIT
};
diff -r 3f4ae64b27ac -r ee99bb70b05f src/dict/dict-settings.h
--- a/src/dict/dict-settings.h Sat Jun 27 22:07:35 2009 -0400
+++ b/src/dict/dict-settings.h Sat Jun 27 22:08:48 2009 -0400
@@ -2,6 +2,7 @@
#define DICT_SETTINGS_H
struct dict_settings {
+ const char *base_dir;
const char *dict_db_config;
ARRAY_DEFINE(dicts, const char *);
};
diff -r 3f4ae64b27ac -r ee99bb70b05f src/lib-dict/Makefile.am
--- a/src/lib-dict/Makefile.am Sat Jun 27 22:07:35 2009 -0400
+++ b/src/lib-dict/Makefile.am Sat Jun 27 22:08:48 2009 -0400
@@ -7,7 +7,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 3f4ae64b27ac -r ee99bb70b05f src/lib-dict/dict-client.c
--- a/src/lib-dict/dict-client.c Sat Jun 27 22:07:35 2009 -0400
+++ b/src/lib-dict/dict-client.c Sat Jun 27 22:08:48 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 3f4ae64b27ac -r ee99bb70b05f src/lib-dict/dict-client.h
--- a/src/lib-dict/dict-client.h Sat Jun 27 22:07:35 2009 -0400
+++ b/src/lib-dict/dict-client.h Sat Jun 27 22:08:48 2009 -0400
@@ -3,7 +3,7 @@
#include "dict.h"
-#define DEFAULT_DICT_SERVER_SOCKET_PATH PKG_RUNDIR"/dict"
+#define DEFAULT_DICT_SERVER_SOCKET_FNAME "dict-server"
#define DICT_CLIENT_PROTOCOL_MAJOR_VERSION 2
#define DICT_CLIENT_PROTOCOL_MINOR_VERSION 0
diff -r 3f4ae64b27ac -r ee99bb70b05f src/lib-dict/dict-db.c
--- a/src/lib-dict/dict-db.c Sat Jun 27 22:07:35 2009 -0400
+++ b/src/lib-dict/dict-db.c Sat Jun 27 22:08:48 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 3f4ae64b27ac -r ee99bb70b05f src/lib-dict/dict-file.c
--- a/src/lib-dict/dict-file.c Sat Jun 27 22:07:35 2009 -0400
+++ b/src/lib-dict/dict-file.c Sat Jun 27 22:08:48 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 3f4ae64b27ac -r ee99bb70b05f src/lib-dict/dict-private.h
--- a/src/lib-dict/dict-private.h Sat Jun 27 22:07:35 2009 -0400
+++ b/src/lib-dict/dict-private.h Sat Jun 27 22:08:48 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 3f4ae64b27ac -r ee99bb70b05f src/lib-dict/dict-sql.c
--- a/src/lib-dict/dict-sql.c Sat Jun 27 22:07:35 2009 -0400
+++ b/src/lib-dict/dict-sql.c Sat Jun 27 22:08:48 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 3f4ae64b27ac -r ee99bb70b05f src/lib-dict/dict.c
--- a/src/lib-dict/dict.c Sat Jun 27 22:07:35 2009 -0400
+++ b/src/lib-dict/dict.c Sat Jun 27 22:08:48 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 3f4ae64b27ac -r ee99bb70b05f src/lib-dict/dict.h
--- a/src/lib-dict/dict.h Sat Jun 27 22:07:35 2009 -0400
+++ b/src/lib-dict/dict.h Sat Jun 27 22:08:48 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 3f4ae64b27ac -r ee99bb70b05f src/plugins/acl/acl-lookup-dict.c
--- a/src/plugins/acl/acl-lookup-dict.c Sat Jun 27 22:07:35 2009 -0400
+++ b/src/plugins/acl/acl-lookup-dict.c Sat Jun 27 22:08:48 2009 -0400
@@ -44,7 +44,8 @@ struct acl_lookup_dict *acl_lookup_dict_
uri = mail_user_plugin_getenv(user, "acl_shared_dict");
if (uri != NULL) {
- dict->dict = dict_init(uri, DICT_DATA_TYPE_STRING, "");
+ dict->dict = dict_init(uri, DICT_DATA_TYPE_STRING, "",
+ user->set->base_dir);
if (dict->dict == NULL)
i_error("acl: dict_init(%s) failed", uri);
} else if (user->mail_debug) {
diff -r 3f4ae64b27ac -r ee99bb70b05f src/plugins/expire/expire-plugin.c
--- a/src/plugins/expire/expire-plugin.c Sat Jun 27 22:07:35 2009 -0400
+++ b/src/plugins/expire/expire-plugin.c Sat Jun 27 22:08:48 2009 -0400
@@ -313,7 +313,8 @@ static void expire_mail_user_created(str
euser->env = expire_env_init(expunge_env, altmove_env);
/* we're using only shared dictionary, the username
doesn't matter. */
- euser->db = dict_init(dict_uri, DICT_DATA_TYPE_UINT32, "");
+ euser->db = dict_init(dict_uri, DICT_DATA_TYPE_UINT32, "",
+ user->set->base_dir);
if (euser->db == NULL)
i_error("expire plugin: dict_init(%s) failed", dict_uri);
else
diff -r 3f4ae64b27ac -r ee99bb70b05f src/plugins/expire/expire-tool.c
--- a/src/plugins/expire/expire-tool.c Sat Jun 27 22:07:35 2009 -0400
+++ b/src/plugins/expire/expire-tool.c Sat Jun 27 22:08:48 2009 -0400
@@ -196,7 +196,8 @@ static void expire_run(struct master_ser
ctx.testrun = testrun;
env = expire_env_init(expire, expire_altmove);
- dict = dict_init(expire_dict, DICT_DATA_TYPE_UINT32, "");
+ dict = dict_init(expire_dict, DICT_DATA_TYPE_UINT32, "",
+ user_set->base_dir);
if (dict == NULL)
i_fatal("dict_init() failed");
diff -r 3f4ae64b27ac -r ee99bb70b05f src/plugins/quota/quota-dict.c
--- a/src/plugins/quota/quota-dict.c Sat Jun 27 22:07:35 2009 -0400
+++ b/src/plugins/quota/quota-dict.c Sat Jun 27 22:08:48 2009 -0400
@@ -72,7 +72,8 @@ 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);
+ root->dict = dict_init(args, DICT_DATA_TYPE_STRING, username,
+ _root->quota->user->set->base_dir);
return root->dict != NULL ? 0 : -1;
}
More information about the dovecot-cvs
mailing list