diff --git a/src/auth.c b/src/auth.c index 51fa303..b69a654 100644 --- a/src/auth.c +++ b/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&& ibandlims[i]; i++){ if( !param->bandlims[i]->basetime || diff --git a/src/structures.h b/src/structures.h index 6b96d60..1e5e6d1 100644 --- a/src/structures.h +++ b/src/structures.h @@ -444,7 +444,8 @@ struct clientparam { int redirected, operation, nfilters, nreqfilters, nhdrfilterscli, nhdrfilterssrv, npredatfilters, ndatfilterscli, ndatfilterssrv, - unsafefilter; + unsafefilter, + bandlimver; int res, status;