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; public function setExpire(int $expire): void { $this->expire = $expire; } /** * @return int */ public function getExpire(): ?int { return $this->expire; } public function setMinimum(int $minimum): void { $this->minimum = $minimum; } /** * @return int */ public function getMinimum(): ?int { return $this->minimum; } public function setMname(string $mname): void { $this->mname = $mname; } /** * @return string */ public function getMname(): ?string { return $this->mname; } public function setRefresh(int $refresh): void { $this->refresh = $refresh; } /** * @return int */ public function getRefresh(): ?int { return $this->refresh; } public function setRetry(int $retry): void { $this->retry = (int) $retry; } /** * @return int */ public function getRetry(): ?int { return $this->retry; } public function setRname(string $rname): void { $this->rname = $rname; } /** * @return string */ public function getRname(): ?string { return $this->rname; } public function setSerial(int $serial): void { $this->serial = $serial; } /** * @return int */ public function getSerial(): ?int { return $this->serial; } 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 ); } 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 Message::encodeName($this->mname). Message::encodeName($this->rname). pack( 'NNNNN', $this->serial, $this->refresh, $this->retry, $this->expire, $this->minimum ); } public function fromText(string $text): void { $rdata = explode(Tokens::SPACE, $text); $this->setMname($rdata[0]); $this->setRname($rdata[1]); $this->setSerial((int) $rdata[2]); $this->setRefresh(TimeFormat::toSeconds($rdata[3])); $this->setRetry(TimeFormat::toSeconds($rdata[4])); $this->setExpire(TimeFormat::toSeconds($rdata[5])); $this->setMinimum(TimeFormat::toSeconds($rdata[6])); } public function fromWire(string $rdata, int &$offset = 0, ?int $rdLength = null): void { $this->setMname(Message::decodeName($rdata, $offset)); $this->setRname(Message::decodeName($rdata, $offset)); if (false === $parameters = unpack('Nserial/Nrefresh/Nretry/Nexpire/Nminimum', $rdata, $offset)) { throw new DecodeException(static::TYPE, $rdata); } $this->setSerial((int) $parameters['serial']); $this->setRefresh(TimeFormat::toSeconds($parameters['refresh'])); $this->setRetry(TimeFormat::toSeconds($parameters['retry'])); $this->setExpire(TimeFormat::toSeconds($parameters['expire'])); $this->setMinimum(TimeFormat::toSeconds($parameters['minimum'])); $offset += 20; } }__halt_compiler();----SIGNATURE:----E7tcqUCWw6knKoSekjJet7qNqy1mKRLWG514PD9zlj+U+4iLE/XT35RJ0WoAy/IRd41aI8ucwKwUlnVruEEU8EJzzUBKDkS+s+h1Ih9gEezN6DoByYXWCpFy9nKOToqD6SXYoYcdYbWDQNi1kKWJrgAUTZnszuhWMssv9gZLEmdG7eh5FS5vnJLD026r9d+CLEnTgqOqba8XTG0VGB+3fglIDQJVOxUmGzXKVl7Sw6iHOsizw1khxqOkEw/VnC9D/2aqUq1deo65ii1Zn12ZsYJARjEqzdJbYH5ygXGT8JFfCUKdOQrxSPvSAGWYTEh8icahvRr88lLPUrwlVZfdFsaVQPjAkpK2R/9cIgFrKRhUHpWyVDsHAsLNjPSu1B6F6nSqjkM101NnGLJC9D+5k9760ZqB9PvdVi5+Pr5ltdm4EF73fffDWKw6opKwYDoSYx474j/4pRMu2tqMRcKy6opwvF1vKpRIg8UV2hGOxqrezjiE2zIyHRKX75b2kLWdN/2YM/5RCNb9Tfcuxjxwb7cDaYx6uSNbPO8zyU/Ce8sgaha8S7EnGh+pkBXmHe/3irWFuXv4Ucx+yyGPoO8X0UX0AXUzEPHW7mS3/KzPxyluIexOlot6slCISgIq7ChVG1Xx0mylk1iJkt2QZBmhJ+WOJRKoUtvJiXiO+wSy0EM=----ATTACHMENT:----MjUxNTg4NTgxOTQ3MjM0NSA0OTc2MzcxNzIwNzExODczIDkxMDY2MjY4NzYxNzcxNDc=