From 292028f3d456fa73c6a3958e6c92c01aa4109412 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Deuc=D0=B5?= <shurd@sasktel.net>
Date: Tue, 12 Nov 2024 02:50:05 -0500
Subject: [PATCH] poll() for write, and break on sock.send() returning zero

Should fix log-padding infinite loop.
---
 exec/imapservice.js | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/exec/imapservice.js b/exec/imapservice.js
index 872345c155..f112694ba1 100644
--- a/exec/imapservice.js
+++ b/exec/imapservice.js
@@ -190,8 +190,10 @@ function full_send(sock, str)
 	var sret;
 
 	do {
+		if (sock.poll(60, true) != 1)
+			break;
 		sret = sock.send(str.substr(sent));
-		if (sret == undefined)
+		if (sret == undefined || sret == 0)
 			break;
 		sent += sret;
 	} while(sent < str.length);
-- 
GitLab