changeset 22164:ef94192cddde

lib-mail: message_address_write() - Don't add '@' if domain is missing
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Wed, 07 Jun 2017 12:34:17 +0300
parents 0da3f3625e34
children 9318f53e7817
files src/lib-mail/message-address.c src/lib-mail/test-message-address.c
diffstat 2 files changed, 11 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-mail/message-address.c	Wed Jun 07 12:33:10 2017 +0300
+++ b/src/lib-mail/message-address.c	Wed Jun 07 12:34:17 2017 +0300
@@ -450,8 +450,10 @@
 			i_assert(addr->mailbox != NULL);
 
 			str_append_maybe_escape(str, addr->mailbox, FALSE);
-			str_append_c(str, '@');
-			str_append(str, addr->domain);
+			if (addr->domain[0] != '\0') {
+				str_append_c(str, '@');
+				str_append(str, addr->domain);
+			}
 		} else {
 			/* name and/or route. use full <mailbox@domain> Name */
 			i_assert(addr->mailbox != NULL);
@@ -473,8 +475,10 @@
 				str_append_c(str, ':');
 			}
 			str_append_maybe_escape(str, addr->mailbox, FALSE);
-			str_append_c(str, '@');
-			str_append(str, addr->domain);
+			if (addr->domain[0] != '\0') {
+				str_append_c(str, '@');
+				str_append(str, addr->domain);
+			}
 			str_append_c(str, '>');
 		}
 
--- a/src/lib-mail/test-message-address.c	Wed Jun 07 12:33:10 2017 +0300
+++ b/src/lib-mail/test-message-address.c	Wed Jun 07 12:34:17 2017 +0300
@@ -38,11 +38,11 @@
 		  { NULL, NULL, "@route,@route2", "user", "domain", FALSE } },
 		{ "hello <@route ,@route2:user@domain>", "hello <@route,@route2:user@domain>",
 		  { NULL, "hello", "@route,@route2", "user", "domain", FALSE } },
-		{ "hello", "hello <@>",
+		{ "hello", "hello <>",
 		  { NULL, "hello", NULL, "", "", TRUE } },
-		{ "user (hello)", "hello <user@>",
+		{ "user (hello)", "hello <user>",
 		  { NULL, "hello", NULL, "user", "", TRUE } },
-		{ "hello <user>", "hello <user@>",
+		{ "hello <user>", "hello <user>",
 		  { NULL, "hello", NULL, "user", "", TRUE } },
 		{ "@domain", NULL,
 		  { NULL, NULL, NULL, "", "domain", TRUE } },