From 9e493f95d2f36d3363d0dec7a88f4ebd07022a6b Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Thu, 12 Jun 2003 08:35:09 +0000
Subject: [PATCH] Implemented support for directory exemption ARS (finally).

---
 src/sbbs3/ftpsrvr.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c
index 6cca49757c..5483d737f0 100644
--- a/src/sbbs3/ftpsrvr.c
+++ b/src/sbbs3/ftpsrvr.c
@@ -1335,6 +1335,7 @@ static void send_thread(void* arg)
 	ulong		dur;
 	ulong		cps;
 	ulong		length;
+	BOOL		exempt;
 	BOOL		error=FALSE;
 	FILE*		fp;
 	file_t		f;
@@ -1552,9 +1553,13 @@ static void send_thread(void* arg)
 		if(xfer.credits) {
 			xfer.user->dls=(ushort)adjustuserrec(&scfg, xfer.user->number,U_DLS,5,1);
 			xfer.user->dlb=adjustuserrec(&scfg, xfer.user->number,U_DLB,10,total);
-			if(xfer.dir>=0 && !(scfg.dir[xfer.dir]->misc&DIR_FREE) 
-				/* && !chk_ar(&scfg, scfg.dir[xfer.dir]->ex_ar, xfer.user) */
-				&& !(xfer.user->exempt&FLAG('D')))
+			exempt=FALSE;
+			if(xfer.user->exempt&FLAG('D'))
+				exempt=TRUE;
+			if(scfg.dir[xfer.dir]->ex_ar[0]!=0
+				&& chk_ar(&scfg, scfg.dir[xfer.dir]->ex_ar, xfer.user))
+				exempt=TRUE;
+			if(xfer.dir>=0 && !(scfg.dir[xfer.dir]->misc&DIR_FREE) && !exempt)
 				subtract_cdt(&scfg, xfer.user, xfer.credits);
 		}
 		if(!xfer.tmpfile && !xfer.delfile)
-- 
GitLab