Closed EvgeniyKorepov closed 6 years ago
Забыл добавить. В базе по запросу
SELECT attr_type,vendor,attr,value,flags,expire_date,id FROM radius_data WHERE owner_type='10000' AND owner_id='85312'
Выдается результат, т.е. данные есть.
На utm5-5.3.003-update15 всё работает, тесты написал. Какой update у версии биллинга?
Хм, вы поставили меня в тупик. Каким образом можно определить версию update?
1-й вариант $urfa->rpcf_liburfa_list()
2-й вариант Админка -> Дополнительно -> Плагины
Version:5.3-003-update15-debian_wheezy
Должно работать. Тестировал на 5.3-003-update15-debian_jessie_x64 Покажите описание функции XML, которую используете.
<function name="rpcf_get_radius_attr" id="0x10104">
<input>
<integer name="sid"/>
<integer name="st"/>
</input>
<output>
<integer name="radius_data_size"/>
<for name="i" from="0" count="radius_data_size">
<integer name="vendor" array_index="i"/>
<integer name="attr" array_index="i"/>
<integer name="usage_flags" array_index="i"/>
<integer name="expire_date" array_index="i"/>
<integer name="param1" array_index="i" />
<set dst="tmp_type" src="param1" src_index="i"/>
<!-- integer -->
<if variable="tmp_type" array_index="i" value="0" condition="eq">
<integer name="val" array_index="i" />
</if>
<!-- string -->
<if variable="tmp_type" value="1" condition="eq">
<string name="val" array_index="i" />
</if>
<!-- IP-address -->
<if variable="tmp_type" value="2" condition="eq">
<integer name="val" array_index="i" />
</if>
<!-- HEX string -->
<if variable="tmp_type" value="3" condition="eq">
<string name="val" array_index="i" />
</if>
<integer name="prop_size" array_index="i"/>
<for name="p" from="0" count="prop_size">
<integer name="type" array_index="i,p"/>
<string name="value" array_index="i,p"/>
</for>
</for>
</output>
</function>
А не может быть проблемой 32 разрядная OS?
Думаю нет, скорее всего проблема с определёнными данными в базе. Откройте сервисные связки, далее RADIUS атрибуты, и сделайте скриншоты параметров всех атрибутов, попробую у себя воспроизвести проблему.
Вот собственно и все. Единственный атрибут.
Думаю списать эту ошибку на фазу Луны ;-) Для обхода сделал SQL-версию функции, дергаю нужное из базы билинга. Так что может ну ее, эту проблему, нафик ;-)
Проблему воспроизвести мне не удалось. Прогнал тесты на FreeBSD 9 x32. Возможно, у вас ошибка возникает из-за массива prop_size(ваш биллинг отдает данные), заполнить этот массив данными не получается.
URFAClient-1.3.0, api_53-003.xml Не работает rpcf_get_radius_attr
Передача параметров и вызов проходят правильно, в логах билинга вижу
Но с получением результата проблема:
И так до бесконечности пока не остановишь.