Mercurial > dovecot > core-2.2
changeset 12720:c34d871a7bb6
lmtp: Fixed handling recipient_delimiter when it was found from domain name.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 04 Feb 2011 19:48:29 +0200 |
parents | 826981b2c5c4 |
children | cb2c008ae3e8 |
files | src/lmtp/commands.c |
diffstat | 1 files changed, 6 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lmtp/commands.c Wed Feb 02 23:58:32 2011 +0200 +++ b/src/lmtp/commands.c Fri Feb 04 19:48:29 2011 +0200 @@ -323,7 +323,7 @@ static void rcpt_address_parse(struct client *client, const char *address, const char **username_r, const char **detail_r) { - const char *p, *p2; + const char *p, *domain; *username_r = address; *detail_r = ""; @@ -331,16 +331,16 @@ if (*client->set->recipient_delimiter == '\0') return; + domain = strchr(address, '@'); p = strstr(address, client->set->recipient_delimiter); - if (p != NULL) { + if (p != NULL && (domain == NULL || p < domain)) { /* user+detail@domain */ *username_r = t_strdup_until(*username_r, p); - p2 = strchr(p, '@'); - if (p2 == NULL) + if (domain == NULL) *detail_r = p+1; else { - *detail_r = t_strdup_until(p+1, p2); - *username_r = t_strconcat(*username_r, p2, NULL); + *detail_r = t_strdup_until(p+1, domain); + *username_r = t_strconcat(*username_r, domain, NULL); } } }