Catch DNS Query that fail unpack()
This commit is contained in:
parent
612efda945
commit
b7c1c97cf7
@ -32,7 +32,8 @@ final class Query
|
||||
'arcount' => [0x05,'n',1], // Resource Records in the addition records section
|
||||
];
|
||||
|
||||
public function __construct(string $buf) {
|
||||
public function __construct(string $buf)
|
||||
{
|
||||
$this->buf = $buf;
|
||||
$rx_ptr = 0;
|
||||
|
||||
@ -54,7 +55,15 @@ final class Query
|
||||
}
|
||||
|
||||
// Get the query type/class
|
||||
$result = unpack('ntype/nclass',substr($this->buf,$rx_ptr,4));
|
||||
try {
|
||||
$result = unpack('ntype/nclass',substr($this->buf,$rx_ptr,4));
|
||||
|
||||
} catch (\Exception $e) {
|
||||
Log::error(sprintf('%s:! Unpack failed: Buffer: [%s] (%d), RXPTR [%d]',self::LOGKEY,hex_dump($this->buf),strlen($this->buf),$rx_ptr));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$rx_ptr += 4;
|
||||
$this->type = $result['type'];
|
||||
$this->class = $result['class'];
|
||||
@ -96,7 +105,8 @@ final class Query
|
||||
}
|
||||
}
|
||||
|
||||
public static function header_len() {
|
||||
public static function header_len()
|
||||
{
|
||||
return collect(self::header)->sum(function($item) { return $item[2]*2; });
|
||||
}
|
||||
|
||||
|
@ -320,7 +320,7 @@ final class SocketClient {
|
||||
}
|
||||
|
||||
} catch (\Exception $e) {
|
||||
Log::error(sprintf('%s: - socket_recv Exception [%s]',self::LOGKEY,$e->getMessage()));
|
||||
Log::error(sprintf('%s:! socket_recv Exception [%s]',self::LOGKEY,$e->getMessage()));
|
||||
|
||||
throw new SocketException($x=socket_last_error($this->connection),socket_strerror($x));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user