Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 0 additions & 73 deletions src/Config/FilesystemFactory.php

This file was deleted.

5 changes: 0 additions & 5 deletions src/Model/HeaderBag.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,6 @@ class HeaderBag
'rcode' => Message::RCODE_OK,
);

/**
* @deprecated unused, exists for BC only
*/
public $data = '';

public function get($name)
{
return isset($this->attributes[$name]) ? $this->attributes[$name] : null;
Expand Down
29 changes: 8 additions & 21 deletions src/Model/Message.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public static function createRequestForQuery(Query $query)
$request = new Message();
$request->header->set('id', self::generateId());
$request->header->set('rd', 1);
$request->questions[] = (array) $query;
$request->questions[] = $query;
$request->prepare();

return $request;
Expand All @@ -63,7 +63,7 @@ public static function createResponseWithAnswersForQuery(Query $query, array $an
$response->header->set('rd', 1);
$response->header->set('rcode', Message::RCODE_OK);

$response->questions[] = (array) $query;
$response->questions[] = $query;

foreach ($answers as $record) {
$response->answers[] = $record;
Expand Down Expand Up @@ -106,22 +106,19 @@ private static function generateId()
public $header;

/**
* This should be an array of Query objects. For BC reasons, this currently
* references a nested array with a structure that results from casting the
* Query objects to an array:
* An array of Query objects
*
* ```php
* $questions = array(
* array(
* 'name' => 'reactphp.org',
* 'type' => Message::TYPE_A,
* 'class' => Message::CLASS_IN
* new Query(
* 'reactphp.org',
* Message::TYPE_A,
* Message::CLASS_IN
* )
* );
* ```
*
* @var array
* @see Query
* @var Query[]
*/
public $questions = array();

Expand All @@ -140,16 +137,6 @@ private static function generateId()
*/
public $additional = array();

/**
* @deprecated still used internally for BC reasons, should not be used externally.
*/
public $data = '';

/**
* @deprecated still used internally for BC reasons, should not be used externally.
*/
public $consumed = 0;

public function __construct()
{
$this->header = new HeaderBag();
Expand Down
9 changes: 5 additions & 4 deletions src/Protocol/BinaryDumper.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
use React\Dns\Model\HeaderBag;
use React\Dns\Model\Message;
use React\Dns\Model\Record;
use React\Dns\Query\Query;

class BinaryDumper
{
Expand All @@ -26,7 +27,7 @@ public function toBinary(Message $message)
}

/**
* @param HeaderBag $header
* @param Message $message
* @return string
*/
private function headerToBinary(HeaderBag $header)
Expand Down Expand Up @@ -56,16 +57,16 @@ private function headerToBinary(HeaderBag $header)
}

/**
* @param array $questions
* @param Query[] $questions
* @return string
*/
private function questionToBinary(array $questions)
{
$data = '';

foreach ($questions as $question) {
$data .= $this->domainNameToBinary($question['name']);
$data .= pack('n*', $question['type'], $question['class']);
$data .= $this->domainNameToBinary($question->name);
$data .= pack('n*', $question->type, $question->class);
}

return $data;
Expand Down
109 changes: 13 additions & 96 deletions src/Protocol/Parser.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use React\Dns\Model\Message;
use React\Dns\Model\Record;
use React\Dns\Query\Query;
use InvalidArgumentException;

/**
Expand All @@ -22,27 +23,22 @@ class Parser
*/
public function parseMessage($data)
{
// create empty message with two additional, temporary properties for parser
$message = new Message();
$message->data = $data;
$message->consumed = null;

if ($this->parse($data, $message) !== $message) {
throw new InvalidArgumentException('Unable to parse binary message');
}

return $message;
}
unset($message->data, $message->consumed);

/**
* @deprecated unused, exists for BC only
* @codeCoverageIgnore
*/
public function parseChunk($data, Message $message)
{
return $this->parse($data, $message);
return $message;
}

private function parse($data, Message $message)
{
$message->data .= $data;

if (!$message->header->get('id')) {
if (!$this->parseHeader($message)) {
return;
Expand Down Expand Up @@ -88,7 +84,7 @@ private function parse($data, Message $message)
return $message;
}

public function parseHeader(Message $message)
private function parseHeader(Message $message)
{
if (!isset($message->data[12 - 1])) {
return;
Expand Down Expand Up @@ -118,7 +114,7 @@ public function parseHeader(Message $message)
return $message;
}

public function parseQuestion(Message $message)
private function parseQuestion(Message $message)
{
$consumed = $message->consumed;

Expand All @@ -133,10 +129,10 @@ public function parseQuestion(Message $message)

$message->consumed = $consumed;

$message->questions[] = array(
'name' => implode('.', $labels),
'type' => $type,
'class' => $class,
$message->questions[] = new Query(
implode('.', $labels),
$type,
$class
);

if ($message->header->get('qdCount') != count($message->questions)) {
Expand All @@ -146,30 +142,6 @@ public function parseQuestion(Message $message)
return $message;
}

/**
* recursively parse all answers from the message data into message answer records
*
* @param Message $message
* @return ?Message returns the updated message on success or null if the data is invalid/incomplete
* @deprecated unused, exists for BC only
* @codeCoverageIgnore
*/
public function parseAnswer(Message $message)
{
$record = $this->parseRecord($message);
if ($record === null) {
return null;
}

$message->answers[] = $record;

if ($message->header->get('anCount') != count($message->answers)) {
return $this->parseAnswer($message);
}

return $message;
}

/**
* @param Message $message
* @return ?Record returns parsed Record on success or null if data is invalid/incomplete
Expand Down Expand Up @@ -337,59 +309,4 @@ private function readLabels($data, $consumed)

return array($labels, $consumed);
}

/**
* @deprecated unused, exists for BC only
* @codeCoverageIgnore
*/
public function isEndOfLabels($data, $consumed)
{
$length = ord(substr($data, $consumed, 1));
return 0 === $length;
}

/**
* @deprecated unused, exists for BC only
* @codeCoverageIgnore
*/
public function getCompressedLabel($data, $consumed)
{
list($nameOffset, $consumed) = $this->getCompressedLabelOffset($data, $consumed);
list($labels) = $this->readLabels($data, $nameOffset);

return array($labels, $consumed);
}

/**
* @deprecated unused, exists for BC only
* @codeCoverageIgnore
*/
public function isCompressedLabel($data, $consumed)
{
$mask = 0xc000; // 1100000000000000
list($peek) = array_values(unpack('n', substr($data, $consumed, 2)));

return (bool) ($peek & $mask);
}

/**
* @deprecated unused, exists for BC only
* @codeCoverageIgnore
*/
public function getCompressedLabelOffset($data, $consumed)
{
$mask = 0x3fff; // 0011111111111111
list($peek) = array_values(unpack('n', substr($data, $consumed, 2)));

return array($peek & $mask, $consumed + 2);
}

/**
* @deprecated unused, exists for BC only
* @codeCoverageIgnore
*/
public function signedLongToUnsignedLong($i)
{
return $i & 0x80000000 ? $i - 0xffffffff : $i;
}
}
Loading