Добавление IP зоны в справочник.

Значение zone_id Комментарий
0
ID уже существующей в справочнике записи запись обновляется
ID несуществующий записи. Запись в справочник не добавляется, но список IP адресов - сохраняется в базе. Будьте осторожны.

Функции удаления записи из справочника нет.

XML

  <function name="rpcf_add_ipzone" id="0x2801">
    <input>
      <integer name="id" />
      <string name="name" />
      <integer name="count" />
      <for name="i" from="0" count="count">
        <ip_address name="net"  array_index="i" />
        <ip_address name="mask"  array_index="i" />
        <ip_address name="gateaway"  array_index="i" />
      </for>
    </input>
    <output>
      <integer name="id" />
    </output>
  </function>

PHP

   function rpcf_add_ipzone($zone_id, $zone_name, $subnets) { //0x2801
      $ret=array();
      if (!$this->connection->urfa_call(0x2801)) {
         print "Error calling function ". __FUNCTION__ ."\n";
         return FALSE;
      }
      $packet = $this->connection->getPacket();
      $packet->DataSetInt($zone_id);
      $packet->DataSetString($zone_name);
      $packet->DataSetInt(count($subnets)); # count
      foreach ($subnets as $val) {
         $packet->DataSetIPAddress($val['net']);
         $packet->DataSetIPAddress($val['mask']);
         $packet->DataSetIPAddress($val['gateway']);
      }
      $this->connection->urfa_send_param($packet);
      if ($x = $this->connection->urfa_get_data()) {
         $code=$x->DataGetInt(); #id
      }
      $this->connection->urfa_get_data();
 
      return $code;
   }