From 8752e363c9421caa5705e4756fc8abfa854fdf84 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Mon, 31 Dec 2018 22:33:56 +0000 Subject: [PATCH 1/5] EXCUSE ME, HOW DARE YOU NOT LOG NETWORK ERRORS?! --- src/pocketmine/Server.php | 4 +--- src/pocketmine/network/Network.php | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/pocketmine/Server.php b/src/pocketmine/Server.php index 29a75ae38..a25caeaf8 100644 --- a/src/pocketmine/Server.php +++ b/src/pocketmine/Server.php @@ -2491,9 +2491,7 @@ class Server{ $this->logger->debug("Unhandled raw packet from $address $port: " . bin2hex($payload)); } }catch(\Throwable $e){ - if(\pocketmine\DEBUG > 1){ - $this->logger->logException($e); - } + $this->logger->logException($e); $this->getNetwork()->blockAddress($address, 600); } diff --git a/src/pocketmine/network/Network.php b/src/pocketmine/network/Network.php index 898d2e6ed..b81cc0826 100644 --- a/src/pocketmine/network/Network.php +++ b/src/pocketmine/network/Network.php @@ -94,9 +94,7 @@ class Network{ $interface->process(); }catch(\Throwable $e){ $logger = $this->server->getLogger(); - if(\pocketmine\DEBUG > 1){ - $logger->logException($e); - } + $logger->logException($e); (new NetworkInterfaceCrashEvent($interface, $e))->call(); From 75a0627bf231f2e627026aaaeb40d3391adb13c6 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Mon, 31 Dec 2018 22:40:13 +0000 Subject: [PATCH 2/5] Network: cut this catch-all bullshit out as well If a network interface crashes, it should take out the whole server, not try to keep on ticking. --- src/pocketmine/network/Network.php | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/src/pocketmine/network/Network.php b/src/pocketmine/network/Network.php index b81cc0826..2f102d519 100644 --- a/src/pocketmine/network/Network.php +++ b/src/pocketmine/network/Network.php @@ -26,7 +26,6 @@ declare(strict_types=1); */ namespace pocketmine\network; -use pocketmine\event\server\NetworkInterfaceCrashEvent; use pocketmine\event\server\NetworkInterfaceRegisterEvent; use pocketmine\event\server\NetworkInterfaceUnregisterEvent; use pocketmine\network\mcpe\protocol\PacketPool; @@ -90,18 +89,7 @@ class Network{ } public function processInterface(SourceInterface $interface) : void{ - try{ - $interface->process(); - }catch(\Throwable $e){ - $logger = $this->server->getLogger(); - $logger->logException($e); - - (new NetworkInterfaceCrashEvent($interface, $e))->call(); - - $interface->emergencyShutdown(); - $this->unregisterInterface($interface); - $logger->critical($this->server->getLanguage()->translateString("pocketmine.server.networkError", [get_class($interface), $e->getMessage()])); - } + $interface->process(); } /** From f7de6eb59fe7ce497e0c6df08e4c2bb78e19a1d4 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Mon, 31 Dec 2018 22:52:33 +0000 Subject: [PATCH 3/5] Network: Deprecate some garbage Deprecations on a patch version breaks release protocol, but I don't care at this point. Nobody should have been using this shit anyway. --- src/pocketmine/event/server/NetworkInterfaceCrashEvent.php | 3 ++- src/pocketmine/network/Network.php | 6 +++++- src/pocketmine/network/SourceInterface.php | 3 +++ src/pocketmine/network/mcpe/RakLibInterface.php | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/pocketmine/event/server/NetworkInterfaceCrashEvent.php b/src/pocketmine/event/server/NetworkInterfaceCrashEvent.php index 4d8396579..f9c796afa 100644 --- a/src/pocketmine/event/server/NetworkInterfaceCrashEvent.php +++ b/src/pocketmine/event/server/NetworkInterfaceCrashEvent.php @@ -26,7 +26,8 @@ namespace pocketmine\event\server; use pocketmine\network\SourceInterface; /** - * Called when a network interface crashes, with relevant crash information. + * Never called. Should never have come into this world. Nothing to see here. + * @deprecated */ class NetworkInterfaceCrashEvent extends NetworkInterfaceEvent{ /** diff --git a/src/pocketmine/network/Network.php b/src/pocketmine/network/Network.php index 2f102d519..0cac33a5e 100644 --- a/src/pocketmine/network/Network.php +++ b/src/pocketmine/network/Network.php @@ -84,10 +84,14 @@ class Network{ public function processInterfaces(){ foreach($this->interfaces as $interface){ - $this->processInterface($interface); + $interface->process(); } } + /** + * @deprecated + * @param SourceInterface $interface + */ public function processInterface(SourceInterface $interface) : void{ $interface->process(); } diff --git a/src/pocketmine/network/SourceInterface.php b/src/pocketmine/network/SourceInterface.php index e5a6b679a..02f47488d 100644 --- a/src/pocketmine/network/SourceInterface.php +++ b/src/pocketmine/network/SourceInterface.php @@ -71,6 +71,9 @@ interface SourceInterface{ public function shutdown(); + /** + * @deprecated + */ public function emergencyShutdown(); } diff --git a/src/pocketmine/network/mcpe/RakLibInterface.php b/src/pocketmine/network/mcpe/RakLibInterface.php index a200c2ffd..56b9474ed 100644 --- a/src/pocketmine/network/mcpe/RakLibInterface.php +++ b/src/pocketmine/network/mcpe/RakLibInterface.php @@ -89,7 +89,7 @@ class RakLibInterface implements ServerInstance, AdvancedSourceInterface{ public function start(){ $this->server->getTickSleeper()->addNotifier($this->sleeper, function() : void{ - $this->server->getNetwork()->processInterface($this); + $this->process(); }); $this->rakLib->start(PTHREADS_INHERIT_CONSTANTS); //HACK: MainLogger needs constants for exception logging } From d33acc4fd0b7e7a19d6016939b01cb33e51272ed Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Tue, 1 Jan 2019 12:33:17 +0000 Subject: [PATCH 4/5] Release 3.5.4 --- src/pocketmine/PocketMine.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pocketmine/PocketMine.php b/src/pocketmine/PocketMine.php index b63cc729b..e5277d77d 100644 --- a/src/pocketmine/PocketMine.php +++ b/src/pocketmine/PocketMine.php @@ -38,7 +38,7 @@ namespace pocketmine { const NAME = "PocketMine-MP"; const BASE_VERSION = "3.5.4"; - const IS_DEVELOPMENT_BUILD = true; + const IS_DEVELOPMENT_BUILD = false; const BUILD_NUMBER = 0; const MIN_PHP_VERSION = "7.2.0"; From 4b4820cf532ace770b1e241318ec4ccda7301014 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Tue, 1 Jan 2019 13:55:45 +0000 Subject: [PATCH 5/5] 3.5.5 is next --- src/pocketmine/PocketMine.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pocketmine/PocketMine.php b/src/pocketmine/PocketMine.php index e5277d77d..eb9de5c90 100644 --- a/src/pocketmine/PocketMine.php +++ b/src/pocketmine/PocketMine.php @@ -37,8 +37,8 @@ namespace pocketmine { use pocketmine\wizard\SetupWizard; const NAME = "PocketMine-MP"; - const BASE_VERSION = "3.5.4"; - const IS_DEVELOPMENT_BUILD = false; + const BASE_VERSION = "3.5.5"; + const IS_DEVELOPMENT_BUILD = true; const BUILD_NUMBER = 0; const MIN_PHP_VERSION = "7.2.0";