From: Stephan Bosch Date: Tue, 25 Sep 2018 00:11:46 +0000 (+0200) Subject: submission: Allocate each recipient object on its own pool. X-Git-Tag: 2.3.9~1234 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=abd6484138cd5e5ec4d9eefdb644f4924577c3bd;p=thirdparty%2Fdovecot%2Fcore.git submission: Allocate each recipient object on its own pool. This allows allocating per recipient module data. --- diff --git a/src/submission/submission-recipient.c b/src/submission/submission-recipient.c index bb48c20ff6..18e9e477be 100644 --- a/src/submission/submission-recipient.c +++ b/src/submission/submission-recipient.c @@ -9,8 +9,11 @@ struct submission_recipient * submission_recipient_create(struct client *client, struct smtp_address *path) { struct submission_recipient *rcpt; + pool_t pool; - rcpt = i_new(struct submission_recipient, 1); + pool = pool_alloconly_create("submission recipient", 512); + rcpt = p_new(pool, struct submission_recipient, 1); + rcpt->pool = pool; rcpt->backend = client->state.backend; rcpt->path = path; @@ -23,7 +26,7 @@ void submission_recipient_destroy(struct submission_recipient **_rcpt) *_rcpt = NULL; - i_free(rcpt); + pool_unref(&rcpt->pool); } void submission_recipient_finished(struct submission_recipient *rcpt, diff --git a/src/submission/submission-recipient.h b/src/submission/submission-recipient.h index 1ce9e42423..7b59f7d286 100644 --- a/src/submission/submission-recipient.h +++ b/src/submission/submission-recipient.h @@ -5,6 +5,8 @@ struct submission_backend; struct client; struct submission_recipient { + pool_t pool; + struct submission_backend *backend; struct smtp_address *path;