]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
submission: submission_backend_relay_create() - Allow caller to specify IP
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 12 Jun 2019 08:30:47 +0000 (11:30 +0300)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 19 Jun 2019 10:14:14 +0000 (10:14 +0000)
This way the caller can already provide IP address for the host.

src/submission/submission-backend-relay.c
src/submission/submission-backend-relay.h

index aea569c24b73726ca352580bb42a470066495bcd..ab7c189e6bcfc54cc55066b63b4a5576a51adc52 100644 (file)
@@ -1036,13 +1036,17 @@ submission_backend_relay_create(
        smtp_set.connect_timeout_msecs = set->connect_timeout_msecs;
        smtp_set.command_timeout_msecs = set->command_timeout_msecs;
 
-       if (set->path == NULL) {
+       if (set->path != NULL) {
+               backend->conn = smtp_client_connection_create_unix(
+                       smtp_client, set->protocol, set->path, &smtp_set);
+       } else if (set->ip.family == 0) {
                backend->conn = smtp_client_connection_create(
                        smtp_client, set->protocol, set->host, set->port,
                        set->ssl_mode, &smtp_set);
        } else {
-               backend->conn = smtp_client_connection_create_unix(
-                       smtp_client, set->protocol, set->path, &smtp_set);
+               backend->conn = smtp_client_connection_create_ip(
+                       smtp_client, set->protocol, &set->ip, set->port,
+                       set->host, set->ssl_mode, &smtp_set);
        }
 
        return backend;
index 3313620a16ea09d76b52498c9167228f99dfdae5..4e64df9c752b598ba73a1a1f8763dedbe6ccf04e 100644 (file)
@@ -14,6 +14,7 @@ struct submision_backend_relay_settings {
 
        enum smtp_protocol protocol;
        const char *path, *host;
+       struct ip_addr ip; /* if empty, resolve host */
        in_port_t port;
 
        const char *const *extra_capabilities;