From 05f44fbea4440a9250c4711b055931bd1f86b2e6 Mon Sep 17 00:00:00 2001 From: Daniil Gentili Date: Mon, 5 Mar 2018 17:47:55 +0100 Subject: [PATCH] Interpret HTTP transport errors as MTProto errors --- socket.php | 2 +- src/danog/MadelineProto/Connection.php | 4 ++-- src/danog/MadelineProto/Server.php | 2 +- src/danog/MadelineProto/Server/Handler.php | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/socket.php b/socket.php index d0ffe04b..8c7c265f 100644 --- a/socket.php +++ b/socket.php @@ -2,5 +2,5 @@ require 'vendor/autoload.php'; -$handler = new \danog\MadelineProto\Server(['type' => AF_INET, 'protocol' => 0, 'address' => 'localhost', 'port' => 8009]); +$handler = new \danog\MadelineProto\Server(['type' => AF_INET, 'protocol' => 0, 'address' => 'localhost', 'port' => 8000, 'transport_protocol' => 'tcp_abridged']); $handler->start(); diff --git a/src/danog/MadelineProto/Connection.php b/src/danog/MadelineProto/Connection.php index 6e2f5bdd..3e78f321 100644 --- a/src/danog/MadelineProto/Connection.php +++ b/src/danog/MadelineProto/Connection.php @@ -305,8 +305,8 @@ class Connection $response = $this->read_http_payload(); if ($response['code'] !== 200) { Logger::log($response['body']); - - throw new Exception($response['description'], $response['code']); + return $this->pack_signed_int(-$response['code']); + //throw new Exception($response['description'], $response['code']); } $close = $response['protocol'] === 'HTTP/1.0'; if (isset($response['headers']['connection'])) { diff --git a/src/danog/MadelineProto/Server.php b/src/danog/MadelineProto/Server.php index 08dc88e1..4b40f8c5 100644 --- a/src/danog/MadelineProto/Server.php +++ b/src/danog/MadelineProto/Server.php @@ -63,7 +63,7 @@ class Server } elseif ($pid) { return $this->pids[] = $pid; } - $handler = new \danog\MadelineProto\Server\Handler($socket, 'tcp_abridged', null, null, null, null, null); + $handler = new \danog\MadelineProto\Server\Handler($socket, $this->settings['transport_protocol'], null, null, null, null, null); $handler->loop(); die; } diff --git a/src/danog/MadelineProto/Server/Handler.php b/src/danog/MadelineProto/Server/Handler.php index fd24677c..f63de4c3 100644 --- a/src/danog/MadelineProto/Server/Handler.php +++ b/src/danog/MadelineProto/Server/Handler.php @@ -89,7 +89,7 @@ class Handler extends \danog\MadelineProto\Connection } } - public function on_request($method, $args) + public function on_request($request_id, $method, $args) { if (count($method) === 0 || count($method) > 2) { throw new \danog\MadelineProto\Exception('Invalid method called');