Skip to content

Commit

Permalink
lib-mail: message_address_write() - Don't add '@' if domain is missing
Browse files Browse the repository at this point in the history
  • Loading branch information
sirainen authored and GitLab committed Jun 7, 2017
1 parent a8ebb72 commit 6a2a171
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
12 changes: 8 additions & 4 deletions src/lib-mail/message-address.c
Expand Up @@ -450,8 +450,10 @@ void message_address_write(string_t *str, const struct message_address *addr)
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);
Expand All @@ -473,8 +475,10 @@ void message_address_write(string_t *str, const struct message_address *addr)
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, '>');
}

Expand Down
6 changes: 3 additions & 3 deletions src/lib-mail/test-message-address.c
Expand Up @@ -38,11 +38,11 @@ static void test_message_address(void)
{ 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 } },
Expand Down

0 comments on commit 6a2a171

Please sign in to comment.