Explorar o código

banlimits for old connection may stop functioning on configuration reload

z3APA3A %!s(int64=8) %!d(string=hai) anos
pai
achega
2983575952
Modificáronse 2 ficheiros con 10 adicións e 3 borrados
  1. 8 2
      src/auth.c
  2. 2 1
      src/structures.h

+ 8 - 2
src/auth.c

@@ -485,8 +485,14 @@ unsigned bandlimitfunc(struct clientparam *param, unsigned nbytesin, unsigned nb
 	
 	if(!nbytesin && !nbytesout) return 0;
 	pthread_mutex_lock(&bandlim_mutex);
-	if(param->paused != conf.paused){
-		return (1);
+	if(param->paused != conf.paused && param->bandlimver != conf.paused){
+		if(!conf.bandlimfunc){
+			param->bandlimfunc = NULL;
+			pthread_mutex_unlock(&bandlim_mutex);
+			return 0;
+		}
+		initbandlims(param);
+		param->bandlimver = conf.paused;
 	}
 	for(i=0; nbytesin&& i<MAXBANDLIMS && param->bandlims[i]; i++){
 		if( !param->bandlims[i]->basetime || 

+ 2 - 1
src/structures.h

@@ -459,7 +459,8 @@ struct clientparam {
 	int	redirected,
 		operation,
 		nfilters, nreqfilters, nhdrfilterscli, nhdrfilterssrv, npredatfilters, ndatfilterscli, ndatfilterssrv,
-		unsafefilter;
+		unsafefilter,
+		bandlimver;
 
 	int	res,
 		status;