* Relay backend
*/
-void client_proxy_create(struct client *client,
- const struct submission_settings *set)
+struct submission_backend *
+submission_backend_relay_create(struct client *client,
+ const struct submission_settings *set)
{
struct submission_backend_relay *backend;
struct mail_user *user = client->user;
struct smtp_client_settings smtp_set;
enum smtp_client_connection_ssl_mode ssl_mode;
- backend = &client->backend;
+ backend = i_new(struct submission_backend_relay, 1);
submission_backend_init(&backend->backend, client,
&backend_relay_vfuncs);
backend->conn = smtp_client_connection_create(
smtp_client, SMTP_PROTOCOL_SMTP, set->submission_relay_host,
set->submission_relay_port, ssl_mode, &smtp_set);
+
+ return &backend->backend;
}
static void backend_relay_destroy(struct submission_backend *_backend)
if (backend->conn != NULL)
smtp_client_connection_close(&backend->conn);
+ i_free(backend);
}
static void backend_relay_ready_cb(const struct smtp_reply *reply,
bool xclient_sent:1;
};
-void client_proxy_create(struct client *client,
- const struct submission_settings *set);
+struct submission_backend *
+submission_backend_relay_create(struct client *client,
+ const struct submission_settings *set);
#endif
client_create_backend_default(struct client *client,
const struct submission_settings *set)
{
- client_proxy_create(client, set);
- client->backend_default = &client->backend.backend;
+ client->backend_default =
+ submission_backend_relay_create(client, set);
}
static void client_init_urlauth(struct client *client)
#define CLIENT_H
#include "net.h"
-#include "submission-backend-relay.h"
struct smtp_reply;
struct smtp_server_stats stats;
enum smtp_capability backend_capabilities;
- struct submission_backend_relay backend;
struct submission_backend *backend_default;
struct submission_backend *backends;
unsigned int backends_count;