]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-smtp: client: Move creation of connection object to a separate function.
authorStephan Bosch <stephan.bosch@dovecot.fi>
Sun, 23 Sep 2018 17:32:11 +0000 (19:32 +0200)
committerStephan Bosch <stephan.bosch@dovecot.fi>
Thu, 11 Oct 2018 13:13:37 +0000 (15:13 +0200)
src/lib-smtp/smtp-client-connection.c

index d83cfdb4644959afab32c4d4de506c400cda1e95..69d686600e898de8577648d1d7e25c390c24255a 100644 (file)
@@ -1717,11 +1717,10 @@ void smtp_client_connection_disconnect(struct smtp_client_connection *conn)
        }
 }
 
-struct smtp_client_connection *
-smtp_client_connection_create(struct smtp_client *client,
-       enum smtp_protocol protocol, const char *host, in_port_t port,
-       enum smtp_client_connection_ssl_mode ssl_mode,
-       const struct smtp_client_settings *set)
+static struct smtp_client_connection *
+smtp_client_connection_do_create(struct smtp_client *client, const char *name,
+                                enum smtp_protocol protocol,
+                                const struct smtp_client_settings *set)
 {
        static unsigned int id = 0;
        struct smtp_client_connection *conn;
@@ -1735,10 +1734,7 @@ smtp_client_connection_create(struct smtp_client *client,
        conn->client = client;
        conn->id = id++;
        conn->protocol = protocol;
-       conn->host = p_strdup(conn->pool, host);
-       conn->port = port;
-       conn->ssl_mode = ssl_mode;
-       conn->conn.name = i_strdup_printf("%s:%u", host, port);
+       conn->conn.name = i_strdup(name);
 
        conn->set = client->set;
        if (set != NULL) {
@@ -1816,6 +1812,23 @@ smtp_client_connection_create(struct smtp_client *client,
        return conn;
 }
 
+struct smtp_client_connection *
+smtp_client_connection_create(struct smtp_client *client,
+       enum smtp_protocol protocol, const char *host, in_port_t port,
+       enum smtp_client_connection_ssl_mode ssl_mode,
+       const struct smtp_client_settings *set)
+{
+       struct smtp_client_connection *conn;
+       const char *name = t_strdup_printf("%s:%u", host, port);
+
+       conn = smtp_client_connection_do_create(client, name, protocol, set);
+       conn->host = p_strdup(conn->pool, host);
+       conn->port = port;
+       conn->ssl_mode = ssl_mode;
+
+       return conn;
+}
+
 struct smtp_client_connection *
 smtp_client_connection_create_ip(struct smtp_client *client,
        enum smtp_protocol protocol, const struct ip_addr *ip, in_port_t port,