Skip to content

Commit 54592ba

Browse files
authored
Merge pull request #28 from purplepixie/rcode
RCode handling and return
2 parents 92c3b3f + 557d065 commit 54592ba

2 files changed

Lines changed: 35 additions & 0 deletions

File tree

src/PurplePixie/PhpDns/DNSAnswer.php

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ class DNSAnswer implements \Countable, \Iterator
2929
*/
3030
private array $results = array();
3131

32+
private int $rcode = -1;
33+
3234
public function addResult(DNSResult $result)
3335
{
3436
$this->results[] = $result;
@@ -81,4 +83,35 @@ public function rewind(): void
8183
{
8284
reset($this->results);
8385
}
86+
87+
/**
88+
* rcode getter and setter
89+
*/
90+
public function getRcode(): int
91+
{
92+
return $this->rcode;
93+
}
94+
95+
public function getRcodeDescription(): string // from RFC 1035
96+
{
97+
switch($this->rcode)
98+
{
99+
case -1: return "Untested"; // untested (default initialised value i.e. no response)
100+
101+
case 0: return "No error condition"; // ok
102+
case 1: return "Format error"; // format error
103+
case 2: return "Server failure"; // server failure
104+
case 3: return "Name error"; // name error
105+
case 4: return "Not implemented"; // not implemented
106+
case 5: return "Refused"; // refused
107+
108+
default:
109+
return "Unknown"; // unknown/undefined error code
110+
}
111+
}
112+
113+
public function setRcode(int $value): void
114+
{
115+
$this->rcode = $value;
116+
}
84117
}

src/PurplePixie/PhpDns/DNSQuery.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,8 @@ public function query(string $question, string $typeName = DNSTypes::NAME_A)
534534

535535
$dns_answer = new DNSAnswer();
536536

537+
$dns_answer->setRcode($rcode);
538+
537539

538540
// Deal with the header question data
539541
if ($this->header['qdcount'] > 0) {

0 commit comments

Comments
 (0)