]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
director: Add director_connection_set_name() change connection name
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Thu, 20 Aug 2020 13:05:23 +0000 (16:05 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Fri, 21 Aug 2020 06:10:21 +0000 (06:10 +0000)
src/director/director-connection.c

index 9021aaad4bd8daef663d119e303392dd8215ec2c..4585fa8ed6d59f330908ddc0fb6cba62529a492d 100644 (file)
@@ -158,6 +158,14 @@ director_connection_log_disconnect(struct director_connection *conn, int err,
                                   const char *errstr);
 static int director_connection_send_done(struct director_connection *conn);
 
+static void
+director_connection_set_name(struct director_connection *conn, const char *name)
+{
+       char *old_name = conn->name;
+       conn->name = i_strdup(name);
+       i_free(old_name);
+}
+
 static void ATTR_FORMAT(2, 3)
 director_cmd_error(struct director_connection *conn, const char *fmt, ...)
 {
@@ -347,8 +355,8 @@ static bool director_connection_assign_left(struct director_connection *conn)
                return TRUE;
        }
        dir->left = conn;
-       i_free(conn->name);
-       conn->name = i_strdup_printf("%s/left", conn->host->name);
+       director_connection_set_name(conn,
+               t_strdup_printf("%s/left", conn->host->name));
        director_connection_assigned(conn);
        return TRUE;
 }
@@ -430,8 +438,8 @@ static bool director_connection_assign_right(struct director_connection *conn)
                        "Replacing with %s", conn->host->name));
        }
        dir->right = conn;
-       i_free(conn->name);
-       conn->name = i_strdup_printf("%s/right", conn->host->name);
+       director_connection_set_name(conn,
+               t_strdup_printf("%s/right", conn->host->name));
        director_connection_assigned(conn);
        director_send_delayed_syncs(dir);
        return TRUE;
@@ -2324,7 +2332,8 @@ director_connection_init_in(struct director *dir, int fd,
        conn = director_connection_init_common(dir, fd);
        conn->in = TRUE;
        director_connection_set_connected(conn);
-       conn->name = i_strdup_printf("%s/in", net_ip2addr(ip));
+       director_connection_set_name(conn,
+               t_strdup_printf("%s/in", net_ip2addr(ip)));
        conn->io = io_add(conn->fd, IO_READ, director_connection_input, conn);
        conn->to_ping = timeout_add(DIRECTOR_CONNECTION_ME_TIMEOUT_MSECS,
                                    director_connection_init_timeout, conn);
@@ -2403,7 +2412,8 @@ director_connection_init_out(struct director *dir, int fd,
        director_host_restarted(host);
 
        conn = director_connection_init_common(dir, fd);
-       conn->name = i_strdup_printf("%s/out", host->name);
+       director_connection_set_name(conn,
+               t_strdup_printf("%s/out", host->name));
        conn->host = host;
        director_host_ref(host);
        conn->io = io_add(conn->fd, IO_WRITE,