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, использующий таблицы

Таки добавил ссылку на эту тему в вики. :roll:

Автор:  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/