From acede36f01fcda7c4384c77614a19c42a560053e Mon Sep 17 00:00:00 2001
From: Rob Swindell <rob@synchro.net>
Date: Fri, 22 Jan 2021 18:26:07 -0800
Subject: [PATCH] Don't support yields per x lines on SMTP receive

Consume the SMTP lines as fast as possible since the sender may be on the
local network (or even local/loopback interface!) and could get way ahead and
timeout otherwise, resulting in the "premature evacuation" error (and dumping
of the received message) on the receive side. This resolves an observed issue
with sending large attachments to the mail server at very high rates and the
sending client timing and disconnecting waiting for a response from the server
(which was throttling the receive using YIELD).
---
 src/sbbs3/mailsrvr.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c
index 52ec93bee6..53ebdaad25 100644
--- a/src/sbbs3/mailsrvr.c
+++ b/src/sbbs3/mailsrvr.c
@@ -4019,10 +4019,6 @@ static void smtp_thread(void* arg)
 					fputs("\r\n", msgtxt);
 				}
 				lines++;
-				/* release time-slices every x lines */
-				if(startup->lines_per_yield &&
-					!(lines%startup->lines_per_yield))	
-					YIELD();
 				if((lines%100) == 0 && (msgtxt != NULL))
 					lprintf(LOG_DEBUG,"%04d %s %s received %lu lines (%lu bytes) of body text"
 						,socket, client.protocol, client_id, lines, ftell(msgtxt)-hdr_len);
-- 
GitLab