|
|
|
|
@ -13,23 +13,15 @@ use OCP\Http\Client\LocalServerException;
|
|
|
|
|
use Psr\Http\Message\RequestInterface;
|
|
|
|
|
|
|
|
|
|
class DnsPinMiddleware {
|
|
|
|
|
/** @var NegativeDnsCache */
|
|
|
|
|
private $negativeDnsCache;
|
|
|
|
|
private IpAddressClassifier $ipAddressClassifier;
|
|
|
|
|
|
|
|
|
|
public function __construct(
|
|
|
|
|
NegativeDnsCache $negativeDnsCache,
|
|
|
|
|
IpAddressClassifier $ipAddressClassifier,
|
|
|
|
|
private NegativeDnsCache $negativeDnsCache,
|
|
|
|
|
private IpAddressClassifier $ipAddressClassifier,
|
|
|
|
|
) {
|
|
|
|
|
$this->negativeDnsCache = $negativeDnsCache;
|
|
|
|
|
$this->ipAddressClassifier = $ipAddressClassifier;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Fetch soa record for a target
|
|
|
|
|
*
|
|
|
|
|
* @param string $target
|
|
|
|
|
* @return array|null
|
|
|
|
|
*/
|
|
|
|
|
private function soaRecord(string $target): ?array {
|
|
|
|
|
$labels = explode('.', $target);
|
|
|
|
|
@ -99,7 +91,7 @@ class DnsPinMiddleware {
|
|
|
|
|
return \dns_get_record($hostname, $type);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function addDnsPinning() {
|
|
|
|
|
public function addDnsPinning(): callable {
|
|
|
|
|
return function (callable $handler) {
|
|
|
|
|
return function (
|
|
|
|
|
RequestInterface $request,
|
|
|
|
|
@ -109,7 +101,7 @@ class DnsPinMiddleware {
|
|
|
|
|
return $handler($request, $options);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$hostName = (string)$request->getUri()->getHost();
|
|
|
|
|
$hostName = $request->getUri()->getHost();
|
|
|
|
|
$port = $request->getUri()->getPort();
|
|
|
|
|
|
|
|
|
|
$ports = [
|
|
|
|
|
|