Вендор-специфичные Радиус-атрибуты

Send your patches here
Post Reply
mpolk
Posts: 11
Joined: 06 Jan 2016, 08:35

Вендор-специфичные Радиус-атрибуты

Post by mpolk »

Предложение эстетического характера: в AccelPPP широко используются нестандартные Радиус-атрибуты. На мой взгляд, засорять стандартный словарь Радиуса своими атрибутами не вполне хорошо. Я для таких случаев предпочитаю себе завести отдельного "Вендора" и кастомные атрибуты добавлять кучно в словарик этого вендора. Однако в большинстве случаев Accel не понимает ссылки из конфига на вендор-специфичные атрибуты. Предлагаю сделать так, чтобы понимал. Учитывая, что имена вендорских атрибутов должны быть глобально-уникальными, достаточно добавить в поиске атрибута по имени к просмотру неспецифичных атрибутов, также и проход по всем вендорским словарям:

Code: Select all

--- accel-ppp-1.10.0/accel-pppd/radius/dict.c.orig      2015-12-04 15:26:33.000000000 +0200
+++ accel-ppp-1.10.0/accel-pppd/radius/dict.c   2016-01-19 15:25:39.000000000 +0200
@@ -294,7 +294,19 @@
 
 __export struct rad_dict_attr_t *rad_dict_find_attr(const char *name)
 {
-       return dict_find_attr(&dict->items, name);
+       struct rad_dict_attr_t *res = NULL;
+       struct rad_dict_vendor_t *vendor;
+       res = dict_find_attr(&dict->items, name);
+       if (res)
+               return res;
+
+       list_for_each_entry(vendor, &dict->vendors, entry) {
+               res = dict_find_attr(&vendor->items, name);
+               if (res)
+                       return res;
+       }
+       
+       return NULL;
 }
 
 __export struct rad_dict_attr_t *rad_dict_find_attr_id(struct rad_dict_vendor_t *vendor, int id)
Пардон, оформить патч в виде приложения не удалось ввиду разборчивости форумного движка по отношению к расширениям файлов.
Dmitry
Администратор
Posts: 954
Joined: 09 Oct 2014, 10:06

Re: Вендор-специфичные Радиус-атрибуты

Post by Dmitry »

сделай патч и запакуй в gzip
mpolk
Posts: 11
Joined: 06 Jan 2016, 08:35

Re: Вендор-специфичные Радиус-атрибуты

Post by mpolk »

Сделал и запаковал
rad-dict-search.patch.gz
(338 Bytes) Downloaded 212 times
Post Reply