From 0544ad73207e61f0d2a32ef21676f355dd4a7c42 Mon Sep 17 00:00:00 2001 From: Daniil Gentili Date: Wed, 12 Jun 2019 22:18:53 +0200 Subject: [PATCH] HTTP proxy bugfix --- src/danog/MadelineProto/Stream/Proxy/HttpProxy.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/danog/MadelineProto/Stream/Proxy/HttpProxy.php b/src/danog/MadelineProto/Stream/Proxy/HttpProxy.php index 0a63cce8..e4e8b9a2 100644 --- a/src/danog/MadelineProto/Stream/Proxy/HttpProxy.php +++ b/src/danog/MadelineProto/Stream/Proxy/HttpProxy.php @@ -53,8 +53,11 @@ class HttpProxy implements RawProxyStreamInterface, BufferedProxyStreamInterface $address = $uri->getHost(); $port = $uri->getPort(); - if (strlen(inet_pton($address)) === 16) { - $address = '['.$address.']'; + try { + if (strlen(inet_pton($address) === 16)) { + $address = '['.$address.']'; + } + } catch (\danog\MadelineProto\Exception $e) { } yield $this->stream->write("CONNECT $address:$port HTTP/1.1\r\nHost: $address:$port\r\nAccept: */*\r\n".$this->getProxyAuthHeader()."Connection: keep-Alive\r\n\r\n"); @@ -121,11 +124,11 @@ class HttpProxy implements RawProxyStreamInterface, BufferedProxyStreamInterface $length = (int) $headers['content-length']; $read = yield $buffer->bufferRead($length); } - \danog\MadelineProto\Logger::log('Connected to '.$address.':'.$port.' via http'); if ($secure && method_exists($this->getSocket(), 'enableCrypto')) { yield $this->getSocket()->enableCrypto((new ClientTlsContext())->withPeerName($uri->getHost())); } + \danog\MadelineProto\Logger::log('Connected to '.$address.':'.$port.' via http'); if (strlen($header)) { yield (yield $this->stream->getWriteBuffer(strlen($header)))->bufferWrite($header);