]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-dict: Added enum dict_commit_ret.
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Sat, 16 Jul 2016 16:23:52 +0000 (11:23 -0500)
committerGitLab <gitlab@git.dovecot.net>
Sun, 17 Jul 2016 18:15:59 +0000 (21:15 +0300)
src/dict/dict-commands.c
src/lib-dict/dict-client.c
src/lib-dict/dict-file.c
src/lib-dict/dict-memcached-ascii.c
src/lib-dict/dict-redis.c
src/lib-dict/dict-sql.c
src/lib-dict/dict.h

index d769507a546191c861aea6b191c2c3c87b7d9aa5..38cae994e687d007a8ea2a4f75cead787e4f66a4 100644 (file)
@@ -299,12 +299,13 @@ cmd_commit_finish(struct dict_connection_cmd *cmd,
        cmd_stats_update(cmd, cmd_stats.commits);
 
        switch (result->ret) {
-       case 1:
+       case DICT_COMMIT_RET_OK:
                chr = DICT_PROTOCOL_REPLY_OK;
                break;
-       case 0:
+       case DICT_COMMIT_RET_NOTFOUND:
                chr = DICT_PROTOCOL_REPLY_NOTFOUND;
                break;
+       case DICT_COMMIT_RET_FAILED:
        default:
                i_assert(result->error != NULL);
                chr = DICT_PROTOCOL_REPLY_FAIL;
index 51f1c107cfffc864f98770a07acbd87313e46be2..5b77f1351aabf551c9f725847949b52e347d9f54 100644 (file)
@@ -891,7 +891,7 @@ client_dict_transaction_commit_callback(struct client_dict_cmd *cmd,
 {
        struct client_dict *dict = cmd->dict;
        struct dict_commit_result result = {
-               .ret = -1, .error = NULL
+               .ret = DICT_COMMIT_RET_FAILED, .error = NULL
        };
 
        if (error != NULL) {
@@ -899,10 +899,10 @@ client_dict_transaction_commit_callback(struct client_dict_cmd *cmd,
                result.error = error;
        } else switch (*line) {
        case DICT_PROTOCOL_REPLY_OK:
-               result.ret = 1;
+               result.ret = DICT_COMMIT_RET_OK;
                break;
        case DICT_PROTOCOL_REPLY_NOTFOUND:
-               result.ret = 0;
+               result.ret = DICT_COMMIT_RET_NOTFOUND;
                break;
        case DICT_PROTOCOL_REPLY_FAIL: {
                const char *error = strchr(line+1, '\t');
@@ -912,7 +912,7 @@ client_dict_transaction_commit_callback(struct client_dict_cmd *cmd,
                break;
        }
        default:
-               result.ret = -1;
+               result.ret = DICT_COMMIT_RET_FAILED;
                result.error = t_strdup_printf(
                        "dict-client: Invalid commit reply: %s", line);
                client_dict_disconnect(dict, result.error);
@@ -965,13 +965,13 @@ client_dict_transaction_commit(struct dict_transaction_context *_ctx,
        } else if (ctx->error != NULL) {
                /* already failed */
                struct dict_commit_result result = {
-                       .ret = -1, .error = ctx->error
+                       .ret = DICT_COMMIT_RET_FAILED, .error = ctx->error
                };
                callback(&result, context);
        } else {
                /* nothing changed */
                struct dict_commit_result result = {
-                       .ret = 1, .error = NULL
+                       .ret = DICT_COMMIT_RET_OK, .error = NULL
                };
                callback(&result, context);
        }
index cd62e5f6e61d225538905cf4edd55eba438e51f2..d99cca23001dfc3183a877eed9658c1d419e448d 100644 (file)
@@ -634,11 +634,11 @@ file_dict_transaction_commit(struct dict_transaction_context *_ctx,
 
        memset(&result, 0, sizeof(result));
        if (file_dict_write_changes(ctx, &atomic_inc_not_found, &result.error) < 0)
-               result.ret = -1;
+               result.ret = DICT_COMMIT_RET_FAILED;
        else if (atomic_inc_not_found)
-               result.ret = 0;
+               result.ret = DICT_COMMIT_RET_NOTFOUND;
        else
-               result.ret = 1;
+               result.ret = DICT_COMMIT_RET_OK;
        pool_unref(&ctx->pool);
 
        callback(&result, context);
index 310bee67bd380a813189095cfe256e2b4dfe7b09..6efa15dc0f4fd2528818409bfeac09d34dd7e64f 100644 (file)
@@ -88,7 +88,9 @@ static void
 memcached_ascii_disconnected(struct memcached_ascii_connection *conn,
                             const char *reason)
 {
-       const struct dict_commit_result result = { -1, reason };
+       const struct dict_commit_result result = {
+               DICT_COMMIT_RET_FAILED, reason
+       };
        const struct memcached_ascii_dict_reply *reply;
 
        connection_disconnect(&conn->conn);
@@ -201,7 +203,9 @@ static int memcached_ascii_input_reply_read(struct memcached_ascii_dict *dict,
 static int memcached_ascii_input_reply(struct memcached_ascii_dict *dict,
                                       const char **error_r)
 {
-       const struct dict_commit_result result = { 1, NULL };
+       const struct dict_commit_result result = {
+               DICT_COMMIT_RET_OK, NULL
+       };
        struct memcached_ascii_dict_reply *replies;
        unsigned int count;
        int ret;
@@ -630,7 +634,7 @@ memcached_ascii_transaction_commit(struct dict_transaction_context *_ctx,
        struct memcached_ascii_dict *dict =
                (struct memcached_ascii_dict *)_ctx->dict;
        struct dict_memcached_ascii_commit_ctx commit_ctx;
-       struct dict_commit_result result = { 1, NULL };
+       struct dict_commit_result result = { DICT_COMMIT_RET_OK, NULL };
 
        if (_ctx->changed) {
                memset(&commit_ctx, 0, sizeof(commit_ctx));
index 30329ae3853fef751f1c60650d794cd433734d07..6b173019ecc08b2ea0a778a04b1ef9cb47eb9e5f 100644 (file)
@@ -98,7 +98,9 @@ static void redis_callback(struct redis_dict *dict,
 static void
 redis_disconnected(struct redis_connection *conn, const char *reason)
 {
-       const struct dict_commit_result result = { -1, reason };
+       const struct dict_commit_result result = {
+               DICT_COMMIT_RET_FAILED, reason
+       };
        const struct redis_dict_reply *reply;
 
        conn->dict->db_id_set = FALSE;
@@ -257,7 +259,9 @@ redis_conn_input_more(struct redis_connection *conn, const char **error_r)
                reply = array_idx_modifiable(&dict->replies, 0);
                i_assert(reply->reply_count > 0);
                if (--reply->reply_count == 0) {
-                       const struct dict_commit_result result = { 1, NULL };
+                       const struct dict_commit_result result = {
+                               DICT_COMMIT_RET_OK, NULL
+                       };
                        redis_callback(dict, reply, &result);
                        array_delete(&dict->replies, 0, 1);
                        /* if we're running in a dict-ioloop, we're handling a
@@ -603,7 +607,7 @@ redis_transaction_commit(struct dict_transaction_context *_ctx, bool async,
        struct redis_dict *dict = (struct redis_dict *)_ctx->dict;
        struct redis_dict_reply *reply;
        unsigned int i;
-       struct dict_commit_result result = { .ret = 1 };
+       struct dict_commit_result result = { .ret = DICT_COMMIT_RET_OK };
 
        i_assert(dict->transaction_open);
        dict->transaction_open = FALSE;
index 35e804a4505d4e64f0e2b3c318d7ba5b01519579..a1d1235bbe3c4f49704e12a690bcaed2ef307917 100644 (file)
@@ -797,11 +797,12 @@ sql_dict_transaction_commit_callback(const struct sql_commit_result *sql_result,
 
        memset(&result, 0, sizeof(result));
        if (sql_result->error == NULL)
-               result.ret = sql_dict_transaction_has_nonexistent(ctx) ? 0 : 1;
+               result.ret = sql_dict_transaction_has_nonexistent(ctx) ?
+                       DICT_COMMIT_RET_NOTFOUND : DICT_COMMIT_RET_OK;
        else {
                result.error = t_strdup_printf("sql dict: commit failed: %s",
                                               sql_result->error);
-               result.ret = -1;
+               result.ret = DICT_COMMIT_RET_FAILED;
        }
 
        if (ctx->async_callback != NULL)
@@ -822,7 +823,7 @@ sql_dict_transaction_commit(struct dict_transaction_context *_ctx, bool async,
        struct dict_commit_result result;
 
        memset(&result, 0, sizeof(result));
-       result.ret = -1;
+       result.ret = DICT_COMMIT_RET_FAILED;
        result.error = t_strdup(ctx->error);
 
        if (ctx->prev_inc_map != NULL)
@@ -833,7 +834,7 @@ sql_dict_transaction_commit(struct dict_transaction_context *_ctx, bool async,
        } else if (!_ctx->changed) {
                /* nothing changed, no need to commit */
                sql_transaction_rollback(&ctx->sql_ctx);
-               result.ret = 1;
+               result.ret = DICT_COMMIT_RET_OK;
        } else if (async) {
                ctx->async_callback = callback;
                ctx->async_context = context;
@@ -845,9 +846,9 @@ sql_dict_transaction_commit(struct dict_transaction_context *_ctx, bool async,
                        "sql dict: commit failed: %s", error);
        } else {
                if (sql_dict_transaction_has_nonexistent(ctx))
-                       result.ret = 0;
+                       result.ret = DICT_COMMIT_RET_NOTFOUND;
                else
-                       result.ret = 1;
+                       result.ret = DICT_COMMIT_RET_OK;
        }
        sql_dict_transaction_free(ctx);
 
index 64501182ba0f025c8bbbe7b5f0ce051719638a5c..7bdd6d1cf22652f3bd1946d17b2c0814a8c5fe0b 100644 (file)
@@ -44,8 +44,14 @@ struct dict_lookup_result {
        const char *error;
 };
 
+enum dict_commit_ret {
+       DICT_COMMIT_RET_OK = 1,
+       DICT_COMMIT_RET_NOTFOUND = 0,
+       DICT_COMMIT_RET_FAILED = -1,
+};
+
 struct dict_commit_result {
-       int ret;
+       enum dict_commit_ret ret;
        const char *error;
 };