From: Alan T. DeKok Date: Wed, 14 Sep 2011 09:56:24 +0000 (+0200) Subject: WARNING on potential proxy loop X-Git-Tag: release_2_1_12~25 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f25ebcbd3eff020c2d3638c6cfd0e0ec9cb51fda;p=thirdparty%2Ffreeradius-server.git WARNING on potential proxy loop --- diff --git a/src/modules/rlm_preprocess/rlm_preprocess.c b/src/modules/rlm_preprocess/rlm_preprocess.c index 6a866ee5df5..f4da35ed8d2 100644 --- a/src/modules/rlm_preprocess/rlm_preprocess.c +++ b/src/modules/rlm_preprocess/rlm_preprocess.c @@ -207,6 +207,7 @@ static void alvarion_vsa_hack(VALUE_PAIR *vp) */ static void rad_mangle(rlm_preprocess_t *data, REQUEST *request) { + int num_proxy_state; VALUE_PAIR *namepair; VALUE_PAIR *request_pairs; VALUE_PAIR *tmp; @@ -270,6 +271,19 @@ static void rad_mangle(rlm_preprocess_t *data, REQUEST *request) PW_SERVICE_TYPE, PW_TYPE_INTEGER); tmp->vp_integer = PW_FRAMED_USER; } + + num_proxy_state = 0; + for (tmp = request->packet->vps; tmp != NULL; tmp = tmp->next) { + if (tmp->vendor != 0) continue; + if (tmp->attribute != PW_PROXY_STATE) continue; + + num_proxy_state++; + } + + if (num_proxy_state > 10) { + DEBUG("WARNING: There are more than 10 Proxy-State attributes in the request."); + DEBUG("WARNING: You have likely configured an infinite proxy loop."); + } } /*