forum.bitel.ru http://forum.bitel.ru/ |
|
FreeBSD Manad, использующий таблицы http://forum.bitel.ru/viewtopic.php?f=7&t=4820 |
Страница 2 из 2 |
Автор: | vdd [ 01 дек 2010, 15:24 ] |
Заголовок сообщения: | Re: FreeBSD Manad, использующий таблицы |
borisk писал(а): Если хранить только номера договоров, нельзя отследить смену правил в тарифе. Ну то есть фактически на текущий момент я использовал приведенный на wiki вариант, с заточкой исключительно под свои нужды. Свой будете опубликовывать? |
Автор: | vdd [ 28 июн 2011, 17:01 ] |
Заголовок сообщения: | Re: FreeBSD Manad, использующий таблицы |
Таки добавил ссылку на эту тему в вики. |
Автор: | stark [ 25 дек 2013, 13:15 ] |
Заголовок сообщения: | Re: FreeBSD Manad, использующий таблицы |
borisk писал(а): Вопрос актуальности я, для себя, вижу так: с периодичностью N минут таблицы сохраняются в файлы, при старте manad их подгружает. Возможна небольшая потеря актуальности. Другой вариант вообще без потерь - слегка модернизируем скрипт манада, и после каждого изменения конфигурации он сбрасывает содержимое таблиц в файлы. В связи с проектированием аналога manad для inet, перечитал эту тему. Вопрос - а зачем вообще нужна актуальность в Маnad . Можно же сделать чтобы он при старте просто очищал все, а потом задача проверки шлюзов открывала все нужные договора. Для inet вижу похожий алгоритм, только нужно сделать аналог ru.bitel.bgbilling.modules.inet.dyn.device.snmp.SnmpDeviceManager, который определит перезагрузку manad и вызовет для каждого сервиса serviceCancel/serviceCreate |
Автор: | stark [ 21 авг 2014, 17:35 ] |
Заголовок сообщения: | Re: FreeBSD Manad, использующий таблицы |
Проблема вот в этом коде Код: ib=rule.indexOf("[CLOSE]")+8; ie=rule.indexOf("[/CLOSE]")-1; Тут нужно, не 8, а 7 прибавлять. в общем случае между [CLOSE] и [/CLOSE] может ничего не быть например Код: [CLOSE] <LOOP> table 23 delete {A} table 24 delete {A} table 51 add {A} </LOOP> <LOOP_NET> table 23 delete {IP}/{MASK_BIT} table 24 delete {IP}/{MASK_BIT} table 51 add {IP}/{MASK_BIT} </LOOP_NET> [/CLOSE] если не добавлено ни одного ip или сети на договор, то это команды схлопнутся. А аналогично и для [OPEN]. Тут бы лучше взяли код как тут. Что-то вроде этого Код: import java.util.Pattern;
import java.util.Matcher; .... Pattern pattern = Pattern.compile( "\\[CLOSE\\](.*)\\[/CLOSE\\]", Pattern.DOTALL ); Matcher m = pattern.matcher( rule ); if (m.find()) { rule = m.group( 1 ); } |
Страница 2 из 2 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |