utm5_urfaclient (rpcf_add_ipzone)

Технические вопросы по UTM 5.0
Ответить
Rav
Сообщения: 70
Зарегистрирован: Пт июн 29, 2007 17:02

utm5_urfaclient (rpcf_add_ipzone)

Сообщение Rav »

Пробовал кто-нибудь добавлять ip-зоны? Не пойму как сделать чтобы при добавлении не удалялись предыдущие зоны.
Последний раз редактировалось Rav Сб апр 24, 2010 01:35, всего редактировалось 1 раз.

Rav
Сообщения: 70
Зарегистрирован: Пт июн 29, 2007 17:02

Сообщение Rav »

Делаю как показано ниже, но предыдущая зона удаляется.

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>
/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"

Код: Выделить всё

 Notice&#58; Apr 21 14&#58;49&#58;54 UTM5 Config&#58; Processing config file&#58; /netup/utm5/utm5_urfaclient.cfg
Processing action&#58; 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>

Gcs2
Сообщения: 3
Зарегистрирован: Вт май 11, 2010 18:36

Сообщение Gcs2 »

непонятно что нужно сделать
если нужно сделать новую 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, и с индексами путаница

Rav
Сообщения: 70
Зарегистрирован: Пт июн 29, 2007 17:02

Сообщение Rav »

Спасибо за критику и подсказки.

Вот так нормально?

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&#40;net&#41;" 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>

Ответить