Одной из ключевых фич Inet для нас является возможность поднимать сессии из update-пакетов.
Это полезно в случае всяких накладок, когда на NAS-е сессия есть, а в биллинге - нет.
Но в Inet это не работает для update-пакетов без Framed-IP-Address:
Код:
radius 08-14/14:28:31 ERROR [rdsLstnr-p-8-t-1] InetRadiusProcessor - Session ip address not found in packet!
radius 08-14/14:28:42 ERROR [rdsLstnr-p-8-t-20] InetRadiusProcessor - Session ip address not found in packet!
radius 08-14/14:28:46 ERROR [rdsLstnr-p-8-t-26] InetRadiusProcessor - Session ip address not found in packet!
radius 08-14/14:28:46 ERROR [rdsLstnr-p-8-t-1] InetRadiusProcessor - Session ip address not found in packet!
radius 08-14/14:29:16 ERROR [rdsLstnr-p-8-t-20] InetRadiusProcessor - Session ip address not found in packet!
radius 08-14/14:29:16 ERROR [rdsLstnr-p-8-t-7] InetRadiusProcessor - Session ip address not found in packet!
radius 08-14/14:29:17 ERROR [rdsLstnr-p-8-t-14] InetRadiusProcessor - Session ip address not found in packet!
radius 08-14/14:29:36 ERROR [rdsLstnr-p-8-t-29] InetRadiusProcessor - Session ip address not found in packet!
radius 08-14/14:30:46 ERROR [rdsLstnr-p-8-t-16] InetRadiusProcessor - Session ip address not found in packet!
При это те же сессии спокойно создаются из Start-пакетов (тоже без IP-адреса) и нормально обрабатываются.
Похоже, это наследие модуля dialup:
Код:
if (parentConnection != null)
{
InetConnectionCallRuntime parentConnectionRuntime = parentConnection.getSession();
String serviceName = (String)request.getOption(SERVICE_NAME);
connection.setUsername(serviceName);
connection.setAgentDeviceId(parentConnectionRuntime.connection.getAgentDeviceId());
}
else
{
if (inetAddress != null)
{
connection.setInetAddressBytes(inetAddress.address);
}
else if (statusType != 1)
{
logger.error("Session ip address not found in packet!");
return null;
}
}
Зачем последний else?
Я думаю, его можно просто убрать и всё будет работать.
inet вер. 5.2 сборка 1213 от 24.07.2013 15:33:55