diff --git a/src/danog/MadelineProto/DataCenter.php b/src/danog/MadelineProto/DataCenter.php index 4a5c58a9..a044f775 100644 --- a/src/danog/MadelineProto/DataCenter.php +++ b/src/danog/MadelineProto/DataCenter.php @@ -31,6 +31,8 @@ use Amp\Http\Client\Cookie\CookieJar; use Amp\Http\Client\Cookie\InMemoryCookieJar; use Amp\Http\Client\DelegateHttpClient; use Amp\Http\Client\HttpClientBuilder; +use Amp\Http\Client\Interceptor\ModifyRequest; +use Amp\Http\Client\Interceptor\RemoveRequestHeader; use Amp\Http\Client\Request; use Amp\Socket\ConnectContext; use Amp\Websocket\Client\Rfc6455Connector; diff --git a/src/danog/MadelineProto/Magic.php b/src/danog/MadelineProto/Magic.php index e95643d4..cc126555 100644 --- a/src/danog/MadelineProto/Magic.php +++ b/src/danog/MadelineProto/Magic.php @@ -180,7 +180,7 @@ class Magic $DohConfig = new DoHConfig( [ new Nameserver('https://mozilla.cloudflare-dns.com/dns-query'), - new Nameserver('https://google.com/resolve', Nameserver::GOOGLE_JSON, ["Host" => "dns.google.com"]), + new Nameserver('https://dns.google/resolve'), ] ); resolver(new Rfc8484StubResolver($DohConfig)); diff --git a/src/danog/MadelineProto/Stream/Transport/WsStream.php b/src/danog/MadelineProto/Stream/Transport/WsStream.php index 6f1c7e39..8f18d70d 100644 --- a/src/danog/MadelineProto/Stream/Transport/WsStream.php +++ b/src/danog/MadelineProto/Stream/Transport/WsStream.php @@ -20,6 +20,7 @@ namespace danog\MadelineProto\Stream\Transport; use Amp\Promise; use Amp\Socket\EncryptableSocket; +use Amp\Websocket\Client\Connector; use Amp\Websocket\Client\Handshake; use danog\MadelineProto\Stream\Async\RawStream; use danog\MadelineProto\Stream\ConnectionContext; @@ -67,8 +68,8 @@ class WsStream implements RawStreamInterface, ProxyStreamInterface { $this->dc = $ctx->getIntDc(); - $handshake = new Handshake(\str_replace('tcp://', $ctx->isSecure() ? 'ws://' : 'wss://', $ctx->getStringUri())); - + $handshake = new Handshake(\str_replace('tcp://', $ctx->isSecure() ? 'wss://' : 'ws://', $ctx->getStringUri())); + $this->stream = yield ($this->connector ?? connector())->connect($handshake, $ctx->getCancellationToken()); yield $this->write($header); @@ -96,7 +97,7 @@ class WsStream implements RawStreamInterface, ProxyStreamInterface $data = yield $this->message->buffer(); $this->message = null; } - } catch (\Exception $e) { + } catch (\Throwable $e) { if ($e->getReason() !== 'Client closed the underlying TCP connection') { throw $e; } @@ -129,7 +130,9 @@ class WsStream implements RawStreamInterface, ProxyStreamInterface } public function setExtra($extra) { - $this->connector = $extra; + if ($extra instanceof Connector) { + $this->connector = $extra; + } } public static function getName(): string