]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-smtp: smtp-server-recipient - Add smtp_server_recipient_get_original().
authorStephan Bosch <stephan.bosch@open-xchange.com>
Wed, 13 Nov 2019 22:41:51 +0000 (23:41 +0100)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Mon, 25 Nov 2019 10:30:07 +0000 (12:30 +0200)
src/lib-smtp/smtp-server-recipient.c
src/lib-smtp/smtp-server.h

index 2d4543fb2bb8632af5f0f8ef538c1ec9dc21e474..0c1dc7b1b0a923d19377baf11ad7afffdba7f188 100644 (file)
@@ -96,6 +96,14 @@ void smtp_server_recipient_destroy(struct smtp_server_recipient **_rcpt)
        smtp_server_recipient_unref(_rcpt);
 }
 
+const struct smtp_address *
+smtp_server_recipient_get_original(struct smtp_server_recipient *rcpt)
+{
+       if (rcpt->params.orcpt.addr == NULL)
+               return rcpt->path;
+       return rcpt->params.orcpt.addr;
+}
+
 bool smtp_server_recipient_approved(struct smtp_server_recipient **_rcpt)
 {
        struct smtp_server_recipient *rcpt = *_rcpt;
index c25b97a090458c8e4d30468a21ac528764f1168c..d1dfc9c176fa3a1bb7bf6149e855cca93d3389c6 100644 (file)
@@ -86,6 +86,11 @@ struct smtp_server_recipient {
 };
 ARRAY_DEFINE_TYPE(smtp_server_recipient, struct smtp_server_recipient *);
 
+/* Returns the original recipient path if available. Otherwise, it returns the
+   final path. */
+const struct smtp_address *
+smtp_server_recipient_get_original(struct smtp_server_recipient *rcpt);
+
 struct smtp_server_reply *
 smtp_server_recipient_get_reply(struct smtp_server_recipient *rcpt);
 bool smtp_server_recipient_is_replied(struct smtp_server_recipient *rcpt);