Mercurial > dovecot > core-2.2
changeset 3012:f71446dc9b38 HEAD
Support "quoted spaces" in From-line sender's local-part. Postfix at least
may write these..
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 21 Dec 2004 14:40:46 +0200 |
parents | ea37520d92e3 |
children | b4891c3917eb |
files | src/lib-storage/index/mbox/mbox-from.c |
diffstat | 1 files changed, 14 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/mbox/mbox-from.c Mon Dec 20 18:00:56 2004 +0200 +++ b/src/lib-storage/index/mbox/mbox-from.c Tue Dec 21 14:40:46 2004 +0200 @@ -22,7 +22,7 @@ { const unsigned char *msg_start, *sender_end, *msg_end; struct tm tm; - int i, timezone = 0, seen_timezone = FALSE; + int i, esc, timezone = 0, seen_timezone = FALSE; time_t t; *time_r = (time_t)-1; @@ -33,6 +33,19 @@ msg_end = msg + size; /* get sender */ + if (msg < msg_end && *msg == '"') { + /* "x y z"@domain - skip the quoted part */ + esc = FALSE; + msg++; + while (msg < msg_end && (*msg != '"' || esc)) { + if (*msg == '\r' || *msg == '\n') + return -1; + esc = *msg == '\\'; + msg++; + } + msg++; + } + while (msg < msg_end && *msg != ' ') { if (*msg == '\r' || *msg == '\n') return -1;