From: Stephan Bosch Date: Sun, 8 Dec 2019 12:16:26 +0000 (+0100) Subject: lib-smtp: Add smtp_address_cmp_icase(). X-Git-Tag: 2.3.10~197 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3e5869bb90db0c088f55906758f0731b589066f6;p=thirdparty%2Fdovecot%2Fcore.git lib-smtp: Add smtp_address_cmp_icase(). --- diff --git a/src/lib-smtp/smtp-address.c b/src/lib-smtp/smtp-address.c index f89a2b0cda..9487e2bc6c 100644 --- a/src/lib-smtp/smtp-address.c +++ b/src/lib-smtp/smtp-address.c @@ -939,3 +939,20 @@ int smtp_address_cmp(const struct smtp_address *address1, return ret; return null_strcmp(address1->localpart, address2->localpart); } + +int smtp_address_cmp_icase(const struct smtp_address *address1, + const struct smtp_address *address2) +{ + bool null1, null2; + int ret; + + null1 = smtp_address_isnull(address1); + null2 = smtp_address_isnull(address2); + if (null1) + return (null2 ? 0 : -1); + else if (null2) + return 1; + if ((ret = null_strcasecmp(address1->domain, address2->domain)) != 0) + return ret; + return null_strcasecmp(address1->localpart, address2->localpart); +} diff --git a/src/lib-smtp/smtp-address.h b/src/lib-smtp/smtp-address.h index 3d20d2a390..cd8596e3c2 100644 --- a/src/lib-smtp/smtp-address.h +++ b/src/lib-smtp/smtp-address.h @@ -181,6 +181,8 @@ smtp_address_add_detail_temp(const struct smtp_address *address, int smtp_address_cmp(const struct smtp_address *address1, const struct smtp_address *address2) ATTR_NULL(1, 2); +int smtp_address_cmp_icase(const struct smtp_address *address1, + const struct smtp_address *address2) ATTR_NULL(1, 2); static inline bool ATTR_NULL(1, 2) smtp_address_equals(const struct smtp_address *address1,