changeset 26752:e6602daa3fa2

lib-smtp: Add smtp_address_cmp_icase().
author Stephan Bosch <stephan.bosch@open-xchange.com>
date Sun, 08 Dec 2019 13:16:26 +0100
parents 89377ab1c2f5
children 5ab0fddc514c
files src/lib-smtp/smtp-address.c src/lib-smtp/smtp-address.h
diffstat 2 files changed, 19 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-smtp/smtp-address.c	Wed Dec 11 14:04:32 2019 +0200
+++ b/src/lib-smtp/smtp-address.c	Sun Dec 08 13:16:26 2019 +0100
@@ -939,3 +939,20 @@
 		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);
+}
--- a/src/lib-smtp/smtp-address.h	Wed Dec 11 14:04:32 2019 +0200
+++ b/src/lib-smtp/smtp-address.h	Sun Dec 08 13:16:26 2019 +0100
@@ -181,6 +181,8 @@
 
 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,