diff --git a/src/danog/MadelineProto/AbstractAPIFactory.php b/src/danog/MadelineProto/AbstractAPIFactory.php index 2a8df9cc..ba8e5e99 100644 --- a/src/danog/MadelineProto/AbstractAPIFactory.php +++ b/src/danog/MadelineProto/AbstractAPIFactory.php @@ -32,14 +32,6 @@ abstract class AbstractAPIFactory extends AsyncConstruct * @var string */ private string $namespace = ''; - /** - * MTProto instance. - * - * @internal - * - * @var MTProto|Client - */ - public $API; /** * Whether lua is being used. * @@ -95,7 +87,6 @@ abstract class AbstractAPIFactory extends AsyncConstruct */ protected static function link(self $a, self $b): void { - $a->API =& $b->API; $a->lua =& $b->lua; $a->async =& $b->async; $a->methods =& $b->methods; @@ -187,7 +178,7 @@ abstract class AbstractAPIFactory extends AsyncConstruct $aargs = isset($arguments[1]) && \is_array($arguments[1]) ? $arguments[1] : []; $aargs['apifactory'] = true; $args = isset($arguments[0]) && \is_array($arguments[0]) ? $arguments[0] : []; - return yield from $this->API->methodCallAsyncRead($name, $args, $aargs); + return yield from $this->mainAPI->API->methodCallAsyncRead($name, $args, $aargs); } if ($lower_name === 'seteventhandler' || ($lower_name === 'loop' && !isset($arguments[0])) diff --git a/src/danog/MadelineProto/Ipc/Runner/ProcessRunner.php b/src/danog/MadelineProto/Ipc/Runner/ProcessRunner.php index 665d9a15..a89a44ed 100644 --- a/src/danog/MadelineProto/Ipc/Runner/ProcessRunner.php +++ b/src/danog/MadelineProto/Ipc/Runner/ProcessRunner.php @@ -23,7 +23,6 @@ final class ProcessRunner extends RunnerAbstract */ public static function start(string $session, int $request): void { - $request = Tools::randomInt(); if (\PHP_SAPI === "cli") { $binary = \PHP_BINARY; } else { diff --git a/src/danog/MadelineProto/Ipc/Runner/entry.php b/src/danog/MadelineProto/Ipc/Runner/entry.php index 2d52c3b4..92cb8945 100644 --- a/src/danog/MadelineProto/Ipc/Runner/entry.php +++ b/src/danog/MadelineProto/Ipc/Runner/entry.php @@ -96,6 +96,7 @@ use danog\MadelineProto\Tools; try { Magic::classExists(); Magic::$script_cwd = $_GET['cwd'] ?? Magic::getcwd(); + $API = new API($ipcPath, (new Settings)->getSerialization()->setForceFull(true)); while (true) { @@ -112,9 +113,8 @@ use danog\MadelineProto\Tools; } } catch (\Throwable $e) { Logger::log("Got exception $e in IPC server, exiting...", Logger::FATAL_ERROR); - \trigger_error("Got exception $e in IPC server, exiting...", E_USER_ERROR); $ipc = Tools::wait($session->getIpcState()); - if (!($ipc && $ipc->getRunnerId() === $runnerId && !$ipc->getException())) { + if (!($ipc && $ipc->getStartupId() === $runnerId && !$ipc->getException())) { Tools::wait($session->storeIpcState(new IpcState($runnerId, $e))); } } diff --git a/src/danog/MadelineProto/Ipc/Server.php b/src/danog/MadelineProto/Ipc/Server.php index 4d2fee13..40fd8f49 100644 --- a/src/danog/MadelineProto/Ipc/Server.php +++ b/src/danog/MadelineProto/Ipc/Server.php @@ -73,7 +73,7 @@ class Server extends SignalLoop */ public static function startMe(SessionPaths $session): Promise { - $id = Tools::randomInt(); + $id = Tools::randomInt(2000000000); try { Logger::log("Starting IPC server $session (process)"); ProcessRunner::start($session, $id);