mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-11 00:09:39 +00:00
RakLibInterface: Add error ID to make logs searchable when players report legitimate issues
This commit is contained in:
parent
d528fdddfa
commit
13b9fd7b66
@ -39,8 +39,10 @@ use raklib\server\ServerHandler;
|
||||
use raklib\server\ServerInstance;
|
||||
use raklib\utils\InternetAddress;
|
||||
use function addcslashes;
|
||||
use function bin2hex;
|
||||
use function count;
|
||||
use function implode;
|
||||
use function random_bytes;
|
||||
use function rtrim;
|
||||
use function spl_object_id;
|
||||
use function substr;
|
||||
@ -159,15 +161,16 @@ class RakLibInterface implements ServerInstance, AdvancedNetworkInterface{
|
||||
try{
|
||||
$session->handleEncoded($buf);
|
||||
}catch(BadPacketException $e){
|
||||
$errorId = bin2hex(random_bytes(6));
|
||||
$logger = $this->server->getLogger();
|
||||
$logger->error("Bad packet from $address $port: " . $e->getMessage());
|
||||
$logger->error("Bad packet from $address $port (error ID $errorId): " . $e->getMessage());
|
||||
|
||||
//intentionally doesn't use logException, we don't want spammy packet error traces to appear in release mode
|
||||
$logger->debug("Origin: " . Utils::cleanPath($e->getFile()) . "(" . $e->getLine() . ")");
|
||||
foreach(Utils::printableTrace($e->getTrace()) as $frame){
|
||||
$logger->debug($frame);
|
||||
}
|
||||
$session->disconnect("Packet processing error");
|
||||
$session->disconnect("Packet processing error (Error ID: $errorId)");
|
||||
$this->interface->blockAddress($address, 5);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user