utm5_urfaclient (rpcf_add_ipzone)
utm5_urfaclient (rpcf_add_ipzone)
Пробовал кто-нибудь добавлять ip-зоны? Не пойму как сделать чтобы при добавлении не удалялись предыдущие зоны.
Последний раз редактировалось Rav Сб апр 24, 2010 01:35, всего редактировалось 1 раз.
Делаю как показано ниже, но предыдущая зона удаляется.
add_ipzone.xml
/netup/utm5/bin/utm5_urfaclient -a add_ipzone -id 10 -net "10.3.10.0" -mask "255.255.255.0" -gateaway "10.3.10.254"
add_ipzone.xml
Код: Выделить всё
<?xml version="1.0"?>
<urfa>
<parameter name="id"/>
<parameter name="net"/>
<parameter name="mask"/>
<parameter name="gateaway"/>
<call function="rpcf_get_ipzone"/>
<for name="i" from="0" count="count">
<set src="net_array" src_index="i" dst="net"/>
<set src="mask_array" src_index="i" dst="mask"/>
<set src="gateaway_array" src_index="i" dst="gateaway"/>
</for>
<call function="rpcf_add_ipzone">
<parameter name="net"/>
<parameter name="mask"/>
<parameter name="gateaway"/>
</call>
</urfa>
Код: Выделить всё
Notice: Apr 21 14:49:54 UTM5 Config: Processing config file: /netup/utm5/utm5_urfaclient.cfg
Processing action: add_ipzone
<?xml version="1.0"?>
<urfa>
<session key="lalala123"/>
<call function="rpcf_get_ipzone">
<output>
<string name="name" value="TestZone"/>
<integer name="count" value="1"/>
<array name="i">
<item>
<ip_address name="net" value="10.3.10.0"/>
<ip_address name="mask" value="255.255.255.0"/>
<ip_address name="gateaway" value="10.3.10.254"/>
</item>
</array>
</output>
</call>
<call function="rpcf_add_ipzone">
<output>
<integer name="id" value="0"/>
</output>
</call>
</urfa>
непонятно что нужно сделать
если нужно сделать новую ipzone
то id в rpcf_add_ipzone нужно присвоить 0
если к текущей ipzone (10 в примере) нужно добавить набор адресов
то нужна скопировать что вернула rpcf_get_ipzone увеличить индекс и прописать дополнительные значения ip
и плохая идея делать входные параметры с теме же названиями
что переменные которые возвращает функция (net, mask .. )
непонятно переприсвоение <set src="gateaway_array" src_index="i" dst="gateaway"/>
зачем переменную gateaway_array(i) записывать в gateaway(0)
к томуже gateaway является параметром вызыва скрипта
где тут перепутан src и dst, и с индексами путаница
если нужно сделать новую ipzone
то id в rpcf_add_ipzone нужно присвоить 0
если к текущей ipzone (10 в примере) нужно добавить набор адресов
то нужна скопировать что вернула rpcf_get_ipzone увеличить индекс и прописать дополнительные значения ip
и плохая идея делать входные параметры с теме же названиями
что переменные которые возвращает функция (net, mask .. )
непонятно переприсвоение <set src="gateaway_array" src_index="i" dst="gateaway"/>
зачем переменную gateaway_array(i) записывать в gateaway(0)
к томуже gateaway является параметром вызыва скрипта
где тут перепутан src и dst, и с индексами путаница
Спасибо за критику и подсказки.
Вот так нормально?
add_ipzone.xml
Вот так нормально?
add_ipzone.xml
Код: Выделить всё
<?xml version="1.0"?>
<urfa>
<parameter name="my_id"/>
<parameter name="my_net"/>
<parameter name="my_mask"/>
<parameter name="my_gateaway"/>
<parameter name="my_name" comment="New ip-zone name."/>
<!-- Add to exist ip-zone -->
<if variable="my_id" value="0" condition="ne">
<set src="my_id" dst="id"/>
<call function="rpcf_get_ipzone"/>
<if variable="count" value="0" condition="ne">
<set src="my_net" dst="net" dst_index="count"/>
<set src="my_mask" dst="mask" dst_index="count"/>
<set src="my_gateaway" dst="gateaway" dst_index="count"/>
<set value="size(net)" dst="count"/>
<call function="rpcf_add_ipzone"/>
</if>
<if variable="count" value="0" condition="eq">
<error comment="my_id does not exist"/>
</if>
</if>
<!-- End add to exists ip-zone -->
<!-- Add new ip-zone -->
<if variable="my_id" value="0" condition="eq">
<set src="my_id" dst="id"/>
<set src="my_net" dst="net"/>
<set src="my_mask" dst="mask"/>
<set src="my_gateaway" dst="gateaway"/>
<set src="my_name" dst="name"/>
<set value="1" dst="count"/>
<call function="rpcf_add_ipzone"/>
</if>
<!-- End add new ip-zone -->
</urfa>