From: Stephan Bosch Date: Fri, 13 Sep 2019 00:01:52 +0000 (+0200) Subject: lib-smtp: smtp-address - Add smtp_address_encode_raw*(). X-Git-Tag: 2.3.9~125 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4505e381c742afc92ca155cce9697a94bea64ec1;p=thirdparty%2Fdovecot%2Fcore.git lib-smtp: smtp-address - Add smtp_address_encode_raw*(). These are special variants of smtp_address_encode*(), which use the new raw field when it is set. --- diff --git a/src/lib-smtp/smtp-address.c b/src/lib-smtp/smtp-address.c index 0a53678ced..d0fde23410 100644 --- a/src/lib-smtp/smtp-address.c +++ b/src/lib-smtp/smtp-address.c @@ -645,6 +645,22 @@ const char *smtp_address_encode_path(const struct smtp_address *address) return str_c(str); } +const char *smtp_address_encode_raw(const struct smtp_address *address) +{ + if (address != NULL && address->raw != NULL && *address->raw != '\0') + return address->raw; + + return smtp_address_encode(address); +} + +const char *smtp_address_encode_raw_path(const struct smtp_address *address) +{ + if (address != NULL && address->raw != NULL && *address->raw != '\0') + return t_strconcat("<", address->raw, ">", NULL); + + return smtp_address_encode_path(address); +} + /* * SMTP address manipulation */ diff --git a/src/lib-smtp/smtp-address.h b/src/lib-smtp/smtp-address.h index 03c914f0fa..3663bd1348 100644 --- a/src/lib-smtp/smtp-address.h +++ b/src/lib-smtp/smtp-address.h @@ -120,6 +120,11 @@ const char *smtp_address_encode(const struct smtp_address *address) const char *smtp_address_encode_path(const struct smtp_address *address) ATTR_NULL(1); +const char * +smtp_address_encode_raw(const struct smtp_address *address) ATTR_NULL(1); +const char * +smtp_address_encode_raw_path(const struct smtp_address *address) ATTR_NULL(1); + /* * SMTP address manipulation */