mirror of
https://github.com/danog/dns.git
synced 2024-11-30 04:29:06 +01:00
Add explanation comments
This commit is contained in:
parent
8dca65bcd4
commit
1a1427ce10
@ -337,10 +337,13 @@ final class BasicResolver implements Resolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private function getSocket($uri): Promise {
|
private function getSocket($uri): Promise {
|
||||||
|
// We use a new socket for each UDP request, as that increases the entropy and mitigates response forgery.
|
||||||
if (\substr($uri, 0, 3) === "udp") {
|
if (\substr($uri, 0, 3) === "udp") {
|
||||||
return UdpSocket::connect($uri);
|
return UdpSocket::connect($uri);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Over TCP we might reuse sockets if the server allows to keep them open. Sequence IDs in TCP are already
|
||||||
|
// better than a random port. Additionally, a TCP connection is more expensive.
|
||||||
if (isset($this->sockets[$uri])) {
|
if (isset($this->sockets[$uri])) {
|
||||||
return new Success($this->sockets[$uri]);
|
return new Success($this->sockets[$uri]);
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,7 @@ abstract class Socket {
|
|||||||
/** @var ResourceOutputStream */
|
/** @var ResourceOutputStream */
|
||||||
private $output;
|
private $output;
|
||||||
|
|
||||||
/** @var array */
|
/** @var array Contains already sent queries with no response yet. For UDP this is exactly zero or one item. */
|
||||||
private $pending = [];
|
private $pending = [];
|
||||||
|
|
||||||
/** @var MessageFactory */
|
/** @var MessageFactory */
|
||||||
@ -35,13 +35,13 @@ abstract class Socket {
|
|||||||
/** @var callable */
|
/** @var callable */
|
||||||
private $onResolve;
|
private $onResolve;
|
||||||
|
|
||||||
/** @var int */
|
/** @var int Used for determining whether the socket can be garbage collected, because it's inactive. */
|
||||||
private $lastActivity;
|
private $lastActivity;
|
||||||
|
|
||||||
/** @var bool */
|
/** @var bool */
|
||||||
private $receiving = false;
|
private $receiving = false;
|
||||||
|
|
||||||
/** @var array */
|
/** @var array Queued requests if the number of concurrent requests is too large. */
|
||||||
private $queue = [];
|
private $queue = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user