aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS5
-rw-r--r--TODO.txt2
-rw-r--r--transact.c15
3 files changed, 10 insertions, 12 deletions
diff --git a/NEWS b/NEWS
index 660de458..a1e2ae1c 100644
--- a/NEWS
+++ b/NEWS
@@ -49,6 +49,11 @@ removed from a 6.4.0 or newer release.)
fetchmail 6.3.11 (released XXXX-XX-XX - i. e. not yet):
+# BUGFIXES
+* Remove the spurious message "message delimiter found while scanning headers".
+ RFC-5322 syntax states that the delimiter is part of the body, and the body is
+ optional.
+
# TRANSLATION UPDATES AND ADDITIONS (ordered by language name):
* [zh_CN] Chinese/Simplified (Ji ZhengYu)
* [es] Spanish/Castilian (Francisco Molinero)
diff --git a/TODO.txt b/TODO.txt
index 3d756e03..a6186a1f 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -5,8 +5,6 @@ soon - MUST:
- put bare IP addresses in brackets for SMTP (check if there are RFC
1123/5321/5322 differences)
- Debian Bug #531589: fetchmail ignores SIGUSR1 in idle mode.
-- Check RFC5322: do messages without body require the separator line? If not,
- we need to fix transact.c to not complain.
soon - SHOULD:
- make sure the man page completely lists all options (f. i. sslcertpath) in
diff --git a/transact.c b/transact.c
index b890c0cb..c6ea7e35 100644
--- a/transact.c
+++ b/transact.c
@@ -548,6 +548,7 @@ int readheaders(int sock,
/* check for end of headers */
if (end_of_header(line))
{
+eoh:
if (linelen != strlen (line))
has_nuls = TRUE;
free(line);
@@ -561,15 +562,9 @@ int readheaders(int sock,
*/
if (protocol->delimited && line[0] == '.' && EMPTYLINE(line+1))
{
- if (outlevel > O_SILENT)
- report(stdout,
- GT_("message delimiter found while scanning headers\n"));
if (suppress_readbody)
*suppress_readbody = TRUE;
- if (linelen != strlen (line))
- has_nuls = TRUE;
- free(line);
- goto process_headers;
+ goto eoh; /* above */
}
/*
@@ -938,12 +933,12 @@ int readheaders(int sock,
}
}
- process_headers:
+process_headers:
- if (retain_mail)
- {
+ if (retain_mail) {
return(PS_RETAINED);
}
+
if (refuse_mail)
return(PS_REFUSED);
/*