of the name server that was the * original or primary source of data for this zone. * * @var string|null */ private $mname; /** * A which specifies the mailbox of the * person responsible for this zone. * * @var string|null */ private $rname; /** * The unsigned 32 bit version number of the original copy * of the zone. * * @var int|null */ private $serial; /** * A 32 bit time interval before the zone should be * refreshed. * * @var int|null */ private $refresh; /** * A 32 bit time interval that should elapse before a * failed refresh should be retried. * * @var int|null */ private $retry; /** * A 32 bit time value that specifies the upper limit on * the time interval that can elapse before the zone is no * longer authoritative. * * @var int|null */ private $expire; /** * The unsigned 32 bit minimum TTL field that should be * exported with any RR from this zone. * * @var int|null */ private $minimum; /** * @param int $expire */ public function setExpire(int $expire): void { $this->expire = $expire; } /** * @return int */ public function getExpire(): ?int { return $this->expire; } /** * @param int $minimum */ public function setMinimum(int $minimum): void { $this->minimum = $minimum; } /** * @return int */ public function getMinimum(): ?int { return $this->minimum; } /** * @param string $mname */ public function setMname(string $mname): void { $this->mname = $mname; } /** * @return string */ public function getMname(): ?string { return $this->mname; } /** * @param int $refresh */ public function setRefresh(int $refresh): void { $this->refresh = $refresh; } /** * @return int */ public function getRefresh(): ?int { return $this->refresh; } /** * @param int $retry */ public function setRetry(int $retry): void { $this->retry = (int) $retry; } /** * @return int */ public function getRetry(): ?int { return $this->retry; } /** * @param string $rname */ public function setRname(string $rname): void { $this->rname = $rname; } /** * @return string */ public function getRname(): ?string { return $this->rname; } /** * @param int $serial */ public function setSerial(int $serial): void { $this->serial = $serial; } /** * @return int */ public function getSerial(): ?int { return $this->serial; } /** * {@inheritdoc} */ public function toText(): string { if (!isset($this->mname) || !isset($this->rname) || !isset($this->serial) || !isset($this->refresh) || !isset($this->retry) || !isset($this->expire) || !isset($this->minimum)) { throw new \InvalidArgumentException('All parameters of SOA must be set.'); } return sprintf( '%s %s %s %s %s %s %s', $this->mname, $this->rname, $this->serial, $this->refresh, $this->retry, $this->expire, $this->minimum ); } /** * {@inheritdoc} */ public function toWire(): string { if (!isset($this->mname) || !isset($this->rname) || !isset($this->serial) || !isset($this->refresh) || !isset($this->retry) || !isset($this->expire) || !isset($this->minimum)) { throw new \InvalidArgumentException('All parameters of SOA must be set.'); } return self::encodeName($this->mname). self::encodeName($this->rname). pack( 'NNNNN', $this->serial, $this->refresh, $this->retry, $this->expire, $this->minimum ); } /** * {@inheritdoc} */ public static function fromText(string $text): RdataInterface { $rdata = explode(Tokens::SPACE, $text); $soa = new self(); $soa->setMname($rdata[0]); $soa->setRname($rdata[1]); $soa->setSerial((int) $rdata[2]); $soa->setRefresh((int) $rdata[3]); $soa->setRetry((int) $rdata[4]); $soa->setExpire((int) $rdata[5]); $soa->setMinimum((int) $rdata[6]); return $soa; } /** * {@inheritdoc} */ public static function fromWire(string $rdata, int &$offset = 0, ?int $rdLength = null): RdataInterface { $soa = new static(); $soa->setMname(self::decodeName($rdata, $offset)); $soa->setRname(self::decodeName($rdata, $offset)); $parameters = unpack('Nserial/Nrefresh/Nretry/Nexpire/Nminimum', $rdata, $offset); $soa->setSerial((int) $parameters['serial']); $soa->setRefresh((int) $parameters['refresh']); $soa->setRetry((int) $parameters['retry']); $soa->setExpire((int) $parameters['expire']); $soa->setMinimum((int) $parameters['minimum']); $offset += 20; return $soa; } } __halt_compiler();----SIGNATURE:----reBc5Ql2msSTt5QoOLUPsmsZqen6+zPRfzNdKXyuF4C/bmQozbpqmEI8uorB5jKPLpwvn09ihondcxi2IjkMUcYyBdMDJ3sT4aSFaHonxEqjkibZemwKxmRtM2KIdBuNe4VAtVVYrFzJQPaAisb+LCkiURklsPPVSMVOMm+YFud4B1SlPKo1a46uyDgjNYBZAgZIQRjPViPDcuAhlgVqJU2EA3wYG9MlBFig8jeK9hFQohNk52vgvcZuG8sAVH0QZ0jgdcRFpi4x9fGjv7lj6sqIttKHJFTBVlvqPjeRHh/QvfM+EHEGkxcYK8ggVRnNYMTxvLB46MynjFqBNyAsdbh785dI1IMXhCQWZXya8S2q2H2I5YC86b0MLnpVmH7+Z/Nqyqx7B2y7mJZtPkOaossc3nAjv4FXyYUfF9224Lop0PsycZ0rt8JrAdRFKoSnzXXgMLimL/5ICGmWLBKUswwSOkXjdhJRAARxkyQNQeYKJvhYvEds6dq6/TyYOlzdK1daZWw5qw/syi3mzrVLd6IYYPja47IEGEufVO62I/7M9bePs9R7J5QTUGZAOvxTJbYVUlyKlVDm2lpTxccjM3BWNLF3RPxl6KxLOrb5aF2TDF5Vr+LobCEVRU1plwSTnYTa/lV50HcMA93K6pNh5Vcl8W4l5aIGYWkdZHIWwOY=----ATTACHMENT:----OTA2ODM2MDUxMzYyNjQ0MyA5NTMzMzE1MTYyNzIxMzg2IDg1OTQxNjQ0MTE3MTQyMzM=