forum.bitel.ru http://forum.bitel.ru/ |
|
пустой ip в скрипте поведения для 691 ошибки http://forum.bitel.ru/viewtopic.php?f=5&t=2339 |
Страница 1 из 1 |
Автор: | neo100 [ 22 май 2009, 20:50 ] |
Заголовок сообщения: | пустой ip в скрипте поведения для 691 ошибки |
Доброго времени суток! Помогите, пожалуйста, разобраться! Вот мой скрипт предобработки: ----------------------------------------------------------------------- import bitel.billing.server.call.bean.Login; import bitel.billing.server.radius.*; import bitel.billing.server.contract.bean.*; import bitel.billing.server.script.event.*; import java.util.*; // event.getRequest|getResponse|getLogin|getContract|getErrorCode login = event.getLogin(); // Ищем пользователя и IP, привязанный к нему в таблице // "radius_pair_ip_x", где "x" код модуля Dialup. ps = con.prepareStatement( "SELECT ip FROM radius_pair_ip_1 WHERE id=?" ); ps.setInt( 1, login.getId() ); rs = ps.executeQuery(); login_ip = 0; while( rs.next() ) login_ip = rs.getInt( 1 ); errCode = event.getErrorCode(); // Если логину не присвоен IP-адрес, то даем AUTH_REJECT. if( login_ip == 0 ) { print("ip was not found!"); errCode = 2; response = event.getResponse(); response.setPacketType( RadiusPacket.AUTHENTICATION_REJECT ); } // 0 - нет ошибки, 2 - ошибка ввода пароля. if( errCode != 0 && errCode != 2 ) { response = event.getResponse(); response.setPacketType( RadiusPacket.AUTHENTICATION_ACCEPT ); // Готовим аттрибуты на отдачу // Service-Type = 2 raSt = new RadiusAttribute( 6 ); raSt.setIntValue( 2 ); // Framed-Protocol = 1 raFp = new RadiusAttribute( 7 ); raFp.setIntValue( 1 ); // Framed-IP-Address raIp = new RadiusAttribute( 8 ); raIp.setIntValue( login_ip ); // Session-Timeout = 900 (15 min) raStm = new RadiusAttribute( 27 ); raStm.setIntValue( 900 ); // Ascend-Client-Primary-DNS (192.168.0.3 или 3232235523 в DEC) //rvaDNS = new RadiusVendorAttribute( 529, 135 ); //rvaDNS.setIntValue( 0 ); // Cisco-AV-Pair, устанавливаем WCCP-редирект на интерфейс rva = new RadiusVendorAttribute( 9, 1 ); rva.setStringValue( "lcp:interface-config=ip wccp web-cache redirect in" ); // Cisco-AV-Pair, Устанавливаем access-list 155 на интерфейс rvaAcc = new RadiusVendorAttribute( 9, 1 ); rvaAcc.setStringValue( "ip:inacl=155" ); response.addAttribute( raStm ); response.addAttribute( raSt ); response.addAttribute( raFp ); response.addAttribute( raIp ); //response.addVendorAttribute( rvaDNS ); response.addVendorAttribute( rva ); response.addVendorAttribute( rvaAcc ); } // Пишем в специальную табличку текущий код ошибки, кроме Password Error, // для дальнейшего вывода на специальной информационной страничке. if( errCode != 2 ) { ps = con.prepareStatement( "SELECT ip FROM dialup_conn_error WHERE ip=?" ); ps.setInt( 1, login_ip ); rs = ps.executeQuery(); found = false; while( rs.next() ) found = true; if( found ) ps = con.prepareStatement( "UPDATE dialup_conn_error SET error_code=? WHERE ip=?" ); else ps = con.prepareStatement( "INSERT INTO dialup_conn_error(error_code,ip) VALUES(?,?)" ); ps.setInt( 1, errCode ); ps.setInt( 2, login_ip ); ps.executeUpdate(); } ----------------------------------------------------------------------- Соединяюсь... не пускает! Смотрю логи: ----------------------------------------------------------------------- GENERATE_TIME: 22.05.09 19:25:57 EXECUTION_STOP_TIME: 22.05.09 19:25:57 PROCESS_TIME: 20 OUT: ip was not found! ERROR: EXCEPTIONS: WARNINGS: ----------------------------------------------------------------------- Так... раз "ip was not found!" значит не пускает кусок: // Если логину не присвоен IP-адрес, то даем AUTH_REJECT. if( login_ip == 0 ) { print("ip was not found!"); errCode = 2; response = event.getResponse(); response.setPacketType( RadiusPacket.AUTHENTICATION_REJECT ); } меняю его на: if( login_ip == 0 ) { print("ip was not found!"); // errCode = 2; // response = event.getResponse(); // response.setPacketType( RadiusPacket.AUTHENTICATION_REJECT ); } Соединяюсь... OK! И IP прекрасно соединению назначился! Значит IP у соединения есть? Почему же его тогда не видит скрипт? Адреса назначаю на циске так: int virtual-template 3 .... peer default ip address pool bitel-pool Код модуля диалап у меня 1 - все верно.... В чем же дело? |
Автор: | neo100 [ 25 май 2009, 15:43 ] |
Заголовок сообщения: | |
Спасибо! Теперь все ясно ![]() |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |