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

Поиск servid в preprocessAccountingRequest
http://forum.bitel.ru/viewtopic.php?f=44&t=9470
Страница 1 из 1

Автор:  madmax [ 21 июл 2014, 16:08 ]
Заголовок сообщения:  Поиск servid в preprocessAccountingRequest

железка не передает в акаутинге ip адрес устройства и из-за этого в логи пишет кучу ошибок что адрес не найден.
Но при создании сервиса адрес назначается статическим из сервиса.
Хочу в preprocessAccountingRequest сделать поиск сервиса с него вытащить адрес и подставить его в Framed-ip-Address.
Но вот не могу найти как в динамическом коде найти нужный servid учитывая то что авторизация идет по мак адресу
Код:
radius.servSearchMode=5

Автор:  madmax [ 22 июл 2014, 22:56 ]
Заголовок сообщения:  Re: Поиск servid в preprocessAccountingRequest

Никто не подскажет как в динамическом коде найти сервис по мак адресу

Автор:  stark [ 23 июл 2014, 10:44 ]
Заголовок сообщения:  Re: Поиск servid в preprocessAccountingRequest

У нас поиск происходит во внутренних классах, это скорее всего не вытащить сейчас через api. А это точно единственное решение ?Как-то смотрится не логичным искать это в предобработке если поиском занимается все равно потом accounting -сервер. Покажите какие ошибки у вас там в логах.

Автор:  Cromeshnic [ 23 июл 2014, 11:00 ]
Заголовок сообщения:  Re: Поиск servid в preprocessAccountingRequest

#игнорировать отсутствие ip-адреса в update-пакете при создании сессии из апдейта
connection.start.fromUpdate.ignoreFramedIpLack=1

не то?

Автор:  Cromeshnic [ 23 июл 2014, 11:02 ]
Заголовок сообщения:  Re: Поиск servid в preprocessAccountingRequest

Цитата:
железка не передает в акаутинге ip адрес устройства и из-за этого в логи пишет кучу ошибок что адрес не найден

А ошибки можете показать?
И почему это является проблемой?

Автор:  madmax [ 23 июл 2014, 12:00 ]
Заголовок сообщения:  Re: Поиск servid в preprocessAccountingRequest

Обновляться не стали много что менять надо, позже обновимся.
Ошибки лезут что ip адрес не найдет и по update потерянные сессии не создаются.
Решили таким скриптом

Код:
request.setStringAttribute( -1, RadiusDictionary.User_Name, remove);
      con = Setup.getSetup().getDBConnectionFromPool();
      PreparedStatement ps = con.prepareStatement("SELECT INET_NTOA(CONV(HEX(addressFrom), 16, 10)) FROM inet_serv_13 WHERE HEX(macAddress)=?");
      ps.setString( 1, remove);
      ResultSet rs = ps.executeQuery();
      if(rs.next())
      {
      String id = rs.getString(1);
      request.setIntAttribute( -1, RadiusDictionary.Framed_IP_Address, IPUtils.convertStringIPtoInt(id) );
      }
      ps.close();
      rs.close();

Автор:  madmax [ 23 июл 2014, 12:03 ]
Заголовок сообщения:  Re: Поиск servid в preprocessAccountingRequest

Только вот проблема появилась стали приходить ошибки
Connections pool to Master status Idle: 0; Active: 300; maxActive: 300; maxIdle: 20
Что не так в коде, кажется все сессии закрываются

Автор:  stark [ 23 июл 2014, 12:06 ]
Заголовок сообщения:  Re: Поиск servid в preprocessAccountingRequest

Может вы все-таки обновитесь до последней 5.2 и станете использовать опцию?. Не вижу смысла помогать вас с ошибками в старой версии.

Автор:  Cromeshnic [ 23 июл 2014, 12:08 ]
Заголовок сообщения:  Re: Поиск servid в preprocessAccountingRequest

madmax писал(а):
Ошибки лезут что ip адрес не найдет и по update потерянные сессии не создаются.


Вот ваше решение же:

Код:
#игнорировать отсутствие ip-адреса в update-пакете при создании сессии из апдейта
connection.start.fromUpdate.ignoreFramedIpLack=1


А по поводу коннектов, так вы его закрывайте в скрипте:
Код:
try{
 ...
}finally{
      ServerUtils.closeConnection(con);
}

Автор:  Cromeshnic [ 23 июл 2014, 12:10 ]
Заголовок сообщения:  Re: Поиск servid в preprocessAccountingRequest

Но такой скрипт как решение - ужасно неэффективно.
Лезть в базу в предобработке - ересь.
Изображение

Автор:  stark [ 23 июл 2014, 12:12 ]
Заголовок сообщения:  Re: Поиск servid в preprocessAccountingRequest

Cromeshnic писал(а):
madmax писал(а):
Ошибки лезут что ip адрес не найдет и по update потерянные сессии не создаются.


Вот ваше решение же:

Код:
#игнорировать отсутствие ip-адреса в update-пакете при создании сессии из апдейта
connection.start.fromUpdate.ignoreFramedIpLack=1



Да у них вот эта проблема
Цитата:
madmax писал(а):
а с какого времени появилась возможность
connection.start.fromUpdate.ignoreFramedIpLack=1
У нас обновления стоят от 23.07.2013 и мы с тех пор не обновлялись (все работает, да и web интерфейс переделывать нужно опять)

c 11.09.2013

Автор:  stark [ 23 июл 2014, 12:15 ]
Заголовок сообщения:  Re: Поиск servid в preprocessAccountingRequest

Я даже посмотрел что поменялось в web-интерфейсе 5.2 за этот период. Почти ничего, в основном Inet и tv. Да и то немного. В общем надуманная проблема. Я понимаю еще 6.0.

Автор:  madmax [ 23 июл 2014, 12:31 ]
Заголовок сообщения:  Re: Поиск servid в preprocessAccountingRequest

Да ладно вам ругаться, спасибо большое за помощь. Временное решение так как тестируем 6.1 чтобы переехать на него.
Просто сейчас обновим 5.2 до актуальной версии и как всегда повылазиет куча других проблем.
Скоро завершим тестирование и работу всех скриптов на версии 6.1 и сразу на него переключимся

Автор:  Cromeshnic [ 23 июл 2014, 12:42 ]
Заголовок сообщения:  Re: Поиск servid в preprocessAccountingRequest

А как так "переключимся"?
Без обновления что ли, на отдельный инстанс? Но там же базу надо и пр...
Если просто обновлять на 6.1, то я бы побоялся перепрыгивать через версию, да ещё со старой 5.2.

Автор:  stark [ 23 июл 2014, 12:55 ]
Заголовок сообщения:  Re: Поиск servid в preprocessAccountingRequest

Cromeshnic писал(а):
А как так "переключимся"?
Без обновления что ли, на отдельный инстанс? Но там же базу надо и пр...
Если просто обновлять на 6.1, то я бы побоялся перепрыгивать через версию, да ещё со старой 5.2.


Вообще можно перепрыгивать через версию, инструкция по обновлению это позволяет. И так делают. Между 6.0 и 5.2 не такие большие различие как, например, между 5.1 и 5.2, так как 6.0 это фактически ветка которая идет от 5.2. Я бы обновился бы перед переходом на последнюю 5.2 - это делать проще скорее всего. А потом уже можно и на 6.1 сразу. Обновляться с версии 5.2 годовалой давности - так скорее всего никто не пробовал еще.

Автор:  madmax [ 23 июл 2014, 14:38 ]
Заголовок сообщения:  Re: Поиск servid в preprocessAccountingRequest

Спасибо так и делаем на тестовой машине обновились до последней 5.2 и далее по инструкции на 6.1
Сейчас правим скрипты, веб морду и тестим все авторизации на модуле Inet

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