diff --git a/examples/combinedBot.php b/examples/combinedBot.php index 0bbd0bb5..676b8af4 100755 --- a/examples/combinedBot.php +++ b/examples/combinedBot.php @@ -60,7 +60,7 @@ class MyEventHandler extends EventHandler * * @param array $update Update * - * @return void + * @return \Generator */ public function onUpdateNewChannelMessage(array $update): \Generator { diff --git a/src/danog/MadelineProto/DataCenter.php b/src/danog/MadelineProto/DataCenter.php index d301f403..3d2a6656 100644 --- a/src/danog/MadelineProto/DataCenter.php +++ b/src/danog/MadelineProto/DataCenter.php @@ -98,13 +98,13 @@ class DataCenter /** * DNS over HTTPS client. * - * @var \Amp\DoH\Rfc8484StubResolver + * @var Rfc8484StubResolver|Rfc1035StubResolver */ private $DoHClient; /** * Non-proxied DNS over HTTPS client. * - * @var \Amp\DoH\Rfc8484StubResolver + * @var Rfc8484StubResolver|Rfc1035StubResolver */ private $nonProxiedDoHClient; /** @@ -233,13 +233,15 @@ class DataCenter $DoHHTTPClient = (new HttpClientBuilder())->interceptNetwork(new CookieInterceptor($this->CookieJar))->usingPool(new UnlimitedConnectionPool(new DefaultConnectionFactory(new ContextConnector($this, true))))->build(); $DoHConfig = new DoHConfig([new Nameserver('https://mozilla.cloudflare-dns.com/dns-query'), new Nameserver('https://dns.google/resolve')], $DoHHTTPClient); $nonProxiedDoHConfig = new DoHConfig([new Nameserver('https://mozilla.cloudflare-dns.com/dns-query'), new Nameserver('https://dns.google/resolve')]); - $this->DoHClient = Magic::$altervista || Magic::$zerowebhost ? new Rfc1035StubResolver() : new Rfc8484StubResolver($DoHConfig); - $this->nonProxiedDoHClient = Magic::$altervista || Magic::$zerowebhost ? new Rfc1035StubResolver() : new Rfc8484StubResolver($nonProxiedDoHConfig); + $this->DoHClient = Magic::$altervista || Magic::$zerowebhost || !$settings->getUseDoH() + ? new Rfc1035StubResolver() + : new Rfc8484StubResolver($DoHConfig); + $this->nonProxiedDoHClient = Magic::$altervista || Magic::$zerowebhost || !$settings->getUseDoH() + ? new Rfc1035StubResolver() + : new Rfc8484StubResolver($nonProxiedDoHConfig); $this->dnsConnector = new DnsConnector(new Rfc1035StubResolver()); - if (\class_exists(Rfc6455Connector::class)) { - $this->webSocketConnector = new Rfc6455Connector($this->HTTPClient); - } + $this->webSocketConnector = new Rfc6455Connector($this->HTTPClient); } $this->settings->applyChanges(); } diff --git a/src/danog/MadelineProto/Logger.php b/src/danog/MadelineProto/Logger.php index 830e4f6b..890d767f 100644 --- a/src/danog/MadelineProto/Logger.php +++ b/src/danog/MadelineProto/Logger.php @@ -82,7 +82,7 @@ class Logger /** * Default logger instance. * - * @var ?self + * @var self */ public static $default; /** diff --git a/src/danog/MadelineProto/Settings/Connection.php b/src/danog/MadelineProto/Settings/Connection.php index 9297d65c..8b831512 100644 --- a/src/danog/MadelineProto/Settings/Connection.php +++ b/src/danog/MadelineProto/Settings/Connection.php @@ -86,6 +86,11 @@ class Connection extends SettingsAbstract */ protected bool $retry = true; + /** + * Whether to use DNS over HTTPS. + */ + protected bool $useDoH = true; + /** * Subdomains of web.telegram.org for https protocol. */ @@ -594,4 +599,28 @@ class Connection extends SettingsAbstract return $this; } + + /** + * Get whether to use DNS over HTTPS. + * + * @return bool + */ + public function getUseDoH(): bool + { + return $this->useDoH; + } + + /** + * Set whether to use DNS over HTTPS. + * + * @param bool $useDoH Whether to use DNS over HTTPS + * + * @return self + */ + public function setUseDoH(bool $useDoH): self + { + $this->useDoH = $useDoH; + + return $this; + } }