forum.bitel.ru
http://forum.bitel.ru/

Подмена NAS-Port на Acct-Session-Id в скрипте предобработки
http://forum.bitel.ru/viewtopic.php?f=5&t=11925
Страница 1 из 1

Автор:  madvamp [ 15 сен 2016, 11:32 ]
Заголовок сообщения:  Подмена NAS-Port на Acct-Session-Id в скрипте предобработки

Так как accelppp для pptp соединений не выставляет NAS-Port в auth пакете, точнее дает разные NAS-port для auth и accounting, но при этом параметром sid_in_auth=1 в auth пакете уже выставляется Acct-Session-Id. Хотелось бы копировать Acct-Session-Id в параметр NAS-Port.
В auth пакете Acct-Session-Id прилетает вида 161055a57b123cc1. Накидал такой скрипт предобработки?

Код:
import bitel.billing.server.radius.*;
 
void processRequest( request, response, setup, con, conSlave )
{
   acct_id = request.getStringAttribute( 44 );
   request.setIntAttribute( 5, Long.parseLong(acct_id, 16));
}


Вобщем вопрос то к меня такой как в яве правильно строковые шестнадцатеричные значения приводит в обычно целочисленному числовому типу?
Залезет ли ли Long в качестве значения атрибута в setIntAttribute (в идентификаторе 8 байт число должно получатся, и тип Long вроде тоже)?

Версия биллинга 5.2. Или как-то по другому нужно читать/устанавливать атрибуту для объекта request?

Автор:  vdd [ 15 сен 2016, 22:58 ]
Заголовок сообщения:  Re: Подмена NAS-Port на Acct-Session-Id в скрипте предобраб

https://bgbilling.ru/v5.2/javadoc/ru/bitel/bgbilling/kernel/network/radius/RadiusAttributeSet.html#setIntAttribute(int,%20int,%20int)

int в Java 32бита

Автор:  madvamp [ 16 сен 2016, 16:00 ]
Заголовок сообщения:  Re: Подмена NAS-Port на Acct-Session-Id в скрипте предобраб

Подправил немного скриптик:

Код:
import bitel.billing.server.radius.*;
 
void processRequest( request, response, setup, con, conSlave )
{
   acct_id = request.getStringAttribute( 44 );
   request.setIntAttribute( 5, Integer.parseInt(acct_id.substring(acct_id.length()-8,acct_id.length()), 16));
}


Нужно импортировать как-то объекты java.lang.Integer или java.lang.String?
Запуск ./radius.sh flush_script_cache будет сбрасывать текущие соединения?
В биллинге 5.2. предусмотрена возможность запуска второго экземпляра радиуса на другом сервере как резервного (ну или для тестов)?

Автор:  madvamp [ 16 сен 2016, 16:01 ]
Заголовок сообщения:  Re: Подмена NAS-Port на Acct-Session-Id в скрипте предобраб

А за ссылочку на доки для разработчков спасибо
vdd писал(а):

Автор:  vdd [ 16 сен 2016, 16:09 ]
Заголовок сообщения:  Re: Подмена NAS-Port на Acct-Session-Id в скрипте предобраб

Цитата:
Java compiler automatically imports two entire packages for each source file: (1) the java.lang package and (2) the current package (the package for the current file).
из
http://docs.oracle.com/javase/tutorial/java/package/usepkgs.html
:roll:

Автор:  stark [ 16 сен 2016, 21:39 ]
Заголовок сообщения:  Re: Подмена NAS-Port на Acct-Session-Id в скрипте предобраб

Может быть вам стоит перейти на модуль inet ? Там используется Acct-Session-Id по умолчанию.

Автор:  stark [ 16 сен 2016, 21:43 ]
Заголовок сообщения:  Re: Подмена NAS-Port на Acct-Session-Id в скрипте предобраб

Вы из 8 байт 4 делайте ? Nas_Port_id это int . Не очень хороший путь, не однозначное преобразование.

Автор:  madvamp [ 19 сен 2016, 10:22 ]
Заголовок сообщения:  Re: Подмена NAS-Port на Acct-Session-Id в скрипте предобраб

Там у accelppp первые 4 байта, вроде как не изменяются. Модуль Inet конечно хорошо, но переход время-деньги и ничего нового в плане фич, а текущая система на радиусе вроде у нас уже работает и более менее протестирована. Хочется вместо 2 NAS сделать один и усе.

Автор:  barguzin2 [ 19 сен 2016, 11:34 ]
Заголовок сообщения:  Re: Подмена NAS-Port на Acct-Session-Id в скрипте предобраб

Они меняются, просто до них дело дойдёт через 4294967295 подключений (FFFFFFFF)

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/