Стоит FreeRadius в качестве проксирующего Radius сервера. в модуле rlm_exec для изменения атрибутов в соответствии с результатом работы скрипта используется
if (output_pairs) pairmove(output_pairs, &answer); в функции
static int exec_dispatch(void *instance, REQUEST *request) но функция pairmove в valuepair.c делает только следующее
/* * Move attributes from one list to the other * if not already present. */ void pairmove(VALUE_PAIR **to, VALUE_PAIR **from)
Т.е. если такой атрибут не существует то он будет добавлен, а если уже существует, то ничего не произойдет. В результате используя внешний скрипт мы можем только добавлять новые атрибуты, но не можем изменить значение существующих! Как изменить User-Name во входящем Radius запросе? Можно ли это сделать каким либо-другим простым способом без изменения модуля rlm_exec?
Дмитрий