From ae06681b605c8098d3289931531794097908aae2 Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Fri, 31 Oct 2014 19:14:59 +0100 Subject: [PATCH] Added packet exception handling, updated RakLib --- src/pocketmine/network/RakLibInterface.php | 17 ++++++++++++++--- src/raklib | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/pocketmine/network/RakLibInterface.php b/src/pocketmine/network/RakLibInterface.php index 3619ed05cc..34ab990f9e 100644 --- a/src/pocketmine/network/RakLibInterface.php +++ b/src/pocketmine/network/RakLibInterface.php @@ -74,6 +74,7 @@ use pocketmine\network\protocol\UpdateBlockPacket; use pocketmine\network\protocol\UseItemPacket; use pocketmine\Player; use pocketmine\Server; +use pocketmine\utils\MainLogger; use pocketmine\utils\TextFormat; use raklib\protocol\EncapsulatedPacket; use raklib\RakLib; @@ -175,9 +176,19 @@ class RakLibInterface implements ServerInstance, SourceInterface{ public function handleEncapsulated($identifier, EncapsulatedPacket $packet, $flags){ if(isset($this->players[$identifier])){ - $pk = $this->getPacket($packet->buffer); - $pk->decode(); - $this->players[$identifier]->handleDataPacket($pk); + try{ + $pk = $this->getPacket($packet->buffer); + $pk->decode(); + $this->players[$identifier]->handleDataPacket($pk); + }catch (\Exception $e){ + if(\pocketmine\DEBUG > 1){ + $logger = $this->server->getLogger(); + if($logger instanceof MainLogger){ + $logger->logException($e); + $logger->debug("Packet ".get_class($pk)." 0x".bin2hex($packet->buffer)); + } + } + } } } diff --git a/src/raklib b/src/raklib index 9a041749f3..cb3c3efd9c 160000 --- a/src/raklib +++ b/src/raklib @@ -1 +1 @@ -Subproject commit 9a041749f3b8bba460ae413e7fa89f488dd7b652 +Subproject commit cb3c3efd9cc8b04b686788a3a3450731f9ff97e4