void lmtp_recipient_init(struct lmtp_recipient *rcpt,
struct client *client,
+ enum lmtp_recipient_type type,
struct smtp_server_cmd_ctx *cmd,
struct smtp_server_cmd_rcpt *data)
{
rcpt->client = client;
+ rcpt->type = type;
rcpt->rcpt_cmd = cmd;
rcpt->path = data->path;
}
struct smtp_server_recipient;
struct client;
+enum lmtp_recipient_type {
+ LMTP_RECIPIENT_TYPE_LOCAL,
+ LMTP_RECIPIENT_TYPE_PROXY,
+};
+
struct lmtp_recipient {
struct client *client;
+ enum lmtp_recipient_type type;
struct smtp_address *path;
struct smtp_server_cmd_ctx *rcpt_cmd;
void lmtp_recipient_init(struct lmtp_recipient *rcpt,
struct client *client,
+ enum lmtp_recipient_type type,
struct smtp_server_cmd_ctx *cmd,
struct smtp_server_cmd_rcpt *data);
client->local = lmtp_local_init(client);
rcpt = i_new(struct lmtp_local_recipient, 1);
- lmtp_recipient_init(&rcpt->rcpt, client, cmd, data);
+ lmtp_recipient_init(&rcpt->rcpt, client,
+ LMTP_RECIPIENT_TYPE_LOCAL, cmd, data);
rcpt->detail = i_strdup(detail);
rcpt->service_user = service_user;
pool_unref(&auth_pool);
rcpt = i_new(struct lmtp_proxy_recipient, 1);
- lmtp_recipient_init(&rcpt->rcpt, client, cmd, data);
+ lmtp_recipient_init(&rcpt->rcpt, client,
+ LMTP_RECIPIENT_TYPE_PROXY, cmd, data);
rcpt->conn = conn;