dovecot-2.2: dict_init() API changed to return int.
dovecot at dovecot.org
dovecot at dovecot.org
Sun Sep 16 00:52:52 EEST 2012
details: http://hg.dovecot.org/dovecot-2.2/rev/9bff478f81fd
changeset: 15067:9bff478f81fd
user: Timo Sirainen <tss at iki.fi>
date: Sun Sep 16 00:52:39 2012 +0300
description:
dict_init() API changed to return int.
diffstat:
src/auth/db-dict.c | 5 +++--
src/dict/dict-connection.c | 5 ++---
src/lib-dict/dict-client.c | 9 +++++----
src/lib-dict/dict-db.c | 14 ++++++++------
src/lib-dict/dict-file.c | 12 +++++++-----
src/lib-dict/dict-memcached-ascii.c | 8 +++++---
src/lib-dict/dict-memcached.c | 7 ++++---
src/lib-dict/dict-private.h | 7 ++++---
src/lib-dict/dict-redis.c | 7 ++++---
src/lib-dict/dict-sql.c | 10 ++++++----
src/lib-dict/dict.c | 11 ++++++-----
src/lib-dict/dict.h | 6 +++---
src/lib-imap-urlauth/imap-urlauth-backend.c | 5 ++---
src/plugins/acl/acl-lookup-dict.c | 5 ++---
src/plugins/expire/doveadm-expire.c | 5 ++---
src/plugins/expire/expire-plugin.c | 5 ++---
src/plugins/quota/quota-dict.c | 7 ++++---
17 files changed, 69 insertions(+), 59 deletions(-)
diffs (truncated from 403 to 300 lines):
diff -r d419aac7ab31 -r 9bff478f81fd src/auth/db-dict.c
--- a/src/auth/db-dict.c Sat Sep 15 23:57:08 2012 +0300
+++ b/src/auth/db-dict.c Sun Sep 16 00:52:39 2012 +0300
@@ -90,8 +90,9 @@
i_fatal("dict %s: Unsupported value_format %s in ",
config_path, conn->set.value_format);
}
- conn->dict = dict_init(conn->set.uri, DICT_DATA_TYPE_STRING, "",
- global_auth_settings->base_dir);
+ if (dict_init(conn->set.uri, DICT_DATA_TYPE_STRING, "",
+ global_auth_settings->base_dir, &conn->dict) < 0)
+ i_fatal("dict %s: Failed to init dict", config_path);
conn->next = connections;
connections = conn;
diff -r d419aac7ab31 -r 9bff478f81fd src/dict/dict-connection.c
--- a/src/dict/dict-connection.c Sat Sep 15 23:57:08 2012 +0300
+++ b/src/dict/dict-connection.c Sun Sep 16 00:52:39 2012 +0300
@@ -83,9 +83,8 @@
}
uri = strlist[i+1];
- conn->dict = dict_init(uri, conn->value_type, conn->username,
- dict_settings->base_dir);
- if (conn->dict == NULL) {
+ if (dict_init(uri, conn->value_type, conn->username,
+ dict_settings->base_dir, &conn->dict) < 0) {
/* dictionary initialization failed */
i_error("Failed to initialize dictionary '%s'", conn->name);
return -1;
diff -r d419aac7ab31 -r 9bff478f81fd src/lib-dict/dict-client.c
--- a/src/lib-dict/dict-client.c Sat Sep 15 23:57:08 2012 +0300
+++ b/src/lib-dict/dict-client.c Sun Sep 16 00:52:39 2012 +0300
@@ -463,10 +463,10 @@
}
}
-static struct dict *
+static int
client_dict_init(struct dict *driver, const char *uri,
enum dict_data_type value_type, const char *username,
- const char *base_dir)
+ const char *base_dir, struct dict **dict_r)
{
struct client_dict *dict;
const char *dest_uri;
@@ -476,7 +476,7 @@
dest_uri = strchr(uri, ':');
if (dest_uri == NULL) {
i_error("dict-client: Invalid URI: %s", uri);
- return NULL;
+ return -1;
}
pool = pool_alloconly_create("client dict", 1024);
@@ -496,7 +496,8 @@
"/"DEFAULT_DICT_SERVER_SOCKET_FNAME, NULL);
}
dict->uri = p_strdup(pool, dest_uri + 1);
- return &dict->dict;
+ *dict_r = &dict->dict;
+ return -1;
}
static void client_dict_deinit(struct dict *_dict)
diff -r d419aac7ab31 -r 9bff478f81fd src/lib-dict/dict-db.c
--- a/src/lib-dict/dict-db.c Sat Sep 15 23:57:08 2012 +0300
+++ b/src/lib-dict/dict-db.c Sun Sep 16 00:52:39 2012 +0300
@@ -140,10 +140,11 @@
return 0;
}
-static struct dict *
+static int
db_dict_init(struct dict *driver, const char *uri,
enum dict_data_type value_type,
- const char *username, const char *base_dir ATTR_UNUSED)
+ const char *username, const char *base_dir ATTR_UNUSED,
+ struct dict **dict_r)
{
struct db_dict *dict;
pool_t pool;
@@ -156,7 +157,7 @@
"run-time linked against %d.%d.%d library",
DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH,
major, minor, patch);
- return NULL;
+ return -1;
}
pool = pool_alloconly_create("db dict", 1024);
@@ -170,15 +171,16 @@
if (ret != 0) {
i_error("db_env_create() failed: %s\n", db_strerror(ret));
pool_unref(&pool);
- return NULL;
+ return -1;
}
if (db_dict_open(dict, uri, username) < 0) {
i_error("db(%s) open failed", uri);
db_dict_deinit(&dict->dict);
- return NULL;
+ return -1;
}
- return &dict->dict;
+ *dict_r = &dict->dict;
+ return 0;
}
static void db_dict_deinit(struct dict *_dict)
diff -r d419aac7ab31 -r 9bff478f81fd src/lib-dict/dict-file.c
--- a/src/lib-dict/dict-file.c Sat Sep 15 23:57:08 2012 +0300
+++ b/src/lib-dict/dict-file.c Sun Sep 16 00:52:39 2012 +0300
@@ -51,10 +51,11 @@
.use_io_notify = TRUE
};
-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 *base_dir ATTR_UNUSED)
+static int
+file_dict_init(struct dict *driver, const char *uri,
+ enum dict_data_type value_type ATTR_UNUSED,
+ const char *username ATTR_UNUSED,
+ const char *base_dir ATTR_UNUSED, struct dict **dict_r)
{
struct file_dict *dict;
const char *p;
@@ -79,7 +80,8 @@
dict->hash_pool = pool_alloconly_create("file dict", 1024);
hash_table_create(&dict->hash, dict->hash_pool, 0, str_hash, strcmp);
dict->fd = -1;
- return &dict->dict;
+ *dict_r = &dict->dict;
+ return -1;
}
static void file_dict_deinit(struct dict *_dict)
diff -r d419aac7ab31 -r 9bff478f81fd src/lib-dict/dict-memcached-ascii.c
--- a/src/lib-dict/dict-memcached-ascii.c Sat Sep 15 23:57:08 2012 +0300
+++ b/src/lib-dict/dict-memcached-ascii.c Sun Sep 16 00:52:39 2012 +0300
@@ -330,11 +330,12 @@
return str_c(str);
}
-static struct dict *
+static int
memcached_ascii_dict_init(struct dict *driver, const char *uri,
enum dict_data_type value_type ATTR_UNUSED,
const char *username,
- const char *base_dir ATTR_UNUSED)
+ const char *base_dir ATTR_UNUSED,
+ struct dict **dict_r)
{
struct memcached_ascii_dict *dict;
const char *const *args;
@@ -388,7 +389,8 @@
dict->ioloop = io_loop_create();
current_ioloop = old_ioloop;
- return &dict->dict;
+ *dict_r = &dict->dict;
+ return 0;
}
static void memcached_ascii_dict_deinit(struct dict *_dict)
diff -r d419aac7ab31 -r 9bff478f81fd src/lib-dict/dict-memcached.c
--- a/src/lib-dict/dict-memcached.c Sat Sep 15 23:57:08 2012 +0300
+++ b/src/lib-dict/dict-memcached.c Sun Sep 16 00:52:39 2012 +0300
@@ -167,11 +167,11 @@
.client_connected = memcached_conn_connected
};
-static struct dict *
+static int
memcached_dict_init(struct dict *driver, const char *uri,
enum dict_data_type value_type ATTR_UNUSED,
const char *username ATTR_UNUSED,
- const char *base_dir ATTR_UNUSED)
+ const char *base_dir ATTR_UNUSED, struct dict **dict_r)
{
struct memcached_dict *dict;
const char *const *args;
@@ -213,7 +213,8 @@
dict->dict = *driver;
dict->conn.cmd = buffer_create_dynamic(default_pool, 256);
dict->conn.dict = dict;
- return &dict->dict;
+ *dict_r = &dict->dict;
+ return 0;
}
static void memcached_dict_deinit(struct dict *_dict)
diff -r d419aac7ab31 -r 9bff478f81fd src/lib-dict/dict-private.h
--- a/src/lib-dict/dict-private.h Sat Sep 15 23:57:08 2012 +0300
+++ b/src/lib-dict/dict-private.h Sun Sep 16 00:52:39 2012 +0300
@@ -4,9 +4,10 @@
#include "dict.h"
struct dict_vfuncs {
- struct dict *(*init)(struct dict *dict_driver, const char *uri,
- enum dict_data_type value_type,
- const char *username, const char *base_dir);
+ int (*init)(struct dict *dict_driver, const char *uri,
+ enum dict_data_type value_type,
+ const char *username, const char *base_dir,
+ struct dict **dict_r);
void (*deinit)(struct dict *dict);
int (*wait)(struct dict *dict);
diff -r d419aac7ab31 -r 9bff478f81fd src/lib-dict/dict-redis.c
--- a/src/lib-dict/dict-redis.c Sat Sep 15 23:57:08 2012 +0300
+++ b/src/lib-dict/dict-redis.c Sun Sep 16 00:52:39 2012 +0300
@@ -298,11 +298,11 @@
return str_c(str);
}
-static struct dict *
+static int
redis_dict_init(struct dict *driver, const char *uri,
enum dict_data_type value_type ATTR_UNUSED,
const char *username,
- const char *base_dir ATTR_UNUSED)
+ const char *base_dir ATTR_UNUSED, struct dict **dict_r)
{
struct redis_dict *dict;
const char *const *args;
@@ -352,7 +352,8 @@
dict->dict = *driver;
dict->conn.last_reply = str_new(default_pool, 256);
dict->conn.dict = dict;
- return &dict->dict;
+ *dict_r = &dict->dict;
+ return -1;
}
static void redis_dict_deinit(struct dict *_dict)
diff -r d419aac7ab31 -r 9bff478f81fd src/lib-dict/dict-sql.c
--- a/src/lib-dict/dict-sql.c Sat Sep 15 23:57:08 2012 +0300
+++ b/src/lib-dict/dict-sql.c Sun Sep 16 00:52:39 2012 +0300
@@ -71,10 +71,11 @@
static void sql_dict_prev_inc_flush(struct sql_dict_transaction_context *ctx);
-static struct dict *
+static int
sql_dict_init(struct dict *driver, const char *uri,
enum dict_data_type value_type ATTR_UNUSED,
- const char *username, const char *base_dir ATTR_UNUSED)
+ const char *username, const char *base_dir ATTR_UNUSED,
+ struct dict **dict_r)
{
struct sql_dict *dict;
pool_t pool;
@@ -87,7 +88,7 @@
dict->set = dict_sql_settings_read(pool, uri);
if (dict->set == NULL) {
pool_unref(&pool);
- return NULL;
+ return -1;
}
/* currently pgsql and sqlite don't support "ON DUPLICATE KEY" */
@@ -95,7 +96,8 @@
dict->db = sql_db_cache_new(dict_sql_db_cache, driver->name,
dict->set->connect);
- return &dict->dict;
+ *dict_r = &dict->dict;
+ return 0;
}
static void sql_dict_deinit(struct dict *_dict)
diff -r d419aac7ab31 -r 9bff478f81fd src/lib-dict/dict.c
--- a/src/lib-dict/dict.c Sat Sep 15 23:57:08 2012 +0300
+++ b/src/lib-dict/dict.c Sun Sep 16 00:52:39 2012 +0300
@@ -70,8 +70,8 @@
dict_driver_unregister(&dict_driver_redis);
}
-struct dict *dict_init(const char *uri, enum dict_data_type value_type,
- const char *username, const char *base_dir)
+int dict_init(const char *uri, enum dict_data_type value_type,
+ const char *username, const char *base_dir, struct dict **dict_r)
{
struct dict *dict;
const char *p, *name;
@@ -81,7 +81,7 @@
p = strchr(uri, ':');
if (p == NULL) {
i_error("Dictionary URI is missing ':': %s", uri);
- return NULL;
+ return -1;
}
T_BEGIN {
@@ -91,8 +91,9 @@
i_error("Unknown dict module: %s", name);
More information about the dovecot-cvs
mailing list