diff --git a/src/plugins/SSLPlugin/ssl_plugin.c b/src/plugins/SSLPlugin/ssl_plugin.c index 1365821..3152cc0 100644 --- a/src/plugins/SSLPlugin/ssl_plugin.c +++ b/src/plugins/SSLPlugin/ssl_plugin.c @@ -313,7 +313,7 @@ static FILTER_ACTION ssl_filter_predata(void *fo, struct clientparam * param){ return REJECT; } param->redirectfunc = proxyfunc; - return HANDLED; + return PASS; } diff --git a/src/proxy.c b/src/proxy.c index 52220ca..3dcc581 100644 --- a/src/proxy.c +++ b/src/proxy.c @@ -540,6 +540,13 @@ for(;;){ if(action != PASS) RETURN(517); param->nolongdatfilter = 0; + if (param->npredatfilters){ + action = handlepredatflt(param); + if(action == HANDLED){ + RETURN(0); + } + if(action != PASS) RETURN(19); + } if (conf.filtermaxsize && contentlength64 > (uint64_t)conf.filtermaxsize) { param->nolongdatfilter = 1; @@ -548,11 +555,6 @@ for(;;){ uint64_t newlen64; newlen64 = sockfillbuffcli(param, (unsigned long)contentlength64, CONNECTION_S); if(newlen64 == contentlength64) { - action = handlepredatflt(param); - if(action == HANDLED){ - RETURN(0); - } - if(action != PASS) RETURN(19); action = handledatfltcli(param, ¶m->clibuf, (int *)¶m->clibufsize, 0, (int *)¶m->cliinbuf); if(action == HANDLED){ RETURN(0);