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