Mercurial > dovecot > core-2.2
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 } },