From a2747027892c90843766d52fab037ab214b4b4dd Mon Sep 17 00:00:00 2001
From: Rob Swindell <rob@synchro.net>
Date: Wed, 12 May 2021 22:53:27 -0700
Subject: [PATCH] Attempt to resolve "!ERROR 11 receiving from socket" reported
 by plt

<plt> May 13 00:39:40 sbbs synchronet: term Node 1 <plt> append key into keybuf: 4E (N)
<plt> May 13 00:39:40 sbbs synchronet: term Node 1 <plt> Executing external: /sbbs/exec/sexyz 14 -Telnet sz /mnt/disk1/dl/COCO/AGI/agi-xmas.zip
<plt> May 13 00:39:40 sbbs synchronet: term Node 1 <plt> sexyz: Synchronet External X/Y/ZMODEM  v3.0  master/62b590629  Copyright Rob Swindell
<plt> May 13 00:39:40 sbbs synchronet: term Node 1 <plt> sexyz: !File skipped by receiver
<plt> May 13 00:39:40 sbbs synchronet: term Node 1 <plt> sexyz: !File Skipped
<plt> May 13 00:39:40 sbbs synchronet: term Node 1 <plt> sexyz: !0 Aborting Transfer (Sending ZABORT)
<plt> May 13 00:39:40 sbbs synchronet: term Node 1 !ERROR 11 receiving from socket 14
<plt> May 13 00:39:40 sbbs synchronet: term Node 1 input thread terminated (received 365 bytes in 35 blocks)

Not sure why this isn't happening for other sysops - perhaps plt was spying on the node?
---
 src/sbbs3/main.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index c397eaafb4..9b30e397ff 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -2041,6 +2041,8 @@ void input_thread(void *arg)
 #endif
 				if(!sbbs->online)	// sbbs_t::hangup() called?
 					break;
+				if(ERROR_VALUE == EAGAIN)
+					continue;
 	        	if(ERROR_VALUE == ENOTSOCK)
     	            lprintf(LOG_NOTICE,"Node %d socket closed by peer on receive", sbbs->cfg.node_num);
         	    else if(ERROR_VALUE==ECONNRESET)
-- 
GitLab