/** * SrvRecord constructor. * * @param Node $node * @param int $ttl * @param int $priority * @param int $weight * @param int $port * @param string $target */ public function __construct(Node $node, int $ttl, int $priority, int $weight, int $port, string $target) { $this->priority = $priority; $this->weight = $weight; $this->port = $port; $this->target = $target; parent::__construct($node, eRecordType::SRV(), $ttl); }
/** * @internal * @param $name * @param $arguments * @return Record[] */ public function __call($name, $arguments) { try { $type = eRecordType::get(mb_strtoupper(str_replace('iterate', '', $name))); return $this->iterateRecords($type); } catch (InvalidArgumentException $e) { throw new BadMethodCallException("Method {$name} not found"); } }
/** * SoaRecord constructor. * * @param Node $node * @param int $ttl * @param string $mName * @param string $rName * @param int $serial * @param int $refresh * @param int $retry * @param int $expire * @param int $minimum */ public function __construct(Node $node, int $ttl, string $mName, string $rName, int $serial, int $refresh, int $retry, int $expire, int $minimum) { $this->mName = $mName; $this->rName = $rName; $this->serial = $serial; $this->refresh = $refresh; $this->retry = $retry; $this->expire = $expire; $this->minimum = $minimum; parent::__construct($node, eRecordType::SOA(), $ttl); }
/** * Append result of parsing dnsZone file in zone object * * @param Zone $zone * @param array $record result of parsing single record */ protected static function appendRecord(Zone $zone, $record) { $node_mame = $record['NAME']; $record_type = eRecordType::get($record['TYPE']); $record_ttl = $record['TTL']; $record_data = $record['RDATA']; $node = $zone->getNode($node_mame); $recordAppender = $node->getRecordAppender(); switch ($record_type) { case eRecordType::A: $recordAppender->appendARecord((string) $record_data['ADDRESS'], (int) $record_ttl); break; case eRecordType::AAAA: $recordAppender->appendAaaaRecord((string) $record_data['ADDRESS'], (int) $record_ttl); break; case eRecordType::CNAME: $recordAppender->appendCNameRecord((string) $record_data['CNAME'], (int) $record_ttl); break; case eRecordType::MX: $recordAppender->appendMxRecord((string) $record_data['PREFERENCE'], (string) $record_data['EXCHANGE'], (int) $record_ttl); break; case eRecordType::NS: $recordAppender->appendNsRecord((string) $record_data['NSDNAME'], (int) $record_ttl); break; case eRecordType::PTR: $recordAppender->appendPtrRecord((string) $record_data['PTRDNAME'], (int) $record_ttl); break; case eRecordType::SOA: $recordAppender->appendSoaRecord((string) $record_data['MNAME'], (string) $record_data['RNAME'], (int) $record_data['SERIAL'], (int) $record_data['REFRESH'], (int) $record_data['RETRY'], (int) $record_data['EXPIRE'], (int) $record_data['MINIMUM'], (int) $record_ttl); break; case eRecordType::SRV: $recordAppender->appendSrvRecord((int) $record_data['PRIORITY'], (int) $record_data['WEIGHT'], (int) $record_data['PORT'], (string) $record_data['TARGET'], (int) $record_ttl); break; case eRecordType::TXT: $recordAppender->appendTxtRecord((string) $record_data['TXTDATA'], (int) $record_ttl); break; } }
/** * CnameRecord constructor. * * @param Node $node * @param int $ttl * @param string $cname */ public function __construct(Node $node, $ttl, string $cname) { $this->cname = $cname; parent::__construct($node, eRecordType::CNAME(), $ttl); }
/** * ARecord constructor. * * @param Node $node * @param int $ttl * @param string $address */ public function __construct(Node $node, $ttl, string $address) { $this->address = $address; parent::__construct($node, eRecordType::AAAA(), $ttl); }
/** * PtrRecord constructor. * * @param Node $node * @param int $ttl * @param string $ptrDName */ public function __construct(Node $node, int $ttl, string $ptrDName) { $this->ptrDName = $ptrDName; parent::__construct($node, eRecordType::PTR(), $ttl); }
/** * NsRecord constructor. * * @param Node $node * @param int $ttl * @param string $nsdName */ public function __construct(Node $node, $ttl, string $nsdName) { $this->nsdName = $nsdName; parent::__construct($node, eRecordType::NS(), $ttl); }
/** * MxRecord constructor. * * @param Node $node * @param int $ttl * @param int $preference * @param string $exchange */ public function __construct(Node $node, $ttl, int $preference, string $exchange) { $this->preference = $preference; $this->exchange = $exchange; parent::__construct($node, eRecordType::MX(), $ttl); }