aboutsummaryrefslogtreecommitdiffstats
path: root/driver.c
diff options
context:
space:
mode:
Diffstat (limited to 'driver.c')
-rw-r--r--driver.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/driver.c b/driver.c
index fd0c2138..62cd604a 100644
--- a/driver.c
+++ b/driver.c
@@ -1523,17 +1523,16 @@ const struct method *proto; /* protocol method table */
goto cleanUp;
set_timeout(ctl->server.timeout);
- /*
+ /*
* If we're using IMAP4 or something else that
* can fetch headers separately from bodies,
- * it's time to request the body now. This fetch
- * may be skipped if we got an anti-spam or
- * other error response from SMTP.
+ * it's time to request the body now. This
+ * fetch may be skipped if we got an anti-spam
+ * or other PS_REFUSED error response during
+ * read_headers.
*/
if (protocol->fetch_body && !suppress_forward)
{
- int ok;
-
if ((ok = (protocol->trail)(sock, ctl, num)))
goto cleanUp;
set_timeout(ctl->server.timeout);
@@ -1543,7 +1542,11 @@ const struct method *proto; /* protocol method table */
}
/* process the body now */
- ok = readbody(sock, ctl,TRUE,len,protocol->delimited);
+ ok = readbody(sock,
+ ctl,
+ !suppress_forward,
+ len,
+ protocol->delimited);
if (ok == PS_TRANSIENT)
suppress_delete = TRUE;
else if (ok)