diff options
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | driver.c | 17 | ||||
-rw-r--r-- | env.c | 13 |
3 files changed, 22 insertions, 11 deletions
@@ -1,5 +1,8 @@ Release Notes: +fetchmail-4.6.9 (): +* Better RFC822 conformance in fetchmail trace headers. + fetchmail-4.6.8 (Sat Nov 28 21:07:46 EST 1998): * Added bounce-mail capability on SMTP/ESMTP error conditions. * Internationalization support via GNU gettext from Arnaldo Carvalho de Melo @@ -915,13 +915,17 @@ static int readheaders(int sock, long fetchlen, long reallen, struct query *ctl, if (n != -1) { /* + * This header is technically invalid under RFC822. + * POP3, IMAP, etc. are not legal mail-parameter values. + * * We used to include ctl->remotename in this log line, * but this can be secure information that would be bad * to reveal. */ - sprintf(buf, "\tby fetchmail-%s %s\r\n", - RELEASE_ID, - protocol->name); + sprintf(buf, "\tby %s with %s (fetchmail-%s)\r\n", + fetchmailhost, + protocol->name, + RELEASE_ID); n = stuffline(ctl, buf); if (n != -1) { @@ -940,7 +944,12 @@ static int readheaders(int sock, long fetchlen, long reallen, struct query *ctl, if (strchr(idp->id, '@')) sprintf(buf+1, "for %s", idp->id); else - sprintf(buf+1, "for %s/%s", idp->id, ctl->destaddr); + /* + * This could be a bit misleading, as destaddr is + * the forwarding host rather than the actual + * destination. Most of the time they coincide. + */ + sprintf(buf+1, "for %s@%s", idp->id, ctl->destaddr); sprintf(buf+strlen(buf), " (%s); ", MULTIDROP(ctl) ? "multi-drop" : "single-drop"); } @@ -116,15 +116,14 @@ char *rfc822timestamp(void) time(&now); #ifdef HAVE_STRFTIME /* - * Conform to RFC822. This is typically going to emit - * a three-letter timezone for %Z, which is going to - * be marked "obsolete syntax" in 822bis. Note that we - * generate a 4-digit year here, avoiding Y2K hassles. - * Note: max length of this timestamp in an English locale - * should be 29 chars, assuming a 3-character timezone. + * Conform to RFC822. Note that we generate a 4-digit year here, + * avoiding Y2K hassles. Note: max length of this timestamp in an + * English locale should be 32 chars, assuming a 5-character timezone + * of the form [+-]nnnn. The only things that should vary by locale + * are the day and month abbreviations. */ strftime(buf, sizeof(buf)-1, - "%a, %d %b %Y %H:%M:%S %Z", localtime(&now)); + "%a, %d %b %Y %H:%M:%S %z", localtime(&now)); #else /* * This is really just a portability fallback, as the |