FreeRadius rlm_exec не меняет уже существующие атрибуты

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

LiuPing
Сообщения: 1

FreeRadius rlm_exec не меняет уже существующие атрибуты

Сообщение LiuPing »

Стоит 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?

Дмитрий
Спасибо сказали: