From 301b93020c237e16daea79b29c80e06f4418ec17 Mon Sep 17 00:00:00 2001
From: Rob Swindell <rob@synchro.net>
Date: Sun, 28 Feb 2021 13:22:28 -0800
Subject: [PATCH] Fix "clients remain" log line issue introduced in 2eb58683

The service clients count is now a protected int, so deal. On Windows, this was resulting in the "total" and "served" values logged as 4294967295.
---
 src/sbbs3/services.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/sbbs3/services.c b/src/sbbs3/services.c
index a61e7633b0..bd8716e2e1 100644
--- a/src/sbbs3/services.c
+++ b/src/sbbs3/services.c
@@ -1167,7 +1167,7 @@ static void js_service_thread(void* arg)
 	}
 	FREE_AND_NULL(service_client.subscan);
 
-	protected_uint32_adjust(&service->clients, -1);
+	ulong remain = protected_uint32_adjust(&service->clients, -1);
 	update_clients();
 
 #ifdef _WIN32
@@ -1178,8 +1178,8 @@ static void js_service_thread(void* arg)
 
 	thread_down();
 	if(service->log_level >= LOG_INFO)
-		lprintf(LOG_INFO,"%04d %s service thread terminated (%u clients remain, %lu total, %lu served)"
-			,socket, service->protocol, service->clients, active_clients(), service->served);
+		lprintf(LOG_INFO,"%04d %s service thread terminated (%lu clients remain, %lu total, %lu served)"
+			,socket, service->protocol, remain, active_clients(), service->served);
 
 	client_off(socket);
 	close_socket(socket);
@@ -1486,7 +1486,7 @@ static void native_service_thread(void* arg)
 
 	system(fullcmd);
 
-	protected_uint32_adjust(&service->clients, -1);
+	ulong remain = protected_uint32_adjust(&service->clients, -1);
 	update_clients();
 
 #ifdef _WIN32
@@ -1497,8 +1497,8 @@ static void native_service_thread(void* arg)
 
 	thread_down();
 	if(service->log_level >= LOG_INFO)
-		lprintf(LOG_INFO,"%04d %s service thread terminated (%u clients remain, %lu total, %lu served)"
-			,socket, service->protocol, service->clients, active_clients(), service->served);
+		lprintf(LOG_INFO,"%04d %s service thread terminated (%lu clients remain, %lu total, %lu served)"
+			,socket, service->protocol, remain, active_clients(), service->served);
 
 	client_off(socket);
 	close_socket(socket);
-- 
GitLab