Mercurial > dovecot > core-2.2
changeset 22167:15ca457e629d
lib-mail: message_address_write() - Write empy username as ""
We can't output <@domain> because that conflicts with the <@route:...>
syntax. Also ""@domain seems to be a valid address.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Wed, 07 Jun 2017 12:42:28 +0300 |
parents | 0e46fc927c94 |
children | fb24444dd968 |
files | src/lib-mail/message-address.c src/lib-mail/test-message-address.c |
diffstat | 2 files changed, 7 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-mail/message-address.c Wed Jun 07 12:37:09 2017 +0300 +++ b/src/lib-mail/message-address.c Wed Jun 07 12:42:28 2017 +0300 @@ -468,7 +468,10 @@ str_append(str, addr->route); str_append_c(str, ':'); } - str_append_maybe_escape(str, addr->mailbox, FALSE); + if (addr->mailbox[0] == '\0') + str_append(str, "\"\""); + else + str_append_maybe_escape(str, addr->mailbox, FALSE); if (addr->domain[0] != '\0') { str_append_c(str, '@'); str_append(str, addr->domain);
--- a/src/lib-mail/test-message-address.c Wed Jun 07 12:37:09 2017 +0300 +++ b/src/lib-mail/test-message-address.c Wed Jun 07 12:42:28 2017 +0300 @@ -26,6 +26,8 @@ { NULL, NULL, NULL, "user", "domain", FALSE } }, { "<user@domain>", NULL, { NULL, NULL, NULL, "user", "domain", FALSE } }, + { "<\"\"@domain>", "<\"\"@domain>", + { NULL, NULL, NULL, "", "domain", FALSE } }, { "foo bar <user@domain>", "\"foo bar\" <user@domain>", { NULL, "foo bar", NULL, "user", "domain", FALSE } }, { "\"foo bar\" <user@domain>", NULL, @@ -44,7 +46,7 @@ { NULL, "hello", NULL, "user", "", TRUE } }, { "hello <user>", "hello <user>", { NULL, "hello", NULL, "user", "", TRUE } }, - { "@domain", "<@domain>", + { "@domain", "<\"\"@domain>", { NULL, NULL, NULL, "", "domain", TRUE } }, }; static struct message_address group_prefix = {