]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
director: Code cleanup - use temporary users variables
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Thu, 20 Oct 2016 16:17:11 +0000 (19:17 +0300)
committerGitLab <gitlab@git.dovecot.net>
Tue, 8 Nov 2016 14:27:39 +0000 (16:27 +0200)
This will shrink the diff for the following changes.

src/director/director-connection.c
src/director/director-request.c
src/director/director.c
src/director/doveadm-connection.c

index 3ab558b75e47c18663d15cf3614cab77d228d43c..e334aaf845c6af79546d92333d39396e694fb6db 100644 (file)
@@ -503,12 +503,13 @@ director_user_refresh(struct director_connection *conn,
        struct director *dir = conn->dir;
        struct user *user;
        bool ret = FALSE, unset_weak_user = FALSE;
+       struct user_directory *users = dir->users;
 
        *forced_r = FALSE;
 
-       user = user_directory_lookup(dir->users, username_hash);
+       user = user_directory_lookup(users, username_hash);
        if (user == NULL) {
-               *user_r = user_directory_add(dir->users, username_hash,
+               *user_r = user_directory_add(users, username_hash,
                                             host, timestamp);
                (*user_r)->weak = weak;
                dir_debug("user refresh: %u added", username_hash);
@@ -527,7 +528,7 @@ director_user_refresh(struct director_connection *conn,
                        /* weak user marked again as weak */
                }
        } else if (weak &&
-                  !user_directory_user_is_recently_updated(dir->users, user)) {
+                  !user_directory_user_is_recently_updated(users, user)) {
                /* mark the user as weak */
                dir_debug("user refresh: %u set weak", username_hash);
                user->weak = TRUE;
@@ -541,7 +542,7 @@ director_user_refresh(struct director_connection *conn,
                ret = TRUE;
        } else if (user->host == host) {
                /* update to the same host */
-       } else if (user_directory_user_is_near_expiring(dir->users, user)) {
+       } else if (user_directory_user_is_near_expiring(users, user)) {
                /* host conflict for a user that is already near expiring. we can
                   assume that the other director had already dropped this user
                   and we should have as well. use the new host. */
@@ -609,7 +610,7 @@ director_user_refresh(struct director_connection *conn,
                ret = TRUE;
        }
        if (timestamp == ioloop_time && (time_t)user->timestamp != timestamp) {
-               user_directory_refresh(dir->users, user);
+               user_directory_refresh(users, user);
                ret = TRUE;
        }
        dir_debug("user refresh: %u refreshed timeout to %ld",
index 01aba8abf51bf77250258dd8538639dee7cf9281..3b5c8d9c474a0732d1c51a39047445f8bb3596c3 100644 (file)
@@ -182,6 +182,7 @@ director_request_existing(struct director_request *request, struct user *user,
                          const char *tag)
 {
        struct director *dir = request->dir;
+       struct user_directory *users = dir->users;
        struct mail_host *host;
 
        if (USER_IS_BEING_KILLED(user)) {
@@ -208,7 +209,7 @@ director_request_existing(struct director_request *request, struct user *user,
                          request->username_hash);
                return FALSE;
        }
-       if (!user_directory_user_is_near_expiring(dir->users, user))
+       if (!user_directory_user_is_near_expiring(users, user))
                return TRUE;
 
        /* user is close to being expired. another director may have
@@ -272,6 +273,7 @@ director_request_existing(struct director_request *request, struct user *user,
 bool director_request_continue(struct director_request *request)
 {
        struct director *dir = request->dir;
+       struct user_directory *users = dir->users;
        struct mail_host *host;
        struct user *user;
        const char *tag;
@@ -285,12 +287,12 @@ bool director_request_continue(struct director_request *request)
                return FALSE;
        }
 
-       user = user_directory_lookup(dir->users, request->username_hash);
+       user = user_directory_lookup(users, request->username_hash);
        tag = request->username_tag == NULL ? "" : request->username_tag;
        if (user != NULL) {
                if (!director_request_existing(request, user, tag))
                        return FALSE;
-               user_directory_refresh(dir->users, user);
+               user_directory_refresh(users, user);
                dir_debug("request: %u refreshed timeout to %u",
                          request->username_hash, user->timestamp);
        } else {
@@ -311,7 +313,7 @@ bool director_request_continue(struct director_request *request)
                                  request->username_hash);
                        return FALSE;
                }
-               user = user_directory_add(dir->users, request->username_hash,
+               user = user_directory_add(users, request->username_hash,
                                          host, ioloop_time);
                dir_debug("request: %u added timeout to %u (hosts_hash=%u)",
                          request->username_hash, user->timestamp,
index 57ceb037a6d6d0a45d6750d234b7e456ef287d51..ce7a1ffcc9d884a2fe452edd3286efa7c683d60d 100644 (file)
@@ -625,6 +625,8 @@ void director_remove_host(struct director *dir, struct director_host *src,
                          struct director_host *orig_src,
                          struct mail_host *host)
 {
+       struct user_directory *users = dir->users;
+
        if (src != NULL) {
                if (orig_src == NULL) {
                        orig_src = dir->self_host;
@@ -637,7 +639,7 @@ void director_remove_host(struct director *dir, struct director_host *src,
                        orig_src->last_seq, net_ip2addr(&host->ip)));
        }
 
-       user_directory_remove_host(dir->users, host);
+       user_directory_remove_host(users, host);
        mail_host_remove(host);
        director_sync(dir);
 }
@@ -646,6 +648,8 @@ void director_flush_host(struct director *dir, struct director_host *src,
                         struct director_host *orig_src,
                         struct mail_host *host)
 {
+       struct user_directory *users = dir->users;
+
        if (orig_src == NULL) {
                orig_src = dir->self_host;
                orig_src->last_seq++;
@@ -655,7 +659,7 @@ void director_flush_host(struct director *dir, struct director_host *src,
                "HOST-FLUSH\t%s\t%u\t%u\t%s\n",
                net_ip2addr(&orig_src->ip), orig_src->port, orig_src->last_seq,
                net_ip2addr(&host->ip)));
-       user_directory_remove_host(dir->users, host);
+       user_directory_remove_host(users, host);
        director_sync(dir);
 }
 
@@ -916,6 +920,7 @@ static void director_kill_user_callback(enum ipc_client_cmd_state state,
                                        const char *data, void *context)
 {
        struct director_kill_context *ctx = context;
+       struct user_directory *users = ctx->dir->users;
        struct user *user;
 
        /* this is an asynchronous notification about user being killed.
@@ -938,7 +943,7 @@ static void director_kill_user_callback(enum ipc_client_cmd_state state,
 
        ctx->callback_pending = FALSE;
 
-       user = user_directory_lookup(ctx->dir->users, ctx->username_hash);
+       user = user_directory_lookup(users, ctx->username_hash);
        if (!DIRECTOR_KILL_CONTEXT_IS_VALID(user, ctx)) {
                /* user was already freed - ignore */
                i_assert(ctx->to_move == NULL);
@@ -1021,6 +1026,7 @@ void director_move_user(struct director *dir, struct director_host *src,
                        struct director_host *orig_src,
                        unsigned int username_hash, struct mail_host *host)
 {
+       struct user_directory *users = dir->users;
        struct user *user;
 
        /* 1. move this user's host, and set its "killing" flag to delay all of
@@ -1039,9 +1045,9 @@ void director_move_user(struct director *dir, struct director_host *src,
           5. after receiving USER-KILLED-EVERYWHERE notification,
           new connections are again allowed for the user.
        */
-       user = user_directory_lookup(dir->users, username_hash);
+       user = user_directory_lookup(users, username_hash);
        if (user == NULL) {
-               user = user_directory_add(dir->users, username_hash,
+               user = user_directory_add(users, username_hash,
                                          host, ioloop_time);
                director_kill_user(dir, src, user, NULL);
        } else {
@@ -1162,9 +1168,10 @@ director_send_user_killed_everywhere(struct director *dir,
 
 void director_user_killed(struct director *dir, unsigned int username_hash)
 {
+       struct user_directory *users = dir->users;
        struct user *user;
 
-       user = user_directory_lookup(dir->users, username_hash);
+       user = user_directory_lookup(users, username_hash);
        if (user == NULL || !USER_IS_BEING_KILLED(user))
                return;
 
index e2125820d1c83e5314145ff683b91c41e578e18d..2f71a0cca4ab4eb381895201918c115ce8e9c170 100644 (file)
@@ -551,6 +551,7 @@ static int
 doveadm_cmd_user_lookup(struct doveadm_connection *conn,
                        const char *const *args)
 {
+       struct user_directory *users = conn->dir->users;
        struct user *user;
        struct mail_host *host;
        const char *username, *tag;
@@ -565,15 +566,15 @@ doveadm_cmd_user_lookup(struct doveadm_connection *conn,
                tag = args[1] != NULL ? args[1] : "";
        }
        if (str_to_uint(username, &username_hash) < 0) {
-               if (!user_directory_get_username_hash(conn->dir->users,
-                                                     args[0], &username_hash)) {
+               if (!user_directory_get_username_hash(users,
+                                                     username, &username_hash)) {
                        o_stream_nsend_str(conn->output, "TRYAGAIN\n");
                        return 1;
                }
        }
 
        /* get user's current host */
-       user = user_directory_lookup(conn->dir->users, username_hash);
+       user = user_directory_lookup(users, username_hash);
        if (user == NULL)
                str_append(str, "\t0");
        else {
@@ -637,6 +638,7 @@ doveadm_cmd_user_list(struct doveadm_connection *conn, const char *const *args)
 static int
 doveadm_cmd_user_move(struct doveadm_connection *conn, const char *const *args)
 {
+       struct user_directory *users = conn->dir->users;
        unsigned int username_hash;
        struct user *user;
        struct mail_host *host;
@@ -654,13 +656,13 @@ doveadm_cmd_user_move(struct doveadm_connection *conn, const char *const *args)
        }
 
        if (str_to_uint(args[0], &username_hash) < 0) {
-               if (!user_directory_get_username_hash(conn->dir->users,
+               if (!user_directory_get_username_hash(users,
                                                      args[0], &username_hash)) {
                        o_stream_nsend_str(conn->output, "TRYAGAIN\n");
                        return 1;
                }
        }
-       user = user_directory_lookup(conn->dir->users, username_hash);
+       user = user_directory_lookup(users, username_hash);
        if (user != NULL && USER_IS_BEING_KILLED(user)) {
                o_stream_nsend_str(conn->output, "TRYAGAIN\n");
                return 1;