From 67f1fd0670c58593ed9a47969e43c29709d4b48d Mon Sep 17 00:00:00 2001
From: Alam Ed Arias <alam@srb2.org>
Date: Sun, 30 Mar 2025 11:43:10 -0400
Subject: [PATCH] curl: add code to check the output of curl_multi_*()

---
 src/netcode/d_netfil.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/netcode/d_netfil.c b/src/netcode/d_netfil.c
index 622d61d4b0..27c924dd84 100644
--- a/src/netcode/d_netfil.c
+++ b/src/netcode/d_netfil.c
@@ -1759,14 +1759,15 @@ void CURLGetFile(void)
 	{
 		if (curl_runninghandles)
 		{
-			curl_multi_perform(multi_handle, &curl_runninghandles);
+			mc = curl_multi_perform(multi_handle, &curl_runninghandles);
+			if (mc != CURLM_OK) I_OutputMsg("libcurl: %s\n", curl_multi_strerror(mc));
 
 			/* wait for activity, timeout or "nothing" */
 			mc = curl_multi_wait(multi_handle, NULL, 0, 1000, NULL);
 
 			if (mc != CURLM_OK)
 			{
-				CONS_Alert(CONS_WARNING, "curl_multi_wait() failed, code %d.\n", mc);
+				CONS_Alert(CONS_WARNING, "curl_multi_wait() failed: %s.\n", curl_multi_strerror(mc));
 				continue;
 			}
 			curl_curfile->currentsize = curl_dlnow;
@@ -1834,7 +1835,8 @@ void CURLGetFile(void)
 
 				curl_curfile->file = NULL;
 				filedownload.remaining--;
-				curl_multi_remove_handle(multi_handle, e);
+				mc = curl_multi_remove_handle(multi_handle, e);
+				if (mc != CURLM_OK) I_OutputMsg("libcurl: %s\n", curl_multi_strerror(mc));
 				curl_easy_cleanup(e);
 
 				if (!filedownload.remaining)
@@ -1845,7 +1847,8 @@ void CURLGetFile(void)
 
 	if (!filedownload.remaining || !filedownload.http_running)
 	{
-		curl_multi_cleanup(multi_handle);
+		mc = curl_multi_cleanup(multi_handle);
+		if (mc != CURLM_OK) I_OutputMsg("libcurl: %s\n", curl_multi_strerror(mc));
 		curl_global_cleanup();
 		multi_handle = NULL;
 	}
-- 
GitLab